diff --git a/src/main/java/anticope/rejects/MeteorRejectsAddon.java b/src/main/java/anticope/rejects/MeteorRejectsAddon.java index 8a6dab2..e8fbfe6 100644 --- a/src/main/java/anticope/rejects/MeteorRejectsAddon.java +++ b/src/main/java/anticope/rejects/MeteorRejectsAddon.java @@ -10,10 +10,11 @@ import anticope.rejects.utils.RejectsUtils; import meteordevelopment.meteorclient.addons.MeteorAddon; import meteordevelopment.meteorclient.MeteorClient; import meteordevelopment.meteorclient.gui.GuiThemes; +import meteordevelopment.meteorclient.systems.Systems; import meteordevelopment.meteorclient.systems.commands.Commands; +import meteordevelopment.meteorclient.systems.hud.HUD; import meteordevelopment.meteorclient.systems.modules.Category; import meteordevelopment.meteorclient.systems.modules.Modules; -import meteordevelopment.meteorclient.systems.modules.render.hud.HUD; import net.minecraft.item.Items; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -87,7 +88,7 @@ public class MeteorRejectsAddon extends MeteorAddon { commands.add(new TerrainExport()); // HUD - HUD hud = modules.get(HUD.class); + HUD hud = Systems.get(HUD.class); hud.elements.add(new AppleHud(hud)); hud.elements.add(new BaritoneHud(hud)); hud.elements.add(new CrystalHud(hud)); diff --git a/src/main/java/anticope/rejects/gui/hud/AppleHud.java b/src/main/java/anticope/rejects/gui/hud/AppleHud.java index 35441cd..4502f40 100644 --- a/src/main/java/anticope/rejects/gui/hud/AppleHud.java +++ b/src/main/java/anticope/rejects/gui/hud/AppleHud.java @@ -3,9 +3,9 @@ package anticope.rejects.gui.hud; import meteordevelopment.meteorclient.settings.DoubleSetting; import meteordevelopment.meteorclient.settings.Setting; import meteordevelopment.meteorclient.settings.SettingGroup; -import meteordevelopment.meteorclient.systems.modules.render.hud.HUD; -import meteordevelopment.meteorclient.systems.modules.render.hud.HudRenderer; -import meteordevelopment.meteorclient.systems.modules.render.hud.modules.HudElement; +import meteordevelopment.meteorclient.systems.hud.HUD; +import meteordevelopment.meteorclient.systems.hud.HudRenderer; +import meteordevelopment.meteorclient.systems.hud.modules.HudElement; import meteordevelopment.meteorclient.utils.player.InvUtils; import meteordevelopment.meteorclient.utils.render.RenderUtils; import net.minecraft.item.ItemStack; diff --git a/src/main/java/anticope/rejects/gui/hud/BaritoneHud.java b/src/main/java/anticope/rejects/gui/hud/BaritoneHud.java index 2415ca9..4873f07 100644 --- a/src/main/java/anticope/rejects/gui/hud/BaritoneHud.java +++ b/src/main/java/anticope/rejects/gui/hud/BaritoneHud.java @@ -2,8 +2,8 @@ package anticope.rejects.gui.hud; import baritone.api.BaritoneAPI; import baritone.api.process.IBaritoneProcess; -import meteordevelopment.meteorclient.systems.modules.render.hud.HUD; -import meteordevelopment.meteorclient.systems.modules.render.hud.modules.DoubleTextHudElement; +import meteordevelopment.meteorclient.systems.hud.HUD; +import meteordevelopment.meteorclient.systems.hud.modules.DoubleTextHudElement; public class BaritoneHud extends DoubleTextHudElement { public BaritoneHud(HUD hud) { diff --git a/src/main/java/anticope/rejects/gui/hud/CpsHud.java b/src/main/java/anticope/rejects/gui/hud/CpsHud.java index 4a0e229..495e7a7 100644 --- a/src/main/java/anticope/rejects/gui/hud/CpsHud.java +++ b/src/main/java/anticope/rejects/gui/hud/CpsHud.java @@ -1,8 +1,8 @@ package anticope.rejects.gui.hud; import anticope.rejects.utils.RejectsUtils; -import meteordevelopment.meteorclient.systems.modules.render.hud.HUD; -import meteordevelopment.meteorclient.systems.modules.render.hud.modules.DoubleTextHudElement; +import meteordevelopment.meteorclient.systems.hud.HUD; +import meteordevelopment.meteorclient.systems.hud.modules.DoubleTextHudElement; public class CpsHud extends DoubleTextHudElement { public CpsHud(HUD hud) { diff --git a/src/main/java/anticope/rejects/gui/hud/CrystalHud.java b/src/main/java/anticope/rejects/gui/hud/CrystalHud.java index 046462a..eab66ee 100644 --- a/src/main/java/anticope/rejects/gui/hud/CrystalHud.java +++ b/src/main/java/anticope/rejects/gui/hud/CrystalHud.java @@ -3,9 +3,9 @@ package anticope.rejects.gui.hud; import meteordevelopment.meteorclient.settings.DoubleSetting; import meteordevelopment.meteorclient.settings.Setting; import meteordevelopment.meteorclient.settings.SettingGroup; -import meteordevelopment.meteorclient.systems.modules.render.hud.HUD; -import meteordevelopment.meteorclient.systems.modules.render.hud.HudRenderer; -import meteordevelopment.meteorclient.systems.modules.render.hud.modules.HudElement; +import meteordevelopment.meteorclient.systems.hud.HUD; +import meteordevelopment.meteorclient.systems.hud.HudRenderer; +import meteordevelopment.meteorclient.systems.hud.modules.HudElement; import meteordevelopment.meteorclient.utils.player.InvUtils; import meteordevelopment.meteorclient.utils.render.RenderUtils; import net.minecraft.item.ItemStack; diff --git a/src/main/java/anticope/rejects/gui/hud/ExpHud.java b/src/main/java/anticope/rejects/gui/hud/ExpHud.java index e94ff8d..9b4b56c 100644 --- a/src/main/java/anticope/rejects/gui/hud/ExpHud.java +++ b/src/main/java/anticope/rejects/gui/hud/ExpHud.java @@ -3,9 +3,9 @@ package anticope.rejects.gui.hud; import meteordevelopment.meteorclient.settings.DoubleSetting; import meteordevelopment.meteorclient.settings.Setting; import meteordevelopment.meteorclient.settings.SettingGroup; -import meteordevelopment.meteorclient.systems.modules.render.hud.HUD; -import meteordevelopment.meteorclient.systems.modules.render.hud.HudRenderer; -import meteordevelopment.meteorclient.systems.modules.render.hud.modules.HudElement; +import meteordevelopment.meteorclient.systems.hud.HUD; +import meteordevelopment.meteorclient.systems.hud.HudRenderer; +import meteordevelopment.meteorclient.systems.hud.modules.HudElement; import meteordevelopment.meteorclient.utils.player.InvUtils; import meteordevelopment.meteorclient.utils.render.RenderUtils; import net.minecraft.item.ItemStack; diff --git a/src/main/java/anticope/rejects/mixin/meteor/ConfigTabMixin.java b/src/main/java/anticope/rejects/mixin/meteor/ConfigTabMixin.java index f7a828f..0d8763f 100644 --- a/src/main/java/anticope/rejects/mixin/meteor/ConfigTabMixin.java +++ b/src/main/java/anticope/rejects/mixin/meteor/ConfigTabMixin.java @@ -1,46 +1,18 @@ package anticope.rejects.mixin.meteor; +import anticope.rejects.utils.ConfigModifier; import anticope.rejects.utils.RejectsConfig; import meteordevelopment.meteorclient.gui.tabs.builtin.ConfigTab; -import meteordevelopment.meteorclient.settings.*; -import meteordevelopment.meteorclient.systems.modules.Module; - -import java.util.Arrays; -import java.util.List; - -import org.spongepowered.asm.mixin.*; -import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(ConfigTab.class) public class ConfigTabMixin { - @Shadow(remap = false) - @Final - private static Settings settings; - - private static final SettingGroup sgRejects = settings.createGroup("Rejects"); - - private static final Setting httpAllowed = sgRejects.add(new EnumSetting.Builder() - .name("http-allowed") - .description("Changes what api endpoints can be reached.") - .defaultValue(RejectsConfig.get().httpAllowed) - .onChanged(v -> RejectsConfig.get().httpAllowed = v) - .build() - ); - - private final Setting> hiddenModules = sgRejects.add(new ModuleListSetting.Builder() - .name("hidden-modules") - .description("Which modules to hide.") - .defaultValue(Arrays.asList()) - .defaultValue(RejectsConfig.get().getHiddenModules()) - .onChanged(v -> RejectsConfig.get().setHiddenModules(v)) - .build() - ); - - // No idea why CallbackInfoReturnable, but fabric crashes otherwise lol - @Inject(method = "createScreen", at=@At("HEAD"), remap = false) - private void onCreateScreen(CallbackInfoReturnable cir) { - hiddenModules.set(RejectsConfig.get().getHiddenModules()); - } -} + // No idea why CallbackInfoReturnable, but fabric crashes otherwise lol + @Inject(method = "createScreen", at=@At("HEAD"), remap = false) + private void onCreateScreen(CallbackInfoReturnable cir) { + ConfigModifier.INSTANCE.hiddenModules.set(RejectsConfig.get().getHiddenModules()); + } +} \ No newline at end of file diff --git a/src/main/java/anticope/rejects/mixin/meteor/SystemsMixin.java b/src/main/java/anticope/rejects/mixin/meteor/SystemsMixin.java new file mode 100644 index 0000000..6bf0288 --- /dev/null +++ b/src/main/java/anticope/rejects/mixin/meteor/SystemsMixin.java @@ -0,0 +1,17 @@ +package anticope.rejects.mixin.meteor; + +import anticope.rejects.utils.ConfigModifier; +import meteordevelopment.meteorclient.systems.Systems; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(Systems.class) +public class SystemsMixin { + @Inject(method = "init", at = @At(value = "INVOKE", target = "Lmeteordevelopment/meteorclient/systems/System;load()V"), remap = false) + private static void onInitializeConfig(CallbackInfo ci) { + // adds the reject settings + new ConfigModifier(); + } +} \ No newline at end of file diff --git a/src/main/java/anticope/rejects/modules/SkeletonESP.java b/src/main/java/anticope/rejects/modules/SkeletonESP.java index b654cee..2e7eba1 100644 --- a/src/main/java/anticope/rejects/modules/SkeletonESP.java +++ b/src/main/java/anticope/rejects/modules/SkeletonESP.java @@ -59,7 +59,7 @@ public class SkeletonESP extends Module { mc.world.getEntities().forEach(entity -> { if (!(entity instanceof PlayerEntity)) return; if (mc.options.getPerspective() == Perspective.FIRST_PERSON && !freecam.isActive() && mc.player == entity) return; - int rotationHoldTicks = Config.get().rotationHoldTicks; + int rotationHoldTicks = Config.get().rotationHoldTicks.get(); Color skeletonColor = PlayerUtils.getPlayerColor((PlayerEntity)entity, skeletonColorSetting.get()); PlayerEntity playerEntity = (PlayerEntity) entity; diff --git a/src/main/java/anticope/rejects/utils/ConfigModifier.java b/src/main/java/anticope/rejects/utils/ConfigModifier.java new file mode 100644 index 0000000..21c4115 --- /dev/null +++ b/src/main/java/anticope/rejects/utils/ConfigModifier.java @@ -0,0 +1,39 @@ +package anticope.rejects.utils; + +import meteordevelopment.meteorclient.settings.EnumSetting; +import meteordevelopment.meteorclient.settings.ModuleListSetting; +import meteordevelopment.meteorclient.settings.Setting; +import meteordevelopment.meteorclient.settings.SettingGroup; +import meteordevelopment.meteorclient.systems.config.Config; +import meteordevelopment.meteorclient.systems.modules.Module; + +import java.util.Arrays; +import java.util.List; + +public class ConfigModifier { + + public static ConfigModifier INSTANCE; + + public ConfigModifier() { + INSTANCE = this; + } + + public final SettingGroup sgRejects = Config.get().settings.createGroup("Rejects"); + + public final Setting httpAllowed = sgRejects.add(new EnumSetting.Builder() + .name("http-allowed") + .description("Changes what api endpoints can be reached.") + .defaultValue(RejectsConfig.get().httpAllowed) + .onChanged(v -> RejectsConfig.get().httpAllowed = v) + .build() + ); + + public final Setting> hiddenModules = sgRejects.add(new ModuleListSetting.Builder() + .name("hidden-modules") + .description("Which modules to hide.") + .defaultValue(Arrays.asList()) + .defaultValue(RejectsConfig.get().getHiddenModules()) + .onChanged(v -> RejectsConfig.get().setHiddenModules(v)) + .build() + ); +} diff --git a/src/main/resources/meteor-rejects-meteor.mixins.json b/src/main/resources/meteor-rejects-meteor.mixins.json index 11b2ff8..62fc305 100644 --- a/src/main/resources/meteor-rejects-meteor.mixins.json +++ b/src/main/resources/meteor-rejects-meteor.mixins.json @@ -3,12 +3,15 @@ "package": "anticope.rejects.mixin.meteor", "compatibilityLevel": "JAVA_16", "client": [ - "modules.NoRenderAccessor", - "modules.FlightMixin", "CommandsMixin", - "ConfigTabMixin", + "ConfigMixin", "GuiRendererAccessor", "HttpMixin", - "ModulesMixin" + "ModulesMixin", + "modules.FlightMixin", + "modules.NoRenderAccessor" + ], + "mixins": [ + "ConfigTabMixin" ] }