From dc1e189d380a9eded254cb9fdfe6ad0c22231ce6 Mon Sep 17 00:00:00 2001 From: kawaiizenbo <48113593+kawaiizenbo@users.noreply.github.com> Date: Tue, 10 Oct 2023 22:14:11 -0700 Subject: [PATCH] stuff --- .../java/me/kawaiizenbo/moonlight/Config.java | 21 +++-- .../me/kawaiizenbo/moonlight/Moonlight.java | 77 ++++++++++++------- .../moonlight/command/CommandManager.java | 1 + .../moonlight/command/ModuleArgumentType.java | 63 --------------- .../command/commands/SettingCommand.java | 72 +++++++++++++++++ .../moonlight/command/commands/Toggle.java | 17 ++-- .../mixin/ClientConnectionMixin.java | 1 - .../mixin/ClientPlayerEntityMixin.java | 8 +- .../moonlight/mixin/KeyboardMixin.java | 15 +++- .../module/{Module_.java => Module.java} | 24 +++++- .../moonlight/module/ModuleManager.java | 30 ++++---- .../moonlight/module/modules/Fly.java | 4 +- .../moonlight/module/modules/Fullbright.java | 4 +- .../moonlight/module/modules/HUDModule.java | 4 +- .../moonlight/module/modules/ModulesList.java | 4 +- .../moonlight/module/modules/NoFall.java | 4 +- .../moonlight/module/modules/Speed.java | 5 +- .../moonlight/module/modules/Step.java | 4 +- .../moonlight/module/modules/TestModule.java | 20 +++++ .../module/settings/StringSetting.java | 14 ++++ .../moonlight/ui/ModulesListOverlay.java | 6 +- .../moonlight/ui/clickgui/CategoryPane.java | 4 +- .../moonlight/ui/clickgui/KeybindScreen.java | 2 +- .../moonlight/ui/clickgui/ModuleButton.java | 6 +- .../moonlight/ui/clickgui/SettingsScreen.java | 6 +- 25 files changed, 259 insertions(+), 157 deletions(-) delete mode 100644 src/main/java/me/kawaiizenbo/moonlight/command/ModuleArgumentType.java create mode 100644 src/main/java/me/kawaiizenbo/moonlight/command/commands/SettingCommand.java rename src/main/java/me/kawaiizenbo/moonlight/module/{Module_.java => Module.java} (74%) create mode 100644 src/main/java/me/kawaiizenbo/moonlight/module/modules/TestModule.java diff --git a/src/main/java/me/kawaiizenbo/moonlight/Config.java b/src/main/java/me/kawaiizenbo/moonlight/Config.java index 87650ec..3df97a3 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/Config.java +++ b/src/main/java/me/kawaiizenbo/moonlight/Config.java @@ -2,6 +2,7 @@ package me.kawaiizenbo.moonlight; import java.io.File; import java.io.FileWriter; +import java.io.IOException; import java.nio.file.Files; import java.util.HashMap; import java.util.Map; @@ -13,16 +14,17 @@ import com.google.gson.Gson; import me.kawaiizenbo.moonlight.module.Category; import me.kawaiizenbo.moonlight.module.ModuleManager; -import me.kawaiizenbo.moonlight.module.Module_; +import me.kawaiizenbo.moonlight.module.Module; import me.kawaiizenbo.moonlight.module.settings.BooleanSetting; import me.kawaiizenbo.moonlight.module.settings.DoubleSetting; +import me.kawaiizenbo.moonlight.module.settings.KeycodeSetting; import me.kawaiizenbo.moonlight.module.settings.Setting; +import me.kawaiizenbo.moonlight.module.settings.StringSetting; import me.kawaiizenbo.moonlight.ui.clickgui.ClickGUIScreen; import net.minecraft.client.MinecraftClient; public class Config { - public static final Logger LOGGER = LoggerFactory.getLogger("mcfg"); MinecraftClient mc = MinecraftClient.getInstance(); public File configDir = new File(mc.runDirectory.getPath() + "/moonlight"); public File configFile = new File(configDir, "config.json"); @@ -43,13 +45,14 @@ public class Config { ModuleManager.INSTANCE = new ModuleManager(); Map mi = new HashMap<>(); - for (Module_ m : ModuleManager.INSTANCE.modules) + for (Module m : ModuleManager.INSTANCE.modules) { Map mo = new HashMap<>(); mo.put("enabled", m.enabled); Map ms = new HashMap<>(); for (Setting s : m.settings) { + // sometimes i wish i were a nymphet instead of a massive nerd if (s instanceof BooleanSetting) { ms.put(s.name, ((BooleanSetting)s).value); @@ -57,6 +60,14 @@ public class Config else if (s instanceof DoubleSetting) { ms.put(s.name, ((DoubleSetting)s).value); + } + if (s instanceof StringSetting) + { + ms.put(s.name, ((StringSetting)s).value); + } + else if (s instanceof KeycodeSetting) + { + ms.put(s.name, ((KeycodeSetting)s).value); } } mo.put("settings", ms); @@ -84,7 +95,7 @@ public class Config ClickGUIScreen.INSTANCE = new ClickGUIScreen(); } - public void load() + public void load() throws IOException { try { @@ -93,7 +104,7 @@ public class Config } catch (Exception e) { - e.printStackTrace(); + throw new IOException("Failed to load config file."); } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/Moonlight.java b/src/main/java/me/kawaiizenbo/moonlight/Moonlight.java index 2dde983..b25531c 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/Moonlight.java +++ b/src/main/java/me/kawaiizenbo/moonlight/Moonlight.java @@ -4,14 +4,16 @@ import net.fabricmc.api.ModInitializer; import org.slf4j.Logger; +import java.io.IOException; import java.util.HashMap; import java.util.Map; import org.slf4j.LoggerFactory; import me.kawaiizenbo.moonlight.module.ModuleManager; -import me.kawaiizenbo.moonlight.module.Module_; +import me.kawaiizenbo.moonlight.module.Module; import me.kawaiizenbo.moonlight.module.settings.BooleanSetting; import me.kawaiizenbo.moonlight.module.settings.DoubleSetting; +import me.kawaiizenbo.moonlight.module.settings.KeycodeSetting; import me.kawaiizenbo.moonlight.module.settings.Setting; import me.kawaiizenbo.moonlight.module.settings.StringSetting; import me.kawaiizenbo.moonlight.ui.clickgui.CategoryPane; @@ -37,44 +39,53 @@ public class Moonlight implements ModInitializer public void loadConfig() { - LOGGER.info("Loading config..."); - if (CONFIG.doesConfigExist()) + try { + LOGGER.info("Loading config..."); + CONFIG.load(); + for (Module m : ModuleManager.INSTANCE.modules) + { + m.enabled = (boolean)((Map)((Map)CONFIG.config.get("modules")).get(m.name)).get("enabled"); + if (m.enabled) + { + //m.onEnable(); + // this doesnt work, will probably need to mixin to client server connection or something + } + for (Setting s : m.settings) + { + if (s instanceof BooleanSetting) + { + ((BooleanSetting)s).value = (boolean)((Map)((Map)((Map)CONFIG.config.get("modules")).get(m.name)).get("settings")).get(s.name); + } + else if (s instanceof DoubleSetting) + { + ((DoubleSetting)s).value = (Double)((Map)((Map)((Map)CONFIG.config.get("modules")).get(m.name)).get("settings")).get(s.name); + } + else if (s instanceof StringSetting) + { + ((StringSetting)s).value = (String)((Map)((Map)((Map)CONFIG.config.get("modules")).get(m.name)).get("settings")).get(s.name); + } + else if (s instanceof KeycodeSetting) + { + ((KeycodeSetting)s).value = ((Double)((Map)((Map)((Map)CONFIG.config.get("modules")).get(m.name)).get("settings")).get(s.name)).intValue(); + } + } + } + } + catch(Exception e) + { + LOGGER.warn("Config Error: " + e.getMessage()); + LOGGER.info("Loading default config..."); CONFIG.loadDefaultConfig(); CONFIG.save(); } - CONFIG.load(); - for (Module_ m : ModuleManager.INSTANCE.modules) - { - m.enabled = (boolean)((Map)((Map)CONFIG.config.get("modules")).get(m.name)).get("enabled"); - if (m.enabled) - { - //m.onEnable(); - /// brocken :( - } - for (Setting s : m.settings) - { - if (s instanceof BooleanSetting) - { - ((BooleanSetting)s).value = (boolean)((Map)((Map)((Map)CONFIG.config.get("modules")).get(m.name)).get("settings")).get(s.name); - } - else if (s instanceof DoubleSetting) - { - ((DoubleSetting)s).value = (Double)((Map)((Map)((Map)CONFIG.config.get("modules")).get(m.name)).get("settings")).get(s.name); - } - else if (s instanceof StringSetting) - { - ((StringSetting)s).value = (String)((Map)((Map)((Map)CONFIG.config.get("modules")).get(m.name)).get("settings")).get(s.name); - } - } - } } public void saveConfig() { LOGGER.info("Saving config..."); Map mi = new HashMap<>(); - for (Module_ m : ModuleManager.INSTANCE.modules) + for (Module m : ModuleManager.INSTANCE.modules) { Map mo = new HashMap<>(); mo.put("enabled", m.enabled); @@ -88,6 +99,14 @@ public class Moonlight implements ModInitializer else if (s instanceof DoubleSetting) { ms.put(s.name, ((DoubleSetting)s).value); + } + if (s instanceof StringSetting) + { + ms.put(s.name, ((StringSetting)s).value); + } + else if (s instanceof KeycodeSetting) + { + ms.put(s.name, ((KeycodeSetting)s).value); } } mo.put("settings", ms); diff --git a/src/main/java/me/kawaiizenbo/moonlight/command/CommandManager.java b/src/main/java/me/kawaiizenbo/moonlight/command/CommandManager.java index bec3fd0..8713ec2 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/command/CommandManager.java +++ b/src/main/java/me/kawaiizenbo/moonlight/command/CommandManager.java @@ -29,6 +29,7 @@ public class CommandManager add(new Help()); add(new Toggle()); add(new Teleport()); + add(new SettingCommand()); commands.sort(Comparator.comparing(Command::getName)); } diff --git a/src/main/java/me/kawaiizenbo/moonlight/command/ModuleArgumentType.java b/src/main/java/me/kawaiizenbo/moonlight/command/ModuleArgumentType.java deleted file mode 100644 index f33f589..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/command/ModuleArgumentType.java +++ /dev/null @@ -1,63 +0,0 @@ -package me.kawaiizenbo.moonlight.command; - -import java.util.Collection; -import java.util.concurrent.CompletableFuture; -import java.util.stream.Collectors; - -import com.mojang.brigadier.StringReader; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.exceptions.DynamicCommandExceptionType; -import com.mojang.brigadier.suggestion.Suggestions; -import com.mojang.brigadier.suggestion.SuggestionsBuilder; - -import me.kawaiizenbo.moonlight.module.Module_; -import me.kawaiizenbo.moonlight.module.ModuleManager; -import net.minecraft.command.CommandSource; -import net.minecraft.text.Text; - -public class ModuleArgumentType implements ArgumentType -{ - private static final Collection EXAMPLES = ModuleManager.INSTANCE.modules - .stream() - .limit(3) - .map(module -> module.name) - .collect(Collectors.toList()); - - private static final DynamicCommandExceptionType NO_SUCH_MODULE = new DynamicCommandExceptionType(o -> - Text.literal("Module with name " + o + " doesn't exist.")); - - public static ModuleArgumentType module() - { - return new ModuleArgumentType(); - } - - public static Module_ getModule(final CommandContext context, final String name) - { - return context.getArgument(name, Module_.class); - } - - @Override - public Module_ parse(StringReader reader) throws CommandSyntaxException - { - String argument = reader.readString(); - Module_ module = ModuleManager.INSTANCE.getModuleByName(argument); - - if (module == null) throw NO_SUCH_MODULE.create(argument); - - return module; - } - - @Override - public CompletableFuture listSuggestions(CommandContext context, SuggestionsBuilder builder) - { - return CommandSource.suggestMatching(ModuleManager.INSTANCE.modules.stream().map(module -> module.name), builder); - } - - @Override - public Collection getExamples() - { - return EXAMPLES; - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/command/commands/SettingCommand.java b/src/main/java/me/kawaiizenbo/moonlight/command/commands/SettingCommand.java new file mode 100644 index 0000000..8f72dec --- /dev/null +++ b/src/main/java/me/kawaiizenbo/moonlight/command/commands/SettingCommand.java @@ -0,0 +1,72 @@ +package me.kawaiizenbo.moonlight.command.commands; + +import com.mojang.brigadier.arguments.StringArgumentType; +import com.mojang.brigadier.builder.LiteralArgumentBuilder; + +import me.kawaiizenbo.moonlight.command.Command; +import me.kawaiizenbo.moonlight.module.ModuleManager; +import me.kawaiizenbo.moonlight.module.settings.BooleanSetting; +import me.kawaiizenbo.moonlight.module.settings.DoubleSetting; +import me.kawaiizenbo.moonlight.module.settings.KeycodeSetting; +import me.kawaiizenbo.moonlight.module.settings.Setting; +import me.kawaiizenbo.moonlight.module.settings.StringSetting; +import me.kawaiizenbo.moonlight.util.ChatUtils; +import me.kawaiizenbo.moonlight.util.ColorUtils; +import me.kawaiizenbo.moonlight.module.Module; +import net.minecraft.command.CommandSource; + +public class SettingCommand extends Command +{ + public SettingCommand() + { + super("setting", "Change a setting of a module."); + } + + @Override + public void build(LiteralArgumentBuilder builder) + { + builder + .then(argument("module", StringArgumentType.string()) + .then(argument("setting", StringArgumentType.string()) + .then(argument("value", StringArgumentType.string()) + .executes(context -> + { + String m = context.getArgument("module", String.class); + String s = context.getArgument("setting", String.class); + String v = context.getArgument("value", String.class); + + Module module = ModuleManager.INSTANCE.getModuleByName(m); + if (module == null) + { + ChatUtils.sendMsg(ColorUtils.red + "Invalid Module Name"); + return 0; + } + Setting setting = module.getSettingByName(s); + if (setting == null) + { + ChatUtils.sendMsg(ColorUtils.red + "Invalid Setting Name"); + return 0; + } + + // you can break this really easily and i dont feel like fixing it :3 have fun + if (setting instanceof BooleanSetting) + { + ((BooleanSetting)setting).value = Boolean.parseBoolean(v); + } + else if (setting instanceof DoubleSetting) + { + ((DoubleSetting)setting).value = Double.parseDouble(v); + } + if (setting instanceof StringSetting) + { + ((StringSetting)setting).value = v; + } + else if (setting instanceof KeycodeSetting) + { + ((KeycodeSetting)setting).value = Integer.parseInt(v); + } + + return SINGLE_SUCCESS; + })))); + } +} diff --git a/src/main/java/me/kawaiizenbo/moonlight/command/commands/Toggle.java b/src/main/java/me/kawaiizenbo/moonlight/command/commands/Toggle.java index b289f99..a63f810 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/command/commands/Toggle.java +++ b/src/main/java/me/kawaiizenbo/moonlight/command/commands/Toggle.java @@ -1,11 +1,11 @@ package me.kawaiizenbo.moonlight.command.commands; +import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.builder.LiteralArgumentBuilder; import me.kawaiizenbo.moonlight.command.Command; -import me.kawaiizenbo.moonlight.command.ModuleArgumentType; -import me.kawaiizenbo.moonlight.module.Module_; -import net.minecraft.client.network.ClientPlayerEntity; +import me.kawaiizenbo.moonlight.module.ModuleManager; +import me.kawaiizenbo.moonlight.module.Module; import net.minecraft.command.CommandSource; public class Toggle extends Command @@ -19,13 +19,12 @@ public class Toggle extends Command @Override public void build(LiteralArgumentBuilder builder) { - builder.then(argument("module", new ModuleArgumentType()).executes(context -> + builder.then(argument("module", StringArgumentType.string()) + .executes(context -> { - ClientPlayerEntity player = mc.player; - assert player != null; - - Module_ m = context.getArgument("module", Module_.class); - m.toggle(); + String m = context.getArgument("module", String.class); + Module module = ModuleManager.INSTANCE.getModuleByName(m); + module.toggle(); return SINGLE_SUCCESS; })); diff --git a/src/main/java/me/kawaiizenbo/moonlight/mixin/ClientConnectionMixin.java b/src/main/java/me/kawaiizenbo/moonlight/mixin/ClientConnectionMixin.java index 6a36db9..8fd8e88 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/mixin/ClientConnectionMixin.java +++ b/src/main/java/me/kawaiizenbo/moonlight/mixin/ClientConnectionMixin.java @@ -19,7 +19,6 @@ public class ClientConnectionMixin @Inject(method = "send(Lnet/minecraft/network/packet/Packet;)V", at = @At("HEAD"), cancellable = true) public void send(Packet packet, CallbackInfo ci) { - // Call commands if the prefix is sent if(packet instanceof ChatMessageC2SPacket && ((ChatMessageC2SPacket) packet).chatMessage().startsWith(CommandManager.get().getPrefix())) { try diff --git a/src/main/java/me/kawaiizenbo/moonlight/mixin/ClientPlayerEntityMixin.java b/src/main/java/me/kawaiizenbo/moonlight/mixin/ClientPlayerEntityMixin.java index 6afd691..e4dc2a9 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/mixin/ClientPlayerEntityMixin.java +++ b/src/main/java/me/kawaiizenbo/moonlight/mixin/ClientPlayerEntityMixin.java @@ -6,7 +6,7 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import me.kawaiizenbo.moonlight.module.ModuleManager; -import me.kawaiizenbo.moonlight.module.Module_; +import me.kawaiizenbo.moonlight.module.Module; import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.entity.MovementType; @@ -18,7 +18,7 @@ public class ClientPlayerEntityMixin @Inject(method = "move", at = @At(value = "TAIL"), cancellable = true) public void onMove(MovementType type, Vec3d movement, CallbackInfo ci) { - for (Module_ m : ModuleManager.INSTANCE.getEnabledModules()) + for (Module m : ModuleManager.INSTANCE.getEnabledModules()) { m.onMotion(type, movement); } @@ -27,7 +27,7 @@ public class ClientPlayerEntityMixin @Inject(method = "tick", at = @At(value = "HEAD"), cancellable = true) public void onTick(CallbackInfo ci) { - for (Module_ m : ModuleManager.INSTANCE.getEnabledModules()) + for (Module m : ModuleManager.INSTANCE.getEnabledModules()) { if (MinecraftClient.getInstance().player != null) m.tick(); } @@ -36,7 +36,7 @@ public class ClientPlayerEntityMixin @Inject(method = "init", at = @At(value = "TAIL"), cancellable = true) public void onInit(CallbackInfo ci) { - for (Module_ m : ModuleManager.INSTANCE.getEnabledModules()) + for (Module m : ModuleManager.INSTANCE.getEnabledModules()) { m.onEnable(); } diff --git a/src/main/java/me/kawaiizenbo/moonlight/mixin/KeyboardMixin.java b/src/main/java/me/kawaiizenbo/moonlight/mixin/KeyboardMixin.java index daef586..8d65ead 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/mixin/KeyboardMixin.java +++ b/src/main/java/me/kawaiizenbo/moonlight/mixin/KeyboardMixin.java @@ -8,6 +8,8 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import me.kawaiizenbo.moonlight.module.Module; +import me.kawaiizenbo.moonlight.module.ModuleManager; import me.kawaiizenbo.moonlight.ui.clickgui.ClickGUIScreen; import net.minecraft.client.Keyboard; import net.minecraft.client.MinecraftClient; @@ -17,7 +19,18 @@ public abstract class KeyboardMixin { @Shadow @Final private MinecraftClient client; @Inject(method = "onKey", at = @At("HEAD"), cancellable = true) - public void onKey(long window, int key, int scancode, int action, int modifiers, CallbackInfo info) { + public void onKey(long window, int key, int scancode, int action, int modifiers, CallbackInfo info) + { + System.out.println("Keyboard event occured: " + java.awt.event.KeyEvent.getKeyText(key) + " (keycode "+key+")"); if (key == GLFW.GLFW_KEY_RIGHT_ALT) MinecraftClient.getInstance().setScreen(ClickGUIScreen.INSTANCE); + for (Module m : ModuleManager.INSTANCE.modules) + { + System.out.println("checking against module:" + m.name); + if (key == m.keybind.value) + { + System.out.println("yup, we gotem :3"); + m.toggle(); + } + } } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/Module_.java b/src/main/java/me/kawaiizenbo/moonlight/module/Module.java similarity index 74% rename from src/main/java/me/kawaiizenbo/moonlight/module/Module_.java rename to src/main/java/me/kawaiizenbo/moonlight/module/Module.java index 06bef78..dbeecd4 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/Module_.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/Module.java @@ -10,7 +10,7 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.entity.MovementType; import net.minecraft.util.math.Vec3d; -public abstract class Module_ +public abstract class Module { protected static MinecraftClient mc = MinecraftClient.getInstance(); public String name; @@ -22,7 +22,7 @@ public abstract class Module_ public BooleanSetting showInModulesList = new BooleanSetting("Show in Modules List", true); public KeycodeSetting keybind = new KeycodeSetting("Keybind", 0); - public Module_(String name, String description, Category category) + public Module(String name, String description, Category category) { this.name = name; this.description = description; @@ -46,4 +46,24 @@ public abstract class Module_ onDisable(); } } + + public Setting getSettingByName(String settingName) + { + for(Setting setting : settings) + { + if ((setting.name.trim().equalsIgnoreCase(settingName))) + { + return setting; + } + } + return null; + } + + protected void addSettings(Setting... settings) + { + for(Setting setting : settings) + { + this.settings.add(setting); + } + } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/ModuleManager.java b/src/main/java/me/kawaiizenbo/moonlight/module/ModuleManager.java index 9b3eccc..3b92a92 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/ModuleManager.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/ModuleManager.java @@ -7,7 +7,7 @@ import me.kawaiizenbo.moonlight.module.modules.*; public class ModuleManager { public static ModuleManager INSTANCE = new ModuleManager(); - public ArrayList modules = new ArrayList<>(); + public ArrayList modules = new ArrayList<>(); public ModuleManager() { @@ -18,25 +18,21 @@ public class ModuleManager new Step(), new Fullbright(), new Speed(), - new ModulesList() + new ModulesList(), + new TestModule() ); } - - public void registerModule(Module_ module) - { - modules.add(module); - } - public void registerModules(Module_... modules) + private void registerModules(Module... modules) { - for (Module_ module : modules) { + for (Module module : modules) { this.modules.add(module); } } - public Module_ getModuleByName(String moduleName) + public Module getModuleByName(String moduleName) { - for(Module_ module : modules) + for(Module module : modules) { if ((module.name.trim().equalsIgnoreCase(moduleName))) { @@ -46,10 +42,10 @@ public class ModuleManager return null; } - public ArrayList getModulesByCategory(Category category) + public ArrayList getModulesByCategory(Category category) { - ArrayList returnedModules = new ArrayList<>(); - for(Module_ module : modules) + ArrayList returnedModules = new ArrayList<>(); + for(Module module : modules) { if (module.category == category) { @@ -59,10 +55,10 @@ public class ModuleManager return returnedModules; } - public ArrayList getEnabledModules() + public ArrayList getEnabledModules() { - ArrayList enabledModules = new ArrayList<>(); - for (Module_ module : modules) + ArrayList enabledModules = new ArrayList<>(); + for (Module module : modules) { if (!module.enabled) continue; diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/Fly.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/Fly.java index f78b1a8..90db457 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/modules/Fly.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/modules/Fly.java @@ -1,9 +1,9 @@ package me.kawaiizenbo.moonlight.module.modules; import me.kawaiizenbo.moonlight.module.Category; -import me.kawaiizenbo.moonlight.module.Module_; +import me.kawaiizenbo.moonlight.module.Module; -public class Fly extends Module_ +public class Fly extends Module { public Fly() diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/Fullbright.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/Fullbright.java index 4ff5e65..fe13345 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/modules/Fullbright.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/modules/Fullbright.java @@ -1,10 +1,10 @@ package me.kawaiizenbo.moonlight.module.modules; import me.kawaiizenbo.moonlight.module.Category; -import me.kawaiizenbo.moonlight.module.Module_; +import me.kawaiizenbo.moonlight.module.Module; import me.kawaiizenbo.moonlight.util.ISimpleOption; -public class Fullbright extends Module_ +public class Fullbright extends Module { public Fullbright() { diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/HUDModule.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/HUDModule.java index 709ce70..e485076 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/modules/HUDModule.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/modules/HUDModule.java @@ -2,13 +2,13 @@ package me.kawaiizenbo.moonlight.module.modules; import me.kawaiizenbo.moonlight.Moonlight; import me.kawaiizenbo.moonlight.module.Category; -import me.kawaiizenbo.moonlight.module.Module_; +import me.kawaiizenbo.moonlight.module.Module; import me.kawaiizenbo.moonlight.module.settings.BooleanSetting; import me.kawaiizenbo.moonlight.module.settings.DoubleSetting; import me.kawaiizenbo.moonlight.ui.HUDOverlay; import me.kawaiizenbo.moonlight.util.ColorUtils; -public class HUDModule extends Module_ +public class HUDModule extends Module { public BooleanSetting clientTag = new BooleanSetting("Client Tag", true); public DoubleSetting r = new DoubleSetting("Red", 0x55, 0, 255, 0); diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/ModulesList.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/ModulesList.java index a8d7357..3f6a03c 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/modules/ModulesList.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/modules/ModulesList.java @@ -1,9 +1,9 @@ package me.kawaiizenbo.moonlight.module.modules; import me.kawaiizenbo.moonlight.module.Category; -import me.kawaiizenbo.moonlight.module.Module_; +import me.kawaiizenbo.moonlight.module.Module; -public class ModulesList extends Module_ +public class ModulesList extends Module { public ModulesList() { diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/NoFall.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/NoFall.java index f84d4b4..2e2b160 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/modules/NoFall.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/modules/NoFall.java @@ -1,10 +1,10 @@ package me.kawaiizenbo.moonlight.module.modules; import me.kawaiizenbo.moonlight.module.Category; -import me.kawaiizenbo.moonlight.module.Module_; +import me.kawaiizenbo.moonlight.module.Module; import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; -public class NoFall extends Module_ +public class NoFall extends Module { public NoFall() { diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/Speed.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/Speed.java index 1e94f49..f005af4 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/modules/Speed.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/modules/Speed.java @@ -1,12 +1,12 @@ package me.kawaiizenbo.moonlight.module.modules; import me.kawaiizenbo.moonlight.module.Category; -import me.kawaiizenbo.moonlight.module.Module_; +import me.kawaiizenbo.moonlight.module.Module; import me.kawaiizenbo.moonlight.module.settings.DoubleSetting; import net.minecraft.entity.MovementType; import net.minecraft.util.math.Vec3d; -public class Speed extends Module_ +public class Speed extends Module { DoubleSetting speed = new DoubleSetting("Speed", 2, 0.1, 10, 1); public Speed() @@ -17,6 +17,7 @@ public class Speed extends Module_ @Override public void onMotion(MovementType type, Vec3d movement) { + // ??? mc.player.addVelocity(movement); } diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/Step.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/Step.java index e2cf384..f5fb872 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/modules/Step.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/modules/Step.java @@ -1,10 +1,10 @@ package me.kawaiizenbo.moonlight.module.modules; import me.kawaiizenbo.moonlight.module.Category; -import me.kawaiizenbo.moonlight.module.Module_; +import me.kawaiizenbo.moonlight.module.Module; import me.kawaiizenbo.moonlight.module.settings.DoubleSetting; -public class Step extends Module_ +public class Step extends Module { DoubleSetting stepHeight = new DoubleSetting("Height", 1, 1, 10, 0); diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/TestModule.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/TestModule.java new file mode 100644 index 0000000..0f13fc7 --- /dev/null +++ b/src/main/java/me/kawaiizenbo/moonlight/module/modules/TestModule.java @@ -0,0 +1,20 @@ +package me.kawaiizenbo.moonlight.module.modules; + +import me.kawaiizenbo.moonlight.module.Category; +import me.kawaiizenbo.moonlight.module.Module; +import me.kawaiizenbo.moonlight.module.settings.BooleanSetting; +import me.kawaiizenbo.moonlight.module.settings.DoubleSetting; +import me.kawaiizenbo.moonlight.module.settings.StringSetting; + +public class TestModule extends Module +{ + public BooleanSetting bs = new BooleanSetting("BooleanSetting", false); + public DoubleSetting ds = new DoubleSetting("DoubleSetting", 1, 0, 10, 10); + public StringSetting ss = new StringSetting("StringSetting", "string"); + + public TestModule() + { + super("Test Module", "Used for testing module features.", Category.WORLD); + addSettings(bs, ds, ss); + } +} diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/settings/StringSetting.java b/src/main/java/me/kawaiizenbo/moonlight/module/settings/StringSetting.java index d2ae60e..54fef65 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/settings/StringSetting.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/settings/StringSetting.java @@ -1,5 +1,9 @@ package me.kawaiizenbo.moonlight.module.settings; +import net.minecraft.client.font.TextRenderer; +import net.minecraft.client.gui.DrawContext; +import net.minecraft.text.Text; + public class StringSetting extends Setting { public String value; @@ -9,4 +13,14 @@ public class StringSetting extends Setting this.name = name; this.value = value; } + + @Override + public void render(DrawContext drawContext, int x, int y, int mouseX, int mouseY, TextRenderer textRenderer) + { + super.render(drawContext, x, y, mouseX, mouseY, textRenderer); + drawContext.drawTextWithShadow(textRenderer, Text.literal(name), x+2, y+4, 0xFFFFFF); + int twidth = textRenderer.getWidth(value); + drawContext.drawTextWithShadow(textRenderer, value, x+190-twidth, y+4, 0xFFFFFF); + drawContext.drawTextWithShadow(textRenderer, "WIP, please use the .setting command", x+2, y+14, 0xFFFFFF); + } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/ModulesListOverlay.java b/src/main/java/me/kawaiizenbo/moonlight/ui/ModulesListOverlay.java index 68d8e6e..a23ba6b 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/ModulesListOverlay.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/ModulesListOverlay.java @@ -4,7 +4,7 @@ import java.util.ArrayList; import me.kawaiizenbo.moonlight.Moonlight; import me.kawaiizenbo.moonlight.module.ModuleManager; -import me.kawaiizenbo.moonlight.module.Module_; +import me.kawaiizenbo.moonlight.module.Module; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; @@ -13,7 +13,7 @@ public class ModulesListOverlay { public static ModulesListOverlay INSTANCE = new ModulesListOverlay(); private MinecraftClient mc = MinecraftClient.getInstance(); - private ArrayList enabledModules = ModuleManager.INSTANCE.getEnabledModules(); + private ArrayList enabledModules = ModuleManager.INSTANCE.getEnabledModules(); public void render(DrawContext drawContext, int scaledWidth, int scaledHeight) { @@ -21,7 +21,7 @@ public class ModulesListOverlay if (mc.getDebugHud().shouldShowDebugHud()) return; int yOffset = 0; - for (Module_ m : enabledModules) + for (Module m : enabledModules) { if (!m.showInModulesList.value) continue; int nameWidth = mc.textRenderer.getWidth(m.name); diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/CategoryPane.java b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/CategoryPane.java index 7163665..695e3f0 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/CategoryPane.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/CategoryPane.java @@ -4,7 +4,7 @@ import java.util.ArrayList; import me.kawaiizenbo.moonlight.module.Category; import me.kawaiizenbo.moonlight.module.ModuleManager; -import me.kawaiizenbo.moonlight.module.Module_; +import me.kawaiizenbo.moonlight.module.Module; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; @@ -24,7 +24,7 @@ public class CategoryPane this.y = initialY; this.collapsed = collapsed; moduleButtons = new ArrayList(); - for (Module_ m : ModuleManager.INSTANCE.getModulesByCategory(category)) + for (Module m : ModuleManager.INSTANCE.getModulesByCategory(category)) { moduleButtons.add(new ModuleButton(m)); } diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/KeybindScreen.java b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/KeybindScreen.java index acd5bd2..ddce092 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/KeybindScreen.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/KeybindScreen.java @@ -17,7 +17,7 @@ public class KeybindScreen extends Screen public void render(DrawContext drawContext, int mouseX, int mouseY, float delta) { this.renderBackground(drawContext, mouseX, mouseY, delta); - drawContext.drawCenteredTextWithShadow(textRenderer, "Press any key", width/2, height/2, 0xFFFFFFFF); + drawContext.drawCenteredTextWithShadow(textRenderer, "Press any key (may not work, use .setting instead)", width/2, height/2, 0xFFFFFFFF); } @Override diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ModuleButton.java b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ModuleButton.java index 97e8c42..9566741 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ModuleButton.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ModuleButton.java @@ -1,17 +1,17 @@ package me.kawaiizenbo.moonlight.ui.clickgui; import me.kawaiizenbo.moonlight.Moonlight; -import me.kawaiizenbo.moonlight.module.Module_; +import me.kawaiizenbo.moonlight.module.Module; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; public class ModuleButton { - public Module_ module; + public Module module; public int x, y, width, height = 0; - public ModuleButton(Module_ module) + public ModuleButton(Module module) { this.module = module; this.width = 92; diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/SettingsScreen.java b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/SettingsScreen.java index 141b9af..81722c6 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/SettingsScreen.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/SettingsScreen.java @@ -1,6 +1,6 @@ package me.kawaiizenbo.moonlight.ui.clickgui; -import me.kawaiizenbo.moonlight.module.Module_; +import me.kawaiizenbo.moonlight.module.Module; import me.kawaiizenbo.moonlight.module.settings.Setting; import me.kawaiizenbo.moonlight.ui.TextButton; import me.kawaiizenbo.moonlight.util.ColorUtils; @@ -10,13 +10,13 @@ import net.minecraft.text.Text; public class SettingsScreen extends Screen { - private Module_ module; + private Module module; private TextButton backButton; boolean dragging = false; int startX, startY, x = 4, y = 4, windowWidth = 224, windowHeight = 192; - public SettingsScreen(Module_ module) + public SettingsScreen(Module module) { super(Text.literal("Settings")); this.module = module;