diff --git a/TODO.md b/TODO.md index b6655e9..ca2e6d3 100644 --- a/TODO.md +++ b/TODO.md @@ -1,8 +1,8 @@ # LoParkour Bug Tracker -## ✅ Fixed (15/20) +## ✅ Fixed (19/20) -### CRITICAL (6/7 fixed) +### CRITICAL (7/7 fixed) - ~~**1. ProfileValue.asInt/asDouble — NumberFormatException при пустой строке**~~ ✅ - ~~**2. Bukkit.createBlockData — IllegalArgumentException при невалидном materialName**~~ ✅ @@ -10,7 +10,7 @@ - ~~**4. subList().clear() на synchronizedList(LinkedList) — повреждение node связей**~~ ✅ - ~~**5. Мультиплеер — runaway генерация блоков**~~ ✅ - ~~**6. Система схематик полностью сломана**~~ ✅ -- **7. Прыжки за границами валидации** — `/` не критично, offset зажат +- ~~**7. Прыжки за границами валидации**~~ ✅ ### HIGH (4/4 fixed) @@ -19,21 +19,21 @@ - ~~**10. synchronizedList — итерации без синхронизации**~~ ✅ - ~~**11. heading.clone() без null-проверки**~~ ✅ -### MEDIUM (4/6 fixed) +### MEDIUM (5/6 fixed) - ~~**12. BlockSelector.selectBlockData рекурсия при пустом списке стилей**~~ ✅ - ~~**13. checkPlayerFall — break вместо continue**~~ ✅ - ~~**14. removeTrailBlocks сдвигает индексы истории**~~ ✅ -- **15. Дублирование isSlabMaterial** — косметика, низкий приоритет -- **16. DifficultyScore thresholds для льда (1.0/2.0)** — настройка конфига +- ~~**15. Дублирование isSlabMaterial**~~ ✅ +- ~~**16. DifficultyScore thresholds для льда (1.0/2.0)**~~ ✅ - **17. schematicBlocks — ArrayList без thread safety** — main-thread-only, неактуально -### LOW (1/3 fixed) +### LOW (3/3 fixed) - ~~**18. scoredBlocks HashSet не очищается при fall**~~ ✅ -- **19. getFormattedTime() — Date(elapsed) хак** — косметика, >24ч маловероятно -- **20. isUnsafeParkourMaterial блокирует PUMPKIN и _BED** — тривиально +- ~~**19. getFormattedTime() — Date(elapsed) хак**~~ ✅ +- ~~**20. isUnsafeParkourMaterial блокирует PUMPKIN и _BED**~~ ✅ --- -Всего найдено: **20** | Исправлено: **15** +**Всего найдено: 20 | Исправлено: 19 | Пропущено: 1 (main-thread-only)**