diff --git a/src/main/java/me/zeroeightsix/kami/KamiMod.java b/src/main/java/me/zeroeightsix/kami/KamiMod.java index a9b190cc..99684047 100644 --- a/src/main/java/me/zeroeightsix/kami/KamiMod.java +++ b/src/main/java/me/zeroeightsix/kami/KamiMod.java @@ -27,7 +27,10 @@ import me.zeroeightsix.kami.setting.Setting; import me.zeroeightsix.kami.setting.Settings; import me.zeroeightsix.kami.setting.SettingsRegister; import me.zeroeightsix.kami.setting.config.Configuration; -import me.zeroeightsix.kami.util.*; +import me.zeroeightsix.kami.util.Friends; +import me.zeroeightsix.kami.util.LagCompensator; +import me.zeroeightsix.kami.util.RichPresence; +import me.zeroeightsix.kami.util.Wrapper; import net.minecraft.client.Minecraft; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.Mod; @@ -198,6 +201,7 @@ public class KamiMod { ModuleManager.getModuleByName("InfoOverlay").setEnabled(true); ModuleManager.getModuleByName("InventoryViewer").setEnabled(true); ModuleManager.getModuleByName("ActiveModules").setEnabled(true); + ModuleManager.getModuleByName("FixGui").setEnabled(true); if (((Capes) ModuleManager.getModuleByName("Capes")).startupGlobal.getValue()) { ModuleManager.getModuleByName("Capes").setEnabled(true); diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/FixGuiCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/FixGuiCommand.java new file mode 100644 index 00000000..59a96415 --- /dev/null +++ b/src/main/java/me/zeroeightsix/kami/command/commands/FixGuiCommand.java @@ -0,0 +1,31 @@ +package me.zeroeightsix.kami.command.commands; + +import me.zeroeightsix.kami.command.Command; +import me.zeroeightsix.kami.command.syntax.ChunkBuilder; +import me.zeroeightsix.kami.module.ModuleManager; +import me.zeroeightsix.kami.module.modules.hidden.FixGui; + +/** + * @author S-B99 + */ +public class FixGuiCommand extends Command { + public FixGuiCommand() { + super("fixgui", new ChunkBuilder().build()); + setDescription("Allows you to disable the automatic gui positioning"); + } + + @Override + public void call(String[] args) { + FixGui fixGui = (FixGui) ModuleManager.getModuleByName("Hidden:FixGui"); + if (fixGui.isEnabled() && fixGui.shouldAutoEnable.getValue()) { + fixGui.shouldAutoEnable.setValue(false); + fixGui.disable(); + Command.sendChatMessage("[" + getLabel() + "] Disabled"); + } + else { + fixGui.shouldAutoEnable.setValue(true); + fixGui.enable(); + Command.sendChatMessage("[" + getLabel() + "] Enabled"); + } + } +} diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/gui/InventoryViewer.java b/src/main/java/me/zeroeightsix/kami/module/modules/gui/InventoryViewer.java index 0cf20528..8e43b67b 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/gui/InventoryViewer.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/gui/InventoryViewer.java @@ -1,9 +1,6 @@ package me.zeroeightsix.kami.module.modules.gui; -import me.zeroeightsix.kami.KamiMod; -import me.zeroeightsix.kami.gui.kami.KamiGUI; import me.zeroeightsix.kami.gui.rgui.component.container.use.Frame; -import me.zeroeightsix.kami.gui.rgui.util.ContainerHelper; import me.zeroeightsix.kami.module.Module; import me.zeroeightsix.kami.setting.Setting; import me.zeroeightsix.kami.setting.Settings; @@ -16,10 +13,8 @@ import net.minecraft.util.NonNullList; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import java.util.List; - import static me.zeroeightsix.kami.command.Command.sendDisableMessage; -import static me.zeroeightsix.kami.util.ColourConverter.rgbToInt; +import static me.zeroeightsix.kami.util.GuiFrameUtil.getFrameByName; /** * Updated by S-B99 on 21/02/20 @@ -43,20 +38,6 @@ public class InventoryViewer extends Module { private boolean isTop = false; private boolean isBottom = false; - KamiGUI kamiGUI = KamiMod.getInstance().getGuiManager(); - - // This is bad, but without a rearchitecture, it's probably staying... - 20kdc - private Frame getInventoryViewer() { - kamiGUI = KamiMod.getInstance().getGuiManager(); - if (kamiGUI == null) - return null; - List frames = ContainerHelper.getAllChildren(Frame.class, kamiGUI); - for (Frame frame : frames) - if (frame.getTitle().equalsIgnoreCase("inventory viewer")) - return frame; - return null; - } - private int invMoveHorizontal() { if (!docking.getValue() || mcTexture.getValue()) return 0; if (isLeft) return 45; @@ -72,7 +53,7 @@ public class InventoryViewer extends Module { } private void updatePos() { - Frame frame = getInventoryViewer(); + Frame frame = getFrameByName("inventory viewer"); if (frame == null) return; isTop = frame.getDocking().isTop(); @@ -125,11 +106,11 @@ public class InventoryViewer extends Module { @Override public void onRender() { - Frame frame = getInventoryViewer(); + Frame frame = getFrameByName("inventory viewer"); if (frame == null) return; if (frame.isPinned()) { - final NonNullList items = InventoryViewer.mc.player.inventory.mainInventory; + final NonNullList items = mc.player.inventory.mainInventory; boxRender(frame.getX(), frame.getY()); itemRender(items, frame.getX(), frame.getY()); } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/hidden/FixGui.java b/src/main/java/me/zeroeightsix/kami/module/modules/hidden/FixGui.java new file mode 100644 index 00000000..6262e8be --- /dev/null +++ b/src/main/java/me/zeroeightsix/kami/module/modules/hidden/FixGui.java @@ -0,0 +1,19 @@ +package me.zeroeightsix.kami.module.modules.hidden; + +import me.zeroeightsix.kami.module.Module; +import me.zeroeightsix.kami.setting.Setting; +import me.zeroeightsix.kami.setting.Settings; + +import static me.zeroeightsix.kami.util.GuiFrameUtil.fixFrames; + +/** + * @author S-B99 + * @see me.zeroeightsix.kami.command.commands.FixGuiCommand + */ +@Module.Info(name = "Hidden:FixGui", category = Module.Category.HIDDEN, showOnArray = Module.ShowOnArray.OFF, description = "Moves GUI elements back on screen") +public class FixGui extends Module { + public Setting shouldAutoEnable = register(Settings.b("Enable", true)); + public void onUpdate() { + fixFrames(mc); + } +} diff --git a/src/main/java/me/zeroeightsix/kami/util/GuiFrameUtil.java b/src/main/java/me/zeroeightsix/kami/util/GuiFrameUtil.java new file mode 100644 index 00000000..544ac2de --- /dev/null +++ b/src/main/java/me/zeroeightsix/kami/util/GuiFrameUtil.java @@ -0,0 +1,56 @@ +package me.zeroeightsix.kami.util; + +import me.zeroeightsix.kami.KamiMod; +import me.zeroeightsix.kami.command.Command; +import me.zeroeightsix.kami.gui.kami.KamiGUI; +import me.zeroeightsix.kami.gui.rgui.component.container.use.Frame; +import me.zeroeightsix.kami.gui.rgui.util.ContainerHelper; +import net.minecraft.client.Minecraft; +import org.lwjgl.opengl.Display; + +import java.util.List; + +/** + * @author S-B99 + * Created by S-B99 on 24/03/20 + */ +public class GuiFrameUtil { + // This is bad, but without a rearchitecture, it's probably staying... - 20kdc and S-B99 + public static Frame getFrameByName(String name) { + KamiGUI kamiGUI = KamiMod.getInstance().getGuiManager(); + if (kamiGUI == null) + return null; + List frames = ContainerHelper.getAllChildren(Frame.class, kamiGUI); + for (Frame frame : frames) + if (frame.getTitle().equalsIgnoreCase(name)) + return frame; + return null; + } + + /* Additional method to prevent calling kamiGui if you already have an instance */ + public static Frame getFrameByName(KamiGUI kamiGUI, String name) { + if (kamiGUI == null) + return null; + List frames = ContainerHelper.getAllChildren(Frame.class, kamiGUI); + for (Frame frame : frames) + if (frame.getTitle().equalsIgnoreCase(name)) + return frame; + return null; + } + + public static void fixFrames(Minecraft mc) { + KamiGUI kamiGUI = KamiMod.getInstance().getGuiManager(); + if (kamiGUI == null) return; + List frames = ContainerHelper.getAllChildren(Frame.class, kamiGUI); + for (Frame frame : frames) { + int divider = mc.gameSettings.guiScale; + if (divider == 0) divider = 3; + if (frame.getX() > (Display.getWidth() / divider)) { + frame.setX((Display.getWidth() / divider) - frame.getWidth()); + } + if (frame.getY() > (Display.getHeight() / divider)) { + frame.setY((Display.getHeight() / divider) - frame.getHeight()); + } + } + } +}