chore(history): squash 37 commit(s) from 2026-09-10
- refactor(8.5.1): split render/engine/uniform/impl 28 classes into hand/sky/esp/post/ui/world(+liquid) leaves - refactor(8.5.1): split renderer/ui top 28 files into blur/batches(+ordered)/item/deferred(+sched)/pass/dispatch leaves; add tools/pkgsplit scripts (split_struct.py, promote.py) for reproducible waves - refactor(8.5.1): split render/engine/text 24 files into font(+faces/info)/glyph/msdf/render/command leaves; fiximports tool; disambiguate Font/GlyphAtlasManager shadowing - refactor(8.5.1): split nondraggable/impl into bars(+jump)/locator(+panel)/buttons/tooltips/dynamicisland/overlay; promote.py +8-indent & ctor support - refactor(8.5.1): nondraggable dynamicisland 5->4 files (IslandUiUtil into controls) - refactor(8.5.1): split features/gui/clickgui top 20 files into render/screen/editor/input/tabs/picker/font; ClickGuiModel records nested - refactor(8.5.1): picker 6->5+screen leaf - refactor(8.5.1): picker catalog leaf (picker=2: state+icon manager) - refactor(tools): improve pkgsplit import handling (fiximports v2) - refactor(8.5.1): split util/text 8 -> mask/format/edit leaves (≤4) - refactor(8.5.1): split util/network 5, util/player/effect 5, util/media 5 (+ shadow fix) - refactor(8.5.1): split util/pvp 13, util/projectile 13, util/block 8 - refactor(8.5.1): split util/wav 9, util/item 9, util/combat 9, util/player/inventory 9 - refactor(8.5.1): split render/helpers 16 + config/values 16 - refactor(8.5.1): split renderer/ui/draw 23 -> shape/box/corner/edge/paint/effect - refactor(8.5.1): split render/engine/command 17 -> core/shape/effect/texture/world - refactor(8.5.1): split renderer/ui/runtime/script 23 -> engine/runtime/module/registry/render/patch - refactor(8.5.1): split profiler 14 + hud 14 + addon 14 - refactor(8.5.1): split iris 13 + profile 13 + text/backend 12 - refactor(8.5.1): split config 12 + module 12 + cosmetic 11 - refactor(8.5.1): split rhi/pipeline 11 + mixininterface 11 + config/common/impl 11 - refactor(8.5.1): split util/player 10 + rhi/resource 10 + runtime/render 10 - refactor(8.5.1): split rhi 9 + svg 9 + command 8 - refactor(8.5.1): split core 9 + postprocess 9 + combat 9 - refactor(8.5.1): split command/impl 16 + modules/player 14 + modules/misc 12 - refactor(8.5.1): split ui/runtime 43 -> core/style/input/reconcile/asset - refactor(8.5.1): split session/microsoft 8 + relations 7 + animation 7 - refactor(8.5.1): split engine/world 7 + postprocess/graph 7 + api/v0/render 7 - refactor(8.5.1): split sodium 12 + aiming 21 - refactor(8.5.1): split хвост 13 папок 34 файла - fix(8.5.1): видимость членов и enum после расщепления пакетов - refactor(8.5.1): FailRotationProcessor -> processors root (impl 5 -> 4) - docs(8.5.1): TODO — волна 8.5.1 завершена (0 папок >4 файлов) - refactor(8.5.2): split LoVisualAltManagerScreen 1113 -> 11 файлов alt/ (≤200 строк) - docs(8.5.2): LoVisualAltManagerScreen сплит завершён - refactor(8.5.2): split UiPrimitiveRenderer 1053 -> фасад 188 + primitive/ + rect/ (7 файлов ≤200); fix readPoints индексация - docs(8.5.2): UiPrimitiveRenderer сплит завершён
This commit is contained in:
parent
fb6e6eb1d3
commit
573780cd5f
1280 changed files with 9468 additions and 6380 deletions
3
TODO.md
3
TODO.md
|
|
@ -29,7 +29,8 @@
|
|||
- [x] Фаза 5: Нормализация модулей (ленивый Minecraft, GameClock)
|
||||
- [x] Фаза 6: Тесты (EventBus, конфиг, утилиты) — см. `combatant-client-26.2/TODO.md`
|
||||
- [ ] Фаза 7: Новые модули по мотивам SoupVisuals — см. ниже
|
||||
- [ ] Фаза 8.5: Аудит структуры ≤200/≤4 (244 файла, 86 папок) — гейт перед Фазой 9.2,
|
||||
- [ ] Фаза 8.5: Аудит структуры ≤200/≤4 — 8.5.1 (папки >4) ЗАВЕРШЕНА 2026-09-10
|
||||
(0 папок >4, коммиты 8846d53…303b17e); далее 8.5.2 (гиганты >600),
|
||||
план в `combatant-client-26.2/TODO.md`
|
||||
- [ ] Фаза 9: Оптимизация FPS (9.1 фиксы мёртвых грузов → 9.2 модуль Optimize),
|
||||
план в `combatant-client-26.2/TODO.md`
|
||||
|
|
|
|||
|
|
@ -268,23 +268,27 @@
|
|||
render/parts)/scripted + hudnotifier/model, targethud-модель свёрнута в класс с record-ами. Коммит 6b89e40.
|
||||
- [x] `events/impl/` — 32 → input/movement/world/network/entity/pvp/render/player;
|
||||
events/ верхний уровень: core(Event,EventBus,Events) + meta(EventHandler,UsedImplicitly).
|
||||
- [ ] `features/gui/chat/` — 31 → `render/`, `suggestions/`, `menu/`, `model/`.
|
||||
- [ ] `render/engine/uniform/impl/` — 28 → по потребителям (`uniform/impl/pipeline/`, `uniform/impl/effects/`).
|
||||
- [ ] `render/engine/renderer/ui/` — 28: верхний уровень разнести по уже существующим
|
||||
- [x] `features/gui/chat/` — 31 → `render/`, `suggestions/`, `menu/`, `model/`.
|
||||
- [x] `render/engine/uniform/impl/` — 28 → по потребителям (`uniform/impl/pipeline/`, `uniform/impl/effects/`).
|
||||
- [x] `render/engine/renderer/ui/` — 28: верхний уровень разнести по уже существующим
|
||||
`draw/`, `runtime/`, добавить `blur/`, `batches/`.
|
||||
- [ ] `render/engine/text/` — 24 и `text/backend/` — 12 → `text/` разбить на `text/render/`,
|
||||
- [x] `render/engine/text/` — 24 и `text/backend/` — 12 → `text/` разбить на `text/render/`,
|
||||
`text/layout/`, `text/msdf/`.
|
||||
- [ ] `render/engine/renderer/ui/runtime/script/` — 23, `ui/draw/` — 23 → внутри по 4-файловым кластерам.
|
||||
- [ ] `features/gui/hud/nondraggable/impl/` — 20 (+`impl/tab/`) → `impl/overlays/`, `impl/tablist/`.
|
||||
- [ ] `features/gui/clickgui/` — 20 на верхнем уровне → всё в существующие `layout/`, `sections/`,
|
||||
- [x] `render/engine/renderer/ui/runtime/script/` — 23, `ui/draw/` — 23 → внутри по 4-файловым кластерам.
|
||||
- [x] `features/gui/hud/nondraggable/impl/` — 20 (+`impl/tab/`) → `impl/overlays/`, `impl/tablist/`.
|
||||
- [x] `features/gui/clickgui/` — 20 на верхнем уровне → всё в существующие `layout/`, `sections/`,
|
||||
`picker/`, `protocol/`, `util/`.
|
||||
- [ ] `render/engine/command/` — 17, `render/helpers/` — 16, `features/command/impl/` — 16,
|
||||
- [x] `render/engine/command/` — 17, `render/helpers/` — 16, `features/command/impl/` — 16,
|
||||
`config/values/` — 16 → по 2-3 подпапки (типам: `values/numeric/`, `values/color/`…).
|
||||
- [ ] `render/engine/profiler/` — 14, `modules/player/` — 14, `features/gui/hud/` — 14,
|
||||
- [x] `render/engine/profiler/` — 14, `modules/player/` — 14, `features/gui/hud/` — 14,
|
||||
`addon/` — 14 — средние: раскидать при касании.
|
||||
- [ ] Хвост (5–13 файлов, ~55 папок): `util/pvp` 13, `util/projectile` 13, `render/iris` 13,
|
||||
- [x] Хвост (5–13 файлов, ~55 папок): `util/pvp` 13, `util/projectile` 13, `render/iris` 13,
|
||||
`config/profile` 13, `features/module/misc` 12, `features/module` 12, `config` 12 и т.д. —
|
||||
НЕ выделенный проход, а «касаться = чинить» (см. 8.5.4).
|
||||
ЗАКРЫТ выделенным проходом (коммиты 8846d53…303b17e, волна 8.5.1 завершена).
|
||||
Снимок после волны: 0 папок >4 файлов в `src/main/java` (скан 2026-09-10).
|
||||
Замечания: command-discovery рекурсивный (ClassGraph acceptPackages), конфиг-id
|
||||
и ключи i18n не менялись; package-private члены, ставшие кросс-пакетными,
|
||||
расширены до public/protected; svgMsdfTool-импорты починены после split svg.
|
||||
|
||||
### 8.5.2 Файлы-гиганты >600 строк — приоритетная очередь разбивки (53 файла)
|
||||
> Формат: файл (строк) → идея разбивки. Порядок сверху вниз. Facade-оговорка:
|
||||
|
|
@ -293,8 +297,12 @@
|
|||
- [ ] Renderer2D 2166 — ФАСАД (исключение по правилу Фазы 8): оставить делегирование,
|
||||
но блоки >200 строк переносить в package-private хелперы в `renderer/renderer2d/`
|
||||
(частично уже есть Rects2D/Strokes2D)
|
||||
- [ ] LoVisualAltManagerScreen 1113 — экран+список+диалоги → 4 файла `mainmenu/alt/`
|
||||
- [ ] UiPrimitiveRenderer 1042 — по типам примитивов (rect/round/line/text-batch)
|
||||
- [x] LoVisualAltManagerScreen 1113 → ГОТОВО (2026-09-10): 11 файлов `mainmenu/alt/`
|
||||
(Screen 132, Controller 200, Ops 59, Anims 108 + auth/ 171 + render/ 157/156/139/100
|
||||
+ render/cards/ 178/166), все ≤200, build+test ✓
|
||||
- [x] UiPrimitiveRenderer 1053 → ГОТОВО (2026-09-10): фасад 188 (коннекторы) +
|
||||
render/primitive/ 4 (Context 153, Props 158, Painter 145, GlowPainter 147) +
|
||||
render/rect/ 2 (RectPainter 150, CornerPainter 150), build+test ✓
|
||||
- [ ] BetterButtons 1032 — extraction+tooltip+render → `hud/nondraggable/impl/buttons/`
|
||||
- [ ] InventorySwap 1031 — по стратегиям свапа; чистая логика отдельными классами с тестами
|
||||
- [ ] SvgMeshBackend 1014 — parser/triangulate/cache разнести
|
||||
|
|
@ -324,8 +332,9 @@
|
|||
разбивка на ≤200, вторым — целевое изменение (иначе diff-каша, правило Фазы 8)
|
||||
|
||||
### 8.5.4 Порядок и критерии готовности
|
||||
- [ ] Очередь: 8.5.1 крупные папки (mixins, visuals, clickgui/settings, hud impl) →
|
||||
- [x] Очередь: 8.5.1 крупные папки (mixins, visuals, clickgui/settings, hud impl) →
|
||||
8.5.2 гиганты >800 → далее по убыванию. Каждая папка/файл = отдельный коммит.
|
||||
→ 8.5.1 ЗАВЕРШЕНА (2026-09-10): 0 папок >4 файлов.
|
||||
- [ ] После каждого шага: `./gradlew build` ✓, `./gradlew test` ✓; конфиг-id модулей и
|
||||
ключи сеттингов НЕ ломаем (совместимость .lvcfg); скрипты-переименования пакетов
|
||||
не трогают string-literals id — проверять grep'ом после moves.
|
||||
|
|
|
|||
|
|
@ -17,62 +17,63 @@ import net.fabricmc.fabric.api.client.rendering.v1.level.LevelRenderEvents;
|
|||
import net.minecraft.client.DeltaTracker;
|
||||
import net.minecraft.client.gui.GuiGraphicsExtractor;
|
||||
import net.minecraft.resources.Identifier;
|
||||
import dev.loki.lovisual.addon.AddonManager;
|
||||
import dev.loki.lovisual.addon.AddonRenderPipelineManager;
|
||||
import dev.loki.lovisual.addon.core.AddonManager;
|
||||
import dev.loki.lovisual.addon.pipeline.AddonRenderPipelineManager;
|
||||
import dev.loki.lovisual.api.v0.render.LoVisualRenderStage;
|
||||
import dev.loki.lovisual.config.MainConfig;
|
||||
import dev.loki.lovisual.config.i18n.MainConfig;
|
||||
import dev.loki.lovisual.events.Events;
|
||||
import dev.loki.lovisual.features.account.AccountConfig;
|
||||
import dev.loki.lovisual.features.command.CommandManager;
|
||||
import dev.loki.lovisual.features.gui.clickgui.ClickGuiRenderer;
|
||||
import dev.loki.lovisual.features.command.core.CommandManager;
|
||||
import dev.loki.lovisual.features.gui.clickgui.render.ClickGuiRenderer;
|
||||
import dev.loki.lovisual.features.gui.clickgui.settings.i18n.I18nPreflightContributors;
|
||||
import dev.loki.lovisual.features.gui.hud.HudElements;
|
||||
import dev.loki.lovisual.features.gui.hud.HudRenderSpace;
|
||||
import dev.loki.lovisual.features.gui.hud.registry.HudElements;
|
||||
import dev.loki.lovisual.features.gui.hud.anchor.HudRenderSpace;
|
||||
import dev.loki.lovisual.features.gui.hud.draggable.DraggableHudElementRegistry;
|
||||
import dev.loki.lovisual.features.gui.hud.nondraggable.StaticHudElementBootstrap;
|
||||
import dev.loki.lovisual.features.gui.hud.nondraggable.StaticHudElementRegistry;
|
||||
import dev.loki.lovisual.features.gui.hud.nondraggable.impl.SwapTooltip;
|
||||
import dev.loki.lovisual.features.module.HudPhase;
|
||||
import dev.loki.lovisual.features.module.ModuleAutoLoader;
|
||||
import dev.loki.lovisual.features.module.ModuleManager;
|
||||
import dev.loki.lovisual.features.module.WorldPhase;
|
||||
import dev.loki.lovisual.mixininterface.IGuiGraphics;
|
||||
import dev.loki.lovisual.features.gui.hud.nondraggable.impl.buttons.SwapTooltip;
|
||||
import dev.loki.lovisual.features.module.phase.HudPhase;
|
||||
import dev.loki.lovisual.features.module.lifecycle.ModuleAutoLoader;
|
||||
import dev.loki.lovisual.features.module.core.ModuleManager;
|
||||
import dev.loki.lovisual.features.module.phase.WorldPhase;
|
||||
import dev.loki.lovisual.mixininterface.render.IGuiGraphics;
|
||||
import dev.loki.lovisual.render.effects.NetherPortalRiftPass;
|
||||
import dev.loki.lovisual.render.effects.SleepOverlayPass;
|
||||
import dev.loki.lovisual.render.engine.LoVisualRenderEngineBootstrap;
|
||||
import dev.loki.lovisual.render.engine.core.LoVisualRenderSystem;
|
||||
import dev.loki.lovisual.render.engine.core.RenderPhase;
|
||||
import dev.loki.lovisual.render.engine.core.RenderPhaseScope;
|
||||
import dev.loki.lovisual.render.engine.core.ViewportContext;
|
||||
import dev.loki.lovisual.render.engine.postprocess.PostProcessManager;
|
||||
import dev.loki.lovisual.render.engine.profiler.ProfilerPhase;
|
||||
import dev.loki.lovisual.render.engine.profiler.RenderProfiler2D;
|
||||
import dev.loki.lovisual.render.engine.core.system.LoVisualRenderSystem;
|
||||
import dev.loki.lovisual.render.engine.core.frame.RenderPhase;
|
||||
import dev.loki.lovisual.render.engine.core.frame.RenderPhaseScope;
|
||||
import dev.loki.lovisual.render.engine.core.context.ViewportContext;
|
||||
import dev.loki.lovisual.render.engine.postprocess.post.PostProcessManager;
|
||||
import dev.loki.lovisual.render.engine.profiler.config.ProfilerPhase;
|
||||
import dev.loki.lovisual.render.engine.profiler.render.RenderProfiler2D;
|
||||
import dev.loki.lovisual.render.engine.renderer.FullScreenRenderer;
|
||||
import dev.loki.lovisual.render.engine.prewarm.RenderPrewarmContributors;
|
||||
import dev.loki.lovisual.render.engine.prewarm.RenderPrewarmManager;
|
||||
import dev.loki.lovisual.render.engine.renderer.Renderer2D;
|
||||
import dev.loki.lovisual.render.engine.text.TextRenderer;
|
||||
import dev.loki.lovisual.render.helpers.SystemCursor;
|
||||
import dev.loki.lovisual.render.helpers.TickDelta;
|
||||
import dev.loki.lovisual.util.aiming.RotationManager;
|
||||
import dev.loki.lovisual.render.engine.text.render.TextRenderer;
|
||||
import dev.loki.lovisual.render.helpers.util.SystemCursor;
|
||||
import dev.loki.lovisual.render.helpers.util.TickDelta;
|
||||
import dev.loki.lovisual.util.aiming.rotation.RotationManager;
|
||||
import dev.loki.lovisual.util.block.bed.SelfBedTracker;
|
||||
import dev.loki.lovisual.util.click.AttackPressing;
|
||||
import dev.loki.lovisual.util.combat.AntiBotTracker;
|
||||
import dev.loki.lovisual.util.combat.protocol.CombatProtocolHeuristics;
|
||||
import dev.loki.lovisual.util.combat.SprintController;
|
||||
import dev.loki.lovisual.util.combat.tracking.AntiBotTracker;
|
||||
import dev.loki.lovisual.util.combat.protocol.heuristics.CombatProtocolHeuristics;
|
||||
import dev.loki.lovisual.util.combat.rotation.SprintController;
|
||||
import dev.loki.lovisual.util.entity.simulation.BoatSimulationCache;
|
||||
import dev.loki.lovisual.util.media.MediaSessionService;
|
||||
import dev.loki.lovisual.util.network.BacktrackController;
|
||||
import dev.loki.lovisual.util.network.BlinkManager;
|
||||
import dev.loki.lovisual.util.media.session.MediaSessionService;
|
||||
import dev.loki.lovisual.util.network.control.BacktrackController;
|
||||
import dev.loki.lovisual.util.network.control.BlinkManager;
|
||||
import dev.loki.lovisual.util.proxy.ProxyBackend;
|
||||
import dev.loki.lovisual.util.network.FakeLagController;
|
||||
import dev.loki.lovisual.util.player.inventory.InventorySwap;
|
||||
import dev.loki.lovisual.util.network.control.FakeLagController;
|
||||
import dev.loki.lovisual.util.player.inventory.core.InventorySwap;
|
||||
import dev.loki.lovisual.util.player.simulation.PlayerSimulationCache;
|
||||
import dev.loki.lovisual.util.pvp.PvpTargetTracker;
|
||||
import dev.loki.lovisual.util.pvp.PvpTracker;
|
||||
import dev.loki.lovisual.util.pvp.tracker.PvpTargetTracker;
|
||||
import dev.loki.lovisual.util.pvp.tracker.PvpTracker;
|
||||
import dev.loki.lovisual.util.target.TargetManager;
|
||||
import dev.loki.lovisual.util.time.TimerController;
|
||||
import dev.loki.lovisual.features.gui.clickgui.settings.bind.KeyBindSetting;
|
||||
import dev.loki.lovisual.features.module.core.Module;
|
||||
|
||||
public class LoVisual implements ClientModInitializer {
|
||||
|
||||
|
|
|
|||
|
|
@ -5,35 +5,43 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.addon;
|
||||
package dev.loki.lovisual.addon.context;
|
||||
|
||||
import dev.loki.lovisual.api.v0.addon.LoVisualAddonContext;
|
||||
import dev.loki.lovisual.api.v0.clickgui.LoVisualClickGuiSection;
|
||||
import dev.loki.lovisual.api.v0.client.LoVisualClientApi;
|
||||
import dev.loki.lovisual.api.v0.module.LoVisualModuleExtension;
|
||||
import dev.loki.lovisual.api.v0.render.LoVisualPostProcessCallback;
|
||||
import dev.loki.lovisual.api.v0.render.LoVisualRenderCallback;
|
||||
import dev.loki.lovisual.api.v0.render.callback.LoVisualPostProcessCallback;
|
||||
import dev.loki.lovisual.api.v0.render.callback.LoVisualRenderCallback;
|
||||
import dev.loki.lovisual.api.v0.render.LoVisualRenderStage;
|
||||
import com.mojang.blaze3d.pipeline.RenderPipeline;
|
||||
import dev.loki.lovisual.features.command.ClientCommand;
|
||||
import dev.loki.lovisual.features.command.CommandManager;
|
||||
import dev.loki.lovisual.features.gui.hud.AbstractHudElement;
|
||||
import dev.loki.lovisual.features.command.util.ClientCommand;
|
||||
import dev.loki.lovisual.features.command.core.CommandManager;
|
||||
import dev.loki.lovisual.features.gui.hud.base.AbstractHudElement;
|
||||
import dev.loki.lovisual.features.gui.hud.draggable.DraggableHudElement;
|
||||
import dev.loki.lovisual.features.gui.hud.draggable.DraggableHudElementRegistry;
|
||||
import dev.loki.lovisual.features.gui.hud.nondraggable.StaticHudElementRegistry;
|
||||
import dev.loki.lovisual.features.module.Module;
|
||||
import dev.loki.lovisual.features.module.core.Module;
|
||||
import dev.loki.lovisual.render.engine.pipeline.LoVisualRenderPipelines;
|
||||
import dev.loki.lovisual.render.engine.postprocess.PostProcessPass;
|
||||
import dev.loki.lovisual.render.engine.postprocess.post.PostProcessPass;
|
||||
import dev.loki.lovisual.render.iris.patch.ShaderPatchEngine;
|
||||
import net.fabricmc.loader.api.FabricLoader;
|
||||
import net.fabricmc.loader.api.ModContainer;
|
||||
|
||||
import java.nio.file.Path;
|
||||
import dev.loki.lovisual.addon.core.AddonIssue;
|
||||
import dev.loki.lovisual.addon.core.AddonManager;
|
||||
import dev.loki.lovisual.addon.core.AddonRegistration;
|
||||
import dev.loki.lovisual.addon.manager.ClickGuiSectionManager;
|
||||
import dev.loki.lovisual.addon.manager.ModuleExtensionManager;
|
||||
import dev.loki.lovisual.addon.pipeline.AddonRenderPipelineManager;
|
||||
import dev.loki.lovisual.features.module.modules.misc.ClickGui;
|
||||
|
||||
public final class LoVisualAddonContextImpl implements LoVisualAddonContext {
|
||||
private final AddonRegistration registration;
|
||||
|
||||
LoVisualAddonContextImpl(AddonRegistration registration) {
|
||||
public LoVisualAddonContextImpl(AddonRegistration registration) {
|
||||
|
||||
this.registration = registration;
|
||||
}
|
||||
|
||||
|
|
@ -156,7 +164,7 @@ public final class LoVisualAddonContextImpl implements LoVisualAddonContext {
|
|||
|
||||
private record AddonClientCommand(String addonId, ClientCommand delegate) implements ClientCommand {
|
||||
@Override
|
||||
public dev.loki.lovisual.features.command.CommandMetadata metadata() {
|
||||
public dev.loki.lovisual.features.command.core.CommandMetadata metadata() {
|
||||
return delegate.metadata();
|
||||
}
|
||||
|
||||
|
|
@ -194,12 +202,12 @@ public final class LoVisualAddonContextImpl implements LoVisualAddonContext {
|
|||
}
|
||||
|
||||
@Override
|
||||
public java.util.List<String> suggest(dev.loki.lovisual.features.command.CommandContext ctx, int argIndex, String token) {
|
||||
public java.util.List<String> suggest(dev.loki.lovisual.features.command.core.CommandContext ctx, int argIndex, String token) {
|
||||
return delegate.suggest(ctx, argIndex, token);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean execute(dev.loki.lovisual.features.command.CommandContext ctx) {
|
||||
public boolean execute(dev.loki.lovisual.features.command.core.CommandContext ctx) {
|
||||
return isAvailable() && delegate.execute(ctx);
|
||||
}
|
||||
}
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.addon;
|
||||
package dev.loki.lovisual.addon.context;
|
||||
|
||||
import dev.loki.lovisual.api.v0.addon.LoVisualAddonRuntimeContext;
|
||||
import dev.loki.lovisual.api.v0.client.LoVisualClientApi;
|
||||
|
|
@ -13,7 +13,8 @@ import dev.loki.lovisual.api.v0.client.LoVisualClientApi;
|
|||
public final class LoVisualAddonRuntimeContextImpl implements LoVisualAddonRuntimeContext {
|
||||
private final String addonId;
|
||||
|
||||
LoVisualAddonRuntimeContextImpl(String addonId) {
|
||||
public LoVisualAddonRuntimeContextImpl(String addonId) {
|
||||
|
||||
this.addonId = addonId;
|
||||
}
|
||||
|
||||
|
|
@ -5,19 +5,22 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.addon;
|
||||
package dev.loki.lovisual.addon.context;
|
||||
|
||||
import dev.loki.lovisual.api.v0.addon.LoVisualModuleLoadContext;
|
||||
import dev.loki.lovisual.features.module.ModuleAutoLoader;
|
||||
import dev.loki.lovisual.features.module.lifecycle.ModuleAutoLoader;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import dev.loki.lovisual.addon.core.AddonIssue;
|
||||
import dev.loki.lovisual.addon.core.AddonRegistration;
|
||||
|
||||
public final class LoVisualModuleLoadContextImpl implements LoVisualModuleLoadContext {
|
||||
private final AddonRegistration registration;
|
||||
private final List<String> pendingExclusions = new ArrayList<>();
|
||||
|
||||
LoVisualModuleLoadContextImpl(AddonRegistration registration) {
|
||||
public LoVisualModuleLoadContextImpl(AddonRegistration registration) {
|
||||
|
||||
this.registration = registration;
|
||||
}
|
||||
|
||||
|
|
@ -42,7 +45,8 @@ public final class LoVisualModuleLoadContextImpl implements LoVisualModuleLoadCo
|
|||
return true;
|
||||
}
|
||||
|
||||
void commit() {
|
||||
public void commit() {
|
||||
|
||||
for (String reference : pendingExclusions) {
|
||||
if (!registration.disabledBuiltInModules.contains(reference)) {
|
||||
registration.disabledBuiltInModules.add(reference);
|
||||
|
|
@ -5,19 +5,20 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.addon;
|
||||
package dev.loki.lovisual.addon.context;
|
||||
|
||||
import dev.loki.lovisual.api.v0.module.ModuleExtensionContext;
|
||||
import dev.loki.lovisual.config.SettingDef;
|
||||
import dev.loki.lovisual.config.values.ConfigValue;
|
||||
import dev.loki.lovisual.config.values.ModeValue;
|
||||
import dev.loki.lovisual.features.module.Module;
|
||||
import dev.loki.lovisual.config.definition.SettingDef;
|
||||
import dev.loki.lovisual.config.values.collection.ConfigValue;
|
||||
import dev.loki.lovisual.config.values.mode.ModeValue;
|
||||
import dev.loki.lovisual.features.module.core.Module;
|
||||
|
||||
public final class ModuleExtensionContextImpl implements ModuleExtensionContext {
|
||||
private final String addonId;
|
||||
private final Module module;
|
||||
|
||||
ModuleExtensionContextImpl(String addonId, Module module) {
|
||||
public ModuleExtensionContextImpl(String addonId, Module module) {
|
||||
|
||||
this.addonId = addonId;
|
||||
this.module = module;
|
||||
}
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.addon;
|
||||
package dev.loki.lovisual.addon.core;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.addon;
|
||||
package dev.loki.lovisual.addon.core;
|
||||
|
||||
public record AddonIssue(
|
||||
String addonId,
|
||||
|
|
@ -5,16 +5,16 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.addon;
|
||||
package dev.loki.lovisual.addon.core;
|
||||
|
||||
import dev.loki.lovisual.api.v0.addon.LoVisualAddon;
|
||||
import dev.loki.lovisual.features.gui.hud.AbstractHudElement;
|
||||
import dev.loki.lovisual.features.gui.hud.base.AbstractHudElement;
|
||||
import dev.loki.lovisual.features.gui.hud.draggable.DraggableHudElement;
|
||||
import dev.loki.lovisual.features.gui.hud.draggable.DraggableHudElementRegistry;
|
||||
import dev.loki.lovisual.features.gui.hud.nondraggable.StaticHudElementRegistry;
|
||||
import dev.loki.lovisual.features.module.Module;
|
||||
import dev.loki.lovisual.features.module.ModuleAutoLoader;
|
||||
import dev.loki.lovisual.features.module.ModuleManager;
|
||||
import dev.loki.lovisual.features.module.core.Module;
|
||||
import dev.loki.lovisual.features.module.lifecycle.ModuleAutoLoader;
|
||||
import dev.loki.lovisual.features.module.core.ModuleManager;
|
||||
import dev.loki.lovisual.util.logging.DebugLog;
|
||||
import net.fabricmc.loader.api.FabricLoader;
|
||||
import net.fabricmc.loader.api.metadata.CustomValue;
|
||||
|
|
@ -26,6 +26,15 @@ import java.util.LinkedHashMap;
|
|||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import dev.loki.lovisual.addon.context.LoVisualAddonContextImpl;
|
||||
import dev.loki.lovisual.addon.context.LoVisualAddonRuntimeContextImpl;
|
||||
import dev.loki.lovisual.addon.context.LoVisualModuleLoadContextImpl;
|
||||
import dev.loki.lovisual.addon.core.AddonDescriptor;
|
||||
import dev.loki.lovisual.addon.core.AddonIssue;
|
||||
import dev.loki.lovisual.addon.core.AddonRegistration;
|
||||
import dev.loki.lovisual.addon.pipeline.AddonSnapshot;
|
||||
import dev.loki.lovisual.addon.pipeline.AddonStateStore;
|
||||
import dev.loki.lovisual.addon.pipeline.AddonStatus;
|
||||
|
||||
public enum AddonManager {
|
||||
;
|
||||
|
|
@ -404,19 +413,22 @@ public enum AddonManager {
|
|||
registration.suspendedStaticHudElements.clear();
|
||||
}
|
||||
|
||||
static void noteModuleOwner(String addonId, String moduleId) {
|
||||
public static void noteModuleOwner(String addonId, String moduleId) {
|
||||
|
||||
if (moduleId != null && !moduleId.isBlank()) {
|
||||
MODULE_OWNERS.put(normalizeId(moduleId), normalizeId(addonId));
|
||||
}
|
||||
}
|
||||
|
||||
static void noteDraggableHudOwner(String addonId, String elementId) {
|
||||
public static void noteDraggableHudOwner(String addonId, String elementId) {
|
||||
|
||||
if (elementId != null && !elementId.isBlank()) {
|
||||
DRAGGABLE_HUD_OWNERS.put(normalizeId(elementId), normalizeId(addonId));
|
||||
}
|
||||
}
|
||||
|
||||
static void noteStaticHudOwner(String addonId, String elementId) {
|
||||
public static void noteStaticHudOwner(String addonId, String elementId) {
|
||||
|
||||
if (elementId != null && !elementId.isBlank()) {
|
||||
STATIC_HUD_OWNERS.put(normalizeId(elementId), normalizeId(addonId));
|
||||
}
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.addon;
|
||||
package dev.loki.lovisual.addon.core;
|
||||
|
||||
import dev.loki.lovisual.api.v0.addon.LoVisualAddon;
|
||||
import net.fabricmc.loader.api.entrypoint.EntrypointContainer;
|
||||
|
|
@ -14,20 +14,36 @@ import java.util.ArrayList;
|
|||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import dev.loki.lovisual.addon.core.AddonDescriptor;
|
||||
import dev.loki.lovisual.addon.core.AddonIssue;
|
||||
import dev.loki.lovisual.addon.pipeline.AddonSnapshot;
|
||||
import dev.loki.lovisual.addon.pipeline.AddonStatus;
|
||||
|
||||
public final class AddonRegistration {
|
||||
final AddonDescriptor descriptor;
|
||||
final EntrypointContainer<LoVisualAddon> entrypoint;
|
||||
final List<String> modules = new ArrayList<>();
|
||||
final List<String> disabledBuiltInModules = new ArrayList<>();
|
||||
final List<String> draggableHudElements = new ArrayList<>();
|
||||
final List<String> staticHudElements = new ArrayList<>();
|
||||
final List<String> commands = new ArrayList<>();
|
||||
final List<String> clickGuiSections = new ArrayList<>();
|
||||
final List<String> moduleExtensions = new ArrayList<>();
|
||||
final List<String> irisPatchManifests = new ArrayList<>();
|
||||
final List<String> renderCallbacks = new ArrayList<>();
|
||||
final List<String> postProcessPasses = new ArrayList<>();
|
||||
public final AddonDescriptor descriptor;
|
||||
|
||||
public final EntrypointContainer<LoVisualAddon> entrypoint;
|
||||
|
||||
public final List<String> modules = new ArrayList<>();
|
||||
|
||||
public final List<String> disabledBuiltInModules = new ArrayList<>();
|
||||
|
||||
public final List<String> draggableHudElements = new ArrayList<>();
|
||||
|
||||
public final List<String> staticHudElements = new ArrayList<>();
|
||||
|
||||
public final List<String> commands = new ArrayList<>();
|
||||
|
||||
public final List<String> clickGuiSections = new ArrayList<>();
|
||||
|
||||
public final List<String> moduleExtensions = new ArrayList<>();
|
||||
|
||||
public final List<String> irisPatchManifests = new ArrayList<>();
|
||||
|
||||
public final List<String> renderCallbacks = new ArrayList<>();
|
||||
|
||||
public final List<String> postProcessPasses = new ArrayList<>();
|
||||
|
||||
final List<AddonIssue> issues = new ArrayList<>();
|
||||
final Map<String, Boolean> suspendedModules = new LinkedHashMap<>();
|
||||
final Map<String, Boolean> suspendedDraggableHudElements = new LinkedHashMap<>();
|
||||
|
|
@ -38,7 +54,8 @@ public final class AddonRegistration {
|
|||
boolean clientReadyNotified;
|
||||
AddonStatus status;
|
||||
boolean enabled;
|
||||
boolean restartRequired;
|
||||
public boolean restartRequired;
|
||||
|
||||
|
||||
AddonRegistration(AddonDescriptor descriptor,
|
||||
EntrypointContainer<LoVisualAddon> entrypoint,
|
||||
|
|
@ -73,7 +90,8 @@ public final class AddonRegistration {
|
|||
);
|
||||
}
|
||||
|
||||
void issue(AddonIssue.Severity severity, String message, String detail) {
|
||||
public void issue(AddonIssue.Severity severity, String message, String detail) {
|
||||
|
||||
issues.add(new AddonIssue(descriptor.id(), severity, message, detail));
|
||||
}
|
||||
}
|
||||
|
|
@ -5,17 +5,18 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.addon;
|
||||
package dev.loki.lovisual.addon.manager;
|
||||
|
||||
import dev.loki.lovisual.api.v0.clickgui.LoVisualClickGuiSection;
|
||||
import dev.loki.lovisual.api.v0.clickgui.LoVisualClickGuiRenderContext;
|
||||
import dev.loki.lovisual.features.gui.clickgui.ClickGuiRenderer;
|
||||
import dev.loki.lovisual.features.gui.clickgui.render.ClickGuiRenderer;
|
||||
import dev.loki.lovisual.features.gui.clickgui.sections.ClickGuiSection;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import dev.loki.lovisual.addon.core.AddonManager;
|
||||
|
||||
public enum ClickGuiSectionManager {
|
||||
;
|
||||
|
|
@ -5,14 +5,14 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.addon;
|
||||
package dev.loki.lovisual.addon.manager;
|
||||
|
||||
import dev.loki.lovisual.api.v0.module.LoVisualModuleExtension;
|
||||
import dev.loki.lovisual.features.module.Module;
|
||||
import dev.loki.lovisual.features.module.ModuleManager;
|
||||
import dev.loki.lovisual.features.module.core.Module;
|
||||
import dev.loki.lovisual.features.module.core.ModuleManager;
|
||||
import dev.loki.lovisual.render.engine.renderer.Renderer2D;
|
||||
import dev.loki.lovisual.render.engine.renderer.Renderer3D;
|
||||
import dev.loki.lovisual.render.engine.text.TextRenderer;
|
||||
import dev.loki.lovisual.render.engine.text.render.TextRenderer;
|
||||
import dev.loki.lovisual.util.logging.DebugLog;
|
||||
import net.minecraft.client.gui.GuiGraphicsExtractor;
|
||||
|
||||
|
|
@ -21,6 +21,8 @@ import java.util.LinkedHashMap;
|
|||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import dev.loki.lovisual.addon.context.ModuleExtensionContextImpl;
|
||||
import dev.loki.lovisual.addon.core.AddonManager;
|
||||
|
||||
public enum ModuleExtensionManager {
|
||||
;
|
||||
|
|
@ -5,22 +5,22 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.addon;
|
||||
package dev.loki.lovisual.addon.pipeline;
|
||||
|
||||
import com.mojang.blaze3d.textures.GpuTextureView;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import dev.loki.lovisual.api.v0.render.LoVisualPostProcessCallback;
|
||||
import dev.loki.lovisual.api.v0.render.LoVisualPostProcessContext;
|
||||
import dev.loki.lovisual.api.v0.render.LoVisualRenderCallback;
|
||||
import dev.loki.lovisual.api.v0.render.LoVisualRenderContext;
|
||||
import dev.loki.lovisual.api.v0.render.callback.LoVisualPostProcessCallback;
|
||||
import dev.loki.lovisual.api.v0.render.callback.LoVisualPostProcessContext;
|
||||
import dev.loki.lovisual.api.v0.render.callback.LoVisualRenderCallback;
|
||||
import dev.loki.lovisual.api.v0.render.callback.LoVisualRenderContext;
|
||||
import dev.loki.lovisual.api.v0.render.LoVisualRenderStage;
|
||||
import dev.loki.lovisual.features.module.HudPhase;
|
||||
import dev.loki.lovisual.features.module.WorldPhase;
|
||||
import dev.loki.lovisual.render.engine.postprocess.PostProcessManager;
|
||||
import dev.loki.lovisual.render.engine.postprocess.PostProcessPass;
|
||||
import dev.loki.lovisual.features.module.phase.HudPhase;
|
||||
import dev.loki.lovisual.features.module.phase.WorldPhase;
|
||||
import dev.loki.lovisual.render.engine.postprocess.post.PostProcessManager;
|
||||
import dev.loki.lovisual.render.engine.postprocess.post.PostProcessPass;
|
||||
import dev.loki.lovisual.render.engine.renderer.Renderer2D;
|
||||
import dev.loki.lovisual.render.engine.renderer.Renderer3D;
|
||||
import dev.loki.lovisual.render.engine.text.TextRenderer;
|
||||
import dev.loki.lovisual.render.engine.text.render.TextRenderer;
|
||||
import dev.loki.lovisual.util.logging.DebugLog;
|
||||
import net.minecraft.client.gui.GuiGraphicsExtractor;
|
||||
|
||||
|
|
@ -29,6 +29,7 @@ import java.util.EnumMap;
|
|||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import dev.loki.lovisual.addon.core.AddonManager;
|
||||
|
||||
public enum AddonRenderPipelineManager {
|
||||
;
|
||||
|
|
@ -5,9 +5,11 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.addon;
|
||||
package dev.loki.lovisual.addon.pipeline;
|
||||
|
||||
import java.util.List;
|
||||
import dev.loki.lovisual.addon.core.AddonIssue;
|
||||
import dev.loki.lovisual.addon.pipeline.AddonStatus;
|
||||
|
||||
public record AddonSnapshot(
|
||||
String id,
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.addon;
|
||||
package dev.loki.lovisual.addon.pipeline;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
|
|
@ -26,7 +26,8 @@ public final class AddonStateStore {
|
|||
private AddonStateStore() {
|
||||
}
|
||||
|
||||
static Map<String, Boolean> loadEnabledOverrides() {
|
||||
public static Map<String, Boolean> loadEnabledOverrides() {
|
||||
|
||||
Path file = stateFile();
|
||||
if (!Files.isRegularFile(file)) return new HashMap<>();
|
||||
try (Reader reader = Files.newBufferedReader(file, StandardCharsets.UTF_8)) {
|
||||
|
|
@ -38,7 +39,8 @@ public final class AddonStateStore {
|
|||
}
|
||||
}
|
||||
|
||||
static void saveEnabledOverrides(Map<String, Boolean> enabled) {
|
||||
public static void saveEnabledOverrides(Map<String, Boolean> enabled) {
|
||||
|
||||
Path file = stateFile();
|
||||
try {
|
||||
Files.createDirectories(file.getParent());
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.addon;
|
||||
package dev.loki.lovisual.addon.pipeline;
|
||||
|
||||
public enum AddonStatus {
|
||||
DISCOVERED,
|
||||
|
|
@ -8,17 +8,17 @@
|
|||
package dev.loki.lovisual.api.v0.addon;
|
||||
|
||||
import dev.loki.lovisual.events.meta.UsedImplicitly;
|
||||
import dev.loki.lovisual.features.command.ClientCommand;
|
||||
import dev.loki.lovisual.features.command.util.ClientCommand;
|
||||
import dev.loki.lovisual.api.v0.clickgui.LoVisualClickGuiSection;
|
||||
import dev.loki.lovisual.features.gui.hud.AbstractHudElement;
|
||||
import dev.loki.lovisual.features.gui.hud.base.AbstractHudElement;
|
||||
import dev.loki.lovisual.features.gui.hud.draggable.DraggableHudElement;
|
||||
import dev.loki.lovisual.features.module.Module;
|
||||
import dev.loki.lovisual.features.module.core.Module;
|
||||
import dev.loki.lovisual.api.v0.module.LoVisualModuleExtension;
|
||||
import dev.loki.lovisual.api.v0.render.LoVisualPostProcessCallback;
|
||||
import dev.loki.lovisual.api.v0.render.LoVisualRenderCallback;
|
||||
import dev.loki.lovisual.api.v0.render.callback.LoVisualPostProcessCallback;
|
||||
import dev.loki.lovisual.api.v0.render.callback.LoVisualRenderCallback;
|
||||
import dev.loki.lovisual.api.v0.render.LoVisualRenderStage;
|
||||
import com.mojang.blaze3d.pipeline.RenderPipeline;
|
||||
import dev.loki.lovisual.render.engine.postprocess.PostProcessPass;
|
||||
import dev.loki.lovisual.render.engine.postprocess.post.PostProcessPass;
|
||||
import net.fabricmc.loader.api.ModContainer;
|
||||
|
||||
import java.nio.file.Path;
|
||||
|
|
|
|||
|
|
@ -8,7 +8,8 @@
|
|||
package dev.loki.lovisual.api.v0.addon;
|
||||
|
||||
import dev.loki.lovisual.events.meta.UsedImplicitly;
|
||||
import dev.loki.lovisual.features.module.Module;
|
||||
import dev.loki.lovisual.features.module.core.Module;
|
||||
import dev.loki.lovisual.features.module.core.ModuleInfo;
|
||||
|
||||
/**
|
||||
* Early addon context used before LoVisual's built-in modules are instantiated.
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
package dev.loki.lovisual.api.v0.clickgui;
|
||||
|
||||
import dev.loki.lovisual.render.engine.renderer.Renderer2D;
|
||||
import dev.loki.lovisual.render.engine.text.TextRenderer;
|
||||
import dev.loki.lovisual.render.engine.text.render.TextRenderer;
|
||||
|
||||
public record LoVisualClickGuiRenderContext(
|
||||
Renderer2D renderer,
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@
|
|||
|
||||
package dev.loki.lovisual.api.v0.client;
|
||||
|
||||
import dev.loki.lovisual.features.module.Module;
|
||||
import dev.loki.lovisual.features.module.ModuleManager;
|
||||
import dev.loki.lovisual.features.module.core.Module;
|
||||
import dev.loki.lovisual.features.module.core.ModuleManager;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
|
|||
|
|
@ -7,10 +7,10 @@
|
|||
|
||||
package dev.loki.lovisual.api.v0.module;
|
||||
|
||||
import dev.loki.lovisual.features.module.Module;
|
||||
import dev.loki.lovisual.features.module.core.Module;
|
||||
import dev.loki.lovisual.render.engine.renderer.Renderer2D;
|
||||
import dev.loki.lovisual.render.engine.renderer.Renderer3D;
|
||||
import dev.loki.lovisual.render.engine.text.TextRenderer;
|
||||
import dev.loki.lovisual.render.engine.text.render.TextRenderer;
|
||||
import net.minecraft.client.gui.GuiGraphicsExtractor;
|
||||
|
||||
public interface LoVisualModuleExtension {
|
||||
|
|
|
|||
|
|
@ -7,9 +7,9 @@
|
|||
|
||||
package dev.loki.lovisual.api.v0.module;
|
||||
|
||||
import dev.loki.lovisual.config.SettingDef;
|
||||
import dev.loki.lovisual.config.values.ConfigValue;
|
||||
import dev.loki.lovisual.features.module.Module;
|
||||
import dev.loki.lovisual.config.definition.SettingDef;
|
||||
import dev.loki.lovisual.config.values.collection.ConfigValue;
|
||||
import dev.loki.lovisual.features.module.core.Module;
|
||||
|
||||
public interface ModuleExtensionContext {
|
||||
String addonId();
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
package dev.loki.lovisual.api.v0.render;
|
||||
|
||||
import com.mojang.blaze3d.buffers.GpuBufferSlice;
|
||||
import dev.loki.lovisual.render.engine.core.LoVisualRenderSystem;
|
||||
import dev.loki.lovisual.render.engine.core.system.LoVisualRenderSystem;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.api.v0.render;
|
||||
package dev.loki.lovisual.api.v0.render.callback;
|
||||
|
||||
@FunctionalInterface
|
||||
public interface LoVisualPostProcessCallback {
|
||||
boolean render(LoVisualPostProcessContext context);
|
||||
public boolean render(LoVisualPostProcessContext context);
|
||||
}
|
||||
|
|
@ -5,10 +5,10 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.api.v0.render;
|
||||
package dev.loki.lovisual.api.v0.render.callback;
|
||||
|
||||
import com.mojang.blaze3d.textures.GpuTextureView;
|
||||
import dev.loki.lovisual.render.engine.postprocess.PostProcessPass;
|
||||
import dev.loki.lovisual.render.engine.postprocess.post.PostProcessPass;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
||||
public record LoVisualPostProcessContext(
|
||||
|
|
@ -5,9 +5,9 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.api.v0.render;
|
||||
package dev.loki.lovisual.api.v0.render.callback;
|
||||
|
||||
@FunctionalInterface
|
||||
public interface LoVisualRenderCallback {
|
||||
void render(LoVisualRenderContext context);
|
||||
public void render(LoVisualRenderContext context);
|
||||
}
|
||||
|
|
@ -5,14 +5,16 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.api.v0.render;
|
||||
package dev.loki.lovisual.api.v0.render.callback;
|
||||
import dev.loki.lovisual.api.v0.render.LoVisualRenderStage;
|
||||
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import dev.loki.lovisual.features.module.HudPhase;
|
||||
import dev.loki.lovisual.features.module.WorldPhase;
|
||||
import dev.loki.lovisual.features.module.phase.HudPhase;
|
||||
import dev.loki.lovisual.features.module.phase.WorldPhase;
|
||||
import dev.loki.lovisual.render.engine.renderer.Renderer2D;
|
||||
import dev.loki.lovisual.render.engine.renderer.Renderer3D;
|
||||
import dev.loki.lovisual.render.engine.text.TextRenderer;
|
||||
import dev.loki.lovisual.render.engine.text.render.TextRenderer;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.GuiGraphicsExtractor;
|
||||
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.compat.xaero;
|
||||
package dev.loki.lovisual.compat.xaero.triangulator;
|
||||
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import xaero.common.minimap.waypoints.Waypoint;
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.compat.xaero;
|
||||
package dev.loki.lovisual.compat.xaero.triangulator;
|
||||
|
||||
import dev.loki.lovisual.features.gui.hud.draggable.DraggableHudElement;
|
||||
import dev.loki.lovisual.features.gui.hud.draggable.DraggableHudElementRegistry;
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.compat.xaero;
|
||||
package dev.loki.lovisual.compat.xaero.triangulator;
|
||||
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import xaero.common.minimap.waypoints.Waypoint;
|
||||
|
|
@ -8,6 +8,7 @@
|
|||
package dev.loki.lovisual.config.common;
|
||||
|
||||
import java.util.Map;
|
||||
import dev.loki.lovisual.config.common.CommonSettingSchema;
|
||||
|
||||
public interface CommonBooleanGroupSchema extends CommonSettingSchema {
|
||||
Map<String, Boolean> defaults();
|
||||
|
|
|
|||
|
|
@ -7,8 +7,30 @@
|
|||
|
||||
package dev.loki.lovisual.config.common;
|
||||
|
||||
import dev.loki.lovisual.config.common.impl.*;
|
||||
import dev.loki.lovisual.config.common.impl.common.CombatPriority;
|
||||
import dev.loki.lovisual.config.common.impl.common.CombatProtocolHeuristicSources;
|
||||
import dev.loki.lovisual.config.common.impl.common.CommonKey;
|
||||
import dev.loki.lovisual.config.common.impl.common.FakeLagFlushOn;
|
||||
import dev.loki.lovisual.config.common.impl.rotation.RotationMode;
|
||||
import dev.loki.lovisual.config.common.impl.rotation.RotationMovementCorrection;
|
||||
import dev.loki.lovisual.config.common.impl.rotation.RotationResetThreshold;
|
||||
import dev.loki.lovisual.config.common.impl.rotation.RotationResetTicks;
|
||||
import dev.loki.lovisual.config.common.impl.wall.RotationThroughWalls;
|
||||
import dev.loki.lovisual.config.common.impl.wall.RotationTiming;
|
||||
import dev.loki.lovisual.config.common.impl.wall.TargetFilters;
|
||||
import dev.loki.lovisual.features.module.modules.visuals.esp.ESP;
|
||||
import dev.loki.lovisual.config.common.CommonSettingSchema;
|
||||
import dev.loki.lovisual.config.common.impl.common.CombatPriority;
|
||||
import dev.loki.lovisual.config.common.impl.common.CombatProtocolHeuristicSources;
|
||||
import dev.loki.lovisual.config.common.impl.common.CommonKey;
|
||||
import dev.loki.lovisual.config.common.impl.common.FakeLagFlushOn;
|
||||
import dev.loki.lovisual.config.common.impl.rotation.RotationMode;
|
||||
import dev.loki.lovisual.config.common.impl.rotation.RotationMovementCorrection;
|
||||
import dev.loki.lovisual.config.common.impl.rotation.RotationResetThreshold;
|
||||
import dev.loki.lovisual.config.common.impl.rotation.RotationResetTicks;
|
||||
import dev.loki.lovisual.config.common.impl.wall.RotationThroughWalls;
|
||||
import dev.loki.lovisual.config.common.impl.wall.RotationTiming;
|
||||
import dev.loki.lovisual.config.common.impl.wall.TargetFilters;
|
||||
|
||||
public enum CommonSettingSchemas {
|
||||
;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.common.impl;
|
||||
package dev.loki.lovisual.config.common.impl.common;
|
||||
|
||||
import dev.loki.lovisual.config.common.CommonSettingSchema;
|
||||
|
||||
|
|
@ -5,10 +5,10 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.common.impl;
|
||||
package dev.loki.lovisual.config.common.impl.common;
|
||||
|
||||
import dev.loki.lovisual.config.common.CommonBooleanGroupSchema;
|
||||
import dev.loki.lovisual.util.combat.protocol.CombatProtocolHeuristics;
|
||||
import dev.loki.lovisual.util.combat.protocol.heuristics.CombatProtocolHeuristics;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.common.impl;
|
||||
package dev.loki.lovisual.config.common.impl.common;
|
||||
|
||||
import dev.loki.lovisual.config.common.CommonSettingSchema;
|
||||
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.common.impl;
|
||||
package dev.loki.lovisual.config.common.impl.common;
|
||||
|
||||
import dev.loki.lovisual.config.common.CommonBooleanGroupSchema;
|
||||
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.common.impl;
|
||||
package dev.loki.lovisual.config.common.impl.rotation;
|
||||
|
||||
import dev.loki.lovisual.config.common.CommonSettingSchema;
|
||||
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.common.impl;
|
||||
package dev.loki.lovisual.config.common.impl.rotation;
|
||||
|
||||
import dev.loki.lovisual.config.common.CommonSettingSchema;
|
||||
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.common.impl;
|
||||
package dev.loki.lovisual.config.common.impl.rotation;
|
||||
|
||||
import dev.loki.lovisual.config.common.CommonSettingSchema;
|
||||
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.common.impl;
|
||||
package dev.loki.lovisual.config.common.impl.rotation;
|
||||
|
||||
import dev.loki.lovisual.config.common.CommonSettingSchema;
|
||||
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.common.impl;
|
||||
package dev.loki.lovisual.config.common.impl.wall;
|
||||
|
||||
import dev.loki.lovisual.config.common.CommonSettingSchema;
|
||||
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.common.impl;
|
||||
package dev.loki.lovisual.config.common.impl.wall;
|
||||
|
||||
import dev.loki.lovisual.config.common.CommonSettingSchema;
|
||||
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.common.impl;
|
||||
package dev.loki.lovisual.config.common.impl.wall;
|
||||
|
||||
import dev.loki.lovisual.config.common.CommonBooleanGroupSchema;
|
||||
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config;
|
||||
package dev.loki.lovisual.config.definition;
|
||||
|
||||
/**
|
||||
* Optional stable config name override (used for file names).
|
||||
|
|
@ -5,9 +5,9 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config;
|
||||
package dev.loki.lovisual.config.definition;
|
||||
|
||||
import dev.loki.lovisual.config.values.ConfigValue;
|
||||
import dev.loki.lovisual.config.values.collection.ConfigValue;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -5,10 +5,23 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config;
|
||||
package dev.loki.lovisual.config.definition;
|
||||
|
||||
import dev.loki.lovisual.config.common.CommonSettingSchema;
|
||||
import dev.loki.lovisual.config.values.*;
|
||||
import dev.loki.lovisual.config.values.collection.ConfigValue;
|
||||
import dev.loki.lovisual.config.values.collection.ItemCooldownRulesValue;
|
||||
import dev.loki.lovisual.config.values.collection.ItemIdSetValue;
|
||||
import dev.loki.lovisual.config.values.collection.SetValue;
|
||||
import dev.loki.lovisual.config.values.color.KeyBindValue;
|
||||
import dev.loki.lovisual.config.values.color.RGBAColorValue;
|
||||
import dev.loki.lovisual.config.values.color.RGBColorValue;
|
||||
import dev.loki.lovisual.config.values.mode.BindMode;
|
||||
import dev.loki.lovisual.config.values.mode.EnumValue;
|
||||
import dev.loki.lovisual.config.values.mode.ModeValue;
|
||||
import dev.loki.lovisual.config.values.primitive.BooleanMapValue;
|
||||
import dev.loki.lovisual.config.values.primitive.BooleanValue;
|
||||
import dev.loki.lovisual.config.values.primitive.NumberValue;
|
||||
import dev.loki.lovisual.config.values.primitive.StringValue;
|
||||
import dev.loki.lovisual.features.gui.clickgui.settings.text.list.TextListSetting;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
|
@ -17,6 +30,7 @@ import java.util.IdentityHashMap;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Supplier;
|
||||
import dev.loki.lovisual.config.i18n.DisableSettingI18n;
|
||||
|
||||
/**
|
||||
* GUI-neutral setting descriptor. UI layer can build actual widgets from these.
|
||||
|
|
@ -5,7 +5,8 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config;
|
||||
package dev.loki.lovisual.config.definition;
|
||||
import dev.loki.lovisual.features.module.core.Module;
|
||||
|
||||
/**
|
||||
* Owner of GUI settings. Allows settings to save config and build i18n keys
|
||||
|
|
@ -5,10 +5,10 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config;
|
||||
package dev.loki.lovisual.config.i18n;
|
||||
|
||||
import net.minecraft.client.resources.language.I18n;
|
||||
import dev.loki.lovisual.config.values.ConfigValue;
|
||||
import dev.loki.lovisual.config.values.collection.ConfigValue;
|
||||
|
||||
public enum ConfigLang {
|
||||
;
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config;
|
||||
package dev.loki.lovisual.config.i18n;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config;
|
||||
package dev.loki.lovisual.config.i18n;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
|
|
@ -5,22 +5,32 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config;
|
||||
package dev.loki.lovisual.config.i18n;
|
||||
|
||||
import dev.loki.lovisual.config.values.*;
|
||||
import dev.loki.lovisual.render.iris.IrisRuntime;
|
||||
import dev.loki.lovisual.config.values.collection.ConfigValue;
|
||||
import dev.loki.lovisual.config.values.collection.SetValue;
|
||||
import dev.loki.lovisual.config.values.mode.EnumValue;
|
||||
import dev.loki.lovisual.config.values.mode.ModeValue;
|
||||
import dev.loki.lovisual.config.values.primitive.BooleanValue;
|
||||
import dev.loki.lovisual.config.values.primitive.NumberValue;
|
||||
import dev.loki.lovisual.render.iris.runtime.IrisRuntime;
|
||||
import dev.loki.lovisual.util.logging.DebugLog;
|
||||
import dev.loki.lovisual.util.logging.DebugMode;
|
||||
import dev.loki.lovisual.util.player.inventory.InventorySearchScope;
|
||||
import dev.loki.lovisual.util.player.inventory.InventorySwap;
|
||||
import dev.loki.lovisual.util.player.inventory.InventorySwapPolicy;
|
||||
import dev.loki.lovisual.util.player.inventory.InventorySwapVisibility;
|
||||
import dev.loki.lovisual.util.player.inventory.support.InventorySearchScope;
|
||||
import dev.loki.lovisual.util.player.inventory.core.InventorySwap;
|
||||
import dev.loki.lovisual.util.player.inventory.core.InventorySwapPolicy;
|
||||
import dev.loki.lovisual.util.player.inventory.support.InventorySwapVisibility;
|
||||
import net.minecraft.client.resources.language.I18n;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import dev.loki.lovisual.config.definition.ConfigNameProvider;
|
||||
import dev.loki.lovisual.config.definition.ConfigObject;
|
||||
import dev.loki.lovisual.config.definition.SettingDef;
|
||||
import dev.loki.lovisual.config.definition.SettingOwner;
|
||||
import dev.loki.lovisual.config.io.ConfigSerializer;
|
||||
|
||||
public final class MainConfig implements ConfigObject, ConfigNameProvider, SettingOwner {
|
||||
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config;
|
||||
package dev.loki.lovisual.config.io;
|
||||
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
|
|
@ -5,18 +5,18 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config;
|
||||
package dev.loki.lovisual.config.io;
|
||||
|
||||
import com.google.gson.*;
|
||||
import de.marhali.json5.*;
|
||||
import io.github.classgraph.ClassGraph;
|
||||
import io.github.classgraph.ClassInfo;
|
||||
import io.github.classgraph.ScanResult;
|
||||
import dev.loki.lovisual.config.values.ConfigValue;
|
||||
import dev.loki.lovisual.features.gui.hud.AbstractHudElement;
|
||||
import dev.loki.lovisual.features.gui.hud.HudGlobalConfig;
|
||||
import dev.loki.lovisual.config.values.collection.ConfigValue;
|
||||
import dev.loki.lovisual.features.gui.hud.base.AbstractHudElement;
|
||||
import dev.loki.lovisual.features.gui.hud.config.HudGlobalConfig;
|
||||
import dev.loki.lovisual.features.gui.hud.draggable.DraggableHudElement;
|
||||
import dev.loki.lovisual.features.module.Module;
|
||||
import dev.loki.lovisual.features.module.core.Module;
|
||||
import dev.loki.lovisual.features.relations.EntityFilters;
|
||||
import dev.loki.lovisual.util.logging.DebugLog;
|
||||
|
||||
|
|
@ -30,6 +30,11 @@ import java.util.concurrent.Executors;
|
|||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import dev.loki.lovisual.config.definition.ConfigNameProvider;
|
||||
import dev.loki.lovisual.config.definition.ConfigObject;
|
||||
import dev.loki.lovisual.config.i18n.ConfigValueAliasProvider;
|
||||
import dev.loki.lovisual.config.io.ConfigPaths;
|
||||
import dev.loki.lovisual.config.io.JsonConfigObject;
|
||||
|
||||
public enum ConfigSerializer {
|
||||
;
|
||||
|
|
@ -5,7 +5,8 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config;
|
||||
package dev.loki.lovisual.config.io;
|
||||
import dev.loki.lovisual.config.definition.ConfigObject;
|
||||
|
||||
/**
|
||||
* Marker for config objects that must be stored as JSON (not JSON5).
|
||||
|
|
@ -5,9 +5,10 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config;
|
||||
package dev.loki.lovisual.config.io;
|
||||
|
||||
import java.util.List;
|
||||
import dev.loki.lovisual.config.definition.SettingDef;
|
||||
|
||||
/**
|
||||
* Provides GUI-neutral setting definitions.
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.profile;
|
||||
package dev.loki.lovisual.config.profile.codec;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.ArrayList;
|
||||
|
|
@ -15,6 +15,11 @@ import java.util.zip.CRC32;
|
|||
import java.util.zip.Deflater;
|
||||
import java.util.zip.DeflaterOutputStream;
|
||||
import java.util.zip.InflaterInputStream;
|
||||
import dev.loki.lovisual.config.profile.codec.ConfigProfileEntry;
|
||||
import dev.loki.lovisual.config.profile.codec.ConfigProfileType;
|
||||
import dev.loki.lovisual.config.profile.codec.ConfigProfileValueCodec;
|
||||
import dev.loki.lovisual.config.profile.snapshot.ConfigProfileMeta;
|
||||
import dev.loki.lovisual.config.profile.snapshot.ConfigProfileSnapshot;
|
||||
|
||||
public final class ConfigProfileBinaryCodec {
|
||||
public static final int VERSION = 1;
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.profile;
|
||||
package dev.loki.lovisual.config.profile.codec;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedHashMap;
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.profile;
|
||||
package dev.loki.lovisual.config.profile.codec;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.profile;
|
||||
package dev.loki.lovisual.config.profile.codec;
|
||||
|
||||
import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
|
|
@ -28,7 +28,8 @@ public enum ConfigProfileValueCodec {
|
|||
private static final byte LIST = 7;
|
||||
private static final byte MAP = 8;
|
||||
|
||||
static void writeValue(DataOutputStream out, Object value) throws IOException {
|
||||
public static void writeValue(DataOutputStream out, Object value) throws IOException {
|
||||
|
||||
if (value == null) {
|
||||
out.writeByte(NULL);
|
||||
} else if (value instanceof Boolean b) {
|
||||
|
|
@ -68,7 +69,8 @@ public enum ConfigProfileValueCodec {
|
|||
}
|
||||
}
|
||||
|
||||
static Object readValue(DataInputStream in) throws IOException {
|
||||
public static Object readValue(DataInputStream in) throws IOException {
|
||||
|
||||
int type = in.readUnsignedByte();
|
||||
return switch (type) {
|
||||
case NULL -> null;
|
||||
|
|
@ -5,12 +5,13 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.profile;
|
||||
package dev.loki.lovisual.config.profile.diff;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import dev.loki.lovisual.config.profile.snapshot.ConfigProfileMeta;
|
||||
|
||||
public enum ConfigProfileDateFormatter {
|
||||
;
|
||||
|
|
@ -5,11 +5,12 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.profile;
|
||||
package dev.loki.lovisual.config.profile.diff;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import dev.loki.lovisual.config.profile.codec.ConfigProfileType;
|
||||
|
||||
public record ConfigProfileDiff(
|
||||
ConfigProfileType type,
|
||||
|
|
@ -5,9 +5,13 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.profile;
|
||||
package dev.loki.lovisual.config.profile.diff;
|
||||
|
||||
import java.util.*;
|
||||
import dev.loki.lovisual.config.profile.codec.ConfigProfileEntry;
|
||||
import dev.loki.lovisual.config.profile.codec.ConfigProfileType;
|
||||
import dev.loki.lovisual.config.profile.diff.ConfigProfileDiff;
|
||||
import dev.loki.lovisual.config.profile.snapshot.ConfigProfileSnapshot;
|
||||
|
||||
public final class ConfigProfileDiffEngine {
|
||||
public ConfigProfileDiff compare(ConfigProfileSnapshot current, ConfigProfileSnapshot selected) {
|
||||
|
|
@ -5,22 +5,25 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.profile;
|
||||
package dev.loki.lovisual.config.profile.service;
|
||||
|
||||
import dev.loki.lovisual.features.theme.Theme;
|
||||
import dev.loki.lovisual.config.ConfigObject;
|
||||
import dev.loki.lovisual.config.values.ConfigValue;
|
||||
import dev.loki.lovisual.addon.AddonManager;
|
||||
import dev.loki.lovisual.features.gui.hud.BaseHudElement;
|
||||
import dev.loki.lovisual.config.definition.ConfigObject;
|
||||
import dev.loki.lovisual.config.values.collection.ConfigValue;
|
||||
import dev.loki.lovisual.addon.core.AddonManager;
|
||||
import dev.loki.lovisual.features.gui.hud.base.BaseHudElement;
|
||||
import dev.loki.lovisual.features.gui.hud.draggable.DraggableHudElementRegistry;
|
||||
import dev.loki.lovisual.features.gui.hud.nondraggable.StaticHudElementRegistry;
|
||||
import dev.loki.lovisual.features.theme.Themes;
|
||||
import dev.loki.lovisual.features.module.Module;
|
||||
import dev.loki.lovisual.features.module.ModuleManager;
|
||||
import dev.loki.lovisual.features.module.core.Module;
|
||||
import dev.loki.lovisual.features.module.core.ModuleManager;
|
||||
import dev.loki.lovisual.util.logging.DebugLog;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import dev.loki.lovisual.config.profile.codec.ConfigProfileEntry;
|
||||
import dev.loki.lovisual.config.profile.codec.ConfigProfileType;
|
||||
import dev.loki.lovisual.config.profile.snapshot.ConfigProfileSnapshot;
|
||||
|
||||
public final class ConfigProfileApplier {
|
||||
public ApplyResult apply(ConfigProfileSnapshot snapshot) {
|
||||
|
|
@ -5,25 +5,32 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.profile;
|
||||
package dev.loki.lovisual.config.profile.service;
|
||||
|
||||
import dev.loki.lovisual.features.theme.Theme;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import dev.loki.lovisual.config.ConfigObject;
|
||||
import dev.loki.lovisual.config.values.ConfigValue;
|
||||
import dev.loki.lovisual.addon.AddonManager;
|
||||
import dev.loki.lovisual.features.gui.hud.AbstractHudElement;
|
||||
import dev.loki.lovisual.config.definition.ConfigObject;
|
||||
import dev.loki.lovisual.config.values.collection.ConfigValue;
|
||||
import dev.loki.lovisual.addon.core.AddonManager;
|
||||
import dev.loki.lovisual.features.gui.hud.base.AbstractHudElement;
|
||||
import dev.loki.lovisual.features.gui.hud.draggable.DraggableHudElement;
|
||||
import dev.loki.lovisual.features.gui.hud.draggable.DraggableHudElementRegistry;
|
||||
import dev.loki.lovisual.features.gui.hud.nondraggable.StaticHudElementRegistry;
|
||||
import dev.loki.lovisual.features.theme.Themes;
|
||||
import dev.loki.lovisual.features.module.Module;
|
||||
import dev.loki.lovisual.features.module.ModuleManager;
|
||||
import dev.loki.lovisual.features.module.core.Module;
|
||||
import dev.loki.lovisual.features.module.core.ModuleManager;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import dev.loki.lovisual.config.profile.codec.ConfigProfileBinaryCodec;
|
||||
import dev.loki.lovisual.config.profile.codec.ConfigProfileEntry;
|
||||
import dev.loki.lovisual.config.profile.codec.ConfigProfileType;
|
||||
import dev.loki.lovisual.config.profile.service.ConfigProfileStorage;
|
||||
import dev.loki.lovisual.config.profile.snapshot.ConfigProfileMeta;
|
||||
import dev.loki.lovisual.config.profile.snapshot.ConfigProfileSnapshot;
|
||||
import dev.loki.lovisual.features.module.lifecycle.Modules;
|
||||
|
||||
public final class ConfigProfileCollector {
|
||||
public ConfigProfileSnapshot collect(ConfigProfileType type, String name) {
|
||||
|
|
@ -5,11 +5,20 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.profile;
|
||||
package dev.loki.lovisual.config.profile.service;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
import java.util.List;
|
||||
import dev.loki.lovisual.config.profile.codec.ConfigProfileBinaryCodec;
|
||||
import dev.loki.lovisual.config.profile.codec.ConfigProfileType;
|
||||
import dev.loki.lovisual.config.profile.diff.ConfigProfileDiff;
|
||||
import dev.loki.lovisual.config.profile.diff.ConfigProfileDiffEngine;
|
||||
import dev.loki.lovisual.config.profile.service.ConfigProfileApplier;
|
||||
import dev.loki.lovisual.config.profile.service.ConfigProfileCollector;
|
||||
import dev.loki.lovisual.config.profile.service.ConfigProfileStorage;
|
||||
import dev.loki.lovisual.config.profile.snapshot.ConfigProfileMeta;
|
||||
import dev.loki.lovisual.config.profile.snapshot.ConfigProfileSnapshot;
|
||||
|
||||
public final class ConfigProfileService {
|
||||
public static final ConfigProfileService INSTANCE = new ConfigProfileService();
|
||||
|
|
@ -5,9 +5,9 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.profile;
|
||||
package dev.loki.lovisual.config.profile.service;
|
||||
|
||||
import dev.loki.lovisual.config.ConfigPaths;
|
||||
import dev.loki.lovisual.config.io.ConfigPaths;
|
||||
import dev.loki.lovisual.util.logging.DebugLog;
|
||||
|
||||
import java.io.IOException;
|
||||
|
|
@ -18,6 +18,10 @@ import java.util.ArrayList;
|
|||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import dev.loki.lovisual.config.profile.codec.ConfigProfileBinaryCodec;
|
||||
import dev.loki.lovisual.config.profile.codec.ConfigProfileType;
|
||||
import dev.loki.lovisual.config.profile.snapshot.ConfigProfileMeta;
|
||||
import dev.loki.lovisual.config.profile.snapshot.ConfigProfileSnapshot;
|
||||
|
||||
public final class ConfigProfileStorage {
|
||||
public static final String EXTENSION = ".lvcfg";
|
||||
|
|
@ -30,7 +34,8 @@ public final class ConfigProfileStorage {
|
|||
this(ConfigPaths.profilesRoot());
|
||||
}
|
||||
|
||||
ConfigProfileStorage(Path root) {
|
||||
public ConfigProfileStorage(Path root) {
|
||||
|
||||
this.root = root;
|
||||
}
|
||||
|
||||
|
|
@ -5,7 +5,10 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.profile;
|
||||
package dev.loki.lovisual.config.profile.snapshot;
|
||||
import dev.loki.lovisual.config.profile.codec.ConfigProfileBinaryCodec;
|
||||
import dev.loki.lovisual.config.profile.codec.ConfigProfileType;
|
||||
import dev.loki.lovisual.config.profile.service.ConfigProfileStorage;
|
||||
|
||||
public record ConfigProfileMeta(
|
||||
String id,
|
||||
|
|
@ -5,11 +5,13 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.profile;
|
||||
package dev.loki.lovisual.config.profile.snapshot;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import dev.loki.lovisual.config.profile.codec.ConfigProfileEntry;
|
||||
import dev.loki.lovisual.config.profile.snapshot.ConfigProfileMeta;
|
||||
|
||||
public record ConfigProfileSnapshot(
|
||||
ConfigProfileMeta meta,
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.values;
|
||||
package dev.loki.lovisual.config.values.collection;
|
||||
|
||||
/**
|
||||
* Базовый тип для всех конфиг-значений.
|
||||
|
|
@ -5,9 +5,11 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.values;
|
||||
package dev.loki.lovisual.config.values.collection;
|
||||
|
||||
import java.util.*;
|
||||
import dev.loki.lovisual.config.values.collection.ConfigValue;
|
||||
import dev.loki.lovisual.config.values.mode.EnumValue;
|
||||
|
||||
/**
|
||||
* Object-shaped per-item PvP cooldown rules.
|
||||
|
|
@ -5,13 +5,14 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.values;
|
||||
package dev.loki.lovisual.config.values.collection;
|
||||
|
||||
import dev.loki.lovisual.util.logging.DebugLog;
|
||||
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import dev.loki.lovisual.config.values.collection.ConfigValue;
|
||||
|
||||
/**
|
||||
* Хранит набор item-id в формате namespace:path (minecraft:xxx).
|
||||
|
|
@ -5,12 +5,13 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.values;
|
||||
package dev.loki.lovisual.config.values.collection;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import dev.loki.lovisual.config.values.collection.ConfigValue;
|
||||
|
||||
public class SetValue extends ConfigValue<Set<String>> {
|
||||
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.values;
|
||||
package dev.loki.lovisual.config.values.color;
|
||||
|
||||
public interface ColorValue {
|
||||
String get();
|
||||
|
|
@ -5,7 +5,8 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.values;
|
||||
package dev.loki.lovisual.config.values.color;
|
||||
import dev.loki.lovisual.config.values.collection.ConfigValue;
|
||||
|
||||
public class KeyBindValue extends ConfigValue<String> {
|
||||
|
||||
|
|
@ -5,9 +5,11 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.values;
|
||||
package dev.loki.lovisual.config.values.color;
|
||||
|
||||
import dev.loki.lovisual.render.engine.color.ColorUtils;
|
||||
import dev.loki.lovisual.config.values.collection.ConfigValue;
|
||||
import dev.loki.lovisual.config.values.color.ColorValue;
|
||||
|
||||
/**
|
||||
* Keeps color as hex-string and provides access as ARGB int.
|
||||
|
|
@ -5,9 +5,11 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.values;
|
||||
package dev.loki.lovisual.config.values.color;
|
||||
|
||||
import dev.loki.lovisual.render.engine.color.ColorUtils;
|
||||
import dev.loki.lovisual.config.values.collection.ConfigValue;
|
||||
import dev.loki.lovisual.config.values.color.ColorValue;
|
||||
|
||||
/**
|
||||
* Цвет без альфы. Хранится как hex "#RRGGBB" и возвращается с полной альфой (0xFF) при запросе ARGB.
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.values;
|
||||
package dev.loki.lovisual.config.values.mode;
|
||||
|
||||
public enum BindMode {
|
||||
PRESS,
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.values;
|
||||
package dev.loki.lovisual.config.values.mode;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
|
|
@ -5,9 +5,11 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.values;
|
||||
package dev.loki.lovisual.config.values.mode;
|
||||
|
||||
import java.util.*;
|
||||
import dev.loki.lovisual.config.values.collection.ConfigValue;
|
||||
import dev.loki.lovisual.config.values.mode.EnumIds;
|
||||
|
||||
public class EnumValue<E extends Enum<E>> extends ConfigValue<E> {
|
||||
|
||||
|
|
@ -5,13 +5,14 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.values;
|
||||
package dev.loki.lovisual.config.values.mode;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import dev.loki.lovisual.config.values.collection.ConfigValue;
|
||||
|
||||
public class ModeValue extends ConfigValue<String> {
|
||||
|
||||
|
|
@ -5,10 +5,11 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.values;
|
||||
package dev.loki.lovisual.config.values.primitive;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import dev.loki.lovisual.config.values.collection.ConfigValue;
|
||||
|
||||
public class BooleanMapValue extends ConfigValue<Map<String, Boolean>> {
|
||||
|
||||
|
|
@ -5,7 +5,8 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.values;
|
||||
package dev.loki.lovisual.config.values.primitive;
|
||||
import dev.loki.lovisual.config.values.collection.ConfigValue;
|
||||
|
||||
public class BooleanValue extends ConfigValue<Boolean> {
|
||||
|
||||
|
|
@ -5,9 +5,10 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.values;
|
||||
package dev.loki.lovisual.config.values.primitive;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
import dev.loki.lovisual.config.values.collection.ConfigValue;
|
||||
|
||||
public class NumberValue<N extends Number> extends ConfigValue<N> {
|
||||
|
||||
|
|
@ -5,7 +5,8 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.config.values;
|
||||
package dev.loki.lovisual.config.values.primitive;
|
||||
import dev.loki.lovisual.config.values.collection.ConfigValue;
|
||||
|
||||
public class StringValue extends ConfigValue<String> {
|
||||
|
||||
|
|
@ -8,7 +8,7 @@
|
|||
package dev.loki.lovisual.events;
|
||||
|
||||
import it.unimi.dsi.fastutil.objects.Reference2ObjectOpenHashMap;
|
||||
import dev.loki.lovisual.features.module.Module;
|
||||
import dev.loki.lovisual.features.module.core.Module;
|
||||
import dev.loki.lovisual.Lifecycle;
|
||||
import dev.loki.lovisual.util.logging.DebugLog;
|
||||
|
||||
|
|
@ -19,7 +19,6 @@ import java.util.ArrayList;
|
|||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import dev.loki.lovisual.events.Event;
|
||||
import dev.loki.lovisual.events.meta.EventHandler;
|
||||
|
||||
public final class EventBus {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@
|
|||
*/
|
||||
|
||||
package dev.loki.lovisual.events;
|
||||
import dev.loki.lovisual.events.EventBus;
|
||||
|
||||
public enum Events {
|
||||
;
|
||||
|
|
|
|||
|
|
@ -10,8 +10,8 @@ package dev.loki.lovisual.events.impl.network;
|
|||
import lombok.Getter;
|
||||
import net.minecraft.network.protocol.Packet;
|
||||
import dev.loki.lovisual.events.Event;
|
||||
import dev.loki.lovisual.util.network.BlinkManager;
|
||||
import dev.loki.lovisual.util.network.TransferOrigin;
|
||||
import dev.loki.lovisual.util.network.control.BlinkManager;
|
||||
import dev.loki.lovisual.util.network.packet.TransferOrigin;
|
||||
|
||||
public class BlinkPacketEvent extends Event {
|
||||
private final Packet<?> packet;
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ package dev.loki.lovisual.events.impl.network;
|
|||
import lombok.Getter;
|
||||
import net.minecraft.network.protocol.Packet;
|
||||
import dev.loki.lovisual.events.Event;
|
||||
import dev.loki.lovisual.util.network.TransferOrigin;
|
||||
import dev.loki.lovisual.util.network.packet.TransferOrigin;
|
||||
|
||||
public class PacketEvent extends Event {
|
||||
private final Packet<?> packet;
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@
|
|||
|
||||
package dev.loki.lovisual.events.impl.player;
|
||||
|
||||
import dev.loki.lovisual.config.SettingDef;
|
||||
import dev.loki.lovisual.config.SettingOwner;
|
||||
import dev.loki.lovisual.config.definition.SettingDef;
|
||||
import dev.loki.lovisual.config.definition.SettingOwner;
|
||||
import dev.loki.lovisual.events.Event;
|
||||
import dev.loki.lovisual.features.gui.clickgui.settings.core.Setting;
|
||||
import dev.loki.lovisual.features.gui.clickgui.settings.core.SettingFactory;
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@
|
|||
package dev.loki.lovisual.events.impl.render;
|
||||
|
||||
import dev.loki.lovisual.events.Event;
|
||||
import dev.loki.lovisual.render.engine.svg.SvgRegistry;
|
||||
import dev.loki.lovisual.render.engine.text.FontInfo;
|
||||
import dev.loki.lovisual.render.engine.svg.parser.SvgRegistry;
|
||||
import dev.loki.lovisual.render.engine.text.font.info.FontInfo;
|
||||
import net.minecraft.resources.Identifier;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ import java.lang.annotation.ElementType;
|
|||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
import dev.loki.lovisual.events.meta.UsedImplicitly;
|
||||
|
||||
@UsedImplicitly
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
|
|
|
|||
|
|
@ -8,14 +8,14 @@
|
|||
package dev.loki.lovisual.features.account;
|
||||
|
||||
import net.minecraft.resources.Identifier;
|
||||
import dev.loki.lovisual.config.ConfigNameProvider;
|
||||
import dev.loki.lovisual.config.ConfigSerializer;
|
||||
import dev.loki.lovisual.config.JsonConfigObject;
|
||||
import dev.loki.lovisual.config.values.ConfigValue;
|
||||
import dev.loki.lovisual.config.values.StringValue;
|
||||
import dev.loki.lovisual.config.definition.ConfigNameProvider;
|
||||
import dev.loki.lovisual.config.io.ConfigSerializer;
|
||||
import dev.loki.lovisual.config.io.JsonConfigObject;
|
||||
import dev.loki.lovisual.config.values.collection.ConfigValue;
|
||||
import dev.loki.lovisual.config.values.primitive.StringValue;
|
||||
import dev.loki.lovisual.util.session.MicrosoftSessionResult;
|
||||
import dev.loki.lovisual.util.session.SessionChanger;
|
||||
import dev.loki.lovisual.util.session.microsoft.MicrosoftAuthService;
|
||||
import dev.loki.lovisual.util.session.microsoft.auth.MicrosoftAuthService;
|
||||
import dev.loki.lovisual.util.logging.DebugLog;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import net.minecraft.client.Minecraft;
|
|||
import net.minecraft.client.resources.DefaultPlayerSkin;
|
||||
import net.minecraft.resources.Identifier;
|
||||
import net.minecraft.world.entity.player.PlayerSkin;
|
||||
import dev.loki.lovisual.util.player.PlayerSkinResolver;
|
||||
import dev.loki.lovisual.util.player.health.PlayerSkinResolver;
|
||||
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.HttpURLConnection;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.features.command;
|
||||
package dev.loki.lovisual.features.command.core;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.features.command;
|
||||
package dev.loki.lovisual.features.command.core;
|
||||
|
||||
import dev.loki.lovisual.events.meta.UsedImplicitly;
|
||||
|
||||
|
|
@ -18,11 +18,11 @@ import java.lang.annotation.Target;
|
|||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.TYPE)
|
||||
public @interface CommandInfo {
|
||||
String id();
|
||||
public String id();
|
||||
|
||||
String[] aliases() default {};
|
||||
public String[] aliases() default {};
|
||||
|
||||
String usage() default "";
|
||||
public String usage() default "";
|
||||
|
||||
String descriptionKey() default "";
|
||||
public String descriptionKey() default "";
|
||||
}
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.features.command;
|
||||
package dev.loki.lovisual.features.command.core;
|
||||
|
||||
import com.mojang.brigadier.context.StringRange;
|
||||
import com.mojang.brigadier.suggestion.Suggestion;
|
||||
|
|
@ -21,6 +21,13 @@ import java.util.ArrayList;
|
|||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import dev.loki.lovisual.features.command.core.CommandContext;
|
||||
import dev.loki.lovisual.features.command.core.CommandInfo;
|
||||
import dev.loki.lovisual.features.command.core.CommandMetadata;
|
||||
import dev.loki.lovisual.features.command.util.ClientCommand;
|
||||
import dev.loki.lovisual.features.command.util.CommandOutput;
|
||||
import dev.loki.lovisual.features.command.util.CommandPrefix;
|
||||
import dev.loki.lovisual.features.command.util.UsageHints;
|
||||
|
||||
public enum CommandManager {
|
||||
;
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.features.command;
|
||||
package dev.loki.lovisual.features.command.core;
|
||||
|
||||
import net.minecraft.client.resources.language.I18n;
|
||||
|
||||
|
|
@ -13,6 +13,9 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Optional;
|
||||
import dev.loki.lovisual.features.command.core.CommandInfo;
|
||||
import dev.loki.lovisual.features.command.util.ClientCommand;
|
||||
import dev.loki.lovisual.features.command.util.CommandPrefix;
|
||||
|
||||
public final class CommandMetadata {
|
||||
private static final ClassValue<Optional<CommandMetadata>> ANNOTATED = new ClassValue<>() {
|
||||
|
|
@ -74,7 +77,8 @@ public final class CommandMetadata {
|
|||
return fromLegacy(command);
|
||||
}
|
||||
|
||||
static CommandMetadata fromAnnotation(Class<?> type) {
|
||||
public static CommandMetadata fromAnnotation(Class<?> type) {
|
||||
|
||||
CommandMetadata annotated = annotated(type);
|
||||
if (annotated == null) {
|
||||
throw new IllegalStateException(type.getName() + " must be annotated with @CommandInfo");
|
||||
|
|
@ -82,7 +86,8 @@ public final class CommandMetadata {
|
|||
return annotated;
|
||||
}
|
||||
|
||||
static CommandMetadata annotated(Class<?> type) {
|
||||
public static CommandMetadata annotated(Class<?> type) {
|
||||
|
||||
return ANNOTATED.get(type).orElse(null);
|
||||
}
|
||||
|
||||
|
|
@ -7,8 +7,8 @@
|
|||
|
||||
package dev.loki.lovisual.features.command.impl;
|
||||
|
||||
import dev.loki.lovisual.features.module.Module;
|
||||
import dev.loki.lovisual.features.module.ModuleManager;
|
||||
import dev.loki.lovisual.features.module.core.Module;
|
||||
import dev.loki.lovisual.features.module.core.ModuleManager;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.multiplayer.PlayerInfo;
|
||||
|
||||
|
|
@ -21,7 +21,7 @@ public final class CommandUtils {
|
|||
private CommandUtils() {
|
||||
}
|
||||
|
||||
static Module findModule(String query) {
|
||||
public static Module findModule(String query) {
|
||||
if (query == null || query.isBlank()) return null;
|
||||
for (Module module : ModuleManager.getModules()) {
|
||||
if (matchesModule(module, query)) return module;
|
||||
|
|
@ -29,7 +29,7 @@ public final class CommandUtils {
|
|||
return null;
|
||||
}
|
||||
|
||||
static List<String> suggestModules(String token) {
|
||||
public static List<String> suggestModules(String token) {
|
||||
String lower = normalize(token);
|
||||
return ModuleManager.getModules().stream()
|
||||
.map(Module::name)
|
||||
|
|
@ -38,7 +38,7 @@ public final class CommandUtils {
|
|||
.toList();
|
||||
}
|
||||
|
||||
static List<String> suggestPlayers(Minecraft mc, String token) {
|
||||
public static List<String> suggestPlayers(Minecraft mc, String token) {
|
||||
if (mc == null || mc.getConnection() == null) return List.of();
|
||||
String lower = normalize(token);
|
||||
List<String> names = new ArrayList<>();
|
||||
|
|
@ -53,18 +53,18 @@ public final class CommandUtils {
|
|||
return names;
|
||||
}
|
||||
|
||||
static List<Module> sortedModules() {
|
||||
public static List<Module> sortedModules() {
|
||||
return ModuleManager.getModules().stream()
|
||||
.sorted(Comparator.comparing(Module::name, String.CASE_INSENSITIVE_ORDER))
|
||||
.toList();
|
||||
}
|
||||
|
||||
static String join(List<String> parts, int start) {
|
||||
public static String join(List<String> parts, int start) {
|
||||
if (parts == null || start < 0 || start >= parts.size()) return "";
|
||||
return String.join(" ", parts.subList(start, parts.size())).trim();
|
||||
}
|
||||
|
||||
static boolean parseState(String value, boolean current) {
|
||||
public static boolean parseState(String value, boolean current) {
|
||||
if (value == null || value.isBlank() || value.equalsIgnoreCase("toggle")) return !current;
|
||||
return value.equalsIgnoreCase("on")
|
||||
|| value.equalsIgnoreCase("true")
|
||||
|
|
@ -73,7 +73,7 @@ public final class CommandUtils {
|
|||
|| value.equals("1");
|
||||
}
|
||||
|
||||
static boolean isState(String value) {
|
||||
public static boolean isState(String value) {
|
||||
if (value == null) return true;
|
||||
return switch (value.toLowerCase(Locale.ROOT)) {
|
||||
case "toggle", "on", "off", "true", "false", "enable", "disable", "enabled", "disabled", "1", "0" -> true;
|
||||
|
|
|
|||
|
|
@ -5,15 +5,15 @@
|
|||
* Licensed under the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
package dev.loki.lovisual.features.command.impl;
|
||||
package dev.loki.lovisual.features.command.impl.client;
|
||||
|
||||
import dev.loki.lovisual.addon.AddonIssue;
|
||||
import dev.loki.lovisual.addon.AddonManager;
|
||||
import dev.loki.lovisual.addon.AddonSnapshot;
|
||||
import dev.loki.lovisual.features.command.ClientCommand;
|
||||
import dev.loki.lovisual.features.command.CommandContext;
|
||||
import dev.loki.lovisual.features.command.CommandInfo;
|
||||
import dev.loki.lovisual.features.command.CommandOutput;
|
||||
import dev.loki.lovisual.addon.core.AddonIssue;
|
||||
import dev.loki.lovisual.addon.core.AddonManager;
|
||||
import dev.loki.lovisual.addon.pipeline.AddonSnapshot;
|
||||
import dev.loki.lovisual.features.command.util.ClientCommand;
|
||||
import dev.loki.lovisual.features.command.core.CommandContext;
|
||||
import dev.loki.lovisual.features.command.core.CommandInfo;
|
||||
import dev.loki.lovisual.features.command.util.CommandOutput;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue