chore(history): squash 3 commit(s) from 2026-09-05
- feat: батч QoL-модулей из Delta + фиксы рендера руки - refactor: Фаза 8 — разбивка топ-гигантов по правилу ≤200 строк - refactor: Фаза 8, проход 2 — Predictions, TargetESP, HudNotifier, Module
This commit is contained in:
parent
e504859777
commit
d83f9a29ff
105 changed files with 10287 additions and 5785 deletions
|
|
@ -5,7 +5,7 @@
|
|||
## Правила (ОБЯЗАТЕЛЬНЫЕ, нарушение = откат)
|
||||
- **KISS / DRY / SOLID** — простая структура, без оверинжиниринга
|
||||
- **Макс. 200 строк на файл** (было >1500) — превышение = разбить на модули
|
||||
- **Макс. 3 файла на папку** — больше = новая подпапка по смыслу
|
||||
- **Макс. 4 файла на папку** — больше = новая подпапка по смыслу
|
||||
- **Никакого статика** — `Minecraft.getInstance()` только лениво, никогда в поле
|
||||
- **Никаких this-escape** — конструктор не публикует `this`
|
||||
- **Никаких мёртвых миксинов** — миксин только если реально нужен; `cancellable=true` только при реальном cancel
|
||||
|
|
@ -148,4 +148,68 @@
|
|||
- [ ] Юнит-тесты: EventBus, конфиг, утилиты (игровые классы — mock)
|
||||
- [ ] По мере переписи модулей — тест на каждый
|
||||
|
||||
## Фаза 7: QoL-модули из Delta (легит) — ПЛАН, обсуждаем
|
||||
> Референс: `ref/delta-26.2-main` (чит-клиент, код обфусцирован — берём только идеи,
|
||||
> переписываем под наши правила; у Delta 114 модулей, у нас 63).
|
||||
> Уже перенесено: SeeInvisibles→InvisESP, HandsShader→Chams/Noise, AtmoDawnFog,
|
||||
> ShulkerPreview, Animations, ItemPhysic (из WorldTweaks), HoldMyItems (фикс ordinal-бага,
|
||||
> математика в EaseCurves). Реф-исходники: ref/hmi-src, ref/soupvisuals-src.
|
||||
|
||||
### Решения по обсуждению (2026-09-05)
|
||||
- [x] Wasted — НЕ делаем
|
||||
- [x] TapeMouse — делаем (пользователь: AFK-фермы, не чит-софт)
|
||||
- [x] DeathCoords — делаем
|
||||
- [x] ItemScroller / Arrows — НЕ делаем
|
||||
- [x] ColorPlus ≈ наш PostFX — PostFX восстановлен и починен (дефолтный пресет был near-identity → добавлен Cinematic + тесты)
|
||||
- [x] Правило папок: максимум 4 файла (было 3)
|
||||
|
||||
### Перенос (список пользователя)
|
||||
- [ ] **StreamerMode** (misc, ~80 у них) — при записи/стриме скрывает: ники игроков,
|
||||
имена друзей, названия серверов («Анархия-N») в чате/таб-листе/скорборде; скрытие скинов.
|
||||
Интеграция: наши BetterChat + CustomTabList + Scoreboard-виджет + рендер скинов.
|
||||
- [x] **LockSlot** (player, ~36) — запрет выброса из выбранных слотов 1–9 (анти-случайный Q),
|
||||
опция «только в PVP», предупреждение в чат. Точка: перехват drop-пакета.
|
||||
- [x] **AutoRespawn** (player, ~28) — авто-возрождение после смерти (tick на death screen).
|
||||
- [ ] **AutoLeave** (player, ~61) — выход в хаб по триггерам: малое ХП, игроки рядом (N, радиус), задержка.
|
||||
- [ ] **AutoAccept** (player, ~67) — авто-принятие запросов: клан/ТП; опция «только от друзей»
|
||||
через наш PlayerRelations. Точка: перехват chat-пакетов.
|
||||
- [ ] **SoundReducer** (player, ~42) — приглушение выбранных звуков/категорий (громкость 0..N),
|
||||
в отличие от нашего NoSound (он только вкл/выкл всего). Вопрос: новый модуль или развитие NoSound.
|
||||
- [ ] **Wasted** (misc, ~100) — ОТМЕНЕНО (решение пользователя)
|
||||
- [ ] **ThirdPerson** (player, ~77) — свободный обзор от 3-го лица без поворота движения
|
||||
(по нажатию/зажатию бинда). Не дублирует Freecam (он про отдельную камеру-сущность).
|
||||
Точка: наш CameraMixin.
|
||||
- [ ] **UseTracker** (player, ~86) — уведомления об использованиях: тотем, зелья, предметы.
|
||||
Вывод через наш HudNotifier. Точка: пакеты + инвентарь.
|
||||
- [x] **NoServerPack** (misc) — у Delta ПУСТЫШКА (пустой класс). Сделаем по-настоящему:
|
||||
авто-отклонение принудительного серверного ресурспака (спрашивать/отклонять всегда).
|
||||
Точка: наш ClientCommonPacketListenerImplMixin.
|
||||
- [x] **NoFriendDamage** (combat, ~19) — отмена атаки, если цель — друг (PlayerRelations).
|
||||
Точка: перехват атаки (AttackEvent у них; у нас миксин на attack/interact-пакет).
|
||||
- [x] **TapeMouse** (combat, ~66) — автоклик по таймеру. ⚠️ ПРОТИВОРЕЧИТ легит-политике Фазы 3.5
|
||||
(тот же класс, что удалённые AutoAttack/TriggerBot). По умолчанию НЕ делаем / делаем
|
||||
легит-вариант «напоминание о клике» без автоматического клика — РЕШИТЬ.
|
||||
|
||||
### Кандидаты из отчёта (не в списке пользователя — обсудить)
|
||||
- [x] **DeathCoords** (~27) — координаты последней смерти в чат. Дёшево, полезно.
|
||||
- [ ] **ItemScroller** — перекладывание предметов прокруткой в инвентарях. Крупный QoL (~200+).
|
||||
- [ ] **ColorPlus** — ⚠️ это по сути наш удалённый PostFX (экспозиция/гамма/контраст/насыщенность/
|
||||
виньетка/резкость/LUT). Восстанавливать под новым именем или забыть — РЕШИТЬ.
|
||||
- [ ] **Arrows / off-screen индикаторы** — дополнение к Pointers (у нас их нет вообще).
|
||||
|
||||
### Проверка после каждого модуля: `./gradlew build` ✓, тесты на чистую логику ✓
|
||||
|
||||
## Фаза 8: Структура «как у Delta» (маленькие файлы) — ПЛАН
|
||||
> Правило ≤200 уже есть (Фаза 1–3), но долг: ~240 файлов >200 строк.
|
||||
> У Delta файлы компактные и слои разделены: api / client(features, ui, utils, processors) /
|
||||
> inject(accessors, invokers, mixin). Наша пакетная структура сопоставима — проблема в размере файлов.
|
||||
|
||||
- [ ] Топ-гигантов к разбивке (после Фазы 3): LoVisualRenderPipelines 1527,
|
||||
DraggableHudElementRegistry 1449, Predictions 1363, DynamicIsland 1254, Module 1181,
|
||||
HudNotifier 1116, AltManager 1115, Triangulator 1102, TargetESP 1061, UiPrimitiveRenderer 1042
|
||||
- [ ] Стратегия: как в Фазе 3 — фасад + package-private хелперы ≤200, 0 изменений вызывающих,
|
||||
`./gradlew build` после каждого; по мере касания файлов в Фазе 7 — разбивать на ходу
|
||||
- [ ] Facades >200 (Renderer2D 2150 и т.п.) — оставить как есть (исключение по правилам)
|
||||
- [ ] Не смешивать с Фазой 7: разбивка структуры — отдельными проходами, иначе diff-каша
|
||||
|
||||
### Проверка: `./gradlew test` зелёный
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue