From 9198bc5243812d393422bdfdd237b58b6d8cea73 Mon Sep 17 00:00:00 2001 From: Bella Date: Thu, 16 Apr 2020 15:29:20 -0400 Subject: [PATCH 01/11] discordsettings > discordrpc --- .../me/zeroeightsix/kami/DiscordPresence.java | 21 +++++++++---------- .../kami/module/modules/hidden/RunConfig.java | 6 +++--- .../{DiscordSettings.java => DiscordRPC.java} | 4 ++-- 3 files changed, 15 insertions(+), 16 deletions(-) rename src/main/java/me/zeroeightsix/kami/module/modules/misc/{DiscordSettings.java => DiscordRPC.java} (95%) diff --git a/src/main/java/me/zeroeightsix/kami/DiscordPresence.java b/src/main/java/me/zeroeightsix/kami/DiscordPresence.java index b15c25327..facd397d8 100644 --- a/src/main/java/me/zeroeightsix/kami/DiscordPresence.java +++ b/src/main/java/me/zeroeightsix/kami/DiscordPresence.java @@ -1,9 +1,8 @@ package me.zeroeightsix.kami; import club.minnced.discord.rpc.DiscordEventHandlers; -import club.minnced.discord.rpc.DiscordRPC; import club.minnced.discord.rpc.DiscordRichPresence; -import me.zeroeightsix.kami.module.modules.misc.DiscordSettings; +import me.zeroeightsix.kami.module.modules.misc.DiscordRPC; import me.zeroeightsix.kami.util.RichPresence; import net.minecraft.client.Minecraft; @@ -18,10 +17,10 @@ import static me.zeroeightsix.kami.KamiMod.MODULE_MANAGER; public class DiscordPresence { public static DiscordRichPresence presence; private static boolean connected; - private static final DiscordRPC rpc; + private static final club.minnced.discord.rpc.DiscordRPC rpc; private static String details; private static String state; - private static DiscordSettings discordSettings; + private static DiscordRPC discordRPC; public static void start() { KamiMod.log.info("Starting Discord RPC"); @@ -52,10 +51,10 @@ public class DiscordPresence { while (!Thread.currentThread().isInterrupted()) { try { DiscordPresence.rpc.Discord_RunCallbacks(); - discordSettings = MODULE_MANAGER.getModuleT(DiscordSettings.class); + discordRPC = MODULE_MANAGER.getModuleT(DiscordRPC.class); String separator = " | "; - details = discordSettings.getLine(discordSettings.line1Setting.getValue()) + separator + discordSettings.getLine(discordSettings.line3Setting.getValue()); - state = discordSettings.getLine(discordSettings.line2Setting.getValue()) + separator + discordSettings.getLine(discordSettings.line4Setting.getValue()); + details = discordRPC.getLine(discordRPC.line1Setting.getValue()) + separator + discordRPC.getLine(discordRPC.line3Setting.getValue()); + state = discordRPC.getLine(discordRPC.line2Setting.getValue()) + separator + discordRPC.getLine(discordRPC.line4Setting.getValue()); DiscordPresence.presence.details = details; DiscordPresence.presence.state = state; DiscordPresence.rpc.Discord_UpdatePresence(DiscordPresence.presence); @@ -66,9 +65,9 @@ public class DiscordPresence { } } private static void setRpcFromSettings() { - discordSettings = MODULE_MANAGER.getModuleT(DiscordSettings.class); - details = discordSettings.getLine(discordSettings.line1Setting.getValue()) + " " + discordSettings.getLine(discordSettings.line3Setting.getValue()); - state = discordSettings.getLine(discordSettings.line2Setting.getValue()) + " " + discordSettings.getLine(discordSettings.line4Setting.getValue()); + discordRPC = MODULE_MANAGER.getModuleT(DiscordRPC.class); + details = discordRPC.getLine(discordRPC.line1Setting.getValue()) + " " + discordRPC.getLine(discordRPC.line3Setting.getValue()); + state = discordRPC.getLine(discordRPC.line2Setting.getValue()) + " " + discordRPC.getLine(discordRPC.line4Setting.getValue()); DiscordPresence.presence.details = details; DiscordPresence.presence.state = state; DiscordPresence.presence.largeImageKey = "kami"; @@ -77,7 +76,7 @@ public class DiscordPresence { } static { - rpc = DiscordRPC.INSTANCE; + rpc = club.minnced.discord.rpc.DiscordRPC.INSTANCE; DiscordPresence.presence = new DiscordRichPresence(); DiscordPresence.connected = false; } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/hidden/RunConfig.java b/src/main/java/me/zeroeightsix/kami/module/modules/hidden/RunConfig.java index 5c555b87d..8429271c3 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/hidden/RunConfig.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/hidden/RunConfig.java @@ -4,7 +4,7 @@ import me.zeroeightsix.kami.module.Module; import me.zeroeightsix.kami.module.modules.capes.Capes; import me.zeroeightsix.kami.module.modules.chat.CustomChat; import me.zeroeightsix.kami.module.modules.client.*; -import me.zeroeightsix.kami.module.modules.misc.DiscordSettings; +import me.zeroeightsix.kami.module.modules.misc.DiscordRPC; import me.zeroeightsix.kami.module.modules.render.TabFriends; import me.zeroeightsix.kami.setting.Setting; import me.zeroeightsix.kami.setting.Settings; @@ -18,7 +18,7 @@ import static me.zeroeightsix.kami.KamiMod.MODULE_MANAGER; @Module.Info(name = "RunConfig", category = Module.Category.HIDDEN, showOnArray = Module.ShowOnArray.OFF, description = "Default manager for first runs") public class RunConfig extends Module { private Setting hasRunCapes = register(Settings.b("Capes", false)); - private Setting hasRunDiscordSettings = register(Settings.b("DiscordSettings", false)); + private Setting hasRunDiscordSettings = register(Settings.b("DiscordRPC", false)); private Setting hasRunFixGui = register(Settings.b("FixGui", false)); private Setting hasRunTabFriends = register(Settings.b("TabFriends", false)); private Setting hasRunCustomChat = register(Settings.b("CustomChat", false)); @@ -35,7 +35,7 @@ public class RunConfig extends Module { hasRunCapes.setValue(true); } if (!hasRunDiscordSettings.getValue()) { - MODULE_MANAGER.getModule(DiscordSettings.class).enable(); + MODULE_MANAGER.getModule(DiscordRPC.class).enable(); hasRunDiscordSettings.setValue(true); } if (!hasRunFixGui.getValue()) { diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/DiscordSettings.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/DiscordRPC.java similarity index 95% rename from src/main/java/me/zeroeightsix/kami/module/modules/misc/DiscordSettings.java rename to src/main/java/me/zeroeightsix/kami/module/modules/misc/DiscordRPC.java index ab7a85e49..ab9a73c05 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/DiscordSettings.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/DiscordRPC.java @@ -14,8 +14,8 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendWarningMessage; * Updated by S-B99 on 13/01/20 * Updated (slightly) by Dewy on 3rd April 2020 */ -@Module.Info(name = "DiscordSettings", category = Module.Category.MISC, description = "Discord Rich Presence") -public class DiscordSettings extends Module { +@Module.Info(name = "DiscordRPC", category = Module.Category.MISC, description = "Discord Rich Presence") +public class DiscordRPC extends Module { private Setting coordsConfirm = register(Settings.b("Coords Confirm", false)); public Setting line1Setting = register(Settings.e("Line 1 Left", LineInfo.VERSION)); // details left public Setting line3Setting = register(Settings.e("Line 1 Right", LineInfo.USERNAME)); // details right From 9344e496c1bff333c81ef45216fa7246fc9e431a Mon Sep 17 00:00:00 2001 From: Bella Date: Thu, 16 Apr 2020 15:32:53 -0400 Subject: [PATCH 02/11] more reliable fixgui methods --- .../kami/command/commands/FixGuiCommand.java | 11 ++--------- .../kami/module/modules/combat/BreakingWarning.java | 5 +++-- .../kami/module/modules/player/LagNotifier.java | 5 +++-- .../java/me/zeroeightsix/kami/util/GuiFrameUtil.java | 5 +++-- 4 files changed, 11 insertions(+), 15 deletions(-) diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/FixGuiCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/FixGuiCommand.java index 9e5259ec1..3b1d002e6 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/FixGuiCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/FixGuiCommand.java @@ -18,14 +18,7 @@ public class FixGuiCommand extends Command { @Override public void call(String[] args) { - FixGui fixGui = MODULE_MANAGER.getModuleT(FixGui.class); - if (fixGui.isEnabled()) { - fixGui.disable(); - sendChatMessage("[" + getLabel() + "] Disabled"); - } - else { - fixGui.enable(); - sendChatMessage("[" + getLabel() + "] Enabled"); - } + MODULE_MANAGER.getModuleT(FixGui.class).enable(); + sendChatMessage(getChatLabel() + "Ran"); } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/BreakingWarning.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/BreakingWarning.java index 38c4df48c..da1ed9eb3 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/BreakingWarning.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/BreakingWarning.java @@ -15,6 +15,8 @@ import net.minecraft.item.ItemPickaxe; import net.minecraft.network.play.server.SPacketBlockBreakAnim; import net.minecraft.util.math.BlockPos; +import static me.zeroeightsix.kami.gui.kami.DisplayGuiScreen.getScale; + /** * @author Antonio32A * Updated by S-B99 on 31/03/20 @@ -70,8 +72,7 @@ public class BreakingWarning extends Module { String text = playerName + " is breaking blocks near you!"; FontRenderer renderer = Wrapper.getFontRenderer(); - int divider = mc.gameSettings.guiScale; - if (divider == 0) divider = 3; + int divider = getScale(); renderer.drawStringWithShadow(mc.displayWidth / divider / 2 - renderer.getStringWidth(text) / 2, mc.displayHeight / divider / 2 - 16, 240, 87, 70, text); } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/player/LagNotifier.java b/src/main/java/me/zeroeightsix/kami/module/modules/player/LagNotifier.java index fd28d88f7..69526942e 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/player/LagNotifier.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/player/LagNotifier.java @@ -9,6 +9,7 @@ import me.zeroeightsix.kami.setting.Setting; import me.zeroeightsix.kami.setting.Settings; import me.zeroeightsix.kami.util.Wrapper; +import static me.zeroeightsix.kami.gui.kami.DisplayGuiScreen.getScale; import static me.zeroeightsix.kami.util.InfoCalculator.round; /** @@ -26,8 +27,8 @@ public class LagNotifier extends Module { String text = "Server Not Responding! " + timeDifference() + "s"; FontRenderer renderer = Wrapper.getFontRenderer(); - int divider = mc.gameSettings.guiScale; - if (divider == 0) divider = 3; /* 217 is the offset to make it go high, bigger = higher, with 0 being center */ + int divider = getScale(); + /* 217 is the offset to make it go high, bigger = higher, with 0 being center */ renderer.drawStringWithShadow(mc.displayWidth / divider / 2 - renderer.getStringWidth(text) / 2, mc.displayHeight / divider / 2 - 217, 255, 85, 85, text); } diff --git a/src/main/java/me/zeroeightsix/kami/util/GuiFrameUtil.java b/src/main/java/me/zeroeightsix/kami/util/GuiFrameUtil.java index 6fde4dec0..82d5e34ed 100644 --- a/src/main/java/me/zeroeightsix/kami/util/GuiFrameUtil.java +++ b/src/main/java/me/zeroeightsix/kami/util/GuiFrameUtil.java @@ -9,6 +9,8 @@ import org.lwjgl.opengl.Display; import java.util.List; +import static me.zeroeightsix.kami.gui.kami.DisplayGuiScreen.getScale; + /** * @author S-B99 * Created by S-B99 on 24/03/20 @@ -42,8 +44,7 @@ public class GuiFrameUtil { if (kamiGUI == null || mc.player == null) return; List frames = ContainerHelper.getAllChildren(Frame.class, kamiGUI); for (Frame frame : frames) { - int divider = mc.gameSettings.guiScale; - if (divider == 0) divider = 3; + int divider = getScale(); if (frame.getX() > (Display.getWidth() / divider)) { frame.setX((Display.getWidth() / divider) - frame.getWidth()); } From 280088d8111698b9b51901527bd7a870f97ec57d Mon Sep 17 00:00:00 2001 From: Bella Date: Thu, 16 Apr 2020 15:49:01 -0400 Subject: [PATCH 03/11] Autoformat everything for #588 --- .../me/zeroeightsix/kami/DiscordPresence.java | 25 +- .../java/me/zeroeightsix/kami/KamiMod.java | 106 ++++---- .../me/zeroeightsix/kami/command/Command.java | 25 +- .../kami/command/CommandManager.java | 33 ++- .../command/commands/AutoReplyCommand.java | 4 +- .../kami/command/commands/CreditsCommand.java | 56 ++-- .../command/commands/EntityStatsCommand.java | 22 +- .../kami/command/commands/FriendCommand.java | 66 ++--- .../commands/GenerateWebsiteCommand.java | 2 +- .../kami/command/commands/HelpCommand.java | 6 +- .../kami/command/commands/NBTCommand.java | 5 +- .../kami/command/commands/PathCommand.java | 7 +- .../command/commands/SignBookCommand.java | 2 +- .../command/commands/TeleportCommand.java | 3 +- .../kami/command/commands/VanishCommand.java | 1 - .../kami/command/commands/XRayCommand.java | 2 +- .../kami/command/syntax/ChunkBuilder.java | 2 +- .../kami/command/syntax/SyntaxChunk.java | 11 +- .../command/syntax/parsers/BlockParser.java | 2 +- .../syntax/parsers/DependantParser.java | 4 +- .../command/syntax/parsers/EnumParser.java | 2 +- .../command/syntax/parsers/ValueParser.java | 2 +- .../me/zeroeightsix/kami/event/KamiEvent.java | 2 +- .../kami/event/events/ChunkEvent.java | 4 +- .../kami/event/events/EntityEvent.java | 18 +- .../event/events/EntityUseTotemEvent.java | 2 +- .../kami/event/events/PlayerMoveEvent.java | 16 +- .../kami/event/events/PlayerTravelEvent.java | 3 +- .../me/zeroeightsix/kami/gui/font/CFont.java | 2 +- .../kami/gui/font/CFontRenderer.java | 14 +- .../kami/gui/kami/DisplayGuiScreen.java | 30 +-- .../zeroeightsix/kami/gui/kami/KamiGUI.java | 154 ++++++----- .../gui/kami/component/ActiveModules.java | 2 +- .../kami/gui/kami/component/EnumButton.java | 16 +- .../gui/kami/component/SettingsPanel.java | 24 +- .../gui/kami/component/UnboundSlider.java | 11 +- .../kami/theme/kami/KamiActiveModulesUI.java | 3 +- .../gui/kami/theme/kami/KamiEnumButtonUI.java | 4 +- .../kami/gui/kami/theme/kami/KamiFrameUI.java | 4 +- .../kami/theme/kami/RootCheckButtonUI.java | 3 +- .../kami/gui/kami/theme/staticui/RadarUI.java | 3 +- .../zeroeightsix/kami/gui/mc/KamiGuiChat.java | 12 +- .../gui/mc/KamiGuiUpdateNotification.java | 3 +- .../me/zeroeightsix/kami/gui/rgui/GUI.java | 51 ++-- .../gui/rgui/component/AbstractComponent.java | 84 +++--- .../gui/rgui/component/AlignedComponent.java | 18 +- .../kami/gui/rgui/component/Component.java | 98 +++---- .../container/AbstractContainer.java | 11 +- .../rgui/component/container/Container.java | 18 +- .../rgui/component/container/use/Frame.java | 105 ++++---- .../component/container/use/Scrollpane.java | 16 +- .../rgui/component/listen/KeyListener.java | 6 +- .../rgui/component/listen/MouseListener.java | 52 ++-- .../rgui/component/listen/RenderListener.java | 4 +- .../rgui/component/listen/UpdateListener.java | 4 +- .../kami/gui/rgui/component/use/Button.java | 8 +- .../gui/rgui/component/use/CheckButton.java | 16 +- .../gui/rgui/component/use/InputField.java | 22 +- .../kami/gui/rgui/component/use/Label.java | 18 +- .../kami/gui/rgui/component/use/Slider.java | 44 +-- .../kami/gui/rgui/layout/Layout.java | 2 +- .../kami/gui/rgui/poof/IPoof.java | 6 +- .../kami/gui/rgui/poof/use/FramePoof.java | 10 +- .../kami/gui/rgui/poof/use/Poof.java | 4 +- .../gui/rgui/render/AbstractComponentUI.java | 2 +- .../kami/gui/rgui/render/ComponentUI.java | 20 +- .../gui/rgui/render/font/FontRenderer.java | 16 +- .../kami/gui/rgui/render/theme/Theme.java | 4 +- .../kami/gui/rgui/render/util/Uniform.java | 22 +- .../kami/mixin/client/MixinBlockSoulSand.java | 3 +- .../kami/mixin/client/MixinBlockWeb.java | 5 +- .../mixin/client/MixinEntityPlayerSP.java | 2 +- .../kami/mixin/client/MixinGuiChat.java | 6 +- .../kami/mixin/client/MixinGuiMainMenu.java | 2 - .../kami/mixin/client/MixinGuiScreen.java | 9 +- .../mixin/client/MixinLayerArmorBase.java | 2 +- .../client/MixinMovementInputFromOptions.java | 2 - .../kami/mixin/client/MixinRenderGlobal.java | 4 +- .../kami/mixin/client/MixinVisGraph.java | 2 +- .../me/zeroeightsix/kami/module/Module.java | 245 +++++++++-------- .../kami/module/ModuleManager.java | 4 +- .../kami/module/modules/capes/Capes.java | 79 +++--- .../kami/module/modules/capes/LayerCape.java | 3 +- .../kami/module/modules/chat/AntiSpam.java | 94 ++++--- .../kami/module/modules/chat/AutoQMain.java | 8 +- .../kami/module/modules/chat/AutoReply.java | 17 +- .../kami/module/modules/chat/AutoTPA.java | 1 - .../module/modules/chat/ChatEncryption.java | 19 +- .../kami/module/modules/chat/CustomChat.java | 65 +++-- .../module/modules/chat/DiscordNotifs.java | 56 ++-- .../kami/module/modules/chat/FancyChat.java | 31 ++- .../kami/module/modules/chat/FormatChat.java | 21 +- .../kami/module/modules/chat/Spammer.java | 21 +- .../module/modules/client/ActiveModules.java | 44 +-- .../module/modules/client/CommandConfig.java | 5 +- .../module/modules/client/InfoOverlay.java | 124 +++++---- .../modules/client/InventoryViewer.java | 44 +-- .../kami/module/modules/combat/AimBot.java | 4 +- .../module/modules/combat/AntiChainPop.java | 17 +- .../kami/module/modules/combat/Aura.java | 7 +- .../kami/module/modules/combat/AutoEZ.java | 124 ++++----- .../kami/module/modules/combat/AutoLog.java | 7 +- .../kami/module/modules/combat/AutoMend.java | 2 +- .../kami/module/modules/combat/AutoTotem.java | 14 +- .../modules/combat/BreakingWarning.java | 7 +- .../kami/module/modules/combat/Criticals.java | 2 +- .../module/modules/combat/CrystalAura.java | 209 +++++++-------- .../kami/module/modules/combat/Fastuse.java | 8 +- .../module/modules/combat/OffhandGap.java | 251 +++++++++--------- .../kami/module/modules/combat/Surround.java | 86 +++--- .../modules/combat/TotemPopCounter.java | 91 +++---- .../module/modules/combat/VisualRange.java | 6 +- .../modules/experimental/HoleFiller.java | 96 ++++--- .../kami/module/modules/hidden/CoordsLog.java | 18 +- .../kami/module/modules/hidden/Teleport.java | 4 +- .../kami/module/modules/misc/AntiAFK.java | 2 +- .../kami/module/modules/misc/AutoFish.java | 47 ++-- .../kami/module/modules/misc/AutoNametag.java | 2 +- .../module/modules/misc/AutoReconnect.java | 4 +- .../kami/module/modules/misc/AutoSpawner.java | 9 +- .../kami/module/modules/misc/AutoTool.java | 42 +-- .../kami/module/modules/misc/BlockData.java | 17 +- .../kami/module/modules/misc/BookCrash.java | 8 +- .../kami/module/modules/misc/CameraClip.java | 2 +- .../kami/module/modules/misc/ConsoleSpam.java | 12 +- .../kami/module/modules/misc/DiscordRPC.java | 21 +- .../kami/module/modules/misc/EntityTools.java | 26 +- .../module/modules/misc/MidClickFriends.java | 15 +- .../kami/module/modules/misc/SkinFlicker.java | 13 +- .../kami/module/modules/misc/XCarry.java | 2 +- .../module/modules/movement/AntiHunger.java | 2 +- .../module/modules/movement/AutoJump.java | 2 +- .../module/modules/movement/AutoRemount.java | 4 +- .../module/modules/movement/AutoWalk.java | 2 +- .../module/modules/movement/ElytraFlight.java | 34 ++- .../modules/movement/ElytraReplace.java | 4 +- .../module/modules/movement/EntitySpeed.java | 10 +- .../modules/movement/InventoryMove.java | 2 +- .../kami/module/modules/movement/Jesus.java | 26 +- .../module/modules/movement/NoSlowDown.java | 7 +- .../kami/module/modules/movement/Sprint.java | 11 +- .../module/modules/movement/TimerSpeed.java | 3 +- .../module/modules/movement/Velocity.java | 5 +- .../kami/module/modules/player/AutoEat.java | 9 +- .../module/modules/player/EndTeleport.java | 19 +- .../kami/module/modules/player/Freecam.java | 31 +-- .../module/modules/player/LagNotifier.java | 7 +- .../module/modules/player/NoEntityTrace.java | 3 +- .../kami/module/modules/player/NoFall.java | 15 +- .../module/modules/player/NoPacketKick.java | 2 +- .../kami/module/modules/player/NoSwing.java | 2 +- .../module/modules/player/PacketCancel.java | 24 +- .../kami/module/modules/player/Scaffold.java | 39 ++- .../kami/module/modules/player/Timer.java | 3 +- .../kami/module/modules/render/ArmourHUD.java | 9 +- .../module/modules/render/ArmourHide.java | 10 +- .../kami/module/modules/render/BossStack.java | 3 +- .../kami/module/modules/render/BoxESP.java | 2 +- .../module/modules/render/Brightness.java | 30 +-- .../module/modules/render/ChunkFinder.java | 49 ++-- .../kami/module/modules/render/CleanGUI.java | 3 +- .../kami/module/modules/render/ESP.java | 8 +- .../kami/module/modules/render/ExtraTab.java | 3 +- .../kami/module/modules/render/HoleESP.java | 73 +++-- .../kami/module/modules/render/MobOwner.java | 19 +- .../kami/module/modules/render/Nametags.java | 51 ++-- .../kami/module/modules/render/NoRender.java | 18 +- .../kami/module/modules/render/Pathfind.java | 2 +- .../module/modules/render/StorageESP.java | 2 +- .../kami/module/modules/render/Tracers.java | 107 ++++---- .../kami/module/modules/render/XRay.java | 133 +++++----- .../me/zeroeightsix/kami/setting/Setting.java | 13 +- .../kami/setting/SettingsRegister.java | 32 +-- .../kami/setting/builder/SettingBuilder.java | 16 +- .../numerical/IntegerSettingBuilder.java | 2 +- .../kami/setting/config/Configuration.java | 4 +- .../kami/setting/converter/EnumConverter.java | 3 +- .../kami/setting/impl/EnumSetting.java | 2 +- .../me/zeroeightsix/kami/util/BeaconGui.java | 61 ++--- .../java/me/zeroeightsix/kami/util/Bind.java | 98 +++---- .../kami/util/ColourConverter.java | 16 +- .../zeroeightsix/kami/util/ColourHolder.java | 44 +-- .../kami/util/ColourTextFormatting.java | 61 ++--- .../zeroeightsix/kami/util/ColourUtils.java | 114 ++++---- .../me/zeroeightsix/kami/util/EntityUtil.java | 7 +- .../me/zeroeightsix/kami/util/Friends.java | 34 +-- .../kami/util/InfoCalculator.java | 33 ++- .../me/zeroeightsix/kami/util/LogUtil.java | 2 +- .../kami/util/MessageDetectionHelper.java | 5 +- .../java/me/zeroeightsix/kami/util/Pair.java | 8 +- .../zeroeightsix/kami/util/RichPresence.java | 10 +- .../me/zeroeightsix/kami/util/TimeUtil.java | 31 ++- .../kami/util/TrajectoryCalculator.java | 43 ++- .../me/zeroeightsix/kami/util/VectorUtil.java | 12 +- .../me/zeroeightsix/kami/util/WebUtils.java | 52 ++-- 195 files changed, 2483 insertions(+), 2480 deletions(-) diff --git a/src/main/java/me/zeroeightsix/kami/DiscordPresence.java b/src/main/java/me/zeroeightsix/kami/DiscordPresence.java index facd397d8..59218c114 100644 --- a/src/main/java/me/zeroeightsix/kami/DiscordPresence.java +++ b/src/main/java/me/zeroeightsix/kami/DiscordPresence.java @@ -15,13 +15,19 @@ import static me.zeroeightsix.kami.KamiMod.MODULE_MANAGER; * Updated (slightly) by Dewy on 3rd April 2020 */ public class DiscordPresence { + private static final club.minnced.discord.rpc.DiscordRPC rpc; public static DiscordRichPresence presence; private static boolean connected; - private static final club.minnced.discord.rpc.DiscordRPC rpc; private static String details; private static String state; private static DiscordRPC discordRPC; + static { + rpc = club.minnced.discord.rpc.DiscordRPC.INSTANCE; + DiscordPresence.presence = new DiscordRichPresence(); + DiscordPresence.connected = false; + } + public static void start() { KamiMod.log.info("Starting Discord RPC"); if (DiscordPresence.connected) return; @@ -58,12 +64,17 @@ public class DiscordPresence { DiscordPresence.presence.details = details; DiscordPresence.presence.state = state; DiscordPresence.rpc.Discord_UpdatePresence(DiscordPresence.presence); + } catch (Exception e2) { + e2.printStackTrace(); + } + try { + Thread.sleep(4000L); + } catch (InterruptedException e3) { + e3.printStackTrace(); } - catch (Exception e2) { e2.printStackTrace(); } - try { Thread.sleep(4000L); } - catch (InterruptedException e3) { e3.printStackTrace(); } } } + private static void setRpcFromSettings() { discordRPC = MODULE_MANAGER.getModuleT(DiscordRPC.class); details = discordRPC.getLine(discordRPC.line1Setting.getValue()) + " " + discordRPC.getLine(discordRPC.line3Setting.getValue()); @@ -75,12 +86,6 @@ public class DiscordPresence { DiscordPresence.rpc.Discord_UpdatePresence(DiscordPresence.presence); } - static { - rpc = club.minnced.discord.rpc.DiscordRPC.INSTANCE; - DiscordPresence.presence = new DiscordRichPresence(); - DiscordPresence.connected = false; - } - public static void setCustomIcons() { if (RichPresence.INSTANCE.customUsers != null) { for (RichPresence.CustomUser user : RichPresence.INSTANCE.customUsers) { diff --git a/src/main/java/me/zeroeightsix/kami/KamiMod.java b/src/main/java/me/zeroeightsix/kami/KamiMod.java index 7cbfea686..d521a4dc6 100644 --- a/src/main/java/me/zeroeightsix/kami/KamiMod.java +++ b/src/main/java/me/zeroeightsix/kami/KamiMod.java @@ -73,24 +73,18 @@ public class KamiMod { public static final String MCVER = "1.12.2"; public static final String APP_ID = "638403216278683661"; - - private static final String UPDATE_JSON = "https://raw.githubusercontent.com/kami-blue/assets/assets/assets/updateChecker.json"; public static final String DONATORS_JSON = "https://raw.githubusercontent.com/kami-blue/assets/assets/assets/donators.json"; public static final String CAPES_JSON = "https://raw.githubusercontent.com/kami-blue/assets/assets/assets/capes.json"; public static final String GITHUB_LINK = "https://github.com/kami-blue/"; public static final String WEBSITE_LINK = "https://blue.bella.wtf"; - public static final String KAMI_KANJI = "\u30ab\u30df\u30d6\u30eb"; public static final char colour = '\u00A7'; public static final char separator = '\u23d0'; - - private static final String KAMI_CONFIG_NAME_DEFAULT = "KAMIBlueConfig.json"; - public static final Logger log = LogManager.getLogger("KAMI Blue"); - public static final EventBus EVENT_BUS = new EventManager(); public static final ModuleManager MODULE_MANAGER = new ModuleManager(); - + private static final String UPDATE_JSON = "https://raw.githubusercontent.com/kami-blue/assets/assets/assets/updateChecker.json"; + private static final String KAMI_CONFIG_NAME_DEFAULT = "KAMIBlueConfig.json"; public static String latest; // latest version (null if no internet or exception occurred) public static boolean isLatest; public static boolean hasAskedToUpdate = false; @@ -112,54 +106,6 @@ public class KamiMod { } }).buildAndRegister(""); - @Mod.EventHandler - public void preInit(FMLPreInitializationEvent event) { - updateCheck(); - } - - @Mod.EventHandler - public void postInit(FMLPostInitializationEvent event) { - setCustomIcons(); - Display.setTitle(MODNAME + " " + KAMI_KANJI + " " + MODVERSMALL); - } - - @Mod.EventHandler - public void init(FMLInitializationEvent event) { - log.info("\n\nInitializing " + MODNAME + " " + MODVER); - - MODULE_MANAGER.register(); - - MODULE_MANAGER.getModules().stream().filter(module -> module.alwaysListening).forEach(EVENT_BUS::subscribe); - MinecraftForge.EVENT_BUS.register(new ForgeEventProcessor()); - LagCompensator.INSTANCE = new LagCompensator(); - - Wrapper.init(); - - guiManager = new KamiGUI(); - guiManager.initializeGUI(); - - commandManager = new CommandManager(); - - Friends.initFriends(); - SettingsRegister.register("commandPrefix", Command.commandPrefix); - loadConfiguration(); - log.info("Settings loaded"); - - // custom names aren't known at compile-time - //MODULE_MANAGER.updateLookup(); // generate the lookup table after settings are loaded to make custom module names work - - new RichPresence(); - log.info("Rich Presence Users init!\n"); - - // After settings loaded, we want to let the enabled modules know they've been enabled (since the setting is done through reflection) - MODULE_MANAGER.getModules().stream().filter(Module::isEnabled).forEach(Module::enable); - - // load modules that are on by default // autoenable - MODULE_MANAGER.getModule(RunConfig.class).enable(); - - log.info(MODNAME + " Mod initialized!\n"); - } - public static String getConfigName() { Path config = Paths.get("KAMIBlueLastConfig.txt"); String kamiConfigName = KAMI_CONFIG_NAME_DEFAULT; @@ -257,6 +203,54 @@ public class KamiMod { return INSTANCE; } + @Mod.EventHandler + public void preInit(FMLPreInitializationEvent event) { + updateCheck(); + } + + @Mod.EventHandler + public void postInit(FMLPostInitializationEvent event) { + setCustomIcons(); + Display.setTitle(MODNAME + " " + KAMI_KANJI + " " + MODVERSMALL); + } + + @Mod.EventHandler + public void init(FMLInitializationEvent event) { + log.info("\n\nInitializing " + MODNAME + " " + MODVER); + + MODULE_MANAGER.register(); + + MODULE_MANAGER.getModules().stream().filter(module -> module.alwaysListening).forEach(EVENT_BUS::subscribe); + MinecraftForge.EVENT_BUS.register(new ForgeEventProcessor()); + LagCompensator.INSTANCE = new LagCompensator(); + + Wrapper.init(); + + guiManager = new KamiGUI(); + guiManager.initializeGUI(); + + commandManager = new CommandManager(); + + Friends.initFriends(); + SettingsRegister.register("commandPrefix", Command.commandPrefix); + loadConfiguration(); + log.info("Settings loaded"); + + // custom names aren't known at compile-time + //MODULE_MANAGER.updateLookup(); // generate the lookup table after settings are loaded to make custom module names work + + new RichPresence(); + log.info("Rich Presence Users init!\n"); + + // After settings loaded, we want to let the enabled modules know they've been enabled (since the setting is done through reflection) + MODULE_MANAGER.getModules().stream().filter(Module::isEnabled).forEach(Module::enable); + + // load modules that are on by default // autoenable + MODULE_MANAGER.getModule(RunConfig.class).enable(); + + log.info(MODNAME + " Mod initialized!\n"); + } + public KamiGUI getGuiManager() { return guiManager; } diff --git a/src/main/java/me/zeroeightsix/kami/command/Command.java b/src/main/java/me/zeroeightsix/kami/command/Command.java index cb9462548..c3268091c 100644 --- a/src/main/java/me/zeroeightsix/kami/command/Command.java +++ b/src/main/java/me/zeroeightsix/kami/command/Command.java @@ -1,36 +1,23 @@ package me.zeroeightsix.kami.command; -import me.zeroeightsix.kami.KamiMod; import me.zeroeightsix.kami.command.syntax.SyntaxChunk; import me.zeroeightsix.kami.setting.Setting; import me.zeroeightsix.kami.setting.Settings; -import me.zeroeightsix.kami.util.Wrapper; import net.minecraft.client.Minecraft; -import net.minecraft.launchwrapper.LogWrapper; -import net.minecraft.network.play.client.CPacketChatMessage; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TextComponentBase; import java.util.Arrays; import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import static me.zeroeightsix.kami.KamiMod.MODULE_MANAGER; public abstract class Command { + public static Setting commandPrefix = Settings.s("commandPrefix", ";"); + public final Minecraft mc = Minecraft.getMinecraft(); protected String label; protected String syntax; protected String description; protected List aliases; - - public final Minecraft mc = Minecraft.getMinecraft(); - protected SyntaxChunk[] syntaxChunks; - public static Setting commandPrefix = Settings.s("commandPrefix", ";"); - public Command(String label, SyntaxChunk[] syntaxChunks, String... aliases) { this.label = label; this.syntaxChunks = syntaxChunks; @@ -38,16 +25,16 @@ public abstract class Command { this.aliases = Arrays.asList(aliases); } - protected void setDescription(String description) { - this.description = description; + public static String getCommandPrefix() { + return commandPrefix.getValue(); } public String getDescription() { return description; } - public static String getCommandPrefix() { - return commandPrefix.getValue(); + protected void setDescription(String description) { + this.description = description; } public String getLabel() { diff --git a/src/main/java/me/zeroeightsix/kami/command/CommandManager.java b/src/main/java/me/zeroeightsix/kami/command/CommandManager.java index 36e2fae2c..5101d284a 100644 --- a/src/main/java/me/zeroeightsix/kami/command/CommandManager.java +++ b/src/main/java/me/zeroeightsix/kami/command/CommandManager.java @@ -14,7 +14,7 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; public class CommandManager { - private ArrayList commands; + private final ArrayList commands; public CommandManager() { commands = new ArrayList<>(); @@ -34,6 +34,21 @@ public class CommandManager { KamiMod.log.info("Commands initialised"); } + private static String[] removeElement(String[] input, int indexToDelete) { + List result = new LinkedList(); + + for (int i = 0; i < input.length; i++) { + if (i != indexToDelete) result.add(input[i]); + } + + return (String[]) result.toArray(input); + } + + private static String strip(String str, String key) { + if (str.startsWith(key) && str.endsWith(key)) return str.substring(key.length(), str.length() - key.length()); + return str; + } + public void callCommand(String command) { String[] parts = command.split(" (?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)"); // Split by every space if it isn't surrounded by quotes @@ -59,22 +74,6 @@ public class CommandManager { sendChatMessage("&7Unknown command. try '&f" + Command.getCommandPrefix() + "cmds&7' for a list of commands."); } - private static String[] removeElement(String[] input, int indexToDelete) { - List result = new LinkedList(); - - for (int i = 0; i < input.length; i++) { - if (i != indexToDelete) result.add(input[i]); - } - - return (String[]) result.toArray(input); - } - - - private static String strip(String str, String key) { - if (str.startsWith(key) && str.endsWith(key)) return str.substring(key.length(), str.length() - key.length()); - return str; - } - public ArrayList getCommands() { return commands; } diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/AutoReplyCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/AutoReplyCommand.java index 80aa1ec3e..13a25a829 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/AutoReplyCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/AutoReplyCommand.java @@ -32,7 +32,7 @@ public class AutoReplyCommand extends Command { if (s == null) continue; if (s.startsWith("=")) { - String sT = s.replace("=" ,""); + String sT = s.replace("=", ""); autoReply.listener.setValue(sT); sendChatMessage("Set the AutoReply listener to <" + sT + ">"); if (!autoReply.customListener.getValue()) { @@ -40,7 +40,7 @@ public class AutoReplyCommand extends Command { sendWarningMessage("The command will still work, but will not visibly do anything."); } } else if (s.startsWith("-")) { - String sT = s.replace("-" ,""); + String sT = s.replace("-", ""); autoReply.replyCommand.setValue(sT); sendChatMessage("Set the AutoReply reply command to <" + sT + ">"); if (!autoReply.customReplyCommand.getValue()) { diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/CreditsCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/CreditsCommand.java index a0acf19ac..452d4629b 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/CreditsCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/CreditsCommand.java @@ -47,36 +47,36 @@ public class CreditsCommand extends Command { // Bots 27856297 // dependabot - ); + ); String message = - "\nName (Github if not same as name)" + - "\n&l&9Author:" + - "\n086 (zeroeightysix)" + - "\n&l&9Contributors:" + - "\nBella (S-B99)" + - "\nhub (blockparole)" + - "\nSasha (EmotionalLove)" + - "\nQther (d1gress / Vonr)" + - "\ncats (Cuhnt)" + - "\nJack (jacksonellsworth03)" + - "\nTheBritishMidget (TBM)" + - "\nHamburger (Hamburger2k)" + - "\n0x2E (PretendingToCode)" + - "\nBattery Settings (Bluskript)" + - "\nAn-En (AnotherEntity)" + - "\nArisa (Arisa-Snowbell)" + - "\nJamie (jamie27)" + - "\nWaizy (WaizyNet)" + - "\nIt is the end (Itistheend)" + - "\nbabbaj" + - "\nCrystallinqq" + - "\nleijurv" + - "\nElementars"; + "\nName (Github if not same as name)" + + "\n&l&9Author:" + + "\n086 (zeroeightysix)" + + "\n&l&9Contributors:" + + "\nBella (S-B99)" + + "\nhub (blockparole)" + + "\nSasha (EmotionalLove)" + + "\nQther (d1gress / Vonr)" + + "\ncats (Cuhnt)" + + "\nJack (jacksonellsworth03)" + + "\nTheBritishMidget (TBM)" + + "\nHamburger (Hamburger2k)" + + "\n0x2E (PretendingToCode)" + + "\nBattery Settings (Bluskript)" + + "\nAn-En (AnotherEntity)" + + "\nArisa (Arisa-Snowbell)" + + "\nJamie (jamie27)" + + "\nWaizy (WaizyNet)" + + "\nIt is the end (Itistheend)" + + "\nbabbaj" + + "\nCrystallinqq" + + "\nleijurv" + + "\nElementars"; - for (WebUtils.GithubUser u : WebUtils.getContributors(exceptions)) { - message = message.concat("\n" + u.login); - } + for (WebUtils.GithubUser u : WebUtils.getContributors(exceptions)) { + message = message.concat("\n" + u.login); + } - sendChatMessage(message); + sendChatMessage(message); } } diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/EntityStatsCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/EntityStatsCommand.java index bf35c024f..df7e5b027 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/EntityStatsCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/EntityStatsCommand.java @@ -22,6 +22,14 @@ public class EntityStatsCommand extends Command { setDescription("Print the statistics of the entity you're currently riding"); } + public static double round(double value, int places) { + if (places < 0) throw new IllegalArgumentException(); + + BigDecimal bd = BigDecimal.valueOf(value); + bd = bd.setScale(places, RoundingMode.HALF_UP); + return bd.doubleValue(); + } + @Override public void call(String[] args) { @@ -34,9 +42,9 @@ public class EntityStatsCommand extends Command { String ownerId = horse.getOwnerUniqueId() == null ? "Not tamed." : horse.getOwnerUniqueId().toString(); String builder = "&6Entity Statistics:" + "\n&cMax Health: " + maxHealth + - "\n&cSpeed: " + speed + - "\n&cJump: " + jump + - "\n&cOwner: " + EntityUtil.getNameFromUUID(ownerId).replace("\"", ""); + "\n&cSpeed: " + speed + + "\n&cJump: " + jump + + "\n&cOwner: " + EntityUtil.getNameFromUUID(ownerId).replace("\"", ""); sendChatMessage(builder); } else if (mc.player.getRidingEntity() instanceof EntityLivingBase) { EntityLivingBase entity = (EntityLivingBase) mc.player.getRidingEntity(); @@ -45,12 +53,4 @@ public class EntityStatsCommand extends Command { sendChatMessage("&4&lError: &cNot riding a compatible entity."); } } - - public static double round(double value, int places) { - if (places < 0) throw new IllegalArgumentException(); - - BigDecimal bd = BigDecimal.valueOf(value); - bd = bd.setScale(places, RoundingMode.HALF_UP); - return bd.doubleValue(); - } } diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/FriendCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/FriendCommand.java index 166302ecc..9d6fbc89d 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/FriendCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/FriendCommand.java @@ -33,6 +33,39 @@ public class FriendCommand extends Command { setDescription("Add someone as your friend!"); } + private static String requestIDs(String data) { + try { + String query = "https://api.mojang.com/profiles/minecraft"; + + URL url = new URL(query); + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + conn.setConnectTimeout(5000); + conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); + conn.setDoOutput(true); + conn.setDoInput(true); + conn.setRequestMethod("POST"); + + OutputStream os = conn.getOutputStream(); + os.write(data.getBytes(StandardCharsets.UTF_8)); + os.close(); + + // read the response + InputStream in = new BufferedInputStream(conn.getInputStream()); + String res = convertStreamToString(in); + in.close(); + conn.disconnect(); + + return res; + } catch (Exception e) { + return null; + } + } + + private static String convertStreamToString(InputStream is) { + java.util.Scanner s = new java.util.Scanner(is).useDelimiter("\\A"); + return s.hasNext() ? s.next() : "/"; + } + @Override public void call(String[] args) { if (args[0] == null) { @@ -110,37 +143,4 @@ public class FriendCommand extends Command { } return new Friends.Friend(profile.getGameProfile().getName(), profile.getGameProfile().getId()); } - - private static String requestIDs(String data) { - try { - String query = "https://api.mojang.com/profiles/minecraft"; - - URL url = new URL(query); - HttpURLConnection conn = (HttpURLConnection) url.openConnection(); - conn.setConnectTimeout(5000); - conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); - conn.setDoOutput(true); - conn.setDoInput(true); - conn.setRequestMethod("POST"); - - OutputStream os = conn.getOutputStream(); - os.write(data.getBytes(StandardCharsets.UTF_8)); - os.close(); - - // read the response - InputStream in = new BufferedInputStream(conn.getInputStream()); - String res = convertStreamToString(in); - in.close(); - conn.disconnect(); - - return res; - } catch (Exception e) { - return null; - } - } - - private static String convertStreamToString(InputStream is) { - java.util.Scanner s = new java.util.Scanner(is).useDelimiter("\\A"); - return s.hasNext() ? s.next() : "/"; - } } diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/GenerateWebsiteCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/GenerateWebsiteCommand.java index aee36e267..0312538b0 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/GenerateWebsiteCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/GenerateWebsiteCommand.java @@ -15,7 +15,7 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; /** * @author S-B99 * Updated by S-B99 on 18/03/20 - * + *

* Horribly designed command for uh, generating the modules page on the website. This was the easiest way I could do it, but maybe not the most efficient. */ public class GenerateWebsiteCommand extends Command { diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/HelpCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/HelpCommand.java index 264da3dcd..d865f88e6 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/HelpCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/HelpCommand.java @@ -60,12 +60,10 @@ public class HelpCommand extends Command { String subject = args[0]; if (subject.equals("subjects")) { sendChatMessage("Subjects: " + subjectsList); - } - else if (subject.equals("bind")) { + } else if (subject.equals("bind")) { sendChatMessage("You can also use &7.bind&r modifiers on to allow modules to be bound to keybinds with modifiers, e.g &7ctrl + shift + w or ctrl + c.&r"); sendChatMessage("You can unbind modules with backspace in the GUI or by running &7.bind none&r"); - } - else { + } else { Subject subject1 = Arrays.stream(subjects).filter(subject2 -> { for (String name : subject2.names) if (name.equalsIgnoreCase(subject)) diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/NBTCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/NBTCommand.java index 4f1df1639..6ef54f6ae 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/NBTCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/NBTCommand.java @@ -19,6 +19,8 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendErrorMessage; */ public class NBTCommand extends Command { + private final Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); + private StringSelection nbt; public NBTCommand() { super("nbt", new ChunkBuilder() .append("action", true, new EnumParser(new String[]{"get", "copy", "wipe"})) @@ -26,9 +28,6 @@ public class NBTCommand extends Command { setDescription("Does NBT related stuff (&fget&7, &fcopy&7, &fset&7)"); } - private final Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); - private StringSelection nbt; - @Override public void call(String[] args) { if (args[0].isEmpty()) { diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/PathCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/PathCommand.java index 5836364fc..e5ae6bc28 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/PathCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/PathCommand.java @@ -11,15 +11,14 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; * Created by 086 on 25/01/2018. */ public class PathCommand extends Command { + int x = Integer.MIN_VALUE; + int y = Integer.MIN_VALUE; + int z = Integer.MIN_VALUE; public PathCommand() { super("path", new ChunkBuilder().append("x").append("y").append("z").build()); setDescription("Pathfinding for AutoWalk"); } - int x = Integer.MIN_VALUE; - int y = Integer.MIN_VALUE; - int z = Integer.MIN_VALUE; - @Override public void call(String[] args) { if (args[0] != null && args[0].equalsIgnoreCase("retry")) { diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/SignBookCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/SignBookCommand.java index 0141383e8..28a1dc44a 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/SignBookCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/SignBookCommand.java @@ -42,7 +42,7 @@ public class SignBookCommand extends Command { ArrayList toAdd = new ArrayList<>(Arrays.asList(args)); String futureTitle = String.join(" ", toAdd); - futureTitle = futureTitle.replaceAll("&", Character.toString((char)c)); + futureTitle = futureTitle.replaceAll("&", Character.toString((char) c)); futureTitle = futureTitle.replaceAll("#n", "\n"); futureTitle = futureTitle.replaceAll("null", ""); // Random extra null added sometimes diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/TeleportCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/TeleportCommand.java index fcf925647..02b0c2bd5 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/TeleportCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/TeleportCommand.java @@ -4,7 +4,6 @@ import me.zeroeightsix.kami.command.Command; import me.zeroeightsix.kami.command.syntax.ChunkBuilder; import me.zeroeightsix.kami.command.syntax.parsers.ModuleParser; import me.zeroeightsix.kami.module.modules.hidden.Teleport; -import net.minecraft.client.Minecraft; import net.minecraft.util.math.Vec3d; import java.text.DecimalFormat; @@ -20,7 +19,7 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendErrorMessage; public class TeleportCommand extends Command { - private DecimalFormat df = new DecimalFormat("#.###"); + private final DecimalFormat df = new DecimalFormat("#.###"); public TeleportCommand() { super("teleport", new ChunkBuilder() diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/VanishCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/VanishCommand.java index 542630434..43d03a882 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/VanishCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/VanishCommand.java @@ -1,7 +1,6 @@ package me.zeroeightsix.kami.command.commands; import me.zeroeightsix.kami.command.Command; -import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/XRayCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/XRayCommand.java index 1c702320e..0273cbfe6 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/XRayCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/XRayCommand.java @@ -63,7 +63,7 @@ public class XRayCommand extends Command { sendChatMessage("Enabled " + xr.getName() + " Invert"); } } else if (s.startsWith("=")) { - String sT = s.replace("=" ,""); + String sT = s.replace("=", ""); xr.extSet(sT); sendChatMessage("Set the " + xr.getName() + " block list to " + sT); } else if (s.startsWith("+") || s.startsWith("-")) { diff --git a/src/main/java/me/zeroeightsix/kami/command/syntax/ChunkBuilder.java b/src/main/java/me/zeroeightsix/kami/command/syntax/ChunkBuilder.java index 17a4a83f3..2626a0e16 100644 --- a/src/main/java/me/zeroeightsix/kami/command/syntax/ChunkBuilder.java +++ b/src/main/java/me/zeroeightsix/kami/command/syntax/ChunkBuilder.java @@ -9,7 +9,7 @@ import java.util.List; public class ChunkBuilder { private static final SyntaxChunk[] EXAMPLE = SyntaxChunk.EMPTY; - private List chunks = new ArrayList<>(); + private final List chunks = new ArrayList<>(); public ChunkBuilder append(SyntaxChunk syntaxChunk) { chunks.add(syntaxChunk); diff --git a/src/main/java/me/zeroeightsix/kami/command/syntax/SyntaxChunk.java b/src/main/java/me/zeroeightsix/kami/command/syntax/SyntaxChunk.java index d84abeb22..550ef6ec0 100644 --- a/src/main/java/me/zeroeightsix/kami/command/syntax/SyntaxChunk.java +++ b/src/main/java/me/zeroeightsix/kami/command/syntax/SyntaxChunk.java @@ -2,13 +2,12 @@ package me.zeroeightsix.kami.command.syntax; public class SyntaxChunk { - private boolean headless = false; - private String head; // Null if headless - private String type; - private boolean necessary; - private SyntaxParser parser; - public static final SyntaxChunk[] EMPTY = new SyntaxChunk[]{}; + private boolean headless = false; + private final String head; // Null if headless + private final String type; + private final boolean necessary; + private SyntaxParser parser; public SyntaxChunk(String head, String type, boolean necessary) { this.head = head; diff --git a/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/BlockParser.java b/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/BlockParser.java index 4a92436dd..d6da0527c 100644 --- a/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/BlockParser.java +++ b/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/BlockParser.java @@ -10,7 +10,7 @@ import java.util.TreeMap; public class BlockParser extends AbstractParser { - private static HashMap blockNames = new HashMap<>(); + private static final HashMap blockNames = new HashMap<>(); public BlockParser() { if (!blockNames.isEmpty()) return; diff --git a/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/DependantParser.java b/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/DependantParser.java index b7ab0cdd6..e055dfd59 100644 --- a/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/DependantParser.java +++ b/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/DependantParser.java @@ -4,8 +4,8 @@ import me.zeroeightsix.kami.command.syntax.SyntaxChunk; public class DependantParser extends AbstractParser { - private int dependantIndex; - private Dependency dependancy; + private final int dependantIndex; + private final Dependency dependancy; public DependantParser(int dependantIndex, Dependency dependancy) { this.dependantIndex = dependantIndex; diff --git a/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/EnumParser.java b/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/EnumParser.java index b8b8a740c..3da8670c4 100644 --- a/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/EnumParser.java +++ b/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/EnumParser.java @@ -8,7 +8,7 @@ import java.util.Collections; public class EnumParser extends AbstractParser { - private String[] modes; + private final String[] modes; public EnumParser(String[] modes) { this.modes = modes; diff --git a/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/ValueParser.java b/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/ValueParser.java index 4f982d6ad..e39bc35a3 100644 --- a/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/ValueParser.java +++ b/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/ValueParser.java @@ -12,7 +12,7 @@ import static me.zeroeightsix.kami.KamiMod.MODULE_MANAGER; public class ValueParser extends AbstractParser { - private int moduleIndex; + private final int moduleIndex; public ValueParser(int moduleIndex) { this.moduleIndex = moduleIndex; diff --git a/src/main/java/me/zeroeightsix/kami/event/KamiEvent.java b/src/main/java/me/zeroeightsix/kami/event/KamiEvent.java index 2e1005da2..7c194423b 100644 --- a/src/main/java/me/zeroeightsix/kami/event/KamiEvent.java +++ b/src/main/java/me/zeroeightsix/kami/event/KamiEvent.java @@ -8,8 +8,8 @@ import me.zeroeightsix.kami.util.Wrapper; */ public class KamiEvent extends Cancellable { - private Era era = Era.PRE; private final float partialTicks; + private final Era era = Era.PRE; public KamiEvent() { partialTicks = Wrapper.getMinecraft().getRenderPartialTicks(); diff --git a/src/main/java/me/zeroeightsix/kami/event/events/ChunkEvent.java b/src/main/java/me/zeroeightsix/kami/event/events/ChunkEvent.java index 43d8def8b..13eb9c829 100644 --- a/src/main/java/me/zeroeightsix/kami/event/events/ChunkEvent.java +++ b/src/main/java/me/zeroeightsix/kami/event/events/ChunkEvent.java @@ -8,8 +8,8 @@ import net.minecraft.world.chunk.Chunk; * @author 086 */ public class ChunkEvent extends KamiEvent { - private Chunk chunk; - private SPacketChunkData packet; + private final Chunk chunk; + private final SPacketChunkData packet; public ChunkEvent(Chunk chunk, SPacketChunkData packet) { this.chunk = chunk; diff --git a/src/main/java/me/zeroeightsix/kami/event/events/EntityEvent.java b/src/main/java/me/zeroeightsix/kami/event/events/EntityEvent.java index c31e36627..dcc1b4d69 100644 --- a/src/main/java/me/zeroeightsix/kami/event/events/EntityEvent.java +++ b/src/main/java/me/zeroeightsix/kami/event/events/EntityEvent.java @@ -8,7 +8,7 @@ import net.minecraft.entity.Entity; */ public class EntityEvent extends KamiEvent { - private Entity entity; + private final Entity entity; public EntityEvent(Entity entity) { super(); @@ -33,22 +33,22 @@ public class EntityEvent extends KamiEvent { return x; } - public double getY() { - return y; - } - - public double getZ() { - return z; - } - public void setX(double x) { this.x = x; } + public double getY() { + return y; + } + public void setY(double y) { this.y = y; } + public double getZ() { + return z; + } + public void setZ(double z) { this.z = z; } diff --git a/src/main/java/me/zeroeightsix/kami/event/events/EntityUseTotemEvent.java b/src/main/java/me/zeroeightsix/kami/event/events/EntityUseTotemEvent.java index d541a70ba..e2dd5b4ec 100644 --- a/src/main/java/me/zeroeightsix/kami/event/events/EntityUseTotemEvent.java +++ b/src/main/java/me/zeroeightsix/kami/event/events/EntityUseTotemEvent.java @@ -4,7 +4,7 @@ import me.zeroeightsix.kami.event.KamiEvent; import net.minecraft.entity.Entity; public class EntityUseTotemEvent extends KamiEvent { - private Entity entity; + private final Entity entity; public EntityUseTotemEvent(Entity entity) { super(); diff --git a/src/main/java/me/zeroeightsix/kami/event/events/PlayerMoveEvent.java b/src/main/java/me/zeroeightsix/kami/event/events/PlayerMoveEvent.java index a4578ed59..e2534ff1b 100644 --- a/src/main/java/me/zeroeightsix/kami/event/events/PlayerMoveEvent.java +++ b/src/main/java/me/zeroeightsix/kami/event/events/PlayerMoveEvent.java @@ -30,22 +30,22 @@ public class PlayerMoveEvent extends KamiEvent { return x; } - public double getY() { - return y; - } - - public double getZ() { - return z; - } - public void setX(double x) { this.x = x; } + public double getY() { + return y; + } + public void setY(double y) { this.y = y; } + public double getZ() { + return z; + } + public void setZ(double z) { this.z = z; } diff --git a/src/main/java/me/zeroeightsix/kami/event/events/PlayerTravelEvent.java b/src/main/java/me/zeroeightsix/kami/event/events/PlayerTravelEvent.java index 9e6d85fb6..23dfa4425 100644 --- a/src/main/java/me/zeroeightsix/kami/event/events/PlayerTravelEvent.java +++ b/src/main/java/me/zeroeightsix/kami/event/events/PlayerTravelEvent.java @@ -2,4 +2,5 @@ package me.zeroeightsix.kami.event.events; import me.zeroeightsix.kami.event.KamiEvent; -public class PlayerTravelEvent extends KamiEvent {} +public class PlayerTravelEvent extends KamiEvent { +} diff --git a/src/main/java/me/zeroeightsix/kami/gui/font/CFont.java b/src/main/java/me/zeroeightsix/kami/gui/font/CFont.java index 9d5abeeb8..efe5b38bb 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/font/CFont.java +++ b/src/main/java/me/zeroeightsix/kami/gui/font/CFont.java @@ -9,7 +9,6 @@ import java.awt.image.BufferedImage; public class CFont { - private float imgSize = 512; protected CharData[] charData = new CharData[256]; protected Font font; protected boolean antiAlias; @@ -17,6 +16,7 @@ public class CFont { protected int fontHeight = -1; protected int charOffset = 0; protected DynamicTexture tex; + private final float imgSize = 512; public CFont(Font font, boolean antiAlias, boolean fractionalMetrics) { this.font = font; diff --git a/src/main/java/me/zeroeightsix/kami/gui/font/CFontRenderer.java b/src/main/java/me/zeroeightsix/kami/gui/font/CFontRenderer.java index e81cfe331..f82bba5ea 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/font/CFontRenderer.java +++ b/src/main/java/me/zeroeightsix/kami/gui/font/CFontRenderer.java @@ -10,12 +10,14 @@ import java.util.List; public class CFontRenderer extends CFont { + private final int[] colorCode = new int[32]; + private final String colorcodeIdentifiers = "0123456789abcdefklmnor"; protected CharData[] boldChars = new CharData[256]; protected CharData[] italicChars = new CharData[256]; protected CharData[] boldItalicChars = new CharData[256]; - - private final int[] colorCode = new int[32]; - private final String colorcodeIdentifiers = "0123456789abcdefklmnor"; + protected DynamicTexture texBold; + protected DynamicTexture texItalic; + protected DynamicTexture texItalicBold; public CFontRenderer(Font font, boolean antiAlias, boolean fractionalMetrics) { super(font, antiAlias, fractionalMetrics); @@ -213,10 +215,6 @@ public class CFontRenderer extends CFont { setupBoldItalicIDs(); } - protected DynamicTexture texBold; - protected DynamicTexture texItalic; - protected DynamicTexture texItalicBold; - private void setupBoldItalicIDs() { texBold = setupTexture(this.font.deriveFont(1), this.antiAlias, this.fractionalMetrics, this.boldChars); texItalic = setupTexture(this.font.deriveFont(2), this.antiAlias, this.fractionalMetrics, this.italicChars); @@ -284,7 +282,7 @@ public class CFontRenderer extends CFont { currentWord = currentWord + c; } else { finalWords.add(currentWord); - currentWord = "\u00A7" + lastColorCode + String.valueOf(c); + currentWord = "\u00A7" + lastColorCode + c; } } diff --git a/src/main/java/me/zeroeightsix/kami/gui/kami/DisplayGuiScreen.java b/src/main/java/me/zeroeightsix/kami/gui/kami/DisplayGuiScreen.java index 982d3a5b8..fb7a7b3af 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/kami/DisplayGuiScreen.java +++ b/src/main/java/me/zeroeightsix/kami/gui/kami/DisplayGuiScreen.java @@ -24,12 +24,10 @@ import static org.lwjgl.opengl.GL11.glEnable; */ public class DisplayGuiScreen extends GuiScreen { - KamiGUI gui; - public final GuiScreen lastScreen; - public static int mouseX; public static int mouseY; - + public final GuiScreen lastScreen; + KamiGUI gui; Framebuffer framebuffer; public DisplayGuiScreen(GuiScreen lastScreen) { @@ -49,6 +47,18 @@ public class DisplayGuiScreen extends GuiScreen { framebuffer = new Framebuffer(Wrapper.getMinecraft().displayWidth, Wrapper.getMinecraft().displayHeight, false); } + public static int getScale() { + int scaleFactor = 0; + int scale = Wrapper.getMinecraft().gameSettings.guiScale; + if (scale == 0) + scale = 1000; + while (scaleFactor < scale && Wrapper.getMinecraft().displayWidth / (scaleFactor + 1) >= 320 && Wrapper.getMinecraft().displayHeight / (scaleFactor + 1) >= 240) + scaleFactor++; + if (scaleFactor == 0) + scaleFactor = 1; + return scaleFactor; + } + @Override public void onGuiClosed() { KamiGUI gui = KamiMod.getInstance().getGuiManager(); @@ -104,18 +114,6 @@ public class DisplayGuiScreen extends GuiScreen { } } - public static int getScale() { - int scaleFactor = 0; - int scale = Wrapper.getMinecraft().gameSettings.guiScale; - if (scale == 0) - scale = 1000; - while (scaleFactor < scale && Wrapper.getMinecraft().displayWidth / (scaleFactor + 1) >= 320 && Wrapper.getMinecraft().displayHeight / (scaleFactor + 1) >= 240) - scaleFactor++; - if (scaleFactor == 0) - scaleFactor = 1; - return scaleFactor; - } - private void calculateMouse() { Minecraft minecraft = Minecraft.getMinecraft(); int scaleFactor = getScale(); diff --git a/src/main/java/me/zeroeightsix/kami/gui/kami/KamiGUI.java b/src/main/java/me/zeroeightsix/kami/gui/kami/KamiGUI.java index 64e3c4133..ec70638f7 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/kami/KamiGUI.java +++ b/src/main/java/me/zeroeightsix/kami/gui/kami/KamiGUI.java @@ -45,20 +45,79 @@ import static me.zeroeightsix.kami.util.InfoCalculator.cardinalToAxis; /** * Created by 086 on 25/06/2017. * Updated by S-B99 on 28/01/20 + * * @see me.zeroeightsix.kami.module.modules.client.InventoryViewer */ public class KamiGUI extends GUI { public static final RootFontRenderer fontRenderer = new RootFontRenderer(1); - public Theme theme; - + private static final int DOCK_OFFSET = 0; public static ColourHolder primaryColour = new ColourHolder(29, 29, 29); + public Theme theme; public KamiGUI() { super(new KamiTheme()); theme = getTheme(); } + private static String getEntityName(@Nonnull Entity entity) { + if (entity instanceof EntityItem) { + return TextFormatting.DARK_AQUA + ((EntityItem) entity).getItem().getItem().getItemStackDisplayName(((EntityItem) entity).getItem()); + } + if (entity instanceof EntityWitherSkull) { + return TextFormatting.DARK_GRAY + "Wither skull"; + } + if (entity instanceof EntityEnderCrystal) { + return TextFormatting.LIGHT_PURPLE + "End crystal"; + } + if (entity instanceof EntityEnderPearl) { + return "Thrown ender pearl"; + } + if (entity instanceof EntityMinecart) { + return "Minecart"; + } + if (entity instanceof EntityItemFrame) { + return "Item frame"; + } + if (entity instanceof EntityEgg) { + return "Thrown egg"; + } + if (entity instanceof EntitySnowball) { + return "Thrown snowball"; + } + + return entity.getName(); + } + + public static > Map sortByValue(Map map) { + List> list = + new LinkedList<>(map.entrySet()); + Collections.sort(list, Comparator.comparing(o -> (o.getValue()))); + + Map result = new LinkedHashMap(); + for (Map.Entry entry : list) { + result.put(entry.getKey(), entry.getValue()); + } + return result; + } + + public static void dock(Frame component) { + Docking docking = component.getDocking(); + if (docking.isTop()) + component.setY(DOCK_OFFSET); + if (docking.isBottom()) + component.setY((Wrapper.getMinecraft().displayHeight / DisplayGuiScreen.getScale()) - component.getHeight() - DOCK_OFFSET); + if (docking.isLeft()) + component.setX(DOCK_OFFSET); + if (docking.isRight()) + component.setX((Wrapper.getMinecraft().displayWidth / DisplayGuiScreen.getScale()) - component.getWidth() - DOCK_OFFSET); + if (docking.isCenterHorizontal()) + component.setX((Wrapper.getMinecraft().displayWidth / (DisplayGuiScreen.getScale() * 2) - component.getWidth() / 2)); + if (docking.isCenterVertical()) + component.setY(Wrapper.getMinecraft().displayHeight / (DisplayGuiScreen.getScale() * 2) - component.getHeight() / 2); + + } + @Override public void drawGUI() { super.drawGUI(); @@ -175,13 +234,21 @@ public class KamiGUI extends GUI { } } - @Override public void onMouseRelease(MouseButtonEvent event) { } + @Override + public void onMouseRelease(MouseButtonEvent event) { + } - @Override public void onMouseDrag(MouseButtonEvent event) { } + @Override + public void onMouseDrag(MouseButtonEvent event) { + } - @Override public void onMouseMove(MouseMoveEvent event) { } + @Override + public void onMouseMove(MouseMoveEvent event) { + } - @Override public void onScroll(MouseScrollEvent event) { } + @Override + public void onScroll(MouseScrollEvent event) { + } }); ArrayList frames = new ArrayList<>(); @@ -228,7 +295,7 @@ public class KamiGUI extends GUI { // information2.setFontRenderer(fontRenderer); frames.add(frame); */ - + /* * Information Overlay / InfoOverlay */ @@ -318,8 +385,10 @@ public class KamiGUI extends GUI { String extraPaddingForFactors; EntityPlayer ePlayer = (EntityPlayer) e; - if (ePlayer.isPotionActive(MobEffects.WEAKNESS)) weaknessFactor = "W"; else weaknessFactor = ""; - if (ePlayer.isPotionActive(MobEffects.STRENGTH)) strengthFactor = "S"; else strengthFactor = ""; + if (ePlayer.isPotionActive(MobEffects.WEAKNESS)) weaknessFactor = "W"; + else weaknessFactor = ""; + if (ePlayer.isPotionActive(MobEffects.STRENGTH)) strengthFactor = "S"; + else strengthFactor = ""; if (weaknessFactor.equals("") && strengthFactor.equals("")) extraPaddingForFactors = ""; else extraPaddingForFactors = " "; @@ -368,7 +437,7 @@ public class KamiGUI extends GUI { frame.setCloseable(false); Frame finalFrame1 = frame; entityLabel.addTickListener(new TickListener() { - Minecraft mc = Wrapper.getMinecraft(); + final Minecraft mc = Wrapper.getMinecraft(); @Override public void onTick() { @@ -418,7 +487,7 @@ public class KamiGUI extends GUI { frame.setPinnable(true); Label coordsLabel = new Label(""); coordsLabel.addTickListener(new TickListener() { - Minecraft mc = Minecraft.getMinecraft(); + final Minecraft mc = Minecraft.getMinecraft(); @Override public void onTick() { @@ -496,65 +565,8 @@ public class KamiGUI extends GUI { } } - private static String getEntityName(@Nonnull Entity entity) { - if (entity instanceof EntityItem) { - return TextFormatting.DARK_AQUA + ((EntityItem) entity).getItem().getItem().getItemStackDisplayName(((EntityItem) entity).getItem()); - } - if (entity instanceof EntityWitherSkull) { - return TextFormatting.DARK_GRAY + "Wither skull"; - } - if (entity instanceof EntityEnderCrystal) { - return TextFormatting.LIGHT_PURPLE + "End crystal"; - } - if (entity instanceof EntityEnderPearl) { - return "Thrown ender pearl"; - } - if (entity instanceof EntityMinecart) { - return "Minecart"; - } - if (entity instanceof EntityItemFrame) { - return "Item frame"; - } - if (entity instanceof EntityEgg) { - return "Thrown egg"; - } - if (entity instanceof EntitySnowball) { - return "Thrown snowball"; - } - - return entity.getName(); - } - - public static > Map sortByValue(Map map) { - List> list = - new LinkedList<>(map.entrySet()); - Collections.sort(list, Comparator.comparing(o -> (o.getValue()))); - - Map result = new LinkedHashMap(); - for (Map.Entry entry : list) { - result.put(entry.getKey(), entry.getValue()); - } - return result; - } - - @Override public void destroyGUI() { kill(); } - - private static final int DOCK_OFFSET = 0; - - public static void dock(Frame component) { - Docking docking = component.getDocking(); - if (docking.isTop()) - component.setY(DOCK_OFFSET); - if (docking.isBottom()) - component.setY((Wrapper.getMinecraft().displayHeight / DisplayGuiScreen.getScale()) - component.getHeight() - DOCK_OFFSET); - if (docking.isLeft()) - component.setX(DOCK_OFFSET); - if (docking.isRight()) - component.setX((Wrapper.getMinecraft().displayWidth / DisplayGuiScreen.getScale()) - component.getWidth() - DOCK_OFFSET); - if (docking.isCenterHorizontal()) - component.setX((Wrapper.getMinecraft().displayWidth / (DisplayGuiScreen.getScale() * 2) - component.getWidth() / 2)); - if (docking.isCenterVertical()) - component.setY(Wrapper.getMinecraft().displayHeight / (DisplayGuiScreen.getScale() * 2) - component.getHeight() / 2); - + @Override + public void destroyGUI() { + kill(); } } diff --git a/src/main/java/me/zeroeightsix/kami/gui/kami/component/ActiveModules.java b/src/main/java/me/zeroeightsix/kami/gui/kami/component/ActiveModules.java index 49fe5df0d..d91f6f8ee 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/kami/component/ActiveModules.java +++ b/src/main/java/me/zeroeightsix/kami/gui/kami/component/ActiveModules.java @@ -29,4 +29,4 @@ public class ActiveModules extends Label { } }); } -}; \ No newline at end of file +} \ No newline at end of file diff --git a/src/main/java/me/zeroeightsix/kami/gui/kami/component/EnumButton.java b/src/main/java/me/zeroeightsix/kami/gui/kami/component/EnumButton.java index d842796c9..4147cfcab 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/kami/component/EnumButton.java +++ b/src/main/java/me/zeroeightsix/kami/gui/kami/component/EnumButton.java @@ -32,10 +32,6 @@ public class EnumButton extends Button { }); } - public void setModes(String[] modes) { - this.modes = modes; - } - protected void increaseIndex(int amount) { int old = index; int newI = index + amount; @@ -53,16 +49,20 @@ public class EnumButton extends Button { return index; } + public void setIndex(int index) { + this.index = index; + } + public String[] getModes() { return modes; } - public String getIndexMode() { - return modes[index]; + public void setModes(String[] modes) { + this.modes = modes; } - public void setIndex(int index) { - this.index = index; + public String getIndexMode() { + return modes[index]; } public static abstract class EnumbuttonIndexPoof extends Poof { diff --git a/src/main/java/me/zeroeightsix/kami/gui/kami/component/SettingsPanel.java b/src/main/java/me/zeroeightsix/kami/gui/kami/component/SettingsPanel.java index fdc2f1427..f28673032 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/kami/component/SettingsPanel.java +++ b/src/main/java/me/zeroeightsix/kami/gui/kami/component/SettingsPanel.java @@ -41,6 +41,18 @@ public class SettingsPanel extends OrganisedContainer { return module; } + public void setModule(Module module) { + this.module = module; + setMinimumWidth((int) (getParent().getWidth() * .9f)); + prepare(); + + setAffectLayout(false); + for (Component component : children) { + component.setWidth(getWidth() - 10); + component.setX(5); + } + } + private void prepare() { getChildren().clear(); if (module == null) { @@ -143,16 +155,4 @@ public class SettingsPanel extends OrganisedContainer { return; } } - - public void setModule(Module module) { - this.module = module; - setMinimumWidth((int) (getParent().getWidth() * .9f)); - prepare(); - - setAffectLayout(false); - for (Component component : children) { - component.setWidth(getWidth() - 10); - component.setX(5); - } - } } diff --git a/src/main/java/me/zeroeightsix/kami/gui/kami/component/UnboundSlider.java b/src/main/java/me/zeroeightsix/kami/gui/kami/component/UnboundSlider.java index c9e4ade3a..0203dae56 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/kami/component/UnboundSlider.java +++ b/src/main/java/me/zeroeightsix/kami/gui/kami/component/UnboundSlider.java @@ -9,10 +9,9 @@ import me.zeroeightsix.kami.gui.rgui.component.use.Slider; */ public class UnboundSlider extends AbstractComponent { + public int sensitivity = 5; double value; String text; - public int sensitivity = 5; - int originX; double originValue; @@ -64,6 +63,10 @@ public class UnboundSlider extends AbstractComponent { this.min = min; } + public double getValue() { + return value; + } + public void setValue(double value) { if (min != Double.MIN_VALUE) value = Math.max(value, min); if (max != Double.MAX_VALUE) value = Math.min(value, max); @@ -72,10 +75,6 @@ public class UnboundSlider extends AbstractComponent { this.value = integer ? Math.floor(info.getNewValue()) : info.getNewValue(); } - public double getValue() { - return value; - } - public String getText() { return text; } diff --git a/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/KamiActiveModulesUI.java b/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/KamiActiveModulesUI.java index 79fa12320..db3b19600 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/KamiActiveModulesUI.java +++ b/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/KamiActiveModulesUI.java @@ -25,6 +25,7 @@ import static org.lwjgl.opengl.GL11.glDisable; */ public class KamiActiveModulesUI extends AbstractComponentUI { ActiveModules activeMods; + @Override public void renderComponent(me.zeroeightsix.kami.gui.kami.component.ActiveModules component, FontRenderer f) { GL11.glDisable(GL11.GL_CULL_FACE); @@ -60,7 +61,7 @@ public class KamiActiveModulesUI extends AbstractComponentUI { - RootSmallFontRenderer smallFontRenderer = new RootSmallFontRenderer(); - protected Color idleColour = new Color(163, 163, 163); protected Color downColour = new Color(255, 255, 255); - + RootSmallFontRenderer smallFontRenderer = new RootSmallFontRenderer(); EnumButton modeComponent; long lastMS = System.currentTimeMillis(); diff --git a/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/KamiFrameUI.java b/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/KamiFrameUI.java index 6eaa2b082..68bc62e4e 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/KamiFrameUI.java +++ b/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/KamiFrameUI.java @@ -28,9 +28,9 @@ import static org.lwjgl.opengl.GL11.*; */ public class KamiFrameUI extends AbstractComponentUI { + private static final RootFontRenderer ff = new RootLargeFontRenderer(); ColourHolder frameColour = KamiGUI.primaryColour.setA(100); ColourHolder outlineColour = frameColour.darker(); - Component yLineComponent = null; Component xLineComponent = null; Component centerXComponent = null; @@ -39,8 +39,6 @@ public class KamiFrameUI extends AbstractComponentUI { boolean centerY = false; int xLineOffset = 0; - private static final RootFontRenderer ff = new RootLargeFontRenderer(); - @Override public void renderComponent(Frame component, FontRenderer fontRenderer) { if (component.getOpacity() == 0) diff --git a/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/RootCheckButtonUI.java b/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/RootCheckButtonUI.java index 72910470c..de06fca33 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/RootCheckButtonUI.java +++ b/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/RootCheckButtonUI.java @@ -48,7 +48,8 @@ public class RootCheckButtonUI extends AbstractComponentU c = (c & GuiC.buttonHoveredN.color.getRGB()) << 1; // hovered text color if (component.hasDescription() && !isSettingsOpen() && MODULE_MANAGER.isModuleEnabled(Tooltips.class)) { Component componentAt = KamiMod.getInstance().guiManager.getComponentAt(DisplayGuiScreen.mouseX, DisplayGuiScreen.mouseY); - if (componentAt.getHeight() != 11) return; // PREVENT DRAWING WHEN OUTSIDE THE CONTAINER // 11 is height of the regular module + if (componentAt.getHeight() != 11) + return; // PREVENT DRAWING WHEN OUTSIDE THE CONTAINER // 11 is height of the regular module glDisable(GL_SCISSOR_TEST); // let it draw outside of the container glDepthRange(0, 0.01); // set render priority to the top diff --git a/src/main/java/me/zeroeightsix/kami/gui/kami/theme/staticui/RadarUI.java b/src/main/java/me/zeroeightsix/kami/gui/kami/theme/staticui/RadarUI.java index e81833f2c..a42ead1f0 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/kami/theme/staticui/RadarUI.java +++ b/src/main/java/me/zeroeightsix/kami/gui/kami/theme/staticui/RadarUI.java @@ -9,7 +9,6 @@ import me.zeroeightsix.kami.util.Wrapper; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; import org.lwjgl.opengl.GL11; import static org.lwjgl.opengl.GL11.*; @@ -19,8 +18,8 @@ import static org.lwjgl.opengl.GL11.*; */ public class RadarUI extends AbstractComponentUI { - float scale = 2; public final static int radius = 45; + float scale = 2; @Override public void handleSizeComponent(Radar component) { diff --git a/src/main/java/me/zeroeightsix/kami/gui/mc/KamiGuiChat.java b/src/main/java/me/zeroeightsix/kami/gui/mc/KamiGuiChat.java index 0cf492721..77d12942b 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/mc/KamiGuiChat.java +++ b/src/main/java/me/zeroeightsix/kami/gui/mc/KamiGuiChat.java @@ -18,7 +18,7 @@ import static me.zeroeightsix.kami.util.ColourConverter.toF; public class KamiGuiChat extends GuiChat { - private String startString; + private final String startString; private String currentFillinLine; private int cursor; @@ -77,7 +77,8 @@ public class KamiGuiChat extends GuiChat { if (c.getLabel().startsWith(args[0]) || c.getLabel().equals(args[0])) options.put(c.getLabel(), c); - if (c.getAliases() != null) c.getAliases().stream().filter(alias -> alias.startsWith(args[0]) || alias.equals(args[0])).forEach(alias -> options.put(alias, c)); + if (c.getAliases() != null) + c.getAliases().stream().filter(alias -> alias.startsWith(args[0]) || alias.equals(args[0])).forEach(alias -> options.put(alias, c)); } if (options.isEmpty()) { @@ -91,9 +92,10 @@ public class KamiGuiChat extends GuiChat { AtomicBoolean isAlias = new AtomicBoolean(false); currentFillinLine = alphaCommand.getAliases().stream().filter(alias -> - alias.startsWith(args[0])).findFirst().map(s -> { isAlias.set(true); - return s.substring(args[0].length()); - }).orElseGet(() -> + alias.startsWith(args[0])).findFirst().map(s -> { + isAlias.set(true); + return s.substring(args[0].length()); + }).orElseGet(() -> alphaCommand.getLabel().substring(args[0].length())); if (alphaCommand.getSyntaxChunks() == null || alphaCommand.getSyntaxChunks().length == 0) diff --git a/src/main/java/me/zeroeightsix/kami/gui/mc/KamiGuiUpdateNotification.java b/src/main/java/me/zeroeightsix/kami/gui/mc/KamiGuiUpdateNotification.java index 6afd1d585..4d782f413 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/mc/KamiGuiUpdateNotification.java +++ b/src/main/java/me/zeroeightsix/kami/gui/mc/KamiGuiUpdateNotification.java @@ -45,7 +45,8 @@ public class KamiGuiUpdateNotification extends GuiScreen { } @Override - protected void keyTyped(char typedChar, int keyCode) {} + protected void keyTyped(char typedChar, int keyCode) { + } @Override protected void actionPerformed(GuiButton button) { diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/GUI.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/GUI.java index 6c69b6e82..4e9d1965f 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/GUI.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/GUI.java @@ -28,11 +28,36 @@ public abstract class GUI extends AbstractContainer { int mx = 0; int my = 0; + long lastMS = System.currentTimeMillis(); public GUI(Theme theme) { super(theme); } + public static int[] calculateRealPosition(Component c) { + int realX = c.getX(), realY = c.getY(); + if (c instanceof Container) { + realX += ((Container) c).getOriginOffsetX(); + realY += ((Container) c).getOriginOffsetY(); + } + + Component parent = c.getParent(); + while (parent != null) { + realX += parent.getX(); + realY += parent.getY(); + if (parent instanceof Container) { + realX += ((Container) parent).getOriginOffsetX(); + realY += ((Container) parent).getOriginOffsetY(); + } + parent = parent.getParent(); + } + + return new int[]{ + realX, + realY + }; + } + public abstract void initializeGUI(); public abstract void destroyGUI(); @@ -333,8 +358,6 @@ public abstract class GUI extends AbstractContainer { } } - long lastMS = System.currentTimeMillis(); - public void update() { if (System.currentTimeMillis() - lastMS > 1000 / 20) { callTick(this); @@ -349,28 +372,4 @@ public abstract class GUI extends AbstractContainer { public Component getFocus() { return focus; } - - public static int[] calculateRealPosition(Component c) { - int realX = c.getX(), realY = c.getY(); - if (c instanceof Container) { - realX += ((Container) c).getOriginOffsetX(); - realY += ((Container) c).getOriginOffsetY(); - } - - Component parent = c.getParent(); - while (parent != null) { - realX += parent.getX(); - realY += parent.getY(); - if (parent instanceof Container) { - realX += ((Container) parent).getOriginOffsetX(); - realY += ((Container) parent).getOriginOffsetY(); - } - parent = parent.getParent(); - } - - return new int[]{ - realX, - realY - }; - } } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/AbstractComponent.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/AbstractComponent.java index 555731b39..24f3c13f4 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/AbstractComponent.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/AbstractComponent.java @@ -18,37 +18,33 @@ import java.util.ArrayList; */ public abstract class AbstractComponent implements Component { + protected int priority = 0; int x; int y; int width; int height; - int minWidth = Integer.MIN_VALUE; int minHeight = Integer.MIN_VALUE; int maxWidth = Integer.MAX_VALUE; int maxHeight = Integer.MAX_VALUE; - - protected int priority = 0; - private Setting visible = Settings.b("Visible", true); float opacity = 1f; - private boolean focus = false; ComponentUI ui; Theme theme; Container parent; - boolean hover = false; boolean press = false; boolean drag = false; - boolean affectlayout = true; - ArrayList mouseListeners = new ArrayList<>(); ArrayList renderListeners = new ArrayList<>(); ArrayList keyListeners = new ArrayList<>(); ArrayList updateListeners = new ArrayList<>(); ArrayList tickListeners = new ArrayList<>(); - ArrayList poofs = new ArrayList<>(); + boolean workingy = false; + boolean workingx = false; + private Setting visible = Settings.b("Visible", true); + private boolean focus = false; public AbstractComponent() { addMouseListener(new MouseListener() { @@ -107,13 +103,13 @@ public abstract class AbstractComponent implements Component { } @Override - public void setFocused(boolean focus) { - this.focus = focus; + public boolean isFocused() { + return focus; } @Override - public boolean isFocused() { - return focus; + public void setFocused(boolean focus) { + this.focus = focus; } @Override @@ -121,38 +117,6 @@ public abstract class AbstractComponent implements Component { return x; } - @Override - public int getY() { - return y; - } - - @Override - public int getWidth() { - return width; - } - - @Override - public int getHeight() { - return height; - } - - boolean workingy = false; - - public void setY(int y) { - final int oldX = getX(); - final int oldY = getY(); - this.y = y; - if (!workingy) { - workingy = true; - getUpdateListeners().forEach(listener -> listener.updateLocation(this, oldX, oldY)); // First call components own updatelisteners - if (getParent() != null) - getParent().getUpdateListeners().forEach(listener -> listener.updateLocation(this, oldX, oldY)); // And then notify the parent - workingy = false; - } - } - - boolean workingx = false; - public void setX(int x) { final int oldX = getX(); final int oldY = getY(); @@ -166,6 +130,29 @@ public abstract class AbstractComponent implements Component { } } + @Override + public int getY() { + return y; + } + + public void setY(int y) { + final int oldX = getX(); + final int oldY = getY(); + this.y = y; + if (!workingy) { + workingy = true; + getUpdateListeners().forEach(listener -> listener.updateLocation(this, oldX, oldY)); // First call components own updatelisteners + if (getParent() != null) + getParent().getUpdateListeners().forEach(listener -> listener.updateLocation(this, oldX, oldY)); // And then notify the parent + workingy = false; + } + } + + @Override + public int getWidth() { + return width; + } + @Override public void setWidth(int width) { width = Math.max(getMinimumWidth(), Math.min(width, getMaximumWidth())); @@ -178,6 +165,11 @@ public abstract class AbstractComponent implements Component { getParent().getUpdateListeners().forEach(listener -> listener.updateSize(this, oldWidth, oldHeight)); // And then notify the parent } + @Override + public int getHeight() { + return height; + } + @Override public void setHeight(int height) { height = Math.max(getMinimumHeight(), Math.min(height, getMaximumHeight())); @@ -306,7 +298,7 @@ public abstract class AbstractComponent implements Component { boolean liesin = false; if (component instanceof Container) - liesin = liesIn((Container) component); + liesin = liesIn(component); if (liesin) return true; } return false; diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/AlignedComponent.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/AlignedComponent.java index b129c1109..21437d613 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/AlignedComponent.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/AlignedComponent.java @@ -6,7 +6,15 @@ package me.zeroeightsix.kami.gui.rgui.component; public class AlignedComponent extends AbstractComponent { Alignment alignment; - public static enum Alignment { + public Alignment getAlignment() { + return alignment; + } + + public void setAlignment(Alignment alignment) { + this.alignment = alignment; + } + + public enum Alignment { LEFT(0), CENTER(1), RIGHT(2); int index; @@ -19,12 +27,4 @@ public class AlignedComponent extends AbstractComponent { return index; } } - - public Alignment getAlignment() { - return alignment; - } - - public void setAlignment(Alignment alignment) { - this.alignment = alignment; - } } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/Component.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/Component.java index 605846cd4..4144d99f4 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/Component.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/Component.java @@ -14,96 +14,96 @@ import java.util.ArrayList; */ public interface Component { // Getters for location and size - public int getX(); // Relative to its parent. - - public int getY(); - - public int getWidth(); - - public int getHeight(); + int getX(); // Relative to its parent. // Setters for location and size - public void setX(int x); + void setX(int x); - public void setY(int y); + int getY(); - public void setWidth(int width); + void setY(int y); - public void setHeight(int height); + int getWidth(); - public Component setMinimumWidth(int width); + void setWidth(int width); - public Component setMaximumWidth(int width); + int getHeight(); - public Component setMinimumHeight(int height); + void setHeight(int height); - public Component setMaximumHeight(int height); + int getMinimumWidth(); - public int getMinimumWidth(); + Component setMinimumWidth(int width); - public int getMaximumWidth(); + int getMaximumWidth(); - public int getMinimumHeight(); + Component setMaximumWidth(int width); - public int getMaximumHeight(); + int getMinimumHeight(); - public float getOpacity(); + Component setMinimumHeight(int height); - public void setOpacity(float opacity); + int getMaximumHeight(); - public boolean doAffectLayout(); + Component setMaximumHeight(int height); - public void setAffectLayout(boolean flag); + float getOpacity(); - public Container getParent(); + void setOpacity(float opacity); - public void setParent(Container parent); + boolean doAffectLayout(); - public boolean liesIn(Component container); + void setAffectLayout(boolean flag); - public boolean isVisible(); + Container getParent(); - public void setVisible(boolean visible); + void setParent(Container parent); - public void setFocused(boolean focus); + boolean liesIn(Component container); - public boolean isFocused(); + boolean isVisible(); - public ComponentUI getUI(); + void setVisible(boolean visible); - public Theme getTheme(); + boolean isFocused(); - public void setTheme(Theme theme); + void setFocused(boolean focus); - public boolean isHovered(); + ComponentUI getUI(); - public boolean isPressed(); + Theme getTheme(); - public ArrayList getMouseListeners(); + void setTheme(Theme theme); - public void addMouseListener(MouseListener listener); + boolean isHovered(); - public ArrayList getRenderListeners(); + boolean isPressed(); - public void addRenderListener(RenderListener listener); + ArrayList getMouseListeners(); - public ArrayList getKeyListeners(); + void addMouseListener(MouseListener listener); - public void addKeyListener(KeyListener listener); + ArrayList getRenderListeners(); - public ArrayList getUpdateListeners(); + void addRenderListener(RenderListener listener); - public void addUpdateListener(UpdateListener listener); + ArrayList getKeyListeners(); - public ArrayList getTickListeners(); + void addKeyListener(KeyListener listener); - public void addTickListener(TickListener listener); + ArrayList getUpdateListeners(); - public void addPoof(IPoof poof); + void addUpdateListener(UpdateListener listener); - public void callPoof(Class target, PoofInfo info); + ArrayList getTickListeners(); - public int getPriority(); // The higher, the more prioritized. + void addTickListener(TickListener listener); - public void kill(); + void addPoof(IPoof poof); + + void callPoof(Class target, PoofInfo info); + + int getPriority(); // The higher, the more prioritized. + + void kill(); } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/AbstractContainer.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/AbstractContainer.java index 11292b7f3..2e355e12f 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/AbstractContainer.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/AbstractContainer.java @@ -57,8 +57,7 @@ public abstract class AbstractContainer extends AbstractComponent implements Con @Override public Container removeChild(Component component) { - if (children.contains(component)) - children.remove(component); + children.remove(component); return this; } @@ -150,15 +149,15 @@ public abstract class AbstractContainer extends AbstractComponent implements Con return originoffsetX; } + public void setOriginOffsetX(int originoffsetX) { + this.originoffsetX = originoffsetX; + } + @Override public int getOriginOffsetY() { return originoffsetY; } - public void setOriginOffsetX(int originoffsetX) { - this.originoffsetX = originoffsetX; - } - public void setOriginOffsetY(int originoffsetY) { this.originoffsetY = originoffsetY; } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/Container.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/Container.java index d652cd04e..d5bf5aae6 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/Container.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/Container.java @@ -8,21 +8,21 @@ import java.util.ArrayList; * Created by 086 on 25/06/2017. */ public interface Container extends Component { - public ArrayList getChildren(); + ArrayList getChildren(); - public Component getComponentAt(int x, int y); + Component getComponentAt(int x, int y); - public Container addChild(Component... component); + Container addChild(Component... component); - public Container removeChild(Component component); + Container removeChild(Component component); - public boolean hasChild(Component component); + boolean hasChild(Component component); - public void renderChildren(); + void renderChildren(); - public int getOriginOffsetX(); + int getOriginOffsetX(); - public int getOriginOffsetY(); + int getOriginOffsetY(); - public boolean penetrateTest(int x, int y); + boolean penetrateTest(int x, int y); } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/use/Frame.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/use/Frame.java index 14c50ca3c..7caad72fd 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/use/Frame.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/use/Frame.java @@ -115,56 +115,14 @@ public class Frame extends OrganisedContainer { addMouseListener(new GayMouseListener()); } - // what is this naming?? - public class GayMouseListener implements MouseListener { - @Override - public void onMouseDown(MouseButtonEvent event) { - dx = event.getX() + getOriginOffsetX(); - dy = event.getY() + getOriginOffsetY(); - if (dy <= getOriginOffsetY() && event.getButton() == 0 && dy > 0) - doDrag = true; - else - doDrag = false; - - if (isMinimized && event.getY() > getOriginOffsetY()) - event.cancel(); - } - - @Override - public void onMouseRelease(MouseButtonEvent event) { - doDrag = false; - startDrag = false; - } - - @Override - public void onMouseDrag(MouseButtonEvent event) { - if (!doDrag) return; - startDrag = true; - } - - @Override - public void onMouseMove(MouseMoveEvent event) { - - } - - @Override - public void onScroll(MouseScrollEvent event) { - - } - } - - public void setCloseable(boolean closeable) { - isCloseable = closeable; + public boolean isMinimizeable() { + return isMinimizeable; } public void setMinimizeable(boolean minimizeable) { isMinimizeable = minimizeable; } - public boolean isMinimizeable() { - return isMinimizeable; - } - public boolean isMinimized() { return isMinimized; } @@ -190,20 +148,26 @@ public class Frame extends OrganisedContainer { isMinimized = minimized; } - public boolean isCloseable() { return isCloseable; } + public boolean isCloseable() { + return isCloseable; + } + + public void setCloseable(boolean closeable) { + isCloseable = closeable; + } public boolean isPinnable() { return isPinneable; } - public boolean isPinned() { - return isPinned; - } - public void setPinnable(boolean pinneable) { isPinneable = pinneable; } + public boolean isPinned() { + return isPinned; + } + public void setPinned(boolean pinned) { isPinned = pinned && isPinneable; } @@ -235,17 +199,52 @@ public class Frame extends OrganisedContainer { return x; } - public int getY() { - return y; - } - public void setX(int x) { this.x = x; } + public int getY() { + return y; + } + public void setY(int y) { this.y = y; } } } + + // what is this naming?? + public class GayMouseListener implements MouseListener { + @Override + public void onMouseDown(MouseButtonEvent event) { + dx = event.getX() + getOriginOffsetX(); + dy = event.getY() + getOriginOffsetY(); + doDrag = dy <= getOriginOffsetY() && event.getButton() == 0 && dy > 0; + + if (isMinimized && event.getY() > getOriginOffsetY()) + event.cancel(); + } + + @Override + public void onMouseRelease(MouseButtonEvent event) { + doDrag = false; + startDrag = false; + } + + @Override + public void onMouseDrag(MouseButtonEvent event) { + if (!doDrag) return; + startDrag = true; + } + + @Override + public void onMouseMove(MouseMoveEvent event) { + + } + + @Override + public void onScroll(MouseScrollEvent event) { + + } + } } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/use/Scrollpane.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/use/Scrollpane.java index 255787cb2..975df3293 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/use/Scrollpane.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/use/Scrollpane.java @@ -173,6 +173,10 @@ public class Scrollpane extends OrganisedContainer { return doScrollY; } + public int getScrolledX() { + return scrolledX; + } + public void setScrolledX(int scrolledX) { int a = getScrolledX(); this.scrolledX = scrolledX; @@ -181,6 +185,10 @@ public class Scrollpane extends OrganisedContainer { component.setX(component.getX() - dif); } + public int getScrolledY() { + return scrolledY; + } + public void setScrolledY(int scrolledY) { int a = getScrolledY(); this.scrolledY = scrolledY; @@ -189,14 +197,6 @@ public class Scrollpane extends OrganisedContainer { component.setY(component.getY() - dif); } - public int getScrolledX() { - return scrolledX; - } - - public int getScrolledY() { - return scrolledY; - } - public int getMaxScrollX() { return maxScrollX; } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/KeyListener.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/KeyListener.java index 2dadeca4d..ce3f2d7e9 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/KeyListener.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/KeyListener.java @@ -5,11 +5,11 @@ package me.zeroeightsix.kami.gui.rgui.component.listen; */ public interface KeyListener { - public void onKeyDown(KeyEvent event); + void onKeyDown(KeyEvent event); - public void onKeyUp(KeyEvent event); + void onKeyUp(KeyEvent event); - public static class KeyEvent { + class KeyEvent { int key; public KeyEvent(int key) { diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/MouseListener.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/MouseListener.java index b27e5851b..c63f664a9 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/MouseListener.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/MouseListener.java @@ -6,17 +6,17 @@ import me.zeroeightsix.kami.gui.rgui.component.Component; * Created by 086 on 26/06/2017. */ public interface MouseListener { - public void onMouseDown(MouseButtonEvent event); + void onMouseDown(MouseButtonEvent event); - public void onMouseRelease(MouseButtonEvent event); + void onMouseRelease(MouseButtonEvent event); - public void onMouseDrag(MouseButtonEvent event); + void onMouseDrag(MouseButtonEvent event); - public void onMouseMove(MouseMoveEvent event); + void onMouseMove(MouseMoveEvent event); - public void onScroll(MouseScrollEvent event); + void onScroll(MouseScrollEvent event); - public static class MouseMoveEvent { + class MouseMoveEvent { boolean cancelled = false; int x; int y; @@ -48,6 +48,10 @@ public interface MouseListener { return y; } + public void setY(int y) { + this.y = y; + } + public int getX() { return x; } @@ -56,16 +60,12 @@ public interface MouseListener { this.x = x; } - public void setY(int y) { - this.y = y; - } - public boolean isCancelled() { return cancelled; } } - public static class MouseButtonEvent { + class MouseButtonEvent { int x; int y; int button; @@ -84,30 +84,30 @@ public interface MouseListener { return component; } - public void setButton(int button) { - this.button = button; - } - public int getButton() { return button; } - public void setX(int x) { - this.x = x; + public void setButton(int button) { + this.button = button; } public int getX() { return x; } - public void setY(int y) { - this.y = y; + public void setX(int x) { + this.x = x; } public int getY() { return y; } + public void setY(int y) { + this.y = y; + } + public void cancel() { cancelled = true; } @@ -117,7 +117,7 @@ public interface MouseListener { } } - public static class MouseScrollEvent { + class MouseScrollEvent { int x; int y; boolean up; @@ -143,22 +143,22 @@ public interface MouseListener { this.up = up; } - public void setX(int x) { - this.x = x; - } - public int getX() { return x; } - public void setY(int y) { - this.y = y; + public void setX(int x) { + this.x = x; } public int getY() { return y; } + public void setY(int y) { + this.y = y; + } + public void cancel() { cancelled = true; } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/RenderListener.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/RenderListener.java index 5c170317f..7c57a9a3f 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/RenderListener.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/RenderListener.java @@ -4,7 +4,7 @@ package me.zeroeightsix.kami.gui.rgui.component.listen; * Created by 086 on 26/06/2017. */ public interface RenderListener { - public void onPreRender(); + void onPreRender(); - public void onPostRender(); + void onPostRender(); } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/UpdateListener.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/UpdateListener.java index ebdf775de..d31e72524 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/UpdateListener.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/UpdateListener.java @@ -6,7 +6,7 @@ import me.zeroeightsix.kami.gui.rgui.component.Component; * Created by 086 on 3/08/2017. */ public interface UpdateListener { - public void updateSize(T component, int oldWidth, int oldHeight); + void updateSize(T component, int oldWidth, int oldHeight); - public void updateLocation(T component, int oldX, int oldY); + void updateLocation(T component, int oldX, int oldY); } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/Button.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/Button.java index 75e42be7c..76695c957 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/Button.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/Button.java @@ -62,14 +62,14 @@ public class Button extends AbstractComponent { return description; } - public boolean hasDescription() { - return description != null; - } - public void setDescription(String description) { this.description = description; } + public boolean hasDescription() { + return description != null; + } + // Nothing to wipe. @Override public void kill() { diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/CheckButton.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/CheckButton.java index 834291336..11b9a2699 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/CheckButton.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/CheckButton.java @@ -51,14 +51,14 @@ public class CheckButton extends Button { }); } - public void setToggled(boolean toggled) { - this.toggled = toggled; - } - public boolean isToggled() { return toggled; } + public void setToggled(boolean toggled) { + this.toggled = toggled; + } + public static abstract class CheckButtonPoof extends Poof { CheckButtonPoofInfo info; @@ -69,13 +69,13 @@ public class CheckButton extends Button { this.action = action; } - public enum CheckButtonPoofInfoAction { - TOGGLE, ENABLE, DISABLE - } - public CheckButtonPoofInfoAction getAction() { return action; } + + public enum CheckButtonPoofInfoAction { + TOGGLE, ENABLE, DISABLE + } } } } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/InputField.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/InputField.java index 3ce4f604b..a5a01af99 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/InputField.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/InputField.java @@ -53,14 +53,6 @@ public class InputField extends AbstractComponent { FontRenderer fontRenderer = null; - public FontRenderer getFontRenderer() { - return fontRenderer == null ? getTheme().getFontRenderer() : fontRenderer; - } - - public void setFontRenderer(FontRenderer fontRenderer) { - this.fontRenderer = fontRenderer; - } - public InputField(String text) { currentState.text = text; @@ -372,6 +364,14 @@ public class InputField extends AbstractComponent { this(""); } + public FontRenderer getFontRenderer() { + return fontRenderer == null ? getTheme().getFontRenderer() : fontRenderer; + } + + public void setFontRenderer(FontRenderer fontRenderer) { + this.fontRenderer = fontRenderer; + } + public InputState getCurrentState() { return currentState; } @@ -462,6 +462,9 @@ public class InputField extends AbstractComponent { return echoChar != 0; } + public abstract static class InputFieldTextPoof extends Poof { + } + public class InputState { String text; int cursorRow; @@ -522,7 +525,4 @@ public class InputField extends AbstractComponent { this.selectionEnd = selectionEnd; } } - - public abstract static class InputFieldTextPoof extends Poof { - } } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/Label.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/Label.java index 64e0a078c..c509d092a 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/Label.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/Label.java @@ -30,6 +30,11 @@ public class Label extends AlignedComponent { return text; } + public void setText(String text) { + this.text = text; + getTheme().getUIForComponent(this).handleSizeComponent(this); + } + public String[] getLines() { String[] lines; if (isMultiline()) { @@ -40,11 +45,6 @@ public class Label extends AlignedComponent { return lines; } - public void setText(String text) { - this.text = text; - getTheme().getUIForComponent(this).handleSizeComponent(this); - } - public void addText(String add) { setText(getText() + add); } @@ -70,6 +70,10 @@ public class Label extends AlignedComponent { return shadow; } + public void setShadow(boolean shadow) { + this.shadow = shadow; + } + public FontRenderer getFontRenderer() { return fontRenderer; } @@ -84,8 +88,4 @@ public class Label extends AlignedComponent { setFontRenderer(theme.getFontRenderer()); getTheme().getUIForComponent(this).handleSizeComponent(this); } - - public void setShadow(boolean shadow) { - this.shadow = shadow; - } } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/Slider.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/Slider.java index 4cb0c5b6d..1f26868dd 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/Slider.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/Slider.java @@ -59,14 +59,6 @@ public class Slider extends AbstractComponent { this(value, minimum, maximum, getDefaultStep(minimum, maximum), text, false); } - private double calculateValue(double x) { - double d1 = x / getWidth(); - double d2 = (maximum - minimum); - double s = d1 * d2 + minimum; - - return MathHelper.clamp(Math.floor((Math.round(s / step) * step) * 100) / 100, minimum, maximum); // round to 2 decimals & clamp min and max - } - public static double getDefaultStep(double min, double max) { double s = gcd(min, max); if (s == max) { @@ -79,6 +71,21 @@ public class Slider extends AbstractComponent { return s; } + public static double gcd(double a, double b) { + a = Math.floor(a); + b = Math.floor(b); + if (a == 0 || b == 0) return a + b; // base case + return gcd(b, a % b); + } + + private double calculateValue(double x) { + double d1 = x / getWidth(); + double d2 = (maximum - minimum); + double s = d1 * d2 + minimum; + + return MathHelper.clamp(Math.floor((Math.round(s / step) * step) * 100) / 100, minimum, maximum); // round to 2 decimals & clamp min and max + } + public String getText() { return text; } @@ -91,6 +98,13 @@ public class Slider extends AbstractComponent { return value; } + public void setValue(double value) { + SliderPoof.SliderPoofInfo info = new SliderPoof.SliderPoofInfo(this.value, value); + callPoof(SliderPoof.class, info); + double newValue = info.getNewValue(); + this.value = integer ? (int) newValue : newValue; + } + public double getMaximum() { return maximum; } @@ -99,13 +113,6 @@ public class Slider extends AbstractComponent { return minimum; } - public void setValue(double value) { - SliderPoof.SliderPoofInfo info = new SliderPoof.SliderPoofInfo(this.value, value); - callPoof(SliderPoof.class, info); - double newValue = info.getNewValue(); - this.value = integer ? (int) newValue : newValue; - } - public static abstract class SliderPoof extends Poof { public static class SliderPoofInfo extends PoofInfo { double oldValue; @@ -130,11 +137,4 @@ public class Slider extends AbstractComponent { } } - public static double gcd(double a, double b) { - a = Math.floor(a); - b = Math.floor(b); - if (a == 0 || b == 0) return a + b; // base case - return gcd(b, a % b); - } - } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/layout/Layout.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/layout/Layout.java index 6466bf82c..f6e0f7c37 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/layout/Layout.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/layout/Layout.java @@ -7,6 +7,6 @@ import me.zeroeightsix.kami.gui.rgui.component.container.Container; */ public interface Layout { - public void organiseContainer(Container container); + void organiseContainer(Container container); } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/poof/IPoof.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/poof/IPoof.java index 2c39a7b95..b8ccef35b 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/poof/IPoof.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/poof/IPoof.java @@ -6,9 +6,9 @@ import me.zeroeightsix.kami.gui.rgui.component.Component; * Created by 086 on 21/07/2017. */ public interface IPoof { - public void execute(T component, S info); + void execute(T component, S info); - public Class getComponentClass(); + Class getComponentClass(); - public Class getInfoClass(); + Class getInfoClass(); } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/poof/use/FramePoof.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/poof/use/FramePoof.java index 6bf5a9d73..e2d5c1fcd 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/poof/use/FramePoof.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/poof/use/FramePoof.java @@ -7,8 +7,12 @@ import me.zeroeightsix.kami.gui.rgui.poof.PoofInfo; * Created by 086 on 29/07/2017. */ public abstract class FramePoof extends Poof { + public enum Action { + MINIMIZE, MAXIMIZE, CLOSE + } + public static class FramePoofInfo extends PoofInfo { - private Action action; + private final Action action; public FramePoofInfo(Action action) { this.action = action; @@ -18,8 +22,4 @@ public abstract class FramePoof extends return action; } } - - public enum Action { - MINIMIZE, MAXIMIZE, CLOSE - } } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/poof/use/Poof.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/poof/use/Poof.java index 700c19b6f..ddf7b373e 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/poof/use/Poof.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/poof/use/Poof.java @@ -12,8 +12,8 @@ import java.lang.reflect.ParameterizedType; */ public abstract class Poof implements IPoof { - private Class componentclass; - private Class infoclass; + private final Class componentclass; + private final Class infoclass; public Poof() { this.componentclass = (Class) ((ParameterizedType) getClass() diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/render/AbstractComponentUI.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/render/AbstractComponentUI.java index 7586f6c06..e64ff1a4f 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/render/AbstractComponentUI.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/render/AbstractComponentUI.java @@ -11,7 +11,7 @@ import java.lang.reflect.ParameterizedType; */ public abstract class AbstractComponentUI implements ComponentUI { - private Class persistentClass; + private final Class persistentClass; public AbstractComponentUI() { this.persistentClass = (Class) ((ParameterizedType) getClass() diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/render/ComponentUI.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/render/ComponentUI.java index 7e05c118a..dafc92c68 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/render/ComponentUI.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/render/ComponentUI.java @@ -9,24 +9,24 @@ import me.zeroeightsix.kami.gui.rgui.render.font.FontRenderer; */ public interface ComponentUI { - public void renderComponent(T component, FontRenderer fontRenderer); + void renderComponent(T component, FontRenderer fontRenderer); - public void handleMouseDown(T component, int x, int y, int button); + void handleMouseDown(T component, int x, int y, int button); - public void handleMouseRelease(T component, int x, int y, int button); + void handleMouseRelease(T component, int x, int y, int button); - public void handleMouseDrag(T component, int x, int y, int button); + void handleMouseDrag(T component, int x, int y, int button); - public void handleScroll(T component, int x, int y, int amount, boolean up); + void handleScroll(T component, int x, int y, int amount, boolean up); - public void handleKeyDown(T component, int key); + void handleKeyDown(T component, int key); - public void handleKeyUp(T component, int key); + void handleKeyUp(T component, int key); - public void handleAddComponent(T component, Container container); + void handleAddComponent(T component, Container container); - public void handleSizeComponent(T component); + void handleSizeComponent(T component); - public Class getHandledClass(); + Class getHandledClass(); } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/render/font/FontRenderer.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/render/font/FontRenderer.java index 3bb38f793..57cee7ce4 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/render/font/FontRenderer.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/render/font/FontRenderer.java @@ -7,20 +7,20 @@ import java.awt.*; */ public interface FontRenderer { - public int getFontHeight(); + int getFontHeight(); - public int getStringHeight(String text); + int getStringHeight(String text); - public int getStringWidth(String text); + int getStringWidth(String text); - public void drawString(int x, int y, String text); + void drawString(int x, int y, String text); - public void drawString(int x, int y, int r, int g, int b, String text); + void drawString(int x, int y, int r, int g, int b, String text); - public void drawString(int x, int y, Color color, String text); + void drawString(int x, int y, Color color, String text); - public void drawString(int x, int y, int colour, String text); + void drawString(int x, int y, int colour, String text); - public void drawStringWithShadow(int x, int y, int r, int g, int b, String text); + void drawStringWithShadow(int x, int y, int r, int g, int b, String text); } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/render/theme/Theme.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/render/theme/Theme.java index 6bf71a9cc..c8a8010e6 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/render/theme/Theme.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/render/theme/Theme.java @@ -8,7 +8,7 @@ import me.zeroeightsix.kami.gui.rgui.render.font.FontRenderer; * Created by 086 on 25/06/2017. */ public interface Theme { - public ComponentUI getUIForComponent(Component component); + ComponentUI getUIForComponent(Component component); - public FontRenderer getFontRenderer(); + FontRenderer getFontRenderer(); } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/render/util/Uniform.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/render/util/Uniform.java index 49aba0488..0891bded3 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/render/util/Uniform.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/render/util/Uniform.java @@ -28,6 +28,17 @@ public final class Uniform { this.location = location; } + /** + * Creates a uniform variable from the shader object id and the uniform's name + * + * @param shaderID Shader object ID + * @param uniformName Uniform Name + * @return The UniformVariable representation + */ + public static Uniform get(int shaderID, String uniformName) { + return new Uniform(uniformName, glGetUniformLocationARB(shaderID, uniformName)); + } + /** * Sets the value of this Uniform as an Int * @@ -86,15 +97,4 @@ public final class Uniform { public final int getLocation() { return this.location; } - - /** - * Creates a uniform variable from the shader object id and the uniform's name - * - * @param shaderID Shader object ID - * @param uniformName Uniform Name - * @return The UniformVariable representation - */ - public static Uniform get(int shaderID, String uniformName) { - return new Uniform(uniformName, glGetUniformLocationARB(shaderID, uniformName)); - } } \ No newline at end of file diff --git a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinBlockSoulSand.java b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinBlockSoulSand.java index 5c464b6cf..74af1adde 100644 --- a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinBlockSoulSand.java +++ b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinBlockSoulSand.java @@ -22,7 +22,8 @@ public class MixinBlockSoulSand { @Inject(method = "onEntityCollision", at = @At("HEAD"), cancellable = true) public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState state, Entity entityIn, CallbackInfo info) { // If noslowdown is on, just don't do anything else in this method (slow the player) - if (MODULE_MANAGER.isModuleEnabled(NoSlowDown.class) && MODULE_MANAGER.getModuleT(NoSlowDown.class).soulSand.getValue()) info.cancel(); + if (MODULE_MANAGER.isModuleEnabled(NoSlowDown.class) && MODULE_MANAGER.getModuleT(NoSlowDown.class).soulSand.getValue()) + info.cancel(); } } diff --git a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinBlockWeb.java b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinBlockWeb.java index 7bf874605..18c18d4c6 100644 --- a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinBlockWeb.java +++ b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinBlockWeb.java @@ -14,8 +14,8 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import static me.zeroeightsix.kami.KamiMod.MODULE_MANAGER; /** - * @see MixinBlockSoulSand * @author 086 + * @see MixinBlockSoulSand */ @Mixin(BlockWeb.class) public class MixinBlockWeb { @@ -23,7 +23,8 @@ public class MixinBlockWeb { @Inject(method = "onEntityCollision", at = @At("HEAD"), cancellable = true) public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState state, Entity entityIn, CallbackInfo info) { // If noslowdown is on, just don't do anything else in this method (slow the player) - if (MODULE_MANAGER.isModuleEnabled(NoSlowDown.class) && MODULE_MANAGER.getModuleT(NoSlowDown.class).cobweb.getValue()) info.cancel(); + if (MODULE_MANAGER.isModuleEnabled(NoSlowDown.class) && MODULE_MANAGER.getModuleT(NoSlowDown.class).cobweb.getValue()) + info.cancel(); } } diff --git a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinEntityPlayerSP.java b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinEntityPlayerSP.java index 01364c97d..d9143bb7a 100644 --- a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinEntityPlayerSP.java +++ b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinEntityPlayerSP.java @@ -51,7 +51,7 @@ public abstract class MixinEntityPlayerSP extends EntityPlayer { public void onDisplayGUIChest(IInventory chestInventory, CallbackInfo ci) { if (MODULE_MANAGER.isModuleEnabled(BeaconSelector.class)) { if (chestInventory instanceof IInteractionObject) { - if ("minecraft:beacon".equals(((IInteractionObject)chestInventory).getGuiID())) { + if ("minecraft:beacon".equals(((IInteractionObject) chestInventory).getGuiID())) { Minecraft.getMinecraft().displayGuiScreen(new BeaconGui(this.inventory, chestInventory)); ci.cancel(); } diff --git a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinGuiChat.java b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinGuiChat.java index 1ae3b2af8..ed19c5f69 100644 --- a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinGuiChat.java +++ b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinGuiChat.java @@ -17,14 +17,12 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(GuiChat.class) public abstract class MixinGuiChat { - @Shadow - protected GuiTextField inputField; - @Shadow public String historyBuffer; - @Shadow public int sentHistoryCursor; + @Shadow + protected GuiTextField inputField; @Shadow public abstract void initGui(); diff --git a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinGuiMainMenu.java b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinGuiMainMenu.java index 539786568..dbd874114 100644 --- a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinGuiMainMenu.java +++ b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinGuiMainMenu.java @@ -5,9 +5,7 @@ import me.zeroeightsix.kami.gui.mc.KamiGuiUpdateNotification; import me.zeroeightsix.kami.util.Wrapper; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiMainMenu; -import net.minecraft.client.gui.GuiScreen; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; diff --git a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinGuiScreen.java b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinGuiScreen.java index 08cad71e9..ec54ac5de 100644 --- a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinGuiScreen.java +++ b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinGuiScreen.java @@ -26,7 +26,8 @@ import static me.zeroeightsix.kami.KamiMod.MODULE_MANAGER; @Mixin(GuiScreen.class) public class MixinGuiScreen { - @Shadow public Minecraft mc; + @Shadow + public Minecraft mc; RenderItem itemRender = Minecraft.getMinecraft().getRenderItem(); FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; @@ -40,7 +41,7 @@ public class MixinGuiScreen { // We'll take over! info.cancel(); - NonNullList nonnulllist = NonNullList.withSize(27, ItemStack.EMPTY); + NonNullList nonnulllist = NonNullList.withSize(27, ItemStack.EMPTY); ItemStackHelper.loadAllItems(blockEntityTag, nonnulllist); GlStateManager.enableBlend(); @@ -100,9 +101,9 @@ public class MixinGuiScreen { * see https://github.com/kami-blue/client/pull/293 for discussion * authors words: * Also @S-B99 you should be more careful with merging commits, especially from people who are new to coding. Stuff like this is obviously stolen, and can get your repository DMCA'd. - * + *

* as shown be the rest of his discussion, he was fine with it - * I even aknowledged when it was added, after cookies approval, that it was pasted from backdoored. + * I even aknowledged when it was added, after cookies approval, that it was pasted from backdoored. */ @Inject(method = "Lnet/minecraft/client/gui/GuiScreen;drawWorldBackground(I)V", at = @At("HEAD"), cancellable = true) private void drawWorldBackgroundWrapper(final int tint, final CallbackInfo ci) { diff --git a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinLayerArmorBase.java b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinLayerArmorBase.java index be44b8b3b..ffedea204 100644 --- a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinLayerArmorBase.java +++ b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinLayerArmorBase.java @@ -17,7 +17,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; */ @Mixin(LayerArmorBase.class) public abstract class MixinLayerArmorBase { - @Inject(method = "renderArmorLayer", at=@At("HEAD"), cancellable = true) + @Inject(method = "renderArmorLayer", at = @At("HEAD"), cancellable = true) public void onRenderArmorLayer(EntityLivingBase entityLivingBaseIn, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, float netHeadYaw, float headPitch, float scale, EntityEquipmentSlot slotIn, CallbackInfo ci) { if (ArmourHide.INSTANCE.isEnabled()) { if (!(ArmourHide.INSTANCE.player.getValue()) && entityLivingBaseIn instanceof EntityPlayer) { diff --git a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinMovementInputFromOptions.java b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinMovementInputFromOptions.java index b6c64c6cb..f2d0949bc 100644 --- a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinMovementInputFromOptions.java +++ b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinMovementInputFromOptions.java @@ -12,13 +12,11 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; import static me.zeroeightsix.kami.KamiMod.MODULE_MANAGER; -import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; /** * @author Finz0 * Used with LGPLv3 license permission * https://github.com/S-B99/osiris/blob/master/src/main/java/me/finz0/osiris/mixin/mixins/MixinMovementInputFromOptions.java - * * @see InventoryMove */ @Mixin(value = MovementInputFromOptions.class, priority = Integer.MAX_VALUE) diff --git a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinRenderGlobal.java b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinRenderGlobal.java index be831a248..a3c7e7011 100644 --- a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinRenderGlobal.java +++ b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinRenderGlobal.java @@ -12,10 +12,10 @@ import org.spongepowered.asm.mixin.Shadow; @Mixin(RenderGlobal.class) public class MixinRenderGlobal { - @Shadow - Minecraft mc; @Shadow public ChunkRenderContainer renderContainer; + @Shadow + Minecraft mc; // @Inject(method = "renderBlockLayer(Lnet/minecraft/util/BlockRenderLayer;)V", at = @At("HEAD"), cancellable = true) // public void renderBlockLayer(BlockRenderLayer blockLayerIn, CallbackInfo callbackInfo) { diff --git a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinVisGraph.java b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinVisGraph.java index 125e16bcf..c3efab7b3 100644 --- a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinVisGraph.java +++ b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinVisGraph.java @@ -25,7 +25,7 @@ public class MixinVisGraph { // This part prevents the "block-level culling". OptiFine does this for you but vanilla doesn't. // We have to implement this here or else OptiFine causes trouble. if (MODULE_MANAGER.isModuleEnabled(Freecam.class)) - callbackInfo.setReturnValue(EnumSet.allOf(EnumFacing.class)); + callbackInfo.setReturnValue(EnumSet.allOf(EnumFacing.class)); } } diff --git a/src/main/java/me/zeroeightsix/kami/module/Module.java b/src/main/java/me/zeroeightsix/kami/module/Module.java index de230cfdc..9c5dd23e5 100644 --- a/src/main/java/me/zeroeightsix/kami/module/Module.java +++ b/src/main/java/me/zeroeightsix/kami/module/Module.java @@ -25,24 +25,32 @@ import java.util.List; */ public class Module { + protected static final Minecraft mc = Minecraft.getMinecraft(); private final String originalName = getAnnotation().name(); private final Category category = getAnnotation().category(); private final String description = getAnnotation().description(); - private final Setting name = register(Settings.s("Name", originalName)); + public boolean alwaysListening; + public List settingList = new ArrayList<>(); + private Setting name = register(Settings.s("Name", originalName)); private Setting bind = register(Settings.custom("Bind", Bind.none(), new BindConverter()).build()); private Setting enabled = register(Settings.booleanBuilder("Enabled").withVisibility(aBoolean -> false).withValue(false).build()); private Setting showOnArray = register(Settings.e("Visible", getAnnotation().showOnArray())); - public boolean alwaysListening; - protected static final Minecraft mc = Minecraft.getMinecraft(); - - public List settingList = new ArrayList<>(); - public Module() { alwaysListening = getAnnotation().alwaysListening(); registerAll(bind, enabled, showOnArray); } + /* If you change a setting with ;set or eg a defaults button the GUI doesn't update, so call this */ + public static void closeSettings() { + List panels = ContainerHelper.getAllChildren(SettingsPanel.class, KamiMod.getInstance().getGuiManager()); + for (SettingsPanel settingsPanel : panels) { + if (settingsPanel.isVisible()) { + settingsPanel.setModule(null); + } + } + } + private Info getAnnotation() { if (getClass().isAnnotationPresent(Info.class)) { return getClass().getAnnotation(Info.class); @@ -50,22 +58,21 @@ public class Module { throw new IllegalStateException("No Annotation on class " + this.getClass().getCanonicalName() + "!"); } - public void onUpdate() {} + public void onUpdate() { + } - public void onRender() {} + public void onRender() { + } - public void onWorldRender(RenderEvent event) {} - - public Bind getBind() { - return bind.getValue(); + public void onWorldRender(RenderEvent event) { } // public boolean showOnArray() { // return showOnArray.getValue(); // } - public enum ShowOnArray { - ON, OFF + public Bind getBind() { + return bind.getValue(); } public ShowOnArray getShowOnArray() { @@ -76,12 +83,116 @@ public class Module { return bind.getValue().toString(); } + public String getOriginalName() { + return originalName; + } + + public String getName() { + return name.getValue(); + } + public void setName(String name) { this.name.setValue(name); } - public String getOriginalName() { - return originalName; + public String getChatName() { + return "[" + name.getValue() + "] "; + } + + public String getDescription() { + return description; + } + + public Category getCategory() { + return category; + } + + public boolean isEnabled() { + return enabled.getValue(); + } + + public void setEnabled(boolean enabled) { + boolean prev = this.enabled.getValue(); + if (prev != enabled) + if (enabled) + enable(); + else + disable(); + } + + public boolean isOnArray() { + return showOnArray.getValue().equals(ShowOnArray.ON); + } + + public boolean isProduction() { + return !category.equals(Category.EXPERIMENTAL) && !category.equals(Category.HIDDEN); + } + + protected void onEnable() { + } + + protected void onDisable() { + } + + public void toggle() { + setEnabled(!isEnabled()); + } + + public void enable() { + enabled.setValue(true); + onEnable(); + if (!alwaysListening) + KamiMod.EVENT_BUS.subscribe(this); + } + + public void disable() { + enabled.setValue(false); + onDisable(); + if (!alwaysListening) + KamiMod.EVENT_BUS.unsubscribe(this); + } + + public boolean isDisabled() { + return !isEnabled(); + } + + public String getHudInfo() { + return null; + } + + protected final void setAlwaysListening(boolean alwaysListening) { + this.alwaysListening = alwaysListening; + if (alwaysListening) KamiMod.EVENT_BUS.subscribe(this); + if (!alwaysListening && isDisabled()) KamiMod.EVENT_BUS.unsubscribe(this); + } + + /** + * Cleanup method in case this module wants to do something when the client closes down + */ + public void destroy() { + } + + protected void registerAll(Setting... settings) { + for (Setting setting : settings) { + register(setting); + } + } + + protected Setting register(Setting setting) { + if (settingList == null) settingList = new ArrayList<>(); + settingList.add(setting); + return SettingBuilder.register(setting, "modules." + originalName); + } + + protected Setting register(SettingBuilder builder) { + if (settingList == null) settingList = new ArrayList<>(); + Setting setting = builder.buildAndRegister("modules." + name); + settingList.add(setting); + return setting; + } + + public enum ShowOnArray { + ON, OFF } /** @@ -110,6 +221,7 @@ public class Module { public boolean isHidden() { return hidden; } + public String getName() { return name; } @@ -118,109 +230,16 @@ public class Module { @Retention(RetentionPolicy.RUNTIME) public @interface Info { String name(); + String description(); + Module.Category category(); + boolean alwaysListening() default false; + ShowOnArray showOnArray() default ShowOnArray.ON; } - public String getName() { - return name.getValue(); - } - - public String getChatName() { - return "[" + name.getValue() + "] "; - } - - public String getDescription() { return description; } - - public Category getCategory() { return category; } - - public boolean isEnabled() { return enabled.getValue(); } - - public boolean isOnArray() { return showOnArray.getValue().equals(ShowOnArray.ON); } - - public boolean isProduction() { return !category.equals(Category.EXPERIMENTAL) && !category.equals(Category.HIDDEN); } - - protected void onEnable() {} - - protected void onDisable() {} - - public void toggle() { setEnabled(!isEnabled()); } - - public void enable() { - enabled.setValue(true); - onEnable(); - if (!alwaysListening) - KamiMod.EVENT_BUS.subscribe(this); - } - - public void disable() { - enabled.setValue(false); - onDisable(); - if (!alwaysListening) - KamiMod.EVENT_BUS.unsubscribe(this); - } - - public boolean isDisabled() { - return !isEnabled(); - } - - public void setEnabled(boolean enabled) { - boolean prev = this.enabled.getValue(); - if (prev != enabled) - if (enabled) - enable(); - else - disable(); - } - - public String getHudInfo() { - return null; - } - - protected final void setAlwaysListening(boolean alwaysListening) { - this.alwaysListening = alwaysListening; - if (alwaysListening) KamiMod.EVENT_BUS.subscribe(this); - if (!alwaysListening && isDisabled()) KamiMod.EVENT_BUS.unsubscribe(this); - } - - /** - * Cleanup method in case this module wants to do something when the client closes down - */ - public void destroy() { - } - - /* If you change a setting with ;set or eg a defaults button the GUI doesn't update, so call this */ - public static void closeSettings() { - List panels = ContainerHelper.getAllChildren(SettingsPanel.class, KamiMod.getInstance().getGuiManager()); - for (SettingsPanel settingsPanel : panels) { - if (settingsPanel.isVisible()) { - settingsPanel.setModule(null); - } - } - } - - protected void registerAll(Setting... settings) { - for (Setting setting : settings) { - register(setting); - } - } - - protected Setting register(Setting setting) { - if (settingList == null) settingList = new ArrayList<>(); - settingList.add(setting); - return SettingBuilder.register(setting, "modules." + originalName); - } - - protected Setting register(SettingBuilder builder) { - if (settingList == null) settingList = new ArrayList<>(); - Setting setting = builder.buildAndRegister("modules." + name); - settingList.add(setting); - return setting; - } - - private class BindConverter extends Converter { @Override protected JsonElement doForward(Bind bind) { diff --git a/src/main/java/me/zeroeightsix/kami/module/ModuleManager.java b/src/main/java/me/zeroeightsix/kami/module/ModuleManager.java index a4e8ee13b..c6834c125 100644 --- a/src/main/java/me/zeroeightsix/kami/module/ModuleManager.java +++ b/src/main/java/me/zeroeightsix/kami/module/ModuleManager.java @@ -25,7 +25,7 @@ public class ModuleManager { /** * Linked map for the registered Modules */ - private Map, Module> modules = new LinkedHashMap<>(); + private final Map, Module> modules = new LinkedHashMap<>(); /** * Registers modules, and then calls updateLookup() for indexing. @@ -123,7 +123,7 @@ public class ModuleManager { * Get typed module object so that no casting is needed afterwards. * * @param clazz Module class - * @param Type of module + * @param Type of module * @return Object */ public T getModuleT(Class clazz) { diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/capes/Capes.java b/src/main/java/me/zeroeightsix/kami/module/modules/capes/Capes.java index 669b11459..c4a224771 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/capes/Capes.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/capes/Capes.java @@ -30,11 +30,9 @@ import java.util.Map; @Module.Info(name = "Capes", category = Module.Category.CLIENT, description = "Controls the display of KAMI Blue capes", showOnArray = Module.ShowOnArray.OFF) public class Capes extends Module { + public static Capes INSTANCE; // This allows controlling if other capes (Mojang, OptiFine) should override the KAMI Blue cape. public Setting overrideOtherCapes = register(Settings.b("Override Other Capes", true)); - - public static Capes INSTANCE; - // This starts out null, and then is replaced from another thread if the Capes module is enabled. // It maps the UUIDs to CachedCape instances. // When it arrives here it must no longer be modified. @@ -46,6 +44,36 @@ public class Capes extends Module { INSTANCE = this; } + public static ResourceLocation getCapeResource(AbstractClientPlayer player) { + CachedCape result = INSTANCE.allCapes.get(player.getUniqueID().toString()); + if (result == null) + return null; + result.request(); + return result.location; + } + + private static BufferedImage parseCape(BufferedImage img) { + int imageWidth = 64; + int imageHeight = 32; + + int srcWidth = img.getWidth(); + int srcHeight = img.getHeight(); + while (imageWidth < srcWidth || imageHeight < srcHeight) { + imageWidth *= 2; + imageHeight *= 2; + } + BufferedImage imgNew = new BufferedImage(imageWidth, imageHeight, 2); + Graphics g = imgNew.getGraphics(); + g.drawImage(img, 0, 0, null); + g.dispose(); + + return imgNew; + } + + private static String formatUUID(String uuid) { + return uuid.replaceAll("-", ""); + } + @Override public void onEnable() { // Begin the download if we haven't begun the download before and we're enabling the module. @@ -83,42 +111,6 @@ public class Capes extends Module { } } - public static ResourceLocation getCapeResource(AbstractClientPlayer player) { - CachedCape result = INSTANCE.allCapes.get(player.getUniqueID().toString()); - if (result == null) - return null; - result.request(); - return result.location; - } - - private static BufferedImage parseCape(BufferedImage img) { - int imageWidth = 64; - int imageHeight = 32; - - int srcWidth = img.getWidth(); - int srcHeight = img.getHeight(); - while (imageWidth < srcWidth || imageHeight < srcHeight) { - imageWidth *= 2; - imageHeight *= 2; - } - BufferedImage imgNew = new BufferedImage(imageWidth, imageHeight, 2); - Graphics g = imgNew.getGraphics(); - g.drawImage(img, 0, 0, null); - g.dispose(); - - return imgNew; - } - - private static String formatUUID(String uuid) { - return uuid.replaceAll("-", ""); - } - - // This is the raw Gson structure as seen in the assets - public class CapeUser { - public String uuid; - public String url; - } - // This is the shared cape instance. private static class CachedCape { public final ResourceLocation location; @@ -142,7 +134,8 @@ public class Capes extends Module { } @Override - public void skinAvailable() {} + public void skinAvailable() { + } }; TextureManager textureManager = Wrapper.getMinecraft().getTextureManager(); @@ -151,4 +144,10 @@ public class Capes extends Module { textureManager.loadTexture(location, textureCape); } } + + // This is the raw Gson structure as seen in the assets + public class CapeUser { + public String uuid; + public String url; + } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/capes/LayerCape.java b/src/main/java/me/zeroeightsix/kami/module/modules/capes/LayerCape.java index 5b4090138..f08f94d54 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/capes/LayerCape.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/capes/LayerCape.java @@ -24,7 +24,8 @@ public class LayerCape implements LayerRenderer { ResourceLocation rl = Capes.getCapeResource(player); ItemStack itemstack = player.getItemStackFromSlot(EntityEquipmentSlot.CHEST); - if (!player.hasPlayerInfo() || player.isInvisible() || !player.isWearing(EnumPlayerModelParts.CAPE) || itemstack.getItem() == Items.ELYTRA || rl == null) return; + if (!player.hasPlayerInfo() || player.isInvisible() || !player.isWearing(EnumPlayerModelParts.CAPE) || itemstack.getItem() == Items.ELYTRA || rl == null) + return; float f9 = 0.14f; float f10 = 0.0f; diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/chat/AntiSpam.java b/src/main/java/me/zeroeightsix/kami/module/modules/chat/AntiSpam.java index 4caae9717..d9ffbe5ed 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/chat/AntiSpam.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/chat/AntiSpam.java @@ -62,9 +62,27 @@ public class AntiSpam extends Module { private Setting showBlocked = register(Settings.enumBuilder(ShowBlocked.class).withName("Show Blocked").withValue(ShowBlocked.LOG_FILE).withVisibility(v -> p.getValue().equals(Page.TWO)).build()); private ConcurrentHashMap messageHistory; - private enum Page { ONE, TWO } - private enum ShowBlocked { NONE, LOG_FILE, CHAT } - + private final Map, String[]> settingMap = new HashMap, String[]>() {{ + put(wordsLongerThen, FilterPatterns.LONG_WORD); + put(greenText, FilterPatterns.GREEN_TEXT); + put(specialCharBegin, FilterPatterns.SPECIAL_BEGINNING); + put(specialCharEnding, FilterPatterns.SPECIAL_ENDING); + put(specialCharBegin, FilterPatterns.SPECIAL_BEGINNING); + put(ownsMeAndAll, FilterPatterns.OWNS_ME_AND_ALL); + put(iJustThanksTo, FilterPatterns.I_JUST_THANKS_TO); + put(numberSuffix, FilterPatterns.NUMBER_SUFFIX); + put(numberPrefix, FilterPatterns.NUMBER_PREFIX); + put(discordLinks, FilterPatterns.DISCORD); + put(webLinks, FilterPatterns.WEB_LINK); + put(ips, FilterPatterns.IP_ADDR); + put(ipsAgr, FilterPatterns.IP_ADDR_AGR); + put(announcers, FilterPatterns.ANNOUNCER); + put(spammers, FilterPatterns.SPAMMER); + put(insulters, FilterPatterns.INSULTER); + put(greeters, FilterPatterns.GREETER); + put(hypixelShills, FilterPatterns.HYPIXEL_SHILLS); + put(tradeChat, FilterPatterns.TRADE_CHAT); + }}; @EventHandler public Listener listener = new Listener<>(event -> { if (mc.player == null || isDisabled()) return; @@ -88,10 +106,14 @@ public class AntiSpam extends Module { }); @Override - public void onEnable() { messageHistory = new ConcurrentHashMap<>(); } + public void onEnable() { + messageHistory = new ConcurrentHashMap<>(); + } @Override - public void onDisable() { messageHistory = null; } + public void onDisable() { + messageHistory = null; + } private boolean isSpam(String message) { ChatTimestamp chatTimestamp = MODULE_MANAGER.getModuleT(ChatTimestamp.class); @@ -110,12 +132,12 @@ public class AntiSpam extends Module { } } - - - private String removeUsername(String username) { return username.replaceAll("<[^>]*> ", ""); } + private String removeUsername(String username) { + return username.replaceAll("<[^>]*> ", ""); + } private boolean detectSpam(String message) { - + for (Map.Entry, String[]> entry : settingMap.entrySet()) { if (entry.getKey().getValue() && findPatterns(entry.getValue(), message, true)) { sendResult(entry.getKey().getName(), message); @@ -127,12 +149,15 @@ public class AntiSpam extends Module { if (messageHistory == null) messageHistory = new ConcurrentHashMap<>(); boolean isDuplicate = false; - if (messageHistory.containsKey(message) && (System.currentTimeMillis() - messageHistory.get(message)) / 1000 < duplicatesTimeout.getValue()) isDuplicate = true; + if (messageHistory.containsKey(message) && (System.currentTimeMillis() - messageHistory.get(message)) / 1000 < duplicatesTimeout.getValue()) + isDuplicate = true; messageHistory.put(message, System.currentTimeMillis()); if (isDuplicate) { - if (showBlocked.getValue().equals(ShowBlocked.CHAT)) sendChatMessage(getChatName() + "Duplicate: " + message); - else if (showBlocked.getValue().equals(ShowBlocked.LOG_FILE)) KamiMod.log.info(getChatName() + "Duplicate: " + message); + if (showBlocked.getValue().equals(ShowBlocked.CHAT)) + sendChatMessage(getChatName() + "Duplicate: " + message); + else if (showBlocked.getValue().equals(ShowBlocked.LOG_FILE)) + KamiMod.log.info(getChatName() + "Duplicate: " + message); } } @@ -151,27 +176,20 @@ public class AntiSpam extends Module { return false; } - private Map, String[]> settingMap = new HashMap, String[]>(){{ - put(wordsLongerThen, FilterPatterns.LONG_WORD); - put(greenText, FilterPatterns.GREEN_TEXT); - put(specialCharBegin, FilterPatterns.SPECIAL_BEGINNING); - put(specialCharEnding, FilterPatterns.SPECIAL_ENDING); - put(specialCharBegin, FilterPatterns.SPECIAL_BEGINNING); - put(ownsMeAndAll, FilterPatterns.OWNS_ME_AND_ALL); - put(iJustThanksTo, FilterPatterns.I_JUST_THANKS_TO); - put(numberSuffix, FilterPatterns.NUMBER_SUFFIX); - put(numberPrefix, FilterPatterns.NUMBER_PREFIX); - put(discordLinks, FilterPatterns.DISCORD); - put(webLinks, FilterPatterns.WEB_LINK); - put(ips, FilterPatterns.IP_ADDR); - put(ipsAgr, FilterPatterns.IP_ADDR_AGR); - put(announcers, FilterPatterns.ANNOUNCER); - put(spammers, FilterPatterns.SPAMMER); - put(insulters, FilterPatterns.INSULTER); - put(greeters, FilterPatterns.GREETER); - put(hypixelShills, FilterPatterns.HYPIXEL_SHILLS); - put(tradeChat, FilterPatterns.TRADE_CHAT); - }}; + private void sendResult(String name, String message) { + if (showBlocked.getValue().equals(ShowBlocked.CHAT)) sendChatMessage(getChatName() + name + ": " + message); + else if (showBlocked.getValue().equals(ShowBlocked.LOG_FILE)) + KamiMod.log.info(getChatName() + name + ": " + message); + } + + private enum Page {ONE, TWO} + + private enum ShowBlocked {NONE, LOG_FILE, CHAT} + +// private static Integer getCharacters() { +// AntiSpam antiSpam = ((AntiSpam) ModuleManager.getModuleByName("AntiSpam")); +// return antiSpam.characters.getValue(); +// } private static class FilterPatterns { private static final String[] ANNOUNCER = { @@ -367,14 +385,4 @@ public class AntiSpam extends Module { "[/@#^()\\[\\]{}<>|\\-+=\\\\]", }; } - -// private static Integer getCharacters() { -// AntiSpam antiSpam = ((AntiSpam) ModuleManager.getModuleByName("AntiSpam")); -// return antiSpam.characters.getValue(); -// } - - private void sendResult(String name, String message) { - if (showBlocked.getValue().equals(ShowBlocked.CHAT)) sendChatMessage(getChatName() + name + ": " + message); - else if (showBlocked.getValue().equals(ShowBlocked.LOG_FILE)) KamiMod.log.info(getChatName() + name + ": " + message); - } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/chat/AutoQMain.java b/src/main/java/me/zeroeightsix/kami/module/modules/chat/AutoQMain.java index e1957cde9..014fef25a 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/chat/AutoQMain.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/chat/AutoQMain.java @@ -66,7 +66,11 @@ public class AutoQMain extends Module { mc.playerController.connection.sendPacket(new CPacketChatMessage("/queue main")); } - private void sendMessage(String message) { if (showWarns.getValue()) sendWarningMessage(getChatName() + message); } + private void sendMessage(String message) { + if (showWarns.getValue()) sendWarningMessage(getChatName() + message); + } - public void onDisable() { delayTime = 0; } + public void onDisable() { + delayTime = 0; + } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/chat/AutoReply.java b/src/main/java/me/zeroeightsix/kami/module/modules/chat/AutoReply.java index 6cf69f13d..2ca16ad3b 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/chat/AutoReply.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/chat/AutoReply.java @@ -18,18 +18,20 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendWarningMessage; */ @Module.Info(name = "AutoReply", description = "Automatically replies to messages", category = Module.Category.CHAT) public class AutoReply extends Module { + private static long startTime = 0; public Setting customMessage = register(Settings.b("Custom Message", false)); - public Setting message = register(Settings.stringBuilder("Custom Text").withValue("Use &7" + Command.getCommandPrefix() + "autoreply&r to modify this").withConsumer((old, value) -> {}).withVisibility(v -> customMessage.getValue()).build()); + public Setting message = register(Settings.stringBuilder("Custom Text").withValue("Use &7" + Command.getCommandPrefix() + "autoreply&r to modify this").withConsumer((old, value) -> { + }).withVisibility(v -> customMessage.getValue()).build()); public Setting customListener = register(Settings.b("Custom Listener", false)); - public Setting listener = register(Settings.stringBuilder("Custom Listener Name").withValue("unchanged").withConsumer((old, value) -> {}).withVisibility(v -> customListener.getValue()).build()); + public Setting listener = register(Settings.stringBuilder("Custom Listener Name").withValue("unchanged").withConsumer((old, value) -> { + }).withVisibility(v -> customListener.getValue()).build()); public Setting customReplyCommand = register(Settings.b("Custom Reply Command", false)); - public Setting replyCommand = register(Settings.stringBuilder("Custom Reply Command").withValue("unchanged").withConsumer((old, value) -> {}).withVisibility(v -> customReplyCommand.getValue()).build()); - - private String listenerDefault = "whispers:"; - private String replyCommandDefault = "r"; - + public Setting replyCommand = register(Settings.stringBuilder("Custom Reply Command").withValue("unchanged").withConsumer((old, value) -> { + }).withVisibility(v -> customReplyCommand.getValue()).build()); @EventHandler public Listener receiveListener; + private String listenerDefault = "whispers:"; + private String replyCommandDefault = "r"; public AutoReply() { receiveListener = new Listener<>(event -> { @@ -43,7 +45,6 @@ public class AutoReply extends Module { }); } - private static long startTime = 0; @Override public void onUpdate() { if (customListener.getValue()) listenerDefault = listener.getValue(); diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/chat/AutoTPA.java b/src/main/java/me/zeroeightsix/kami/module/modules/chat/AutoTPA.java index b823f184a..1db98f363 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/chat/AutoTPA.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/chat/AutoTPA.java @@ -7,7 +7,6 @@ import me.zeroeightsix.kami.module.Module; import me.zeroeightsix.kami.setting.Setting; import me.zeroeightsix.kami.setting.Settings; import me.zeroeightsix.kami.util.Friends; -import me.zeroeightsix.kami.util.Wrapper; import net.minecraft.network.play.server.SPacketChat; import static me.zeroeightsix.kami.util.MessageSendHelper.sendServerMessage; diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/chat/ChatEncryption.java b/src/main/java/me/zeroeightsix/kami/module/modules/chat/ChatEncryption.java index cd8cebe7f..ccabea858 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/chat/ChatEncryption.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/chat/ChatEncryption.java @@ -26,16 +26,13 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; @Module.Info(name = "ChatEncryption", description = "Encrypts and decrypts chat messages (Delimiter %)", category = Module.Category.CHAT, showOnArray = Module.ShowOnArray.OFF) public class ChatEncryption extends Module { + private static final char[] ORIGIN_CHARS = new char[]{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '-', '_', '/', ';', '=', '?', '+', '\u00B5', '\u00A3', '*', '^', '\u00F9', '$', '!', '{', '}', '\'', '"', '|', '&'}; + private final Pattern CHAT_PATTERN = Pattern.compile("<.*?> "); private Setting mode = register(Settings.e("Mode", EncryptionMode.SHUFFLE)); private Setting key = register(Settings.i("Key", 6)); private Setting delim = register(Settings.b("Delimiter", true)); - - private final Pattern CHAT_PATTERN = Pattern.compile("<.*?> "); - - private static final char[] ORIGIN_CHARS = new char[]{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '-', '_', '/', ';', '=', '?', '+', '\u00B5', '\u00A3', '*', '^', '\u00F9', '$', '!', '{', '}', '\'', '"', '|', '&'}; - @EventHandler - private Listener sendListener = new Listener<>(event -> { + private final Listener sendListener = new Listener<>(event -> { if (event.getPacket() instanceof CPacketChatMessage) { String s = ((CPacketChatMessage) event.getPacket()).getMessage(); if (delim.getValue()) { @@ -64,7 +61,7 @@ public class ChatEncryption extends Module { }); @EventHandler - private Listener receiveListener = new Listener<>(event -> { + private final Listener receiveListener = new Listener<>(event -> { if (event.getPacket() instanceof SPacketChat) { String s = ((SPacketChat) event.getPacket()).getChatComponent().getUnformattedText(); @@ -94,6 +91,10 @@ public class ChatEncryption extends Module { } }); + private static Map reverseMap(Map map) { + return map.entrySet().stream().collect(Collectors.toMap(Map.Entry::getValue, Map.Entry::getKey)); + } + private Map generateShuffleMap(int seed) { Random r = new Random(seed); List characters = CharBuffer.wrap(ORIGIN_CHARS).chars().mapToObj(value -> (char) value).collect(Collectors.toList()); @@ -131,10 +132,6 @@ public class ChatEncryption extends Module { }); } - private static Map reverseMap(Map map) { - return map.entrySet().stream().collect(Collectors.toMap(Map.Entry::getValue, Map.Entry::getKey)); - } - private enum EncryptionMode { SHUFFLE, SHIFT } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/chat/CustomChat.java b/src/main/java/me/zeroeightsix/kami/module/modules/chat/CustomChat.java index 0cf0a9589..1ec7b00eb 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/chat/CustomChat.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/chat/CustomChat.java @@ -18,35 +18,13 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendWarningMessage; */ @Module.Info(name = "CustomChat", category = Module.Category.CHAT, description = "Add a custom suffix to the end of your message!", showOnArray = Module.ShowOnArray.OFF) public class CustomChat extends Module { + public static String[] cmdCheck = new String[]{"/", ",", ".", "-", ";", "?", "*", "^", "&", Command.getCommandPrefix()}; + private static long startTime = 0; public Setting textMode = register(Settings.e("Message", TextMode.ON_TOP)); + public Setting customText = register(Settings.stringBuilder("Custom Text").withValue("unchanged").withConsumer((old, value) -> { + }).build()); private Setting decoMode = register(Settings.e("Separator", DecoMode.NONE)); private Setting commands = register(Settings.b("Commands", false)); - public Setting customText = register(Settings.stringBuilder("Custom Text").withValue("unchanged").withConsumer((old, value) -> {}).build()); - - private enum DecoMode { SEPARATOR, CLASSIC, NONE } - public enum TextMode { NAME, ON_TOP, WEBSITE, JAPANESE, CUSTOM } - public static String[] cmdCheck = new String[]{"/", ",", ".", "-", ";", "?", "*", "^", "&", Command.getCommandPrefix()}; - - private String getText(TextMode t) { - switch (t) { - case NAME: return "\u1d0b\u1d00\u1d0d\u026a \u0299\u029f\u1d1c\u1d07"; - case ON_TOP: return "\u1d0b\u1d00\u1d0d\u026a \u0299\u029f\u1d1c\u1d07 \u1d0f\u0274 \u1d1b\u1d0f\u1d18"; - case WEBSITE: return "\u0299\u029f\u1d1c\u1d07\u002e\u0299\u1d07\u029f\u029f\u1d00\u002e\u1d21\u1d1b\u0493"; - case JAPANESE: return "\u4e0a\u306b\u30ab\u30df\u30d6\u30eb\u30fc"; - case CUSTOM: return customText.getValue(); - default: return ""; - } - } - - private String getFull(DecoMode d) { - switch (d) { - case NONE: return " " + getText(textMode.getValue()); - case CLASSIC: return " \u00ab " + getText(textMode.getValue()) + " \u00bb"; - case SEPARATOR: return " " + separator + " " + getText(textMode.getValue()); - default: return ""; - } - } - @EventHandler public Listener listener = new Listener<>(event -> { if (event.getPacket() instanceof CPacketChatMessage) { @@ -58,6 +36,36 @@ public class CustomChat extends Module { } }); + private String getText(TextMode t) { + switch (t) { + case NAME: + return "\u1d0b\u1d00\u1d0d\u026a \u0299\u029f\u1d1c\u1d07"; + case ON_TOP: + return "\u1d0b\u1d00\u1d0d\u026a \u0299\u029f\u1d1c\u1d07 \u1d0f\u0274 \u1d1b\u1d0f\u1d18"; + case WEBSITE: + return "\u0299\u029f\u1d1c\u1d07\u002e\u0299\u1d07\u029f\u029f\u1d00\u002e\u1d21\u1d1b\u0493"; + case JAPANESE: + return "\u4e0a\u306b\u30ab\u30df\u30d6\u30eb\u30fc"; + case CUSTOM: + return customText.getValue(); + default: + return ""; + } + } + + private String getFull(DecoMode d) { + switch (d) { + case NONE: + return " " + getText(textMode.getValue()); + case CLASSIC: + return " \u00ab " + getText(textMode.getValue()) + " \u00bb"; + case SEPARATOR: + return " " + separator + " " + getText(textMode.getValue()); + default: + return ""; + } + } + private boolean isCommand(String s) { for (String value : cmdCheck) { if (s.startsWith(value)) return true; @@ -65,7 +73,6 @@ public class CustomChat extends Module { return false; } - private static long startTime = 0; @Override public void onUpdate() { if (startTime == 0) startTime = System.currentTimeMillis(); @@ -76,4 +83,8 @@ public class CustomChat extends Module { startTime = System.currentTimeMillis(); } } + + private enum DecoMode {SEPARATOR, CLASSIC, NONE} + + public enum TextMode {NAME, ON_TOP, WEBSITE, JAPANESE, CUSTOM} } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/chat/DiscordNotifs.java b/src/main/java/me/zeroeightsix/kami/module/modules/chat/DiscordNotifs.java index ed4f2ca71..6e6fae5ac 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/chat/DiscordNotifs.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/chat/DiscordNotifs.java @@ -32,6 +32,25 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendErrorMessage; */ @Module.Info(name = "DiscordNotifs", category = Module.Category.CHAT, description = "Sends your chat to a set Discord channel", alwaysListening = true) public class DiscordNotifs extends Module { + private static ServerData cServer; + /* Getters for messages */ + private static long startTime = 0; + public Setting url = register(Settings.s("URL", "unchanged")); + public Setting pingID = register(Settings.s("Ping ID", "unchanged")); + public Setting avatar = register(Settings.s("Avatar", KamiMod.GITHUB_LINK + "assets/raw/assets/assets/icons/kami.png")); + @EventHandler + public Listener serverConnectedEvent = new Listener<>(event -> { + if (isEnabled() && event.getScreen() instanceof GuiConnecting) { + cServer = mc.currentServerData; + EVENT_BUS.post(new ServerConnectedEvent()); + } + }); + @EventHandler + public Listener serverDisconnectedEvent = new Listener<>(event -> { + if (isEnabled() && event.getScreen() instanceof GuiDisconnected && (cServer != null || mc.currentServerData != null)) { + EVENT_BUS.post(new ServerDisconnectedEvent()); + } + }); private Setting timeout = register(Settings.b("Timeout", true)); private Setting timeoutTime = register(Settings.integerBuilder().withName("Seconds").withMinimum(0).withMaximum(120).withValue(10).withVisibility(v -> timeout.getValue()).build()); private Setting time = register(Settings.b("Timestamp", true)); @@ -42,12 +61,6 @@ public class DiscordNotifs extends Module { private Setting restart = register(Settings.booleanBuilder("Restart Msgs").withValue(true).withVisibility(v -> !all.getValue()).build()); private Setting direct = register(Settings.booleanBuilder("Received DMs").withValue(true).withVisibility(v -> !all.getValue()).build()); private Setting directSent = register(Settings.booleanBuilder("Send DMs").withValue(true).withVisibility(v -> !all.getValue()).build()); - public Setting url = register(Settings.s("URL", "unchanged")); - public Setting pingID = register(Settings.s("Ping ID", "unchanged")); - public Setting avatar = register(Settings.s("Avatar", KamiMod.GITHUB_LINK + "assets/raw/assets/assets/icons/kami.png")); - - private static ServerData cServer; - /* Listeners to send the messages */ @EventHandler public Listener listener0 = new Listener<>(event -> { @@ -60,14 +73,12 @@ public class DiscordNotifs extends Module { sendMessage(getPingID(message) + getMessageType(direct.getValue(), directSent.getValue(), message, getServer()) + getTime() + message, avatar.getValue()); } }); - @EventHandler public Listener listener1 = new Listener<>(event -> { if (isDisabled()) return; if (!disconnect.getValue()) return; sendMessage(getPingID("KamiBlueMessageType1") + getTime() + getMessageType(direct.getValue(), directSent.getValue(), "KamiBlueMessageType1", getServer()), avatar.getValue()); }); - @EventHandler public Listener listener2 = new Listener<>(event -> { if (isDisabled()) return; @@ -75,11 +86,10 @@ public class DiscordNotifs extends Module { sendMessage(getPingID("KamiBlueMessageType2") + getTime() + getMessageType(direct.getValue(), directSent.getValue(), "KamiBlueMessageType2", getServer()), avatar.getValue()); }); - /* Getters for messages */ - private static long startTime = 0; private boolean timeout(String message) { if (!timeout.getValue()) return true; - else if (isRestart(restart.getValue(), message) || isDirect(direct.getValue(), message) || isDirectOther(directSent.getValue(), message)) return true; + else if (isRestart(restart.getValue(), message) || isDirect(direct.getValue(), message) || isDirectOther(directSent.getValue(), message)) + return true; if (startTime == 0) startTime = System.currentTimeMillis(); if (startTime + (timeoutTime.getValue() * 1000) <= System.currentTimeMillis()) { // 1 timeout = 1 second = 1000 ms startTime = System.currentTimeMillis(); @@ -90,8 +100,10 @@ public class DiscordNotifs extends Module { /* Text formatting and misc methods */ private String getPingID(String message) { - if (isRestart(restart.getValue(), message) || isDirect(direct.getValue(), message) || isDirectOther(directSent.getValue(), message) || isImportantQueue(importantPings.getValue(), message)) return formatPingID(); - else if ((message.equals("KamiBlueMessageType1")) || (message.equals("KamiBlueMessageType2"))) return formatPingID(); + if (isRestart(restart.getValue(), message) || isDirect(direct.getValue(), message) || isDirectOther(directSent.getValue(), message) || isImportantQueue(importantPings.getValue(), message)) + return formatPingID(); + else if ((message.equals("KamiBlueMessageType1")) || (message.equals("KamiBlueMessageType2"))) + return formatPingID(); else return ""; } @@ -123,25 +135,9 @@ public class DiscordNotifs extends Module { if (url.getValue().equals("unchanged")) { sendErrorMessage(getChatName() + "You must first set a webhook url with the '&7" + Command.getCommandPrefix() + "discordnotifs&r' command"); disable(); - } - else if (pingID.getValue().equals("unchanged") && importantPings.getValue()) { + } else if (pingID.getValue().equals("unchanged") && importantPings.getValue()) { sendErrorMessage(getChatName() + "For Pings to work, you must set a Discord ID with the '&7" + Command.getCommandPrefix() + "discordnotifs&r' command"); disable(); } } - - @EventHandler - public Listener serverConnectedEvent = new Listener<>(event -> { - if (isEnabled() && event.getScreen() instanceof GuiConnecting) { - cServer = mc.currentServerData; - EVENT_BUS.post(new ServerConnectedEvent()); - } - }); - - @EventHandler - public Listener serverDisconnectedEvent = new Listener<>(event -> { - if (isEnabled() && event.getScreen() instanceof GuiDisconnected && (cServer != null || mc.currentServerData != null)) { - EVENT_BUS.post(new ServerDisconnectedEvent()); - } - }); } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/chat/FancyChat.java b/src/main/java/me/zeroeightsix/kami/module/modules/chat/FancyChat.java index 9e932bbd1..16319f668 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/chat/FancyChat.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/chat/FancyChat.java @@ -18,14 +18,23 @@ import static me.zeroeightsix.kami.util.InfoCalculator.isNumberEven; */ @Module.Info(name = "FancyChat", category = Module.Category.CHAT, description = "Makes messages you send fancy", showOnArray = Module.ShowOnArray.OFF) public class FancyChat extends Module { + private static final Random random = new Random(); private Setting uwu = register(Settings.b("uwu", true)); private Setting leet = register(Settings.b("1337", false)); private Setting mock = register(Settings.b("mOcK", false)); private Setting green = register(Settings.b(">", false)); private Setting randomSetting = register(Settings.booleanBuilder("Random Case").withValue(true).withVisibility(v -> mock.getValue()).build()); private Setting commands = register(Settings.b("Commands", false)); - - private static Random random = new Random(); + @EventHandler + public Listener listener = new Listener<>(event -> { + if (event.getPacket() instanceof CPacketChatMessage) { + String s = ((CPacketChatMessage) event.getPacket()).getMessage(); + if (!commands.getValue() && isCommand(s)) return; + s = getText(s); + if (s.length() >= 256) s = s.substring(0, 256); + ((CPacketChatMessage) event.getPacket()).message = s; + } + }); private String getText(String s) { if (uwu.getValue()) s = uwuConverter(s); @@ -39,17 +48,6 @@ public class FancyChat extends Module { return "> " + input; } - @EventHandler - public Listener listener = new Listener<>(event -> { - if (event.getPacket() instanceof CPacketChatMessage) { - String s = ((CPacketChatMessage) event.getPacket()).getMessage(); - if (!commands.getValue() && isCommand(s)) return; - s = getText(s); - if (s.length() >= 256) s = s.substring(0, 256); - ((CPacketChatMessage) event.getPacket()).message = s; - } - }); - @Override public String getHudInfo() { StringBuilder returned = new StringBuilder(); @@ -77,7 +75,7 @@ public class FancyChat extends Module { private String leetConverter(String input) { StringBuilder message = new StringBuilder(); - for (int i = 0 ; i < input.length() ; i++) { + for (int i = 0; i < input.length(); i++) { String inputChar = input.charAt(i) + ""; inputChar = inputChar.toLowerCase(); inputChar = leetSwitch(inputChar); @@ -88,7 +86,7 @@ public class FancyChat extends Module { private String mockingConverter(String input) { StringBuilder message = new StringBuilder(); - for (int i = 0 ; i < input.length() ; i++) { + for (int i = 0; i < input.length(); i++) { String inputChar = input.charAt(i) + ""; int rand = 0; @@ -128,7 +126,8 @@ public class FancyChat extends Module { return "$"; case "t": return "7"; - default: return i; + default: + return i; } } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/chat/FormatChat.java b/src/main/java/me/zeroeightsix/kami/module/modules/chat/FormatChat.java index da72dc994..e3d4d5c5f 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/chat/FormatChat.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/chat/FormatChat.java @@ -18,17 +18,6 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendWarningMessage; @Module.Info(name = "FormatChat", description = "Add colour and linebreak support to upstream chat packets", category = Module.Category.CHAT) public class FormatChat extends Module { - @Override - public void onEnable() { - if (Minecraft.getMinecraft().getCurrentServerData() == null) { - sendWarningMessage(getChatName() + " &6&lWarning: &r&6This does not work in singleplayer"); - disable(); - } - else { - sendWarningMessage(getChatName() + " &6&lWarning: &r&6This will kick you on most servers!"); - } - } - @EventHandler public Listener sendListener = new Listener<>(event -> { if (event.getPacket() instanceof CPacketChatMessage) { @@ -42,4 +31,14 @@ public class FormatChat extends Module { } } }); + + @Override + public void onEnable() { + if (Minecraft.getMinecraft().getCurrentServerData() == null) { + sendWarningMessage(getChatName() + " &6&lWarning: &r&6This does not work in singleplayer"); + disable(); + } else { + sendWarningMessage(getChatName() + " &6&lWarning: &r&6This will kick you on most servers!"); + } + } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/chat/Spammer.java b/src/main/java/me/zeroeightsix/kami/module/modules/chat/Spammer.java index f1cff9c59..85ef51830 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/chat/Spammer.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/chat/Spammer.java @@ -20,10 +20,18 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.*; */ @Module.Info(name = "Spammer", description = "Spams text from a file on a set delay into the chat", category = Module.Category.CHAT) public class Spammer extends Module { - private Setting timeoutTime = register(Settings.integerBuilder().withName("Timeout (s)").withMinimum(1).withMaximum(240).withValue(10).build()); - + private static long startTime = 0; List tempLines = new ArrayList<>(); String[] spammer; + private Setting timeoutTime = register(Settings.integerBuilder().withName("Timeout (s)").withMinimum(1).withMaximum(240).withValue(10).build()); + + public static String getRandom(String[] array) { + int rand = new Random().nextInt(array.length); + while (array[rand].isEmpty() || array[rand].equals(" ")) { + rand = new Random().nextInt(array.length); // big meme to try to avoid sending empty messages + } + return array[rand]; + } public void onEnable() { BufferedReader bufferedReader; @@ -49,7 +57,6 @@ public class Spammer extends Module { sendMsg(getRandom(spammer)); } - private static long startTime = 0; private void sendMsg(String message) { if (startTime == 0) startTime = System.currentTimeMillis(); if (startTime + (timeoutTime.getValue() * 1000) <= System.currentTimeMillis()) { // 1 timeout = 1 second = 1000 ms @@ -57,12 +64,4 @@ public class Spammer extends Module { sendServerMessage(message); } } - - public static String getRandom(String[] array) { - int rand = new Random().nextInt(array.length); - while (array[rand].isEmpty() || array[rand].equals(" ")) { - rand = new Random().nextInt(array.length); // big meme to try to avoid sending empty messages - } - return array[rand]; - } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/client/ActiveModules.java b/src/main/java/me/zeroeightsix/kami/module/modules/client/ActiveModules.java index 1fdca9d2b..50e9b6907 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/client/ActiveModules.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/client/ActiveModules.java @@ -23,16 +23,12 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendDisableMessage; */ @Module.Info(name = "ActiveModules", category = Module.Category.CLIENT, description = "Configures ActiveModules colours and modes", showOnArray = Module.ShowOnArray.OFF) public class ActiveModules extends Module { - private Setting forgeHax = register(Settings.b("ForgeHax", false)); public Setting mode = register(Settings.e("Mode", Mode.RAINBOW)); - private Setting rainbowSpeed = register(Settings.integerBuilder().withName("Speed R").withValue(30).withMinimum(0).withMaximum(100).withVisibility(v -> mode.getValue().equals(Mode.RAINBOW)).build()); public Setting saturationR = register(Settings.integerBuilder().withName("Saturation R").withValue(117).withMinimum(0).withMaximum(255).withVisibility(v -> mode.getValue().equals(Mode.RAINBOW)).build()); public Setting brightnessR = register(Settings.integerBuilder().withName("Brightness R").withValue(255).withMinimum(0).withMaximum(255).withVisibility(v -> mode.getValue().equals(Mode.RAINBOW)).build()); public Setting hueC = register(Settings.integerBuilder().withName("Hue C").withValue(178).withMinimum(0).withMaximum(255).withVisibility(v -> mode.getValue().equals(Mode.CUSTOM)).build()); public Setting saturationC = register(Settings.integerBuilder().withName("Saturation C").withValue(156).withMinimum(0).withMaximum(255).withVisibility(v -> mode.getValue().equals(Mode.CUSTOM)).build()); public Setting brightnessC = register(Settings.integerBuilder().withName("Brightness C").withValue(255).withMinimum(0).withMaximum(255).withVisibility(v -> mode.getValue().equals(Mode.CUSTOM)).build()); - private Setting alternate = register(Settings.booleanBuilder().withName("Alternate").withValue(true).withVisibility(v -> mode.getValue().equals(Mode.INFO_OVERLAY)).build()); - public Setting chat = register(Settings.s("Chat", "162,136,227")); public Setting combat = register(Settings.s("Combat", "229,68,109")); public Setting experimental = register(Settings.s("Experimental", "211,188,192")); @@ -41,6 +37,9 @@ public class ActiveModules extends Module { public Setting player = register(Settings.s("Player", "255,137,102")); public Setting movement = register(Settings.s("Movement", "111,60,145")); public Setting misc = register(Settings.s("Misc", "165,102,139")); + private Setting forgeHax = register(Settings.b("ForgeHax", false)); + private Setting rainbowSpeed = register(Settings.integerBuilder().withName("Speed R").withValue(30).withMinimum(0).withMaximum(100).withVisibility(v -> mode.getValue().equals(Mode.RAINBOW)).build()); + private Setting alternate = register(Settings.booleanBuilder().withName("Alternate").withValue(true).withVisibility(v -> mode.getValue().equals(Mode.INFO_OVERLAY)).build()); private static int getRgb(String input, int arrayPos) { String[] toConvert = input.split(","); @@ -67,7 +66,8 @@ public class ActiveModules extends Module { case STRIKETHROUGH: case OBFUSCATED: case BOLD: - localColor = colourEnumMap.get(TextFormatting.WHITE).colorLocal; break; + localColor = colourEnumMap.get(TextFormatting.WHITE).colorLocal; + break; default: localColor = colourEnumMap.get(infoGetSetting(isOne)).colorLocal; } @@ -87,15 +87,24 @@ public class ActiveModules extends Module { public int getCategoryColour(Module module) { switch (module.getCategory()) { - case CHAT: return rgbToInt(getRgb(chat.getValue(), 0), getRgb(chat.getValue(), 1), getRgb(chat.getValue(), 2)); - case COMBAT: return rgbToInt(getRgb(combat.getValue(), 0), getRgb(combat.getValue(), 1), getRgb(combat.getValue(), 2)); - case EXPERIMENTAL: return rgbToInt(getRgb(experimental.getValue(), 0), getRgb(experimental.getValue(), 1), getRgb(experimental.getValue(), 2)); - case CLIENT: return rgbToInt(getRgb(client.getValue(), 0), getRgb(client.getValue(), 1), getRgb(client.getValue(), 2)); - case RENDER: return rgbToInt(getRgb(render.getValue(), 0), getRgb(render.getValue(), 1), getRgb(render.getValue(), 2)); - case PLAYER: return rgbToInt(getRgb(player.getValue(), 0), getRgb(player.getValue(), 1), getRgb(player.getValue(), 2)); - case MOVEMENT: return rgbToInt(getRgb(movement.getValue(), 0), getRgb(movement.getValue(), 1), getRgb(movement.getValue(), 2)); - case MISC: return rgbToInt(getRgb(misc.getValue(), 0), getRgb(misc.getValue(), 1), getRgb(misc.getValue(), 2)); - default: return rgbToInt(1, 1, 1); + case CHAT: + return rgbToInt(getRgb(chat.getValue(), 0), getRgb(chat.getValue(), 1), getRgb(chat.getValue(), 2)); + case COMBAT: + return rgbToInt(getRgb(combat.getValue(), 0), getRgb(combat.getValue(), 1), getRgb(combat.getValue(), 2)); + case EXPERIMENTAL: + return rgbToInt(getRgb(experimental.getValue(), 0), getRgb(experimental.getValue(), 1), getRgb(experimental.getValue(), 2)); + case CLIENT: + return rgbToInt(getRgb(client.getValue(), 0), getRgb(client.getValue(), 1), getRgb(client.getValue(), 2)); + case RENDER: + return rgbToInt(getRgb(render.getValue(), 0), getRgb(render.getValue(), 1), getRgb(render.getValue(), 2)); + case PLAYER: + return rgbToInt(getRgb(player.getValue(), 0), getRgb(player.getValue(), 1), getRgb(player.getValue(), 2)); + case MOVEMENT: + return rgbToInt(getRgb(movement.getValue(), 0), getRgb(movement.getValue(), 1), getRgb(movement.getValue(), 2)); + case MISC: + return rgbToInt(getRgb(misc.getValue(), 0), getRgb(misc.getValue(), 1), getRgb(misc.getValue(), 2)); + default: + return rgbToInt(1, 1, 1); } } @@ -110,6 +119,9 @@ public class ActiveModules extends Module { else return ""; } - public enum Mode { RAINBOW, CUSTOM, CATEGORY, INFO_OVERLAY } - public void onDisable() { sendDisableMessage(this.getClass()); } + public void onDisable() { + sendDisableMessage(this.getClass()); + } + + public enum Mode {RAINBOW, CUSTOM, CATEGORY, INFO_OVERLAY} } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/client/CommandConfig.java b/src/main/java/me/zeroeightsix/kami/module/modules/client/CommandConfig.java index 2711ff0b1..93ef06f33 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/client/CommandConfig.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/client/CommandConfig.java @@ -14,7 +14,10 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendErrorMessage; public class CommandConfig extends Module { public Setting aliasInfo = register(Settings.b("Alias Info", true)); public Setting prefixChat = register(Settings.b("PrefixChat", true)); - public void onDisable() { sendDisableMessage(this.getClass()); } + + public void onDisable() { + sendDisableMessage(this.getClass()); + } private void sendDisableMessage(Class clazz) { sendErrorMessage("Error: The " + MODULE_MANAGER.getModule(clazz).getName() + " module is only for configuring command options, disabling it doesn't do anything."); diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/client/InfoOverlay.java b/src/main/java/me/zeroeightsix/kami/module/modules/client/InfoOverlay.java index 880dbccdd..01a0d4bb1 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/client/InfoOverlay.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/client/InfoOverlay.java @@ -29,6 +29,8 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendDisableMessage; public class InfoOverlay extends Module { /* This is so horrible but there's no other way */ private Setting page = register(Settings.enumBuilder(Page.class).withName("Page").withValue(Page.ONE).build()); + public Setting firstColour = register(Settings.enumBuilder(ColourTextFormatting.ColourCode.class).withName("First Colour").withValue(ColourTextFormatting.ColourCode.WHITE).withVisibility(v -> page.getValue().equals(Page.THREE)).build()); + public Setting secondColour = register(Settings.enumBuilder(ColourTextFormatting.ColourCode.class).withName("Second Colour").withValue(ColourTextFormatting.ColourCode.BLUE).withVisibility(v -> page.getValue().equals(Page.THREE)).build()); /* Page One */ private Setting version = register(Settings.booleanBuilder("Version").withValue(true).withVisibility(v -> page.getValue().equals(Page.ONE)).build()); private Setting username = register(Settings.booleanBuilder("Username").withValue(true).withVisibility(v -> page.getValue().equals(Page.ONE)).build()); @@ -50,61 +52,11 @@ public class InfoOverlay extends Module { public Setting timeTypeSetting = register(Settings.enumBuilder(TimeUtil.TimeType.class).withName("Time Format").withValue(TimeUtil.TimeType.HHMMSS).withVisibility(v -> page.getValue().equals(Page.THREE) && time.getValue()).build()); public Setting timeUnitSetting = register(Settings.enumBuilder(TimeUtil.TimeUnit.class).withName("Time Unit").withValue(TimeUtil.TimeUnit.H12).withVisibility(v -> page.getValue().equals(Page.THREE) && time.getValue()).build()); public Setting doLocale = register(Settings.booleanBuilder("Time Show AMPM").withValue(true).withVisibility(v -> page.getValue().equals(Page.THREE) && time.getValue()).build()); - public Setting firstColour = register(Settings.enumBuilder(ColourTextFormatting.ColourCode.class).withName("First Colour").withValue(ColourTextFormatting.ColourCode.WHITE).withVisibility(v -> page.getValue().equals(Page.THREE)).build()); - public Setting secondColour = register(Settings.enumBuilder(ColourTextFormatting.ColourCode.class).withName("Second Colour").withValue(ColourTextFormatting.ColourCode.BLUE).withVisibility(v -> page.getValue().equals(Page.THREE)).build()); public static String getStringColour(TextFormatting c) { return c.toString(); } - private TextFormatting setToText(ColourTextFormatting.ColourCode colourCode) { - return toTextMap.get(colourCode); - } - - public ArrayList infoContents() { - ArrayList infoContents = new ArrayList<>(); - if (version.getValue()) { - infoContents.add(getStringColour(setToText(firstColour.getValue())) + KamiMod.KAMI_KANJI + getStringColour(setToText(secondColour.getValue())) + " " + KamiMod.MODVERSMALL); - } if (username.getValue()) { - infoContents.add(getStringColour(setToText(firstColour.getValue())) + "Welcome" + getStringColour(setToText(secondColour.getValue())) + " " + mc.getSession().getUsername() + "!"); - } if (time.getValue()) { - infoContents.add(getStringColour(setToText(firstColour.getValue())) + TimeUtil.getFinalTime(setToText(secondColour.getValue()), setToText(firstColour.getValue()), timeUnitSetting.getValue(), timeTypeSetting.getValue(), doLocale.getValue())); - } if (tps.getValue()) { - infoContents.add(getStringColour(setToText(firstColour.getValue())) + InfoCalculator.tps() + getStringColour(setToText(secondColour.getValue())) + " tps"); - } if (fps.getValue()) { - infoContents.add(getStringColour(setToText(firstColour.getValue())) + Minecraft.debugFPS + getStringColour(setToText(secondColour.getValue())) + " fps"); - } if (speed.getValue()) { - infoContents.add(getStringColour(setToText(firstColour.getValue())) + InfoCalculator.speed(useUnitKmH(), mc) + getStringColour(setToText(secondColour.getValue())) + " " + unitType(speedUnit.getValue())); - } if (timerSpeed.getValue()) { - infoContents.add(getStringColour(setToText(firstColour.getValue())) + TimerSpeed.returnGui() + getStringColour(setToText(secondColour.getValue())) + "t"); - } if (ping.getValue()) { - infoContents.add(getStringColour(setToText(firstColour.getValue())) + InfoCalculator.ping(mc) + getStringColour(setToText(secondColour.getValue())) + " ms"); - } if (durability.getValue()) { - infoContents.add(getStringColour(setToText(firstColour.getValue())) + InfoCalculator.dura(mc) + getStringColour(setToText(secondColour.getValue())) + " dura"); - } if (memory.getValue()) { - infoContents.add(getStringColour(setToText(firstColour.getValue())) + InfoCalculator.memory() + getStringColour(setToText(secondColour.getValue())) + "mB free"); - } if (totems.getValue()) { - infoContents.add(getStringColour(setToText(firstColour.getValue())) + getItems(Items.TOTEM_OF_UNDYING) + getStringColour(setToText(secondColour.getValue())) + " Totems"); - } if (endCrystals.getValue()) { - infoContents.add(getStringColour(setToText(firstColour.getValue())) + getItems(Items.END_CRYSTAL) + getStringColour(setToText(secondColour.getValue())) + " Crystals"); - } if (expBottles.getValue()) { - infoContents.add(getStringColour(setToText(firstColour.getValue())) + getItems(Items.EXPERIENCE_BOTTLE) + getStringColour(setToText(secondColour.getValue())) + " EXP Bottles"); - } if (godApples.getValue()) { - infoContents.add(getStringColour(setToText(firstColour.getValue())) + getItems(Items.GOLDEN_APPLE) + getStringColour(setToText(secondColour.getValue())) + " God Apples"); - } - return infoContents; - } - - public void onDisable() { sendDisableMessage(this.getClass()); } - - private enum SpeedUnit { MPS, KMH } - - private enum Page { ONE, TWO, THREE } - - public boolean useUnitKmH() { - return speedUnit.getValue().equals(SpeedUnit.KMH); - } - public static int getItems(Item i) { return mc.player.inventory.mainInventory.stream().filter(itemStack -> itemStack.getItem() == i).mapToInt(ItemStack::getCount).sum() + mc.player.inventory.offHandInventory.stream().filter(itemStack -> itemStack.getItem() == i).mapToInt(ItemStack::getCount).sum(); } @@ -113,11 +65,77 @@ public class InfoOverlay extends Module { return mc.player.inventory.armorInventory.stream().filter(itemStack -> itemStack.getItem() == i).mapToInt(ItemStack::getCount).sum(); } + private TextFormatting setToText(ColourTextFormatting.ColourCode colourCode) { + return toTextMap.get(colourCode); + } + + public ArrayList infoContents() { + ArrayList infoContents = new ArrayList<>(); + if (version.getValue()) { + infoContents.add(getStringColour(setToText(firstColour.getValue())) + KamiMod.KAMI_KANJI + getStringColour(setToText(secondColour.getValue())) + " " + KamiMod.MODVERSMALL); + } + if (username.getValue()) { + infoContents.add(getStringColour(setToText(firstColour.getValue())) + "Welcome" + getStringColour(setToText(secondColour.getValue())) + " " + mc.getSession().getUsername() + "!"); + } + if (time.getValue()) { + infoContents.add(getStringColour(setToText(firstColour.getValue())) + TimeUtil.getFinalTime(setToText(secondColour.getValue()), setToText(firstColour.getValue()), timeUnitSetting.getValue(), timeTypeSetting.getValue(), doLocale.getValue())); + } + if (tps.getValue()) { + infoContents.add(getStringColour(setToText(firstColour.getValue())) + InfoCalculator.tps() + getStringColour(setToText(secondColour.getValue())) + " tps"); + } + if (fps.getValue()) { + infoContents.add(getStringColour(setToText(firstColour.getValue())) + Minecraft.debugFPS + getStringColour(setToText(secondColour.getValue())) + " fps"); + } + if (speed.getValue()) { + infoContents.add(getStringColour(setToText(firstColour.getValue())) + InfoCalculator.speed(useUnitKmH(), mc) + getStringColour(setToText(secondColour.getValue())) + " " + unitType(speedUnit.getValue())); + } + if (timerSpeed.getValue()) { + infoContents.add(getStringColour(setToText(firstColour.getValue())) + TimerSpeed.returnGui() + getStringColour(setToText(secondColour.getValue())) + "t"); + } + if (ping.getValue()) { + infoContents.add(getStringColour(setToText(firstColour.getValue())) + InfoCalculator.ping(mc) + getStringColour(setToText(secondColour.getValue())) + " ms"); + } + if (durability.getValue()) { + infoContents.add(getStringColour(setToText(firstColour.getValue())) + InfoCalculator.dura(mc) + getStringColour(setToText(secondColour.getValue())) + " dura"); + } + if (memory.getValue()) { + infoContents.add(getStringColour(setToText(firstColour.getValue())) + InfoCalculator.memory() + getStringColour(setToText(secondColour.getValue())) + "mB free"); + } + if (totems.getValue()) { + infoContents.add(getStringColour(setToText(firstColour.getValue())) + getItems(Items.TOTEM_OF_UNDYING) + getStringColour(setToText(secondColour.getValue())) + " Totems"); + } + if (endCrystals.getValue()) { + infoContents.add(getStringColour(setToText(firstColour.getValue())) + getItems(Items.END_CRYSTAL) + getStringColour(setToText(secondColour.getValue())) + " Crystals"); + } + if (expBottles.getValue()) { + infoContents.add(getStringColour(setToText(firstColour.getValue())) + getItems(Items.EXPERIENCE_BOTTLE) + getStringColour(setToText(secondColour.getValue())) + " EXP Bottles"); + } + if (godApples.getValue()) { + infoContents.add(getStringColour(setToText(firstColour.getValue())) + getItems(Items.GOLDEN_APPLE) + getStringColour(setToText(secondColour.getValue())) + " God Apples"); + } + return infoContents; + } + + public void onDisable() { + sendDisableMessage(this.getClass()); + } + + public boolean useUnitKmH() { + return speedUnit.getValue().equals(SpeedUnit.KMH); + } + private String unitType(SpeedUnit s) { switch (s) { - case MPS: return "m/s"; - case KMH: return "km/h"; - default: return "Invalid unit type (mps or kmh)"; + case MPS: + return "m/s"; + case KMH: + return "km/h"; + default: + return "Invalid unit type (mps or kmh)"; } } + + private enum SpeedUnit {MPS, KMH} + + private enum Page {ONE, TWO, THREE} } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/client/InventoryViewer.java b/src/main/java/me/zeroeightsix/kami/module/modules/client/InventoryViewer.java index c64fd3f83..a4db402b8 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/client/InventoryViewer.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/client/InventoryViewer.java @@ -38,6 +38,21 @@ public class InventoryViewer extends Module { private boolean isTop = false; private boolean isBottom = false; + private static void preItemRender() { + GlStateManager.pushMatrix(); + GlStateManager.enableDepth(); + GlStateManager.depthMask(true); + // Yes, this is meant to be paired with disableStandardItemLighting - 20kdc + RenderHelper.enableGUIStandardItemLighting(); + } + + private static void postItemRender() { + RenderHelper.disableStandardItemLighting(); + GlStateManager.depthMask(false); + GlStateManager.disableDepth(); + GlStateManager.popMatrix(); + } + private int invMoveHorizontal() { if (!docking.getValue() || mcTexture.getValue()) return 0; if (isLeft) return 45; @@ -78,10 +93,6 @@ public class InventoryViewer extends Module { } } - private enum ViewSize { - LARGE, MEDIUM, SMALL - } - private void boxRender(final int x, final int y) { // SET UNRELIABLE DEFAULTS (Don't restore these) { GlStateManager.enableAlpha(); @@ -116,6 +127,10 @@ public class InventoryViewer extends Module { } } + // These methods should apply and clean up in pairs. + // That means that if a pre* has to disableAlpha, the post* function should enableAlpha. + // - 20kdc + private void itemRender(final NonNullList items, final int x, final int y) { GlStateManager.clear(GL11.GL_DEPTH_BUFFER_BIT); for (int size = items.size(), item = 9; item < size; ++item) { @@ -128,24 +143,11 @@ public class InventoryViewer extends Module { } } - // These methods should apply and clean up in pairs. - // That means that if a pre* has to disableAlpha, the post* function should enableAlpha. - // - 20kdc - - private static void preItemRender() { - GlStateManager.pushMatrix(); - GlStateManager.enableDepth(); - GlStateManager.depthMask(true); - // Yes, this is meant to be paired with disableStandardItemLighting - 20kdc - RenderHelper.enableGUIStandardItemLighting(); + public void onDisable() { + sendDisableMessage(this.getClass()); } - private static void postItemRender() { - RenderHelper.disableStandardItemLighting(); - GlStateManager.depthMask(false); - GlStateManager.disableDepth(); - GlStateManager.popMatrix(); + private enum ViewSize { + LARGE, MEDIUM, SMALL } - - public void onDisable() { sendDisableMessage(this.getClass()); } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AimBot.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AimBot.java index f1e7141d7..a2f8360a0 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AimBot.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AimBot.java @@ -52,9 +52,9 @@ public class AimBot extends Module { mc.playerController.syncCurrentPlayItem(); } - for(Entity entity : mc.world.loadedEntityList) { + for (Entity entity : mc.world.loadedEntityList) { - if(entity instanceof EntityLivingBase) { + if (entity instanceof EntityLivingBase) { EntityLivingBase potentialTarget = (EntityLivingBase) entity; if (!(potentialTarget instanceof EntityPlayerSP) && mc.player.getDistance(potentialTarget) <= range.getValue() && !(potentialTarget.getHealth() <= 0)) { diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AntiChainPop.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AntiChainPop.java index b797e398c..fdb0c8689 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AntiChainPop.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AntiChainPop.java @@ -16,15 +16,13 @@ import static me.zeroeightsix.kami.module.modules.client.InfoOverlay.getItems; /** * @author S-B99 * Created by S-B99 on 25/03/20 - * + *

* Event / Packet mode taken from CliNet * https://github.com/DarkiBoi/CliNet/blob/fd225a5c8cc373974b0c9a3457acbeed206e8cca/src/main/java/me/zeroeightsix/kami/module/modules/combat/TotemPopCounter.java */ @Module.Info(name = "AntiChainPop", description = "Enables Surround when popping a totem", category = Module.Category.COMBAT) public class AntiChainPop extends Module { private Setting mode = register(Settings.e("Mode", Mode.PACKET)); - private int totems = 0; - @EventHandler public Listener selfPopListener = new Listener<>(event -> { if (mc.player == null || !mode.getValue().equals(Mode.PACKET)) return; @@ -39,6 +37,7 @@ public class AntiChainPop extends Module { } }); + private int totems = 0; public void onUpdate() { if (mc.player == null) return; @@ -63,7 +62,13 @@ public class AntiChainPop extends Module { surround.enable(); } - public void onEnable() { totems = 0; } - public void onDisable() { totems = 0; } - private enum Mode { ITEMS, PACKET } + public void onEnable() { + totems = 0; + } + + public void onDisable() { + totems = 0; + } + + private enum Mode {ITEMS, PACKET} } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/Aura.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/Aura.java index a84eb40a1..2290041f1 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/Aura.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/Aura.java @@ -38,9 +38,6 @@ public class Aura extends Module { private int waitCounter; - public enum HitMode { SWORD, AXE, NONE } - private enum WaitMode { DELAY, SPAM } - @Override public void onUpdate() { if (mc.player == null || mc.player.isDead) return; @@ -130,4 +127,8 @@ public class Aura extends Module { private boolean canEntityFeetBeSeen(Entity entityIn) { return mc.world.rayTraceBlocks(new Vec3d(mc.player.posX, mc.player.posY + mc.player.getEyeHeight(), mc.player.posZ), new Vec3d(entityIn.posX, entityIn.posY, entityIn.posZ), false, true, false) == null; } + + public enum HitMode {SWORD, AXE, NONE} + + private enum WaitMode {DELAY, SPAM} } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoEZ.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoEZ.java index df94abad3..330ae0da6 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoEZ.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoEZ.java @@ -21,73 +21,73 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendWarningMessage; */ @Module.Info(name = "AutoEZ", category = Module.Category.COMBAT, description = "Sends an insult in chat after killing someone") public class AutoEZ extends Module { - public Setting mode = register(Settings.e("Mode", Mode.ONTOP)); - public Setting customText = register(Settings.stringBuilder("Custom Text").withValue("unchanged").withConsumer((old, value) -> {}).build()); + private static long startTime = 0; + public Setting mode = register(Settings.e("Mode", Mode.ONTOP)); + public Setting customText = register(Settings.stringBuilder("Custom Text").withValue("unchanged").withConsumer((old, value) -> { + }).build()); + EntityPlayer focus; + int hasBeenCombat; + @EventHandler + public Listener livingDeathEventListener = new Listener<>(event -> { + if (event.getTarget() instanceof EntityPlayer) { + focus = (EntityPlayer) event.getTarget(); + if (event.getEntityPlayer().getUniqueID() == mc.player.getUniqueID()) { + if (focus.getHealth() <= 0.0 || focus.isDead || !mc.world.playerEntities.contains(focus)) { + mc.player.sendChatMessage(getText(mode.getValue(), event.getTarget().getName())); + return; + } + hasBeenCombat = 1000; + } + } + }); + @EventHandler + public Listener listener = new Listener<>(event -> { + if (!(event.getScreen() instanceof GuiGameOver)) return; + if (mc.player.getHealth() > 0) { + hasBeenCombat = 0; + } + }); - EntityPlayer focus; - int hasBeenCombat; + private String getText(Mode m, String playerName) { + if (m.equals(Mode.CUSTOM)) { + return customText.getValue().replace("$NAME", playerName); + } + return m.text.replace("$NAME", playerName); + } - public enum Mode { - GG("gg, $NAME"), - ONTOP("KAMI BLUE on top! ez $NAME"), - EZD("You just got ez'd $NAME"), - EZ_HYPIXEL("E Z Win $NAME"), - NAENAE("You just got naenae'd by kami blue plus, $NAME"), - CUSTOM(); + @Override + public void onUpdate() { + if (mc.player == null) return; + if (hasBeenCombat > 0 && (focus.getHealth() <= 0.0f || focus.isDead || !mc.world.playerEntities.contains(focus))) { + mc.player.sendChatMessage(getText(mode.getValue(), focus.getName())); + hasBeenCombat = 0; + } + --hasBeenCombat; + if (startTime == 0) startTime = System.currentTimeMillis(); + if (startTime + 5000 <= System.currentTimeMillis()) { // 5 seconds in milliseconds + if (mode.getValue().equals(Mode.CUSTOM) && customText.getValue().equalsIgnoreCase("unchanged") && mc.player != null) { + sendWarningMessage(getChatName() + " Warning: In order to use the custom " + getName() + ", please run the &7" + Command.getCommandPrefix() + "autoez&r command to change it, with '&7$NAME&f' being the username of the killed player"); + } + startTime = System.currentTimeMillis(); + } + } - private String text; + public enum Mode { + GG("gg, $NAME"), + ONTOP("KAMI BLUE on top! ez $NAME"), + EZD("You just got ez'd $NAME"), + EZ_HYPIXEL("E Z Win $NAME"), + NAENAE("You just got naenae'd by kami blue plus, $NAME"), + CUSTOM(); - Mode(String text) { - this.text = text; - } - Mode() { } // yes - } + private String text; - private String getText(Mode m, String playerName) { - if (m.equals(Mode.CUSTOM)) { - return customText.getValue().replace("$NAME", playerName); - } - return m.text.replace("$NAME", playerName); - } + Mode(String text) { + this.text = text; + } - @EventHandler - public Listener livingDeathEventListener = new Listener<>(event -> { - if (event.getTarget() instanceof EntityPlayer) { - focus = (EntityPlayer) event.getTarget(); - if (event.getEntityPlayer().getUniqueID() == mc.player.getUniqueID()) { - if (focus.getHealth() <= 0.0 || focus.isDead || !mc.world.playerEntities.contains(focus)) { - mc.player.sendChatMessage(getText(mode.getValue(), event.getTarget().getName())); - return; - } - hasBeenCombat = 1000; - } - } - }); - - @EventHandler - public Listener listener = new Listener<>(event -> { - if (!(event.getScreen() instanceof GuiGameOver)) return; - if (mc.player.getHealth() > 0) { - hasBeenCombat = 0; - } - }); - - private static long startTime = 0; - @Override - public void onUpdate() { - if (mc.player == null) return; - if (hasBeenCombat > 0 && (focus.getHealth() <= 0.0f || focus.isDead || !mc.world.playerEntities.contains(focus))) { - mc.player.sendChatMessage(getText(mode.getValue(), focus.getName())); - hasBeenCombat = 0; - } - --hasBeenCombat; - if (startTime == 0) startTime = System.currentTimeMillis(); - if (startTime + 5000 <= System.currentTimeMillis()) { // 5 seconds in milliseconds - if (mode.getValue().equals(Mode.CUSTOM) && customText.getValue().equalsIgnoreCase("unchanged") && mc.player != null) { - sendWarningMessage(getChatName() + " Warning: In order to use the custom " + getName() + ", please run the &7" + Command.getCommandPrefix() + "autoez&r command to change it, with '&7$NAME&f' being the username of the killed player"); - } - startTime = System.currentTimeMillis(); - } - } + Mode() { + } // yes + } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoLog.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoLog.java index b5b8e475b..2099104d7 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoLog.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoLog.java @@ -21,12 +21,11 @@ import static me.zeroeightsix.kami.KamiMod.MODULE_MANAGER; @Module.Info(name = "AutoLog", description = "Automatically log when in danger or on low health", category = Module.Category.COMBAT) public class AutoLog extends Module { + long lastLog = System.currentTimeMillis(); private Setting health = register(Settings.integerBuilder("Health").withRange(0, 36).withValue(6).build()); private boolean shouldLog = false; - long lastLog = System.currentTimeMillis(); - @EventHandler - private Listener livingDamageEventListener = new Listener<>(event -> { + private final Listener livingDamageEventListener = new Listener<>(event -> { if (mc.player == null) return; if (event.getEntity() == mc.player) { if (mc.player.getHealth() - event.getAmount() < health.getValue()) { @@ -36,7 +35,7 @@ public class AutoLog extends Module { }); @EventHandler - private Listener entityJoinWorldEventListener = new Listener<>(event -> { + private final Listener entityJoinWorldEventListener = new Listener<>(event -> { if (mc.player == null) return; if (event.getEntity() instanceof EntityEnderCrystal) { if (mc.player.getHealth() - CrystalAura.calculateDamage((EntityEnderCrystal) event.getEntity(), mc.player) < health.getValue()) { diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoMend.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoMend.java index ee80bc5a6..22134b603 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoMend.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoMend.java @@ -27,7 +27,7 @@ public class AutoMend extends Module { private int initHotbarSlot = -1; @EventHandler - private Listener receiveListener = new Listener<>(event -> { + private final Listener receiveListener = new Listener<>(event -> { if (mc.player != null && (mc.player.getHeldItemMainhand().getItem() == Items.EXPERIENCE_BOTTLE)) { mc.rightClickDelayTimer = 0; } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoTotem.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoTotem.java index a9be2892f..8757e96e9 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoTotem.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoTotem.java @@ -17,18 +17,14 @@ import static me.zeroeightsix.kami.module.modules.client.InfoOverlay.getItems; */ @Module.Info(name = "AutoTotem", category = Module.Category.COMBAT, description = "Refills your offhand with totems or other items") public class AutoTotem extends Module { + int totems; + boolean moving = false; + boolean returnI = false; private Setting modeSetting = register(Settings.e("Mode", Mode.REPLACE_OFFHAND)); private Setting smartOffhand = register(Settings.booleanBuilder("Custom Item").withValue(false).withVisibility(v -> modeSetting.getValue().equals(Mode.REPLACE_OFFHAND)).build()); private Setting healthSetting = register(Settings.doubleBuilder("Custom Item Health").withValue(14.0).withVisibility(v -> smartOffhand.getValue() && modeSetting.getValue().equals(Mode.REPLACE_OFFHAND)).build()); private Setting smartItemSetting = register(Settings.enumBuilder(CustomItem.class).withName("Item").withValue(CustomItem.GAPPLE).withVisibility(v -> smartOffhand.getValue()).build()); - private enum Mode { NEITHER, REPLACE_OFFHAND, INVENTORY;} - private enum CustomItem { CRYSTAL, GAPPLE } - - int totems; - boolean moving = false; - boolean returnI = false; - @Override public void onUpdate() { if (!modeSetting.getValue().equals(Mode.INVENTORY) && mc.currentScreen instanceof GuiContainer) @@ -101,4 +97,8 @@ public class AutoTotem extends Module { public String getHudInfo() { return "" + getItems(settingToItem()); } + + private enum Mode {NEITHER, REPLACE_OFFHAND, INVENTORY} + + private enum CustomItem {CRYSTAL, GAPPLE} } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/BreakingWarning.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/BreakingWarning.java index da1ed9eb3..c9e31b702 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/BreakingWarning.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/BreakingWarning.java @@ -20,7 +20,7 @@ import static me.zeroeightsix.kami.gui.kami.DisplayGuiScreen.getScale; /** * @author Antonio32A * Updated by S-B99 on 31/03/20 - * + *

* Antonio32A created the pastDistance method, used by ForgeHax here: * https://github.com/fr1kin/ForgeHax/blob/2011740/src/main/java/com/matt/forgehax/mods/CoordsFinder.java#L126 */ @@ -35,7 +35,7 @@ public class BreakingWarning extends Module { private int delay; @EventHandler - private Listener receiveListener = new Listener<>(event -> { + private final Listener receiveListener = new Listener<>(event -> { if (event.getPacket() instanceof SPacketBlockBreakAnim) { SPacketBlockBreakAnim packet = (SPacketBlockBreakAnim) event.getPacket(); @@ -51,7 +51,8 @@ public class BreakingWarning extends Module { if (obsidianOnly.getValue() && !block.equals(Blocks.OBSIDIAN)) return; if (pickaxeOnly.getValue()) { - if (breaker.itemStackMainHand.isEmpty() || !(breaker.itemStackMainHand.getItem() instanceof ItemPickaxe)) return; + if (breaker.itemStackMainHand.isEmpty() || !(breaker.itemStackMainHand.getItem() instanceof ItemPickaxe)) + return; } if (pastDistance(mc.player, pos, minRange.getValue())) { diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/Criticals.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/Criticals.java index 2e5c12c2a..e911f385a 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/Criticals.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/Criticals.java @@ -13,7 +13,7 @@ import net.minecraftforge.event.entity.player.AttackEntityEvent; @Module.Info(name = "Criticals", category = Module.Category.COMBAT, description = "Always do critical attacks") public class Criticals extends Module { @EventHandler - private Listener attackEntityEventListener = new Listener<>(event -> { + private final Listener attackEntityEventListener = new Listener<>(event -> { if (!mc.player.isInWater() && !mc.player.isInLava()) { if (mc.player.onGround) { /* lol Minecraft checks for criticals if you're not on a block so just say you're not */ mc.player.connection.sendPacket(new CPacketPlayer.Position(mc.player.posX, mc.player.posY + 0.1f, mc.player.posZ, false)); diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/CrystalAura.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/CrystalAura.java index cce92e9e1..5fc7ad531 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/CrystalAura.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/CrystalAura.java @@ -52,8 +52,17 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; */ @Module.Info(name = "CrystalAura", category = Module.Category.COMBAT, description = "Places End Crystals to kill enemies") public class CrystalAura extends Module { + private static boolean togglePitch = false; + private static EntityEnderCrystal lastCrystal; + private static List ignoredCrystals = new ArrayList<>(); + private static int hitTries = 0; + private static boolean isSpoofingAngles; + private static double yaw; + private static double pitch; + private static long startTime = 0; private Setting defaultSetting = register(Settings.b("Defaults", false)); private Setting p = register(Settings.enumBuilder(Page.class).withName("Page").withValue(Page.ONE).build()); + public Setting range = register(Settings.doubleBuilder("Range").withMinimum(1.0).withValue(4.0).withMaximum(10.0).withVisibility(v -> p.getValue().equals(Page.ONE)).build()); /* Page One */ private Setting explodeBehavior = register(Settings.enumBuilder(ExplodeBehavior.class).withName("Explode Behavior").withValue(ExplodeBehavior.ALWAYS).withVisibility(v -> p.getValue().equals(Page.ONE)).build()); private Setting placeBehavior = register(Settings.enumBuilder(PlaceBehavior.class).withName("Place Behavior").withValue(PlaceBehavior.TRADITIONAL).withVisibility(v -> p.getValue().equals(Page.ONE)).build()); @@ -61,7 +70,6 @@ public class CrystalAura extends Module { private Setting place = register(Settings.booleanBuilder("Place").withValue(false).withVisibility(v -> p.getValue().equals(Page.ONE)).build()); private Setting explode = register(Settings.booleanBuilder("Explode").withValue(false).withVisibility(v -> p.getValue().equals(Page.ONE)).build()); private Setting checkAbsorption = register(Settings.booleanBuilder("Check Absorption").withValue(true).withVisibility(v -> p.getValue().equals(Page.ONE)).build()); - public Setting range = register(Settings.doubleBuilder("Range").withMinimum(1.0).withValue(4.0).withMaximum(10.0).withVisibility(v -> p.getValue().equals(Page.ONE)).build()); private Setting delay = register(Settings.doubleBuilder("Hit Delay").withMinimum(0.0).withValue(5.0).withMaximum(10.0).withVisibility(v -> p.getValue().equals(Page.ONE)).build()); private Setting hitAttempts = register(Settings.integerBuilder("Hit Attempts").withValue(-1).withMinimum(-1).withMaximum(20).withVisibility(v -> p.getValue().equals(Page.ONE)).build()); private Setting minDmg = register(Settings.doubleBuilder("Minimum Damage").withMinimum(0.0).withValue(0.0).withMaximum(32.0).withVisibility(v -> p.getValue().equals(Page.ONE)).build()); @@ -81,23 +89,88 @@ public class CrystalAura extends Module { private Setting g = register(Settings.integerBuilder("Green").withMinimum(0).withValue(144).withMaximum(255).withVisibility(v -> p.getValue().equals(Page.TWO) && customColours.getValue()).build()); private Setting b = register(Settings.integerBuilder("Blue").withMinimum(0).withValue(255).withMaximum(255).withVisibility(v -> p.getValue().equals(Page.TWO) && customColours.getValue()).build()); private Setting statusMessages = register(Settings.booleanBuilder("Status Messages").withValue(false).withVisibility(v -> p.getValue().equals(Page.TWO)).build()); - - private enum ExplodeBehavior { HOLE_ONLY, PREVENT_SUICIDE, LEFT_CLICK_ONLY, ALWAYS } - private enum PlaceBehavior { MULTI, TRADITIONAL } - private enum Page { ONE, TWO } - private BlockPos render; private Entity renderEnt; private long systemTime = -1; - private static boolean togglePitch = false; // we need this cooldown to not place from old hotbar slot, before we have switched to crystals private boolean switchCoolDown = false; private boolean isAttacking = false; private int oldSlot = -1; + @EventHandler + private final Listener cPacketListener = new Listener<>(event -> { + Packet packet = event.getPacket(); + if (packet instanceof CPacketPlayer) { + if (isSpoofingAngles) { + ((CPacketPlayer) packet).yaw = (float) yaw; + ((CPacketPlayer) packet).pitch = (float) pitch; + } + } + }); - private static EntityEnderCrystal lastCrystal; - private static List ignoredCrystals = new ArrayList<>(); - private static int hitTries = 0; + public static BlockPos getPlayerPos() { + return new BlockPos(Math.floor(mc.player.posX), Math.floor(mc.player.posY), Math.floor(mc.player.posZ)); + } + + public static float calculateDamage(double posX, double posY, double posZ, Entity entity) { + float doubleExplosionSize = 6.0F * 2.0F; + double distancedSize = entity.getDistance(posX, posY, posZ) / (double) doubleExplosionSize; + Vec3d vec3d = new Vec3d(posX, posY, posZ); + double blockDensity = entity.world.getBlockDensity(vec3d, entity.getEntityBoundingBox()); + double v = (1.0D - distancedSize) * blockDensity; + float damage = (float) ((int) ((v * v + v) / 2.0D * 7.0D * (double) doubleExplosionSize + 1.0D)); + double finalD = 1; + /*if (entity instanceof EntityLivingBase) + finalD = getBlastReduction((EntityLivingBase) entity,getDamageMultiplied(damage));*/ + if (entity instanceof EntityLivingBase) { + finalD = getBlastReduction((EntityLivingBase) entity, getDamageMultiplied(damage), new Explosion(mc.world, null, posX, posY, posZ, 6F, false, true)); + } + return (float) finalD; + } + + public static float getBlastReduction(EntityLivingBase entity, float damage, Explosion explosion) { + if (entity instanceof EntityPlayer) { + EntityPlayer ep = (EntityPlayer) entity; + DamageSource ds = DamageSource.causeExplosionDamage(explosion); + damage = CombatRules.getDamageAfterAbsorb(damage, (float) ep.getTotalArmorValue(), (float) ep.getEntityAttribute(SharedMonsterAttributes.ARMOR_TOUGHNESS).getAttributeValue()); + + int k = EnchantmentHelper.getEnchantmentModifierDamage(ep.getArmorInventoryList(), ds); + float f = MathHelper.clamp(k, 0.0F, 20.0F); + damage = damage * (1.0F - f / 25.0F); + + if (entity.isPotionActive(Objects.requireNonNull(Potion.getPotionById(11)))) { + damage = damage - (damage / 4); + } + + damage = Math.max(damage - ep.getAbsorptionAmount(), 0.0F); + return damage; + } + damage = CombatRules.getDamageAfterAbsorb(damage, (float) entity.getTotalArmorValue(), (float) entity.getEntityAttribute(SharedMonsterAttributes.ARMOR_TOUGHNESS).getAttributeValue()); + return damage; + } + + private static float getDamageMultiplied(float damage) { + int diff = mc.world.getDifficulty().getId(); + return damage * (diff == 0 ? 0 : (diff == 2 ? 1 : (diff == 1 ? 0.5f : 1.5f))); + } + + public static float calculateDamage(EntityEnderCrystal crystal, Entity entity) { + return calculateDamage(crystal.posX, crystal.posY, crystal.posZ, entity); + } + + //this modifies packets being sent so no extra ones are made. NCP used to flag with "too many packets" + private static void setYawAndPitch(float yaw1, float pitch1) { + yaw = yaw1; + pitch = pitch1; + isSpoofingAngles = true; + } + + private static void resetRotation() { + if (isSpoofingAngles) { + yaw = mc.player.rotationYaw; + pitch = mc.player.rotationPitch; + isSpoofingAngles = false; + } + } public void onUpdate() { if (defaultSetting.getValue()) { @@ -158,10 +231,9 @@ public class CrystalAura extends Module { .orElse(null); - if (explode.getValue() && crystal != null && mc.player.getDistance(crystal) <= range.getValue() && passSwordCheck()) { // Added delay to stop ncp from flagging "hitting too fast" - if (((System.nanoTime() / 1000000f) - systemTime) >= 25*delay.getValue()) { + if (((System.nanoTime() / 1000000f) - systemTime) >= 25 * delay.getValue()) { if (antiWeakness.getValue() && mc.player.isPotionActive(MobEffects.WEAKNESS)) { if (!isAttacking) { // save initial player hand @@ -201,7 +273,7 @@ public class CrystalAura extends Module { if (explodeBehavior.getValue() == ExplodeBehavior.ALWAYS) { explode(crystal); } - for (Vec3d vecOffset:holeOffset) { /* for placeholder offset for each BlockPos in the list holeOffset */ + for (Vec3d vecOffset : holeOffset) { /* for placeholder offset for each BlockPos in the list holeOffset */ BlockPos offset = new BlockPos(vecOffset.x, vecOffset.y, vecOffset.z); if (mc.world.getBlockState(offset).getBlock() == Blocks.OBSIDIAN || mc.world.getBlockState(offset).getBlock() == Blocks.BEDROCK) { holeBlocks++; @@ -213,7 +285,7 @@ public class CrystalAura extends Module { } } if (explodeBehavior.getValue() == ExplodeBehavior.PREVENT_SUICIDE) { - if (mc.player.getPositionVector().distanceTo(crystal.getPositionVector()) <= 0.5 && mc.player.getPosition().getY() == crystal.getPosition().getY()|| mc.player.getPositionVector().distanceTo(crystal.getPositionVector()) >= 2.3 && mc.player.getPosition().getY() == crystal.getPosition().getY()||mc.player.getPositionVector().distanceTo(crystal.getPositionVector()) >= 0.5 && mc.player.getPosition().getY() != crystal.getPosition().getY()) { + if (mc.player.getPositionVector().distanceTo(crystal.getPositionVector()) <= 0.5 && mc.player.getPosition().getY() == crystal.getPosition().getY() || mc.player.getPositionVector().distanceTo(crystal.getPositionVector()) >= 2.3 && mc.player.getPosition().getY() == crystal.getPosition().getY() || mc.player.getPositionVector().distanceTo(crystal.getPositionVector()) >= 0.5 && mc.player.getPosition().getY() != crystal.getPosition().getY()) { explode(crystal); } } @@ -306,7 +378,7 @@ public class CrystalAura extends Module { } double d = calculateDamage(blockPos.x + .5, blockPos.y + 1, blockPos.z + .5, entity); double self = calculateDamage(blockPos.x + .5, blockPos.y + 1, blockPos.z + .5, mc.player); - if (self >= mc.player.getHealth()+mc.player.getAbsorptionAmount() || self > d) continue; + if (self >= mc.player.getHealth() + mc.player.getAbsorptionAmount() || self > d) continue; if (b < 10 && d >= 15 || d >= ((EntityLivingBase) entity).getHealth() + ((EntityLivingBase) entity).getAbsorptionAmount() || 6 >= ((EntityLivingBase) entity).getHealth() + ((EntityLivingBase) entity).getAbsorptionAmount() && b < 4 || b < 9 && d >= minDmg.getValue() && minDmg.getValue() > 0.0) { q = blockPos; damage = d; @@ -364,7 +436,8 @@ public class CrystalAura extends Module { if (render != null) { KamiTessellator.prepare(GL11.GL_QUADS); int colour = 0x44ffffff; - if (customColours.getValue()) colour = rgbToInt(r.getValue(), g.getValue(), b.getValue(), aBlock.getValue()); + if (customColours.getValue()) + colour = rgbToInt(r.getValue(), g.getValue(), b.getValue(), aBlock.getValue()); KamiTessellator.drawBox(render, colour, GeometryMasks.Quad.ALL); KamiTessellator.release(); if (renderEnt != null && tracer.getValue()) { @@ -384,9 +457,12 @@ public class CrystalAura extends Module { } } + + //Better Rotation Spoofing System: + private void lookAtPacket(double px, double py, double pz, EntityPlayer me) { double[] v = calculateLookAt(px, py, pz, me); - setYawAndPitch((float) v[0], (float) v[1]+1f); + setYawAndPitch((float) v[0], (float) v[1] + 1f); } private boolean canPlaceCrystal(BlockPos blockPos) { @@ -400,10 +476,6 @@ public class CrystalAura extends Module { && mc.world.getEntitiesWithinAABB(Entity.class, new AxisAlignedBB(boost2)).isEmpty(); } - public static BlockPos getPlayerPos() { - return new BlockPos(Math.floor(mc.player.posX), Math.floor(mc.player.posY), Math.floor(mc.player.posZ)); - } - private List findCrystalBlocks() { NonNullList positions = NonNullList.create(); positions.addAll(getSphere(getPlayerPos(), range.getValue().floatValue(), range.getValue().intValue(), false, true, 0).stream().filter(this::canPlaceCrystal).collect(Collectors.toList())); @@ -429,88 +501,10 @@ public class CrystalAura extends Module { return circleblocks; } - public static float calculateDamage(double posX, double posY, double posZ, Entity entity) { - float doubleExplosionSize = 6.0F * 2.0F; - double distancedSize = entity.getDistance(posX, posY, posZ) / (double) doubleExplosionSize; - Vec3d vec3d = new Vec3d(posX, posY, posZ); - double blockDensity = entity.world.getBlockDensity(vec3d, entity.getEntityBoundingBox()); - double v = (1.0D - distancedSize) * blockDensity; - float damage = (float) ((int) ((v * v + v) / 2.0D * 7.0D * (double) doubleExplosionSize + 1.0D)); - double finalD = 1; - /*if (entity instanceof EntityLivingBase) - finalD = getBlastReduction((EntityLivingBase) entity,getDamageMultiplied(damage));*/ - if (entity instanceof EntityLivingBase) { - finalD = getBlastReduction((EntityLivingBase) entity, getDamageMultiplied(damage), new Explosion(mc.world, null, posX, posY, posZ, 6F, false, true)); - } - return (float) finalD; + public void onEnable() { + sendMessage("&aENABLED&r"); } - public static float getBlastReduction(EntityLivingBase entity, float damage, Explosion explosion) { - if (entity instanceof EntityPlayer) { - EntityPlayer ep = (EntityPlayer) entity; - DamageSource ds = DamageSource.causeExplosionDamage(explosion); - damage = CombatRules.getDamageAfterAbsorb(damage, (float) ep.getTotalArmorValue(), (float) ep.getEntityAttribute(SharedMonsterAttributes.ARMOR_TOUGHNESS).getAttributeValue()); - - int k = EnchantmentHelper.getEnchantmentModifierDamage(ep.getArmorInventoryList(), ds); - float f = MathHelper.clamp(k, 0.0F, 20.0F); - damage = damage * (1.0F - f / 25.0F); - - if (entity.isPotionActive(Objects.requireNonNull(Potion.getPotionById(11)))) { - damage = damage - (damage / 4); - } - - damage = Math.max(damage - ep.getAbsorptionAmount(), 0.0F); - return damage; - } - damage = CombatRules.getDamageAfterAbsorb(damage, (float) entity.getTotalArmorValue(), (float) entity.getEntityAttribute(SharedMonsterAttributes.ARMOR_TOUGHNESS).getAttributeValue()); - return damage; - } - - private static float getDamageMultiplied(float damage) { - int diff = mc.world.getDifficulty().getId(); - return damage * (diff == 0 ? 0 : (diff == 2 ? 1 : (diff == 1 ? 0.5f : 1.5f))); - } - - public static float calculateDamage(EntityEnderCrystal crystal, Entity entity) { - return calculateDamage(crystal.posX, crystal.posY, crystal.posZ, entity); - } - - - //Better Rotation Spoofing System: - - private static boolean isSpoofingAngles; - private static double yaw; - private static double pitch; - - //this modifies packets being sent so no extra ones are made. NCP used to flag with "too many packets" - private static void setYawAndPitch(float yaw1, float pitch1) { - yaw = yaw1; - pitch = pitch1; - isSpoofingAngles = true; - } - - private static void resetRotation() { - if (isSpoofingAngles) { - yaw = mc.player.rotationYaw; - pitch = mc.player.rotationPitch; - isSpoofingAngles = false; - } - } - - - @EventHandler - private Listener cPacketListener = new Listener<>(event -> { - Packet packet = event.getPacket(); - if (packet instanceof CPacketPlayer) { - if (isSpoofingAngles) { - ((CPacketPlayer) packet).yaw = (float) yaw; - ((CPacketPlayer) packet).pitch = (float) pitch; - } - } - }); - - public void onEnable() { sendMessage("&aENABLED&r"); } - public void onDisable() { sendMessage("&cDISABLED&r"); render = null; @@ -536,14 +530,16 @@ public class CrystalAura extends Module { mc.playerController.attackEntity(mc.player, crystal); mc.player.swingArm(EnumHand.MAIN_HAND); } - } catch (Throwable ignored) { } + } catch (Throwable ignored) { + } systemTime = System.nanoTime() / 1000000L; } private boolean passSwordCheck() { if (!noToolExplode.getValue() || antiWeakness.getValue()) return true; - else return !noToolExplode.getValue() || (!(mc.player.getHeldItemMainhand().getItem() instanceof ItemTool) && !(mc.player.getHeldItemMainhand().getItem() instanceof ItemSword)); + else + return !noToolExplode.getValue() || (!(mc.player.getHeldItemMainhand().getItem() instanceof ItemTool) && !(mc.player.getHeldItemMainhand().getItem() instanceof ItemSword)); } @Override @@ -577,7 +573,6 @@ public class CrystalAura extends Module { } } - private static long startTime = 0; private boolean resetTime() { if (startTime == 0) startTime = System.currentTimeMillis(); if (startTime + 900000 <= System.currentTimeMillis()) { // 15 minutes in milliseconds @@ -592,4 +587,10 @@ public class CrystalAura extends Module { sendChatMessage(getChatName() + message); } } + + private enum ExplodeBehavior {HOLE_ONLY, PREVENT_SUICIDE, LEFT_CLICK_ONLY, ALWAYS} + + private enum PlaceBehavior {MULTI, TRADITIONAL} + + private enum Page {ONE, TWO} } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/Fastuse.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/Fastuse.java index 56bae12d3..cda29044a 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/Fastuse.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/Fastuse.java @@ -10,22 +10,23 @@ import net.minecraft.util.math.BlockPos; /** * Created by S-B99 on 23/10/2019 + * * @author S-B99 * Updated by S-B99 on 03/12/19 * Updated by d1gress/Qther on 4/12/19 - * + *

* Bowspam code from https://github.com/seppukudevelopment/seppuku/blob/5586365/src/main/java/me/rigamortis/seppuku/impl/module/combat/FastBowModule.java */ @Module.Info(category = Module.Category.COMBAT, description = "Use items faster", name = "FastUse") public class Fastuse extends Module { + private static long time = 0; private Setting delay = register(Settings.integerBuilder("Delay").withMinimum(0).withMaximum(20).withValue(0).build()); private Setting all = register(Settings.b("All", false)); private Setting bow = register(Settings.booleanBuilder().withName("Bow").withValue(true).withVisibility(v -> !all.getValue()).build()); private Setting expBottles = register(Settings.booleanBuilder().withName("Exp Bottles").withValue(true).withVisibility(v -> !all.getValue()).build()); private Setting endCrystals = register(Settings.booleanBuilder().withName("End Crystals").withValue(true).withVisibility(v -> !all.getValue()).build()); private Setting fireworks = register(Settings.booleanBuilder().withName("Fireworks").withValue(false).withVisibility(v -> !all.getValue()).build()); - private static long time = 0; @Override public void onDisable() { @@ -60,7 +61,6 @@ public class Fastuse extends Module { if (all.getValue()) return true; if (expBottles.getValue() && item instanceof ItemExpBottle) return true; if (endCrystals.getValue() && item instanceof ItemEndCrystal) return true; - if (fireworks.getValue() && item instanceof ItemFirework) return true; - return false; + return fireworks.getValue() && item instanceof ItemFirework; } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/OffhandGap.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/OffhandGap.java index 91799c91c..033cb21e1 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/OffhandGap.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/OffhandGap.java @@ -27,138 +27,139 @@ import static me.zeroeightsix.kami.module.modules.client.InfoOverlay.getItems; */ @Module.Info(name = "OffhandGap", category = Module.Category.COMBAT, description = "Holds a God apple when right clicking your sword!") public class OffhandGap extends Module { - private Setting disableHealth = register(Settings.doubleBuilder("Disable Health").withMinimum(0.0).withValue(4.0).withMaximum(20.0).build()); - private Setting eatWhileAttacking = register(Settings.b("Eat While Attacking", false)); - private Setting swordOrAxeOnly = register(Settings.b("Sword or Axe Only", true)); - private Setting preferBlocks = register(Settings.booleanBuilder("Prefer Placing Blocks").withValue(false).withVisibility(v -> !swordOrAxeOnly.getValue()).build()); - private Setting crystalCheck = register(Settings.b("Crystal Check", false)); + int gaps = -1; + boolean autoTotemWasEnabled = false; + boolean cancelled = false; + boolean isGuiOpened = false; + @EventHandler + public Listener listener = new Listener<>(event -> isGuiOpened = event.getScreen() != null); + Item usedItem; + CrystalAura crystalAura; + private Setting disableHealth = register(Settings.doubleBuilder("Disable Health").withMinimum(0.0).withValue(4.0).withMaximum(20.0).build()); + private Setting eatWhileAttacking = register(Settings.b("Eat While Attacking", false)); + private Setting swordOrAxeOnly = register(Settings.b("Sword or Axe Only", true)); + private Setting preferBlocks = register(Settings.booleanBuilder("Prefer Placing Blocks").withValue(false).withVisibility(v -> !swordOrAxeOnly.getValue()).build()); + private Setting crystalCheck = register(Settings.b("Crystal Check", false)); + @EventHandler + private final Listener sendListener = new Listener<>(e -> { + if (e.getPacket() instanceof CPacketPlayerTryUseItem) { + if (cancelled) { + disableGaps(); + return; + } + if (mc.player.getHeldItemMainhand().getItem() instanceof ItemSword || mc.player.getHeldItemMainhand().getItem() instanceof ItemAxe || passItemCheck()) { + if (MODULE_MANAGER.isModuleEnabled(AutoTotem.class)) { + autoTotemWasEnabled = true; + MODULE_MANAGER.getModule(AutoTotem.class).disable(); + } + if (!eatWhileAttacking.getValue()) { /* Save item for later when using preventDesync */ + usedItem = mc.player.getHeldItemMainhand().getItem(); + } + enableGaps(gaps); + } + } + try { + /* If you stop holding right click move totem back */ + if (!mc.gameSettings.keyBindUseItem.isKeyDown() && mc.player.getHeldItemOffhand().getItem() == Items.GOLDEN_APPLE) + disableGaps(); + /* In case you didn't stop right clicking but you switched items by scrolling or something */ + else if ((usedItem != mc.player.getHeldItemMainhand().getItem()) && mc.player.getHeldItemOffhand().getItem() == Items.GOLDEN_APPLE) { + if (!eatWhileAttacking.getValue()) { + usedItem = mc.player.getHeldItemMainhand().getItem(); + disableGaps(); + } + } + /* Force disable if under health limit */ + else if (mc.player.getHealth() + mc.player.getAbsorptionAmount() <= disableHealth.getValue()) { + disableGaps(); + } + /* Disable if there are crystals in the range of CrystalAura */ + crystalAura = MODULE_MANAGER.getModuleT(CrystalAura.class); + if (crystalCheck.getValue() && crystalAura.isEnabled()) { + EntityEnderCrystal crystal = mc.world.loadedEntityList.stream() + .filter(entity -> entity instanceof EntityEnderCrystal) + .map(entity -> (EntityEnderCrystal) entity) + .min(Comparator.comparing(c -> mc.player.getDistance(c))) + .orElse(null); + if (Objects.requireNonNull(crystal).getPosition().distanceSq(mc.player.getPosition().x, mc.player.getPosition().y, mc.player.getPosition().z) <= crystalAura.range.getValue()) { + disableGaps(); + } + } + } catch (NullPointerException ignored) { + } + }); - int gaps = -1; - boolean autoTotemWasEnabled = false; - boolean cancelled = false; - boolean isGuiOpened = false; - Item usedItem; - CrystalAura crystalAura; + @Override + public void onUpdate() { + if (mc.player == null) return; - @EventHandler - private Listener sendListener = new Listener<>(e ->{ - if (e.getPacket() instanceof CPacketPlayerTryUseItem) { - if (cancelled) { - disableGaps(); - return; - } - if (mc.player.getHeldItemMainhand().getItem() instanceof ItemSword || mc.player.getHeldItemMainhand().getItem() instanceof ItemAxe || passItemCheck()) { - if (MODULE_MANAGER.isModuleEnabled(AutoTotem.class)) { - autoTotemWasEnabled = true; - MODULE_MANAGER.getModule(AutoTotem.class).disable(); - } - if (!eatWhileAttacking.getValue()) { /* Save item for later when using preventDesync */ - usedItem = mc.player.getHeldItemMainhand().getItem(); - } - enableGaps(gaps); - } - } - try { - /* If you stop holding right click move totem back */ - if (!mc.gameSettings.keyBindUseItem.isKeyDown() && mc.player.getHeldItemOffhand().getItem() == Items.GOLDEN_APPLE) disableGaps(); - /* In case you didn't stop right clicking but you switched items by scrolling or something */ - else if ((usedItem != mc.player.getHeldItemMainhand().getItem()) && mc.player.getHeldItemOffhand().getItem() == Items.GOLDEN_APPLE) { - if (!eatWhileAttacking.getValue()) { - usedItem = mc.player.getHeldItemMainhand().getItem(); - disableGaps(); - } - } - /* Force disable if under health limit */ - else if (mc.player.getHealth() + mc.player.getAbsorptionAmount() <= disableHealth.getValue()) { - disableGaps(); - } - /* Disable if there are crystals in the range of CrystalAura */ - crystalAura = MODULE_MANAGER.getModuleT(CrystalAura.class); - if (crystalCheck.getValue() && crystalAura.isEnabled()) { - EntityEnderCrystal crystal = mc.world.loadedEntityList.stream() - .filter(entity -> entity instanceof EntityEnderCrystal) - .map(entity -> (EntityEnderCrystal) entity) - .min(Comparator.comparing(c -> mc.player.getDistance(c))) - .orElse(null); - if (Objects.requireNonNull(crystal).getPosition().distanceSq(mc.player.getPosition().x, mc.player.getPosition().y, mc.player.getPosition().z) <= crystalAura.range.getValue()) { - disableGaps(); - } - } - } catch (NullPointerException ignored) { } - }); + /* If your health doesn't meet the cutoff then set it to true */ + cancelled = mc.player.getHealth() + mc.player.getAbsorptionAmount() <= disableHealth.getValue(); + if (cancelled) { + disableGaps(); + return; + } - @Override - public void onUpdate() { - if (mc.player == null) return; + if (mc.player.getHeldItemOffhand().getItem() != Items.GOLDEN_APPLE) { + for (int i = 0; i < 45; i++) { + if (mc.player.inventory.getStackInSlot(i).getItem() == Items.GOLDEN_APPLE) { + gaps = i; + break; + } + } + } + } - /* If your health doesn't meet the cutoff then set it to true */ - cancelled = mc.player.getHealth() + mc.player.getAbsorptionAmount() <= disableHealth.getValue(); - if (cancelled) { disableGaps(); return; } + /* If weaponCheck is disabled, check if they're not holding an item you'd want to use normally */ + private boolean passItemCheck() { + if (swordOrAxeOnly.getValue()) return false; + else { + Item item = mc.player.getHeldItemMainhand().getItem(); + if (item instanceof ItemBow) return false; + if (item instanceof ItemSnowball) return false; + if (item instanceof ItemEgg) return false; + if (item instanceof ItemPotion) return false; + if (item instanceof ItemEnderEye) return false; + if (item instanceof ItemEnderPearl) return false; + if (item instanceof ItemFood) return false; + if (item instanceof ItemShield) return false; + if (item instanceof ItemFlintAndSteel) return false; + if (item instanceof ItemFishingRod) return false; + if (item instanceof ItemArmor) return false; + if (item instanceof ItemExpBottle) return false; + return !preferBlocks.getValue() || !(item instanceof ItemBlock); + } + } - if (mc.player.getHeldItemOffhand().getItem() != Items.GOLDEN_APPLE) { - for (int i = 0; i < 45; i++) { - if (mc.player.inventory.getStackInSlot(i).getItem() == Items.GOLDEN_APPLE) { - gaps = i; - break; - } - } - } - } + private void disableGaps() { + if (autoTotemWasEnabled != MODULE_MANAGER.isModuleEnabled(AutoTotem.class)) { + moveGapsWaitForNoGui(); + MODULE_MANAGER.getModule(AutoTotem.class).enable(); + autoTotemWasEnabled = false; + } + } - /* If weaponCheck is disabled, check if they're not holding an item you'd want to use normally */ - private boolean passItemCheck() { - if (swordOrAxeOnly.getValue()) return false; - else { - Item item = mc.player.getHeldItemMainhand().getItem(); - if (item instanceof ItemBow) return false; - if (item instanceof ItemSnowball) return false; - if (item instanceof ItemEgg) return false; - if (item instanceof ItemPotion) return false; - if (item instanceof ItemEnderEye) return false; - if (item instanceof ItemEnderPearl) return false; - if (item instanceof ItemFood) return false; - if (item instanceof ItemShield) return false; - if (item instanceof ItemFlintAndSteel) return false; - if (item instanceof ItemFishingRod) return false; - if (item instanceof ItemArmor) return false; - if (item instanceof ItemExpBottle) return false; - if (preferBlocks.getValue() && item instanceof ItemBlock) return false; - } - return true; - } + private void enableGaps(int slot) { + if (mc.player.getHeldItemOffhand().getItem() != Items.GOLDEN_APPLE) { + mc.playerController.windowClick(0, slot < 9 ? slot + 36 : slot, 0, ClickType.PICKUP, mc.player); + mc.playerController.windowClick(0, 45, 0, ClickType.PICKUP, mc.player); + } + } - private void disableGaps() { - if (autoTotemWasEnabled != MODULE_MANAGER.isModuleEnabled(AutoTotem.class)) { - moveGapsWaitForNoGui(); - MODULE_MANAGER.getModule(AutoTotem.class).enable(); - autoTotemWasEnabled = false; - } - } + private void moveGapsToInventory(int slot) { + if (mc.player.getHeldItemOffhand().getItem() == Items.GOLDEN_APPLE) { + mc.playerController.windowClick(0, 45, 0, ClickType.PICKUP, mc.player); + mc.playerController.windowClick(0, slot < 9 ? slot + 36 : slot, 0, ClickType.PICKUP, mc.player); + } + } - private void enableGaps(int slot) { - if (mc.player.getHeldItemOffhand().getItem() != Items.GOLDEN_APPLE) { - mc.playerController.windowClick(0, slot < 9 ? slot + 36 : slot, 0, ClickType.PICKUP, mc.player); - mc.playerController.windowClick(0, 45, 0, ClickType.PICKUP, mc.player); - } - } + private void moveGapsWaitForNoGui() { + if (isGuiOpened) return; + moveGapsToInventory(gaps); + } - private void moveGapsToInventory(int slot) { - if (mc.player.getHeldItemOffhand().getItem() == Items.GOLDEN_APPLE) { - mc.playerController.windowClick(0, 45, 0, ClickType.PICKUP, mc.player); - mc.playerController.windowClick(0, slot < 9 ? slot + 36 : slot, 0, ClickType.PICKUP, mc.player); - } - } - - private void moveGapsWaitForNoGui() { - if (isGuiOpened) return; - moveGapsToInventory(gaps); - } - - @EventHandler - public Listener listener = new Listener<>(event -> isGuiOpened = event.getScreen() != null); - - @Override - public String getHudInfo() { - return String.valueOf(getItems(Items.GOLDEN_APPLE)); - } + @Override + public String getHudInfo() { + return String.valueOf(getItems(Items.GOLDEN_APPLE)); + } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/Surround.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/Surround.java index 955e3489a..57c044fc9 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/Surround.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/Surround.java @@ -35,6 +35,7 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; @Module.Info(name = "Surround", category = Module.Category.COMBAT, description = "Surrounds you with obsidian to take less damage") public class Surround extends Module { + private final Vec3d[] surroundTargets = new Vec3d[]{new Vec3d(0.0D, 0.0D, 0.0D), new Vec3d(1.0D, 1.0D, 0.0D), new Vec3d(0.0D, 1.0D, 1.0D), new Vec3d(-1.0D, 1.0D, 0.0D), new Vec3d(0.0D, 1.0D, -1.0D), new Vec3d(1.0D, 0.0D, 0.0D), new Vec3d(0.0D, 0.0D, 1.0D), new Vec3d(-1.0D, 0.0D, 0.0D), new Vec3d(0.0D, 0.0D, -1.0D), new Vec3d(1.0D, 1.0D, 0.0D), new Vec3d(0.0D, 1.0D, 1.0D), new Vec3d(-1.0D, 1.0D, 0.0D), new Vec3d(0.0D, 1.0D, -1.0D)}; public Setting autoDisable = register(Settings.b("Disable on place", true)); private Setting spoofRotations = register(Settings.b("Spoof Rotations", true)); private Setting spoofHotbar = register(Settings.b("Spoof Hotbar", false)); @@ -42,21 +43,43 @@ public class Surround extends Module { private Setting debugMsgs = register(Settings.e("Debug Messages", DebugMsgs.IMPORTANT)); private Setting autoCenter = register(Settings.e("Auto Center", AutoCenter.TP)); private Setting placeAnimation = register(Settings.b("Place Animation", false)); - - private final Vec3d[] surroundTargets = new Vec3d[]{new Vec3d(0.0D, 0.0D, 0.0D), new Vec3d(1.0D, 1.0D, 0.0D), new Vec3d(0.0D, 1.0D, 1.0D), new Vec3d(-1.0D, 1.0D, 0.0D), new Vec3d(0.0D, 1.0D, -1.0D), new Vec3d(1.0D, 0.0D, 0.0D), new Vec3d(0.0D, 0.0D, 1.0D), new Vec3d(-1.0D, 0.0D, 0.0D), new Vec3d(0.0D, 0.0D, -1.0D), new Vec3d(1.0D, 1.0D, 0.0D), new Vec3d(0.0D, 1.0D, 1.0D), new Vec3d(-1.0D, 1.0D, 0.0D), new Vec3d(0.0D, 1.0D, -1.0D)}; - private Vec3d playerPos; private BlockPos basePos; private int offsetStep = 0; private int playerHotbarSlot = -1; private int lastHotbarSlot = -1; - private enum DebugMsgs { - NONE, IMPORTANT, ALL + private static boolean canBeClicked(BlockPos pos) { + return getBlock(pos).canCollideCheck(getState(pos), false); } - private enum AutoCenter { - OFF, TP + public static Block getBlock(BlockPos pos) { + return getState(pos).getBlock(); + } + + private static IBlockState getState(BlockPos pos) { + return mc.world.getBlockState(pos); + } + + private static void faceVectorPacketInstant(Vec3d vec) { + float[] rotations = getLegitRotations(vec); + mc.player.connection.sendPacket(new Rotation(rotations[0], rotations[1], mc.player.onGround)); + } + + private static float[] getLegitRotations(Vec3d vec) { + Vec3d eyesPos = getEyesPos(); + double diffX = vec.x - eyesPos.x; + double diffY = vec.y - eyesPos.y; + double diffZ = vec.z - eyesPos.z; + double diffXZ = Math.sqrt(diffX * diffX + diffZ * diffZ); + float yaw = (float) Math.toDegrees(Math.atan2(diffZ, diffX)) - 90.0F; + float pitch = (float) (-Math.toDegrees(Math.atan2(diffY, diffXZ))); + return new float[]{mc.player.rotationYaw + MathHelper.wrapDegrees(yaw - mc.player.rotationYaw), mc.player.rotationPitch + MathHelper.wrapDegrees(pitch - mc.player.rotationPitch)}; + } + /* End of Autocenter */ + + private static Vec3d getEyesPos() { + return new Vec3d(mc.player.posX, mc.player.posY + (double) mc.player.getEyeHeight(), mc.player.posZ); } public void onUpdate() { @@ -94,17 +117,16 @@ public class Surround extends Module { private void centerPlayer(double x, double y, double z) { if (debugMsgs.getValue().equals(DebugMsgs.ALL) && playerPos != null) { sendChatMessage(getChatName() + " Player position is " + playerPos.toString()); - } - else if (debugMsgs.getValue().equals(DebugMsgs.ALL)) { + } else if (debugMsgs.getValue().equals(DebugMsgs.ALL)) { sendChatMessage(getChatName() + " Player position is null"); } mc.player.connection.sendPacket(new CPacketPlayer.Position(x, y, z, true)); mc.player.setPosition(x, y, z); } + double getDst(Vec3d vec) { return playerPos.distanceTo(vec); } - /* End of Autocenter */ public void onEnable() { if (mc.player == null) return; @@ -125,15 +147,18 @@ public class Surround extends Module { x = centerPos.getX() + 0.5; z = centerPos.getZ() + 0.5; centerPlayer(x, y, z); - } if (getDst(plusMinus) < getDst(plusPlus) && getDst(plusMinus) < getDst(minusMinus) && getDst(plusMinus) < getDst(minusPlus)) { + } + if (getDst(plusMinus) < getDst(plusPlus) && getDst(plusMinus) < getDst(minusMinus) && getDst(plusMinus) < getDst(minusPlus)) { x = centerPos.getX() + 0.5; z = centerPos.getZ() - 0.5; centerPlayer(x, y, z); - } if (getDst(minusMinus) < getDst(plusPlus) && getDst(minusMinus) < getDst(plusMinus) && getDst(minusMinus) < getDst(minusPlus)) { + } + if (getDst(minusMinus) < getDst(plusPlus) && getDst(minusMinus) < getDst(plusMinus) && getDst(minusMinus) < getDst(minusPlus)) { x = centerPos.getX() - 0.5; z = centerPos.getZ() - 0.5; centerPlayer(x, y, z); - } if (getDst(minusPlus) < getDst(plusPlus) && getDst(minusPlus) < getDst(plusMinus) && getDst(minusPlus) < getDst(minusMinus)) { + } + if (getDst(minusPlus) < getDst(plusPlus) && getDst(minusPlus) < getDst(plusMinus) && getDst(minusPlus) < getDst(minusMinus)) { x = centerPos.getX() - 0.5; z = centerPos.getZ() + 0.5; centerPlayer(x, y, z); @@ -197,7 +222,8 @@ public class Surround extends Module { } else if (!BlockInteractionHelper.checkForNeighbours(blockPos) && debugMsgs.getValue().equals(DebugMsgs.ALL)) { sendChatMessage(getChatName() + " !checkForNeighbours(blockPos), disabling! "); } else { - if (placeAnimation.getValue()) mc.player.connection.sendPacket(new CPacketAnimation(mc.player.getActiveHand())); + if (placeAnimation.getValue()) + mc.player.connection.sendPacket(new CPacketAnimation(mc.player.getActiveHand())); placeBlockExecute(blockPos); } if (MODULE_MANAGER.isModuleEnabled(NoBreakAnimation.class)) { @@ -288,35 +314,11 @@ public class Surround extends Module { } } - private static boolean canBeClicked(BlockPos pos) { - return getBlock(pos).canCollideCheck(getState(pos), false); + private enum DebugMsgs { + NONE, IMPORTANT, ALL } - public static Block getBlock(BlockPos pos) { - return getState(pos).getBlock(); - } - - private static IBlockState getState(BlockPos pos) { - return mc.world.getBlockState(pos); - } - - private static void faceVectorPacketInstant(Vec3d vec) { - float[] rotations = getLegitRotations(vec); - mc.player.connection.sendPacket(new Rotation(rotations[0], rotations[1], mc.player.onGround)); - } - - private static float[] getLegitRotations(Vec3d vec) { - Vec3d eyesPos = getEyesPos(); - double diffX = vec.x - eyesPos.x; - double diffY = vec.y - eyesPos.y; - double diffZ = vec.z - eyesPos.z; - double diffXZ = Math.sqrt(diffX * diffX + diffZ * diffZ); - float yaw = (float) Math.toDegrees(Math.atan2(diffZ, diffX)) - 90.0F; - float pitch = (float) (-Math.toDegrees(Math.atan2(diffY, diffXZ))); - return new float[]{mc.player.rotationYaw + MathHelper.wrapDegrees(yaw - mc.player.rotationYaw), mc.player.rotationPitch + MathHelper.wrapDegrees(pitch - mc.player.rotationPitch)}; - } - - private static Vec3d getEyesPos() { - return new Vec3d(mc.player.posX, mc.player.posY + (double) mc.player.getEyeHeight(), mc.player.posZ); + private enum AutoCenter { + OFF, TP } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/TotemPopCounter.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/TotemPopCounter.java index 41139f41c..79d229f96 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/TotemPopCounter.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/TotemPopCounter.java @@ -38,10 +38,37 @@ public class TotemPopCounter extends Module { private Setting thanksTo = register(Settings.b("Thanks to", false)); private Setting colourCode = register(Settings.e("Color Name", ColourTextFormatting.ColourCode.DARK_PURPLE)); private Setting colourCode1 = register(Settings.e("Color Number", ColourTextFormatting.ColourCode.LIGHT_PURPLE)); - - private enum Announce { CLIENT, EVERYONE } private HashMap playerList = new HashMap(); + @EventHandler + public Listener listListener = new Listener<>(event -> { + if (playerList == null) playerList = new HashMap<>(); + + if (playerList.get(event.getEntity().getName()) == null) { + playerList.put(event.getEntity().getName(), 1); + sendMessage(formatName(event.getEntity().getName()) + " popped " + formatNumber(1) + " totem" + ending()); + } else if (!(playerList.get(event.getEntity().getName()) == null)) { + int popCounter = playerList.get(event.getEntity().getName()); + popCounter += 1; + playerList.put(event.getEntity().getName(), popCounter); + sendMessage(formatName(event.getEntity().getName()) + " popped " + formatNumber(popCounter) + " totems" + ending()); + } + }); private boolean isDead = false; + @EventHandler + public Listener popListener = new Listener<>(event -> { + if (mc.player == null) return; + + if (event.getPacket() instanceof SPacketEntityStatus) { + SPacketEntityStatus packet = (SPacketEntityStatus) event.getPacket(); + if (packet.getOpCode() == 35) { + Entity entity = packet.getEntity(mc.world); + if (friendCheck(entity.getName()) || selfCheck(entity.getName())) { + EVENT_BUS.post(new EntityUseTotemEvent(entity)); + } + } + } + + }); @Override public void onUpdate() { @@ -58,10 +85,10 @@ public class TotemPopCounter extends Module { for (EntityPlayer player : mc.world.playerEntities) { if ( resetDeaths.getValue() - && 0 >= player.getHealth() - && friendCheck(player.getName()) - && selfCheck(player.getName()) - && playerList.containsKey(player.getName())) { + && 0 >= player.getHealth() + && friendCheck(player.getName()) + && selfCheck(player.getName()) + && playerList.containsKey(player.getName())) { /* To note: if they died after popping 1 totem it's going to say totems, but I cba to fix it */ sendMessage(formatName(player.getName()) + " died after popping " + formatNumber(playerList.get(player.getName())) + " totems" + ending()); playerList.remove(player.getName(), playerList.get(player.getName())); @@ -69,23 +96,6 @@ public class TotemPopCounter extends Module { } } - @EventHandler - public Listener listListener = new Listener<>(event -> { - if (playerList == null) playerList = new HashMap<>(); - - if (playerList.get(event.getEntity().getName()) == null) { - playerList.put(event.getEntity().getName(), 1); - sendMessage(formatName(event.getEntity().getName()) + " popped " + formatNumber(1) + " totem" + ending()); - } - - else if (!(playerList.get(event.getEntity().getName()) == null)) { - int popCounter = playerList.get(event.getEntity().getName()); - popCounter += 1; - playerList.put(event.getEntity().getName(), popCounter); - sendMessage(formatName(event.getEntity().getName()) + " popped " + formatNumber(popCounter) + " totems" + ending()); - } - }); - private boolean friendCheck(String name) { if (isDead) return false; for (Friends.Friend names : Friends.friends.getValue()) { @@ -98,11 +108,7 @@ public class TotemPopCounter extends Module { if (isDead) return false; if (countSelf.getValue() && name.equalsIgnoreCase(mc.player.getName())) { return true; - } - else if (!countSelf.getValue() && name.equalsIgnoreCase(mc.player.getName())) { - return false; - } - return true; + } else return countSelf.getValue() || !name.equalsIgnoreCase(mc.player.getName()); } private boolean isSelf(String name) { @@ -120,7 +126,10 @@ public class TotemPopCounter extends Module { String extraText = ""; if (isFriend(name) && !isPublic()) extraText = "Your friend, "; else if (isFriend(name) && isPublic()) extraText = "My friend, "; - if (isSelf(name)) { extraText = ""; name = "I"; } + if (isSelf(name)) { + extraText = ""; + name = "I"; + } if (announceSetting.getValue().equals(Announce.EVERYONE)) { return extraText + name; @@ -131,15 +140,13 @@ public class TotemPopCounter extends Module { private String grammar(String name) { if (isSelf(name)) { return "my"; - } - else return "their"; + } else return "their"; } private String ending() { if (thanksTo.getValue()) { return " thanks to " + KamiMod.MODNAME + "!"; - } - else return "!"; + } else return "!"; } private boolean isPublic() { @@ -163,23 +170,9 @@ public class TotemPopCounter extends Module { } } - @EventHandler - public Listener popListener = new Listener<>(event -> { - if (mc.player == null) return; - - if (event.getPacket() instanceof SPacketEntityStatus) { - SPacketEntityStatus packet = (SPacketEntityStatus) event.getPacket(); - if (packet.getOpCode() == 35) { - Entity entity = packet.getEntity(mc.world); - if (friendCheck(entity.getName()) || selfCheck(entity.getName())) { - EVENT_BUS.post(new EntityUseTotemEvent(entity)); - } - } - } - - }); - private TextFormatting setToText(ColourTextFormatting.ColourCode colourCode) { return toTextMap.get(colourCode); } + + private enum Announce {CLIENT, EVERYONE} } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/VisualRange.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/VisualRange.java index 71b7d7f34..8f217c6bd 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/VisualRange.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/VisualRange.java @@ -25,7 +25,7 @@ public class VisualRange extends Module { private Setting uwuAura = register(Settings.b("UwU Aura", false)); private List knownPlayers; - + @Override public void onUpdate() { if (mc.player == null) return; @@ -48,7 +48,7 @@ public class VisualRange extends Module { } else { sendNotification(ChatFormatting.RED.toString() + playerName + ChatFormatting.RESET.toString() + " entered the Battlefield!"); } - if (uwuAura.getValue()) sendServerMessage("/w "+ playerName + " hi uwu"); + if (uwuAura.getValue()) sendServerMessage("/w " + playerName + " hi uwu"); return; } @@ -66,7 +66,7 @@ public class VisualRange extends Module { } else { sendNotification(ChatFormatting.RED.toString() + playerName + ChatFormatting.RESET.toString() + " left the Battlefield!"); } - if (uwuAura.getValue()) sendServerMessage(("/w "+ playerName + " bye uwu")); + if (uwuAura.getValue()) sendServerMessage(("/w " + playerName + " bye uwu")); } return; diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/experimental/HoleFiller.java b/src/main/java/me/zeroeightsix/kami/module/modules/experimental/HoleFiller.java index b95324f0f..3eb7ac207 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/experimental/HoleFiller.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/experimental/HoleFiller.java @@ -39,28 +39,49 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; * Created by polymer on 12/03/20 */ -@Module.Info(name = "HoleFiller", category = Module.Category.EXPERIMENTAL, description="Fills holes around the player to make people easier to crystal.") +@Module.Info(name = "HoleFiller", category = Module.Category.EXPERIMENTAL, description = "Fills holes around the player to make people easier to crystal.") public class HoleFiller extends Module { + static boolean isSpoofingAngles; + static float yaw; + static float pitch; + private final BlockPos[] surroundOffset = { + new BlockPos(0, -1, 0), // down + new BlockPos(0, 0, -1), // north + new BlockPos(1, 0, 0), // east + new BlockPos(0, 0, 1), // south + new BlockPos(-1, 0, 0) // west + }; + public List blockPosList; + public boolean isHole; + List entities = new ArrayList<>(); private Setting distance = register(Settings.d("Range", 4.0)); private Setting render = register(Settings.b("Render Filled Blocks", false)); private Setting holeCheck = register(Settings.b("Only Fill in Hole", true)); private Setting ignoreWalls = register(Settings.b("Ignore Walls", false)); + @EventHandler + private final Listener cPacketListener = new Listener<>(event -> { + Packet packet = event.getPacket(); + if (packet instanceof CPacketPlayer) { + if (isSpoofingAngles) { + ((CPacketPlayer) packet).yaw = yaw; + ((CPacketPlayer) packet).pitch = pitch; + } + } + }); - public List blockPosList; - List entities = new ArrayList<>(); + private static void setYawAndPitch(float yaw1, float pitch1) { + yaw = yaw1; + pitch = pitch1; + isSpoofingAngles = true; + } - public boolean isHole; - static boolean isSpoofingAngles; - static float yaw; - static float pitch; - - private final BlockPos[] surroundOffset = { - new BlockPos(0, -1, 0), // down - new BlockPos(0, 0, -1), // north - new BlockPos(1, 0, 0), // east - new BlockPos(0, 0, 1), // south - new BlockPos(-1, 0, 0) // west - }; + private static void resetRotation() { + if (isSpoofingAngles) { + yaw = mc.player.rotationYaw; + pitch = mc.player.rotationPitch; + isSpoofingAngles = false; + } + } private int findObiInHotbar() { int slot = -1; @@ -83,11 +104,11 @@ public class HoleFiller extends Module { if (mc.player == null || mc.world == null) return; Vec3d[] holeOffset = { - mc.player.getPositionVector().add(1, 0, 0), - mc.player.getPositionVector().add(-1, 0, 0), - mc.player.getPositionVector().add(0, 0, 1), - mc.player.getPositionVector().add(0, 0, -1), - mc.player.getPositionVector().add(0, -1, 0) + mc.player.getPositionVector().add(1, 0, 0), + mc.player.getPositionVector().add(-1, 0, 0), + mc.player.getPositionVector().add(0, 0, 1), + mc.player.getPositionVector().add(0, 0, -1), + mc.player.getPositionVector().add(0, -1, 0) }; @@ -100,14 +121,14 @@ public class HoleFiller extends Module { for (BlockPos pos : maybe) { if (ignoreWalls.getValue()) { blockPosList.add(pos); - } else if (mc.world.rayTraceBlocks(new Vec3d(mc.player.getPosition().x, mc.player.getPosition().y + p.getEyeHeight(), mc.player.getPosition().z), new Vec3d(pos.x, pos.y + (double)p.getEyeHeight(), pos.z), false, true, false) != null) { + } else if (mc.world.rayTraceBlocks(new Vec3d(mc.player.getPosition().x, mc.player.getPosition().y + p.getEyeHeight(), mc.player.getPosition().z), new Vec3d(pos.x, pos.y + (double) p.getEyeHeight(), pos.z), false, true, false) != null) { blockPosList.add(pos); } } } if (blockPosList == null) return; - for (BlockPos p: blockPosList) { + for (BlockPos p : blockPosList) { if (p == null) return; isHole = true; @@ -130,8 +151,8 @@ public class HoleFiller extends Module { int h = 0; if (holeCheck.getValue()) { - for (Vec3d o: holeOffset) { - BlockPos q = new BlockPos (o.x, o.y, o.z); + for (Vec3d o : holeOffset) { + BlockPos q = new BlockPos(o.x, o.y, o.z); Block b = mc.world.getBlockState(q).getBlock(); if (b == Blocks.OBSIDIAN || b == Blocks.BEDROCK) { h++; @@ -167,32 +188,9 @@ public class HoleFiller extends Module { } } } + private void lookAtPacket(double px, double py, double pz, EntityPlayer me) { double[] v = calculateLookAt(px, py, pz, me); - setYawAndPitch((float) v[0], (float) v[1]+1f); + setYawAndPitch((float) v[0], (float) v[1] + 1f); } - private static void setYawAndPitch(float yaw1, float pitch1) { - yaw = yaw1; - pitch = pitch1; - isSpoofingAngles = true; - } - - private static void resetRotation() { - if (isSpoofingAngles) { - yaw = mc.player.rotationYaw; - pitch = mc.player.rotationPitch; - isSpoofingAngles = false; - } - } - - @EventHandler - private Listener cPacketListener = new Listener<>(event -> { - Packet packet = event.getPacket(); - if (packet instanceof CPacketPlayer) { - if (isSpoofingAngles) { - ((CPacketPlayer) packet).yaw = (float) yaw; - ((CPacketPlayer) packet).pitch = (float) pitch; - } - } - }); } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/hidden/CoordsLog.java b/src/main/java/me/zeroeightsix/kami/module/modules/hidden/CoordsLog.java index 9038b1218..152382f02 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/hidden/CoordsLog.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/hidden/CoordsLog.java @@ -1,30 +1,22 @@ package me.zeroeightsix.kami.module.modules.hidden; -import me.zeroeightsix.kami.util.LogUtil; import me.zeroeightsix.kami.module.Module; import me.zeroeightsix.kami.setting.Setting; import me.zeroeightsix.kami.setting.Settings; -import static me.zeroeightsix.kami.util.MessageSendHelper.sendRawChatMessage; - -import net.minecraft.client.Minecraft; +import me.zeroeightsix.kami.util.LogUtil; import java.text.SimpleDateFormat; import java.util.Date; -import java.util.function.Function; - -import java.io.FileWriter; -import java.io.IOException; @Module.Info(name = "CoordsLog", description = "Automatically writes the coordinates of the player to a file with a user defined delay between logs.", category = Module.Category.HIDDEN, showOnArray = Module.ShowOnArray.OFF) public class CoordsLog extends Module { + private static boolean playerIsDead = false; + private static long startTime = 0; private Setting delay = register(Settings.doubleBuilder("Time between logs").withMinimum(1.0).withValue(15.0).withMaximum(60.0).build()); private Setting checkDuplicates = register(Settings.b("Don't log same coord 2 times in a row", true)); private Setting useChunkCoord = register(Settings.b("Use chunk coordinate", true)); - private int previousCoord; - private static boolean playerIsDead = false; - @Override public void onUpdate() { if (mc.player == null) @@ -37,15 +29,13 @@ public class CoordsLog extends Module { } } - private static long startTime = 0; - private void timeout() { if (startTime == 0) startTime = System.currentTimeMillis(); if (startTime + (delay.getValue() * 1000) <= System.currentTimeMillis()) { // 1 timeout = 1 second = 1000 ms startTime = System.currentTimeMillis(); int[] cCArray = LogUtil.getCurrentCoord(useChunkCoord.getValue()); - int currentCoord = (int) cCArray[0]*3 + (int) cCArray[1]*32 + (int) cCArray[2]/2; + int currentCoord = cCArray[0] * 3 + cCArray[1] * 32 + cCArray[2] / 2; if (checkDuplicates.getValue() == true) { if (currentCoord != previousCoord) { logCoordinates(); diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/hidden/Teleport.java b/src/main/java/me/zeroeightsix/kami/module/modules/hidden/Teleport.java index 6866d3561..65508f236 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/hidden/Teleport.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/hidden/Teleport.java @@ -13,10 +13,10 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendErrorMessage; @Module.Info(name = "Teleport", description = "Library for teleport command", category = Module.Category.HIDDEN) public class Teleport extends Module { - private long lastTp; - private Vec3d lastPos; public static Vec3d finalPos; public static double blocksPerTeleport; + private long lastTp; + private Vec3d lastPos; @Override public void onUpdate() { diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AntiAFK.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AntiAFK.java index 14fb17b9a..857d1c7b1 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AntiAFK.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AntiAFK.java @@ -17,7 +17,7 @@ public class AntiAFK extends Module { private Setting swing = register(Settings.b("Swing", true)); private Setting turn = register(Settings.b("Turn", true)); - private Random random = new Random(); + private final Random random = new Random(); @Override public void onUpdate() { diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoFish.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoFish.java index 2a8c01a93..22e9a2be9 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoFish.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoFish.java @@ -26,15 +26,34 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; */ @Module.Info(name = "AutoFish", category = Module.Category.MISC, description = "Automatically catch fish", alwaysListening = true) public class AutoFish extends Module { - private boolean recastHide = false; private static ServerData cServer; + @EventHandler + public Listener serverConnectedEvent = new Listener<>(event -> { + if (isEnabled() && event.getScreen() instanceof GuiConnecting) { + cServer = mc.currentServerData; + EVENT_BUS.post(new ServerConnectedEvent()); + } + }); + @EventHandler + public Listener serverDisconnectedEvent = new Listener<>(event -> { + if (isEnabled() && event.getScreen() instanceof GuiDisconnected && (cServer != null || mc.currentServerData != null)) { + EVENT_BUS.post(new ServerDisconnectedEvent()); + } + }); Random random; - + private final boolean recastHide = false; private Setting defaultSetting = register(Settings.b("Defaults", false)); private Setting baseDelay = register(Settings.integerBuilder("Throw Delay").withValue(450).withMinimum(50).withMaximum(1000).build()); private Setting extraDelay = register(Settings.integerBuilder("Catch Delay").withValue(300).withMinimum(0).withMaximum(1000).build()); private Setting variation = register(Settings.integerBuilder("Variation").withValue(50).withMinimum(0).withMaximum(1000).build()); private Setting recast = register(Settings.booleanBuilder("Recast").withValue(false).withVisibility(v -> recastHide).build()); + @EventHandler + public Listener disconnectedEventListener = new Listener<>(event -> { + if (isDisabled()) return; + recast.setValue(true); + }); + @EventHandler + private final Listener receiveListener = new Listener<>(this::invoke); public void onUpdate() { if (defaultSetting.getValue()) defaults(); @@ -44,15 +63,6 @@ public class AutoFish extends Module { } } - @EventHandler - public Listener disconnectedEventListener = new Listener<>(event -> { - if (isDisabled()) return; - recast.setValue(true); - }); - - @EventHandler - private Listener receiveListener = new Listener<>(this::invoke); - private void invoke(PacketEvent.Receive e) { if (isEnabled() && e.getPacket() instanceof SPacketSoundEffect) { SPacketSoundEffect pck = (SPacketSoundEffect) e.getPacket(); @@ -83,21 +93,6 @@ public class AutoFish extends Module { } } - @EventHandler - public Listener serverConnectedEvent = new Listener<>(event -> { - if (isEnabled() && event.getScreen() instanceof GuiConnecting) { - cServer = mc.currentServerData; - EVENT_BUS.post(new ServerConnectedEvent()); - } - }); - - @EventHandler - public Listener serverDisconnectedEvent = new Listener<>(event -> { - if (isEnabled() && event.getScreen() instanceof GuiDisconnected && (cServer != null || mc.currentServerData != null)) { - EVENT_BUS.post(new ServerDisconnectedEvent()); - } - }); - private boolean kindaEquals(int kara, int ni) { return ni == kara || ni == kara - 1 || ni == kara + 1; } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoNametag.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoNametag.java index e24a56e1e..1dc08be53 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoNametag.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoNametag.java @@ -95,5 +95,5 @@ public class AutoNametag extends Module { } } - private enum Mode { WITHER, ANY } + private enum Mode {WITHER, ANY} } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoReconnect.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoReconnect.java index f9738cb4b..31c2b2454 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoReconnect.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoReconnect.java @@ -16,20 +16,18 @@ import net.minecraft.client.multiplayer.ServerData; @Module.Info(name = "AutoReconnect", description = "Automatically reconnects after being disconnected", category = Module.Category.MISC, alwaysListening = true, showOnArray = Module.ShowOnArray.OFF) public class AutoReconnect extends Module { - private Setting seconds = register(Settings.integerBuilder("Seconds").withValue(5).withMinimum(0).build()); private static ServerData cServer; - @EventHandler public Listener closedListener = new Listener<>(event -> { if (event.getScreen() instanceof GuiConnecting) cServer = mc.currentServerData; }); - @EventHandler public Listener displayedListener = new Listener<>(event -> { if (isEnabled() && event.getScreen() instanceof GuiDisconnected && (cServer != null || mc.currentServerData != null)) event.setScreen(new KamiGuiDisconnected((GuiDisconnected) event.getScreen())); }); + private Setting seconds = register(Settings.integerBuilder("Seconds").withValue(5).withMinimum(0).build()); private class KamiGuiDisconnected extends GuiDisconnected { diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoSpawner.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoSpawner.java index 8f10de95f..15e927e26 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoSpawner.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoSpawner.java @@ -37,6 +37,7 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; @Module.Info(name = "AutoSpawner", category = Module.Category.MISC, description = "Automatically spawns Withers, Iron Golems and Snowmen") public class AutoSpawner extends Module { + private static boolean isSneaking; private Setting useMode = register(Settings.e("Use Mode", UseMode.SPAM)); private Setting party = register(Settings.b("Party", false)); private Setting partyWithers = register(Settings.booleanBuilder("Withers").withValue(false).withVisibility(v -> party.getValue()).build()); @@ -45,9 +46,6 @@ public class AutoSpawner extends Module { private Setting delay = register(Settings.integerBuilder("Delay").withMinimum(12).withValue(20).withMaximum(100).build()); private Setting rotate = register(Settings.b("Rotate", true)); private Setting debug = register(Settings.b("Debug", false)); - - private static boolean isSneaking; - private BlockPos placeTarget; private boolean rotationPlaceableX; private boolean rotationPlaceableZ; @@ -102,7 +100,10 @@ public class AutoSpawner extends Module { @Override protected void onEnable() { - if (mc.player == null) { disable(); return; } + if (mc.player == null) { + disable(); + return; + } buildStage = 1; delayStep = 1; diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoTool.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoTool.java index 98ba3f876..321bd9d87 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoTool.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoTool.java @@ -26,29 +26,10 @@ public class AutoTool extends Module { private Setting preferTool = register(Settings.e("Prefer", Aura.HitMode.NONE)); @EventHandler - private Listener leftClickListener = new Listener<>(event -> equipBestTool(mc.world.getBlockState(event.getPos()))); + private final Listener leftClickListener = new Listener<>(event -> equipBestTool(mc.world.getBlockState(event.getPos()))); @EventHandler - private Listener attackListener = new Listener<>(event -> equipBestWeapon(preferTool.getValue())); - - private void equipBestTool(IBlockState blockState) { - int bestSlot = -1; - double max = 0; - for (int i = 0; i < 9; i++) { - ItemStack stack = mc.player.inventory.getStackInSlot(i); - if (stack.isEmpty) continue; - float speed = stack.getDestroySpeed(blockState); - int eff; - if (speed > 1) { - speed += ((eff = EnchantmentHelper.getEnchantmentLevel(Enchantments.EFFICIENCY, stack)) > 0 ? (Math.pow(eff, 2) + 1) : 0); - if (speed > max) { - max = speed; - bestSlot = i; - } - } - } - if (bestSlot != -1) equip(bestSlot); - } + private final Listener attackListener = new Listener<>(event -> equipBestWeapon(preferTool.getValue())); public static void equipBestWeapon(Aura.HitMode hitMode) { int bestSlot = -1; @@ -86,4 +67,23 @@ public class AutoTool extends Module { mc.player.inventory.currentItem = slot; mc.playerController.syncCurrentPlayItem(); } + + private void equipBestTool(IBlockState blockState) { + int bestSlot = -1; + double max = 0; + for (int i = 0; i < 9; i++) { + ItemStack stack = mc.player.inventory.getStackInSlot(i); + if (stack.isEmpty) continue; + float speed = stack.getDestroySpeed(blockState); + int eff; + if (speed > 1) { + speed += ((eff = EnchantmentHelper.getEnchantmentLevel(Enchantments.EFFICIENCY, stack)) > 0 ? (Math.pow(eff, 2) + 1) : 0); + if (speed > max) { + max = speed; + bestSlot = i; + } + } + } + if (bestSlot != -1) equip(bestSlot); + } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/BlockData.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/BlockData.java index 8c1e8afb3..3e1db9a10 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/BlockData.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/BlockData.java @@ -18,20 +18,12 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; /** * @author 0x2E | PretendingToCode - * + *

* TODO: Fix delay timer because that shit broken */ @Module.Info(name = "BlockData", category = Module.Category.MISC, description = "Right click blocks to display their data") public class BlockData extends Module { private int delay = 0; - - @Override - public void onUpdate() { - if (delay > 0) { - delay--; - } - } - @EventHandler public Listener mouseListener = new Listener<>(event -> { if (Mouse.getEventButton() == 1 && delay == 0) { @@ -50,4 +42,11 @@ public class BlockData extends Module { } } }); + + @Override + public void onUpdate() { + if (delay > 0) { + delay--; + } + } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/BookCrash.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/BookCrash.java index 15cd0710b..235c030b6 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/BookCrash.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/BookCrash.java @@ -34,6 +34,10 @@ public class BookCrash extends Module { private Setting pagesSettings = register(Settings.i("Pages", 50)); private Setting autoToggle = register(Settings.b("AutoToggle", true)); + private static String repeat(int count, String with) { + return new String(new char[count]).replace("\0", with); + } + @Override public void onUpdate() { if (Minecraft.getMinecraft().getCurrentServerData() == null || Minecraft.getMinecraft().getCurrentServerData().serverIP.isEmpty()) { @@ -95,8 +99,4 @@ public class BookCrash extends Module { ASCII, FFFF, RANDOM, OLD } - private static String repeat(int count, String with) { - return new String(new char[count]).replace("\0", with); - } - } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/CameraClip.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/CameraClip.java index 34acb17cd..28ac80a3b 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/CameraClip.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/CameraClip.java @@ -6,7 +6,7 @@ import net.minecraft.util.math.Vec3d; /** * Created by 086 on 11/12/2017. - * + *

* {@link me.zeroeightsix.kami.mixin.client.MixinEntityRenderer#rayTraceBlocks(WorldClient, Vec3d, Vec3d)} */ @Module.Info(name = "CameraClip", category = Module.Category.MISC, description = "Allows your 3rd person camera to pass through blocks", showOnArray = Module.ShowOnArray.OFF) diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/ConsoleSpam.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/ConsoleSpam.java index 52eb1fa47..6d700d2c2 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/ConsoleSpam.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/ConsoleSpam.java @@ -19,12 +19,6 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; @Module.Info(name = "ConsoleSpam", description = "Spams Spigot consoles by sending invalid UpdateSign packets", category = Module.Category.MISC) public class ConsoleSpam extends Module { - @Override - public void onEnable() { - sendChatMessage(getChatName() + " Every time you right click a sign, a warning will appear in console."); - sendChatMessage(getChatName() + " Use an autoclicker to automate this process."); - } - @EventHandler public Listener sendListener = new Listener<>(event -> { if (event.getPacket() instanceof CPacketPlayerTryUseItemOnBlock) { @@ -33,4 +27,10 @@ public class ConsoleSpam extends Module { Wrapper.getPlayer().connection.sendPacket(new CPacketUpdateSign(location, new TileEntitySign().signText)); } }); + + @Override + public void onEnable() { + sendChatMessage(getChatName() + " Every time you right click a sign, a warning will appear in console."); + sendChatMessage(getChatName() + " Use an autoclicker to automate this process."); + } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/DiscordRPC.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/DiscordRPC.java index ab9a73c05..c332c871e 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/DiscordRPC.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/DiscordRPC.java @@ -16,19 +16,17 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendWarningMessage; */ @Module.Info(name = "DiscordRPC", category = Module.Category.MISC, description = "Discord Rich Presence") public class DiscordRPC extends Module { - private Setting coordsConfirm = register(Settings.b("Coords Confirm", false)); + private static long startTime = 0; public Setting line1Setting = register(Settings.e("Line 1 Left", LineInfo.VERSION)); // details left public Setting line3Setting = register(Settings.e("Line 1 Right", LineInfo.USERNAME)); // details right public Setting line2Setting = register(Settings.e("Line 2 Left", LineInfo.SERVER_IP)); // state left public Setting line4Setting = register(Settings.e("Line 2 Right", LineInfo.HEALTH)); // state right - - public enum LineInfo { - VERSION, WORLD, DIMENSION, USERNAME, HEALTH, SERVER_IP, COORDS, NONE - } + private Setting coordsConfirm = register(Settings.b("Coords Confirm", false)); public String getLine(LineInfo line) { switch (line) { - case VERSION: return KamiMod.MODVERSMALL; + case VERSION: + return KamiMod.MODVERSMALL; case WORLD: if (mc.isIntegratedServerRunning()) return "Singleplayer"; else if (mc.getCurrentServerData() != null) return "Multiplayer"; @@ -46,9 +44,11 @@ public class DiscordRPC extends Module { else if (mc.isIntegratedServerRunning()) return "Offline"; else return "Main Menu"; case COORDS: - if (mc.player != null && coordsConfirm.getValue()) return "(" + (int) mc.player.posX + " " + (int) mc.player.posY + " " + (int) mc.player.posZ + ")"; + if (mc.player != null && coordsConfirm.getValue()) + return "(" + (int) mc.player.posX + " " + (int) mc.player.posY + " " + (int) mc.player.posZ + ")"; else return "No coords"; - default: return ""; + default: + return ""; } } @@ -57,7 +57,6 @@ public class DiscordRPC extends Module { DiscordPresence.start(); } - private static long startTime = 0; @Override public void onUpdate() { if (startTime == 0) startTime = System.currentTimeMillis(); @@ -75,4 +74,8 @@ public class DiscordRPC extends Module { protected void onDisable() { DiscordPresence.end(); } + + public enum LineInfo { + VERSION, WORLD, DIMENSION, USERNAME, HEALTH, SERVER_IP, COORDS, NONE + } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/EntityTools.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/EntityTools.java index 7b66ef322..7af7abb03 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/EntityTools.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/EntityTools.java @@ -14,26 +14,15 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; /** * @author 0x2E | PretendingToCode - * + *

* Inspired by ForgeHax, recreated with expressed permission from creator - * + *

* TODO: Fix delay timer because that shit broken */ @Module.Info(name = "EntityTools", category = Module.Category.MISC, description = "Right click entities to perform actions on them") public class EntityTools extends Module { private Setting mode = register(Settings.e("Mode", Mode.DELETE)); private int delay = 0; - private enum Mode { - DELETE, INFO - } - - @Override - public void onUpdate() { - if (delay > 0) { - delay--; - } - } - @EventHandler public Listener mouseListener = new Listener<>(event -> { if (Mouse.getEventButton() == 1 && delay == 0) { @@ -50,4 +39,15 @@ public class EntityTools extends Module { } } }); + + @Override + public void onUpdate() { + if (delay > 0) { + delay--; + } + } + + private enum Mode { + DELETE, INFO + } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/MidClickFriends.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/MidClickFriends.java index cf92a9c6a..b93facfd1 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/MidClickFriends.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/MidClickFriends.java @@ -21,14 +21,6 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; @Module.Info(name = "MidClickFriends", category = Module.Category.MISC, description = "Middle click players to friend or unfriend them", showOnArray = Module.ShowOnArray.OFF) public class MidClickFriends extends Module { private int delay = 0; - - @Override - public void onUpdate() { - if (delay > 0) { - delay--; - } - } - @EventHandler public Listener mouseListener = new Listener<>(event -> { if (delay == 0) { @@ -48,6 +40,13 @@ public class MidClickFriends extends Module { } }); + @Override + public void onUpdate() { + if (delay > 0) { + delay--; + } + } + private void remove(String name) { delay = 20; Friends.Friend friend = Friends.friends.getValue().stream().filter(friend1 -> friend1.getUsername().equalsIgnoreCase(name)).findFirst().get(); diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/SkinFlicker.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/SkinFlicker.java index 71d408c07..103a1a94b 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/SkinFlicker.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/SkinFlicker.java @@ -13,9 +13,6 @@ import java.util.Random; @Module.Info(name = "SkinFlicker", description = "Toggle your skin layers rapidly for a cool skin effect", category = Module.Category.MISC) public class SkinFlicker extends Module { - private Setting mode = register(Settings.e("Mode", FlickerMode.HORIZONTAL)); - private Setting slowness = register(Settings.integerBuilder().withName("Slowness").withValue(2).withMinimum(1).build()); - private final static EnumPlayerModelParts[] PARTS_HORIZONTAL = new EnumPlayerModelParts[]{ EnumPlayerModelParts.LEFT_SLEEVE, EnumPlayerModelParts.JACKET, @@ -24,7 +21,6 @@ public class SkinFlicker extends Module { EnumPlayerModelParts.RIGHT_PANTS_LEG, EnumPlayerModelParts.RIGHT_SLEEVE }; - private final static EnumPlayerModelParts[] PARTS_VERTICAL = new EnumPlayerModelParts[]{ EnumPlayerModelParts.HAT, EnumPlayerModelParts.JACKET, @@ -33,9 +29,10 @@ public class SkinFlicker extends Module { EnumPlayerModelParts.LEFT_PANTS_LEG, EnumPlayerModelParts.RIGHT_PANTS_LEG, }; - - private Random r = new Random(); - private int len = EnumPlayerModelParts.values().length; + private Setting mode = register(Settings.e("Mode", FlickerMode.HORIZONTAL)); + private Setting slowness = register(Settings.integerBuilder().withName("Slowness").withValue(2).withMinimum(1).build()); + private final Random r = new Random(); + private final int len = EnumPlayerModelParts.values().length; @Override public void onUpdate() { @@ -56,7 +53,7 @@ public class SkinFlicker extends Module { } } - public static enum FlickerMode { + public enum FlickerMode { HORIZONTAL, VERTICAL, RANDOM } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/XCarry.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/XCarry.java index 56c9a79a3..e563182e8 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/XCarry.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/XCarry.java @@ -12,7 +12,7 @@ import net.minecraft.network.play.client.CPacketCloseWindow; @Module.Info(name = "XCarry", category = Module.Category.PLAYER, description = "Store items in crafting slots", showOnArray = Module.ShowOnArray.OFF) public class XCarry extends Module { @EventHandler - private Listener l = new Listener<>(event -> { + private final Listener l = new Listener<>(event -> { if (event.getPacket() instanceof CPacketCloseWindow) { event.cancel(); } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/movement/AntiHunger.java b/src/main/java/me/zeroeightsix/kami/module/modules/movement/AntiHunger.java index 6f9afb7b6..487223a7d 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/movement/AntiHunger.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/movement/AntiHunger.java @@ -15,7 +15,7 @@ import static net.minecraft.network.play.client.CPacketEntityAction.Action.STOP_ /** * Created by 086 on 8/04/2018. * Code tweaked by coderynx & OverFloyd. - * + *

* Movement taken from Seppuku * https://github.com/seppukudevelopment/seppuku/blob/005e2da/src/main/java/me/rigamortis/seppuku/impl/module/player/NoHungerModule.java */ diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/movement/AutoJump.java b/src/main/java/me/zeroeightsix/kami/module/modules/movement/AutoJump.java index ac0d7ce9f..d8332b15e 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/movement/AutoJump.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/movement/AutoJump.java @@ -9,6 +9,7 @@ import me.zeroeightsix.kami.setting.Settings; */ @Module.Info(name = "AutoJump", category = Module.Category.MOVEMENT, description = "Automatically jumps if possible") public class AutoJump extends Module { + private static long startTime = 0; private Setting delay = register(Settings.integerBuilder("Tick Delay").withValue(10).build()); @Override @@ -24,7 +25,6 @@ public class AutoJump extends Module { } } - private static long startTime = 0; private boolean timeout() { if (startTime == 0) startTime = System.currentTimeMillis(); if (startTime + ((delay.getValue() / 20) * 1000) <= System.currentTimeMillis()) { // 1 timeout = 1 second = 1000 ms diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/movement/AutoRemount.java b/src/main/java/me/zeroeightsix/kami/module/modules/movement/AutoRemount.java index bff8bcb40..b34208780 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/movement/AutoRemount.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/movement/AutoRemount.java @@ -18,8 +18,6 @@ public class AutoRemount extends Module { private Setting modeSetting = register(Settings.e("Mode", Mode.HORSE)); private Setting range = register(Settings.floatBuilder("Range").withMinimum(1.0f).withValue(1.5f).withMaximum(10.0f).build()); - private enum Mode { HORSE, DONKEY } - public void onUpdate() { switch (modeSetting.getValue()) { case HORSE: @@ -43,4 +41,6 @@ public class AutoRemount extends Module { } } + + private enum Mode {HORSE, DONKEY} } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/movement/AutoWalk.java b/src/main/java/me/zeroeightsix/kami/module/modules/movement/AutoWalk.java index 09c6c332c..bfba08a9f 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/movement/AutoWalk.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/movement/AutoWalk.java @@ -21,7 +21,7 @@ public class AutoWalk extends Module { private Setting mode = register(Settings.e("Mode", AutoWalkMode.FORWARD)); @EventHandler - private Listener inputUpdateEventListener = new Listener<>(event -> { + private final Listener inputUpdateEventListener = new Listener<>(event -> { switch (mode.getValue()) { case FORWARD: event.getMovementInput().moveForward = 1; diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/movement/ElytraFlight.java b/src/main/java/me/zeroeightsix/kami/module/modules/movement/ElytraFlight.java index b3e4c8067..556cbfab3 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/movement/ElytraFlight.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/movement/ElytraFlight.java @@ -25,6 +25,7 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendErrorMessage; */ @Module.Info(name = "ElytraFlight", description = "Modifies elytras to fly at custom velocities and fall speeds", category = Module.Category.MOVEMENT) public class ElytraFlight extends Module { + public float packetYaw = 0.0f; private Setting mode = register(Settings.e("Mode", ElytraFlightMode.HIGHWAY)); private Setting defaultSetting = register(Settings.b("Defaults", false)); private Setting easyTakeOff = register(Settings.booleanBuilder("Easy Takeoff H").withValue(true).withVisibility(v -> mode.getValue().equals(ElytraFlightMode.HIGHWAY)).build()); @@ -42,18 +43,15 @@ public class ElytraFlight extends Module { private Setting upSpeedBoost = register(Settings.floatBuilder("Up Speed B").withValue(0.08f).withVisibility(v -> mode.getValue().equals(ElytraFlightMode.BOOST)).build()); private Setting downSpeedBoost = register(Settings.floatBuilder("Down Speed B").withValue(0.04f).withVisibility(v -> mode.getValue().equals(ElytraFlightMode.BOOST)).build()); private Setting downSpeedControl = register(Settings.doubleBuilder("Down Speed C").withMaximum(10.0).withMinimum(0.0).withValue(2.0).withVisibility(v -> mode.getValue().equals(ElytraFlightMode.CONTROL)).build()); - private ElytraFlightMode enabledMode; private boolean hasDoneWarning; - /* Control mode states */ private double hoverTarget = -1.0; - public float packetYaw = 0.0f; private boolean hoverState = false; /* Control Mode */ @EventHandler - private Listener sendListener = new Listener<>(event -> { + private final Listener sendListener = new Listener<>(event -> { if (!mode.getValue().equals(ElytraFlightMode.CONTROL) || mc.player == null) return; if (event.getPacket() instanceof CPacketPlayer) { if (!mc.player.isElytraFlying()) return; @@ -67,8 +65,9 @@ public class ElytraFlight extends Module { }); @EventHandler - private Listener receiveListener = new Listener<>(event -> { - if (!mode.getValue().equals(ElytraFlightMode.CONTROL) || mc.player == null || !mc.player.isElytraFlying()) return; + private final Listener receiveListener = new Listener<>(event -> { + if (!mode.getValue().equals(ElytraFlightMode.CONTROL) || mc.player == null || !mc.player.isElytraFlying()) + return; if (event.getPacket() instanceof SPacketPlayerPosLook) { SPacketPlayerPosLook packet = (SPacketPlayerPosLook) event.getPacket(); packet.pitch = ElytraFlight.mc.player.rotationPitch; @@ -76,7 +75,7 @@ public class ElytraFlight extends Module { }); @EventHandler - private Listener playerTravelListener = new Listener<>(event -> { + private final Listener playerTravelListener = new Listener<>(event -> { if (!mode.getValue().equals(ElytraFlightMode.CONTROL) || mc.player == null) return; boolean doHover; if (!mc.player.isElytraFlying()) { @@ -182,20 +181,18 @@ public class ElytraFlight extends Module { if (mc.gameSettings.keyBindJump.isKeyDown()) mc.player.motionY += upSpeedBoost.getValue(); - else - if (mc.gameSettings.keyBindSneak.isKeyDown()) - mc.player.motionY -= downSpeedBoost.getValue(); + else if (mc.gameSettings.keyBindSneak.isKeyDown()) + mc.player.motionY -= downSpeedBoost.getValue(); if (mc.gameSettings.keyBindForward.isKeyDown()) { float yaw = (float) Math.toRadians(mc.player.rotationYaw); mc.player.motionX -= MathHelper.sin(yaw) * 0.05F; mc.player.motionZ += MathHelper.cos(yaw) * 0.05F; - } else - if (mc.gameSettings.keyBindBack.isKeyDown()) { - float yaw = (float) Math.toRadians(mc.player.rotationYaw); - mc.player.motionX += MathHelper.sin(yaw) * 0.05F; - mc.player.motionZ -= MathHelper.cos(yaw) * 0.05F; - } + } else if (mc.gameSettings.keyBindBack.isKeyDown()) { + float yaw = (float) Math.toRadians(mc.player.rotationYaw); + mc.player.motionX += MathHelper.sin(yaw) * 0.05F; + mc.player.motionZ -= MathHelper.cos(yaw) * 0.05F; + } } else { mc.player.capabilities.setFlySpeed(.915f); mc.player.capabilities.isFlying = true; @@ -283,6 +280,7 @@ public class ElytraFlight extends Module { } } - private enum ElytraFlightMode { BOOST, FLY, CONTROL, HIGHWAY } - private enum TakeoffMode { CLIENT, PACKET } + private enum ElytraFlightMode {BOOST, FLY, CONTROL, HIGHWAY} + + private enum TakeoffMode {CLIENT, PACKET} } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/movement/ElytraReplace.java b/src/main/java/me/zeroeightsix/kami/module/modules/movement/ElytraReplace.java index e93879115..41427c377 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/movement/ElytraReplace.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/movement/ElytraReplace.java @@ -24,8 +24,6 @@ public class ElytraReplace extends Module { private int elytraCount; - private enum InventoryMode { ON, OFF } - @Override public void onUpdate() { @@ -142,4 +140,6 @@ public class ElytraReplace extends Module { return true; } else return !elytraFlightCheck.getValue(); } + + private enum InventoryMode {ON, OFF} } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/movement/EntitySpeed.java b/src/main/java/me/zeroeightsix/kami/module/modules/movement/EntitySpeed.java index c32cc47ab..31e15133e 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/movement/EntitySpeed.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/movement/EntitySpeed.java @@ -18,16 +18,20 @@ import net.minecraft.world.chunk.EmptyChunk; @Module.Info(name = "EntitySpeed", category = Module.Category.MOVEMENT, description = "Abuse client-sided movement to shape sound barrier breaking rideables") public class EntitySpeed extends Module { + private static Setting opacity = Settings.f("Boat opacity", .5f); private Setting speed = register(Settings.f("Speed", 1)); private Setting antiStuck = register(Settings.b("AntiStuck")); private Setting flight = register(Settings.b("Flight", false)); private Setting wobble = register(Settings.booleanBuilder("Wobble").withValue(true).withVisibility(b -> flight.getValue()).build()); - private static Setting opacity = Settings.f("Boat opacity", .5f); public EntitySpeed() { register(opacity); } + public static float getOpacity() { + return opacity.getValue(); + } + @Override public void onUpdate() { if ((mc.world != null) && (mc.player.getRidingEntity() != null)) { @@ -147,8 +151,4 @@ public class EntitySpeed extends Module { return antiStuck.getValue() && mc.world.getChunk((int) (entity.posX + motX) >> 4, (int) (entity.posZ + motZ) >> 4) instanceof EmptyChunk; } - public static float getOpacity() { - return opacity.getValue(); - } - } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/movement/InventoryMove.java b/src/main/java/me/zeroeightsix/kami/module/modules/movement/InventoryMove.java index 69fdaddc4..3a8d7715b 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/movement/InventoryMove.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/movement/InventoryMove.java @@ -13,8 +13,8 @@ import org.lwjgl.input.Keyboard; */ @Module.Info(name = "InventoryMove", description = "Allows you to walk around with GUIs opened", category = Module.Category.MOVEMENT) public class InventoryMove extends Module { - private Setting speed = register(Settings.i("Look speed", 10)); public Setting sneak = register(Settings.b("Sneak", false)); + private Setting speed = register(Settings.i("Look speed", 10)); public void onUpdate() { if (mc.player == null || mc.currentScreen == null || mc.currentScreen instanceof GuiChat) return; diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/movement/Jesus.java b/src/main/java/me/zeroeightsix/kami/module/modules/movement/Jesus.java index 5e2771783..2f2afe0f2 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/movement/Jesus.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/movement/Jesus.java @@ -26,19 +26,6 @@ import static me.zeroeightsix.kami.KamiMod.MODULE_MANAGER; public class Jesus extends Module { private static final AxisAlignedBB WATER_WALK_AA = new AxisAlignedBB(0.D, 0.D, 0.D, 1.D, 0.99D, 1.D); - - @Override - public void onUpdate() { - if (!MODULE_MANAGER.isModuleEnabled(Freecam.class)) { - if (EntityUtil.isInWater(mc.player) && !mc.player.isSneaking()) { - mc.player.motionY = 0.1; - if (mc.player.getRidingEntity() != null && !(mc.player.getRidingEntity() instanceof EntityBoat)) { - mc.player.getRidingEntity().motionY = 0.3; - } - } - } - } - @EventHandler Listener addCollisionBoxToListEventListener = new Listener<>((event) -> { if (mc.player != null @@ -55,7 +42,6 @@ public class Jesus extends Module { event.cancel(); } }); - @EventHandler Listener packetEventSendListener = new Listener<>(event -> { if (event.getEra() == KamiEvent.Era.PRE) { @@ -89,4 +75,16 @@ public class Jesus extends Module { return entity.posY >= pos.getY(); } + @Override + public void onUpdate() { + if (!MODULE_MANAGER.isModuleEnabled(Freecam.class)) { + if (EntityUtil.isInWater(mc.player) && !mc.player.isSneaking()) { + mc.player.motionY = 0.1; + if (mc.player.getRidingEntity() != null && !(mc.player.getRidingEntity() instanceof EntityBoat)) { + mc.player.getRidingEntity().motionY = 0.3; + } + } + } + } + } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/movement/NoSlowDown.java b/src/main/java/me/zeroeightsix/kami/module/modules/movement/NoSlowDown.java index 0804b7820..e57796db8 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/movement/NoSlowDown.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/movement/NoSlowDown.java @@ -12,6 +12,7 @@ import net.minecraftforge.client.event.InputUpdateEvent; /** * Created by 086 on 15/12/2017. * Updated by S-B99 on 31/03/20 + * * @see me.zeroeightsix.kami.mixin.client.MixinBlockSoulSand * @see net.minecraft.client.entity.EntityPlayerSP#onLivingUpdate() */ @@ -31,7 +32,7 @@ public class NoSlowDown extends Module { * We'll abuse this fact, and multiply moveStrafe and moveForward by 5 to nullify the *0.2f hardcoded by Mojang. */ @EventHandler - private Listener eventListener = new Listener<>(event -> { + private final Listener eventListener = new Listener<>(event -> { if (passItemCheck(mc.player.getActiveItemStack().getItem()) && !mc.player.isRiding()) { event.getMovementInput().moveStrafe *= 5; event.getMovementInput().moveForward *= 5; @@ -45,7 +46,9 @@ public class NoSlowDown extends Module { } @Override - public void onDisable() { Blocks.SLIME_BLOCK.slipperiness = 0.8f; } + public void onDisable() { + Blocks.SLIME_BLOCK.slipperiness = 0.8f; + } private boolean passItemCheck(Item item) { if (!mc.player.isHandActive()) return false; diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/movement/Sprint.java b/src/main/java/me/zeroeightsix/kami/module/modules/movement/Sprint.java index 73a606e44..4ff6a92d9 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/movement/Sprint.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/movement/Sprint.java @@ -14,12 +14,11 @@ public class Sprint extends Module { @Override public void onUpdate() { if (mc.player == null) return; - if (MODULE_MANAGER.getModule(ElytraFlight.class).isEnabled() && (mc.player.isElytraFlying() || mc.player.capabilities.isFlying)) return; + if (MODULE_MANAGER.getModule(ElytraFlight.class).isEnabled() && (mc.player.isElytraFlying() || mc.player.capabilities.isFlying)) + return; try { - if (!mc.player.collidedHorizontally && mc.player.moveForward > 0) - mc.player.setSprinting(true); - else - mc.player.setSprinting(false); - } catch (Exception ignored) { } + mc.player.setSprinting(!mc.player.collidedHorizontally && mc.player.moveForward > 0); + } catch (Exception ignored) { + } } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/movement/TimerSpeed.java b/src/main/java/me/zeroeightsix/kami/module/modules/movement/TimerSpeed.java index 5a8d29627..ea295ee5e 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/movement/TimerSpeed.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/movement/TimerSpeed.java @@ -12,8 +12,8 @@ import me.zeroeightsix.kami.util.InfoCalculator; */ @Module.Info(name = "TimerSpeed", description = "Automatically change your timer to go fast", category = Category.MOVEMENT) public class TimerSpeed extends Module { - private float tickDelay = 0.0f; private static float curSpeed = 0.0f; + private float tickDelay = 0.0f; private Setting minimumSpeed = register(Settings.floatBuilder("Minimum Speed").withMinimum(0.1F).withMaximum(10.0F).withValue(4.0F).build()); private Setting maxSpeed = register(Settings.floatBuilder("Max Speed").withMinimum(0.1F).withMaximum(10.0F).withValue(7.0F).build()); private Setting attemptSpeed = register(Settings.floatBuilder("Attempt Speed").withMinimum(1.0F).withMaximum(10.0F).withValue(4.2F).build()); @@ -36,6 +36,7 @@ public class TimerSpeed extends Module { } ++tickDelay; } + public void onDisable() { mc.timer.tickLength = 50.0F; } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/movement/Velocity.java b/src/main/java/me/zeroeightsix/kami/module/modules/movement/Velocity.java index ef3348953..8c05bce47 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/movement/Velocity.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/movement/Velocity.java @@ -13,6 +13,7 @@ import net.minecraft.network.play.server.SPacketExplosion; /** * Created by 086 on 16/11/2017. + * * @see me.zeroeightsix.kami.mixin.client.MixinBlockLiquid */ @Module.Info(name = "Velocity", description = "Modify knockback impact", category = Module.Category.MOVEMENT) @@ -23,7 +24,7 @@ public class Velocity extends Module { private Setting vertical = register(Settings.f("Vertical", 0)); @EventHandler - private Listener packetEventListener = new Listener<>(event -> { + private final Listener packetEventListener = new Listener<>(event -> { if (event.getEra() == KamiEvent.Era.PRE) { if (event.getPacket() instanceof SPacketEntityVelocity) { SPacketEntityVelocity velocity = (SPacketEntityVelocity) event.getPacket(); @@ -44,7 +45,7 @@ public class Velocity extends Module { }); @EventHandler - private Listener entityCollisionListener = new Listener<>(event -> { + private final Listener entityCollisionListener = new Listener<>(event -> { if (event.getEntity() == mc.player) { if ((horizontal.getValue() == 0 && vertical.getValue() == 0) || noPush.getValue()) { event.cancel(); diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/player/AutoEat.java b/src/main/java/me/zeroeightsix/kami/module/modules/player/AutoEat.java index b0127e9db..6dfb0ebae 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/player/AutoEat.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/player/AutoEat.java @@ -28,7 +28,7 @@ public class AutoEat extends Module { private boolean isValid(ItemStack stack, int food) { return ( (passItemCheck(stack.getItem()) && stack.getItem() instanceof ItemFood && (foodLevel.getValue() - food) >= ((ItemFood) stack.getItem()).getHealAmount(stack)) || - (passItemCheck(stack.getItem()) && stack.getItem() instanceof ItemFood && (healthLevel.getValue() - (mc.player.getHealth() + mc.player.getAbsorptionAmount()) > 0f)) + (passItemCheck(stack.getItem()) && stack.getItem() instanceof ItemFood && (healthLevel.getValue() - (mc.player.getHealth() + mc.player.getAbsorptionAmount()) > 0f)) ); } @@ -36,10 +36,9 @@ public class AutoEat extends Module { if (item == Items.ROTTEN_FLESH) return false; if (item == Items.SPIDER_EYE) return false; if (item == Items.POISONOUS_POTATO) return false; - if (item == Items.FISH && new ItemStack(Items.FISH).getItemDamage() == 3) return false; - return true; - } - + return item != Items.FISH || new ItemStack(Items.FISH).getItemDamage() != 3; + } + @Override public void onUpdate() { if (mc.player == null) return; diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/player/EndTeleport.java b/src/main/java/me/zeroeightsix/kami/module/modules/player/EndTeleport.java index 6d6fcf6eb..6d540546b 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/player/EndTeleport.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/player/EndTeleport.java @@ -21,6 +21,15 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendWarningMessage; @Module.Info(name = "EndTeleport", category = Module.Category.PLAYER, description = "Allows for teleportation when going through end portals") public class EndTeleport extends Module { private Setting confirmed = register(Settings.b("Confirm", true)); + @EventHandler + public Listener receiveListener = new Listener<>(event -> { + if (event.getPacket() instanceof SPacketRespawn) { + if (((SPacketRespawn) event.getPacket()).getDimensionID() == 1 && confirmed.getValue()) { + Objects.requireNonNull(Wrapper.getMinecraft().getConnection()).handleDisconnect(new SPacketDisconnect(new TextComponentString("Attempting teleportation exploit"))); + disable(); + } + } + }); @Override public void onEnable() { @@ -31,14 +40,4 @@ public class EndTeleport extends Module { sendWarningMessage(getChatName() + "This module will kick you from the server! It is part of the exploit and cannot be avoided"); } } - - @EventHandler - public Listener receiveListener = new Listener<>(event -> { - if (event.getPacket() instanceof SPacketRespawn) { - if (((SPacketRespawn) event.getPacket()).getDimensionID() == 1 && confirmed.getValue()) { - Objects.requireNonNull(Wrapper.getMinecraft().getConnection()).handleDisconnect(new SPacketDisconnect(new TextComponentString("Attempting teleportation exploit"))); - disable(); - } - } - }); } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/player/Freecam.java b/src/main/java/me/zeroeightsix/kami/module/modules/player/Freecam.java index c44877a94..b66bd79ce 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/player/Freecam.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/player/Freecam.java @@ -31,6 +31,20 @@ public class Freecam extends Module { private boolean isRidingEntity; private Entity ridingEntity; + @EventHandler + private final Listener moveListener = new Listener<>(event -> mc.player.noClip = true); + @EventHandler + private final Listener pushListener = new Listener<>(event -> event.setCanceled(true)); + @EventHandler + private final Listener sendListener = new Listener<>(event -> { + if (event.getPacket() instanceof CPacketPlayer || event.getPacket() instanceof CPacketInput) { + event.cancel(); + } + if (packetCancel.getValue() && (event.getPacket() instanceof CPacketUseEntity || event.getPacket() instanceof CPacketVehicleMove)) { + event.cancel(); + } + + }); @Override protected void onEnable() { @@ -96,21 +110,4 @@ public class Freecam extends Module { mc.player.fallDistance = 0; } - @EventHandler - private Listener moveListener = new Listener<>(event -> mc.player.noClip = true); - - @EventHandler - private Listener pushListener = new Listener<>(event -> event.setCanceled(true)); - - @EventHandler - private Listener sendListener = new Listener<>(event -> { - if (event.getPacket() instanceof CPacketPlayer || event.getPacket() instanceof CPacketInput) { - event.cancel(); - } - if (packetCancel.getValue() && (event.getPacket() instanceof CPacketUseEntity || event.getPacket() instanceof CPacketVehicleMove)) { - event.cancel(); - } - - }); - } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/player/LagNotifier.java b/src/main/java/me/zeroeightsix/kami/module/modules/player/LagNotifier.java index 69526942e..16b43b8b4 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/player/LagNotifier.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/player/LagNotifier.java @@ -14,12 +14,14 @@ import static me.zeroeightsix.kami.util.InfoCalculator.round; /** * @author S-B99 - * Thanks Brady and cooker and leij for helping me not be completely retarded + * Thanks Brady and cooker and leij for helping me not be completely retarded */ @Module.Info(name = "LagNotifier", description = "Displays a warning when the server is lagging", category = Module.Category.PLAYER) public class LagNotifier extends Module { private Setting timeout = register(Settings.doubleBuilder().withName("Timeout").withValue(1.0).withMinimum(0.0).withMaximum(10.0).build()); private long serverLastUpdated; + @EventHandler + private final Listener receiveListener = new Listener<>(event -> serverLastUpdated = System.currentTimeMillis()); @Override public void onRender() { @@ -32,9 +34,6 @@ public class LagNotifier extends Module { renderer.drawStringWithShadow(mc.displayWidth / divider / 2 - renderer.getStringWidth(text) / 2, mc.displayHeight / divider / 2 - 217, 255, 85, 85, text); } - @EventHandler - private Listener receiveListener = new Listener<>(event -> serverLastUpdated = System.currentTimeMillis()); - private double timeDifference() { return round((System.currentTimeMillis() - serverLastUpdated) / 1000d, 1); } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/player/NoEntityTrace.java b/src/main/java/me/zeroeightsix/kami/module/modules/player/NoEntityTrace.java index 965b51e25..6c21662d9 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/player/NoEntityTrace.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/player/NoEntityTrace.java @@ -10,9 +10,8 @@ import me.zeroeightsix.kami.setting.Settings; @Module.Info(name = "NoEntityTrace", category = Module.Category.PLAYER, description = "Blocks entities from stopping you from mining") public class NoEntityTrace extends Module { - private Setting mode = register(Settings.e("Mode", TraceMode.DYNAMIC)); - private static NoEntityTrace INSTANCE; + private Setting mode = register(Settings.e("Mode", TraceMode.DYNAMIC)); public NoEntityTrace() { NoEntityTrace.INSTANCE = this; diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/player/NoFall.java b/src/main/java/me/zeroeightsix/kami/module/modules/player/NoFall.java index 230949aaa..d16c84c3f 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/player/NoFall.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/player/NoFall.java @@ -21,18 +21,16 @@ import net.minecraft.util.math.Vec3d; public class NoFall extends Module { private Setting fallMode = register(Settings.e("Mode", FallMode.PACKET)); - private Setting pickup = register(Settings.booleanBuilder("Pickup").withValue(true).withVisibility(v -> fallMode.getValue().equals(FallMode.BUCKET)).build()); - private Setting distance = register(Settings.integerBuilder("Distance").withValue(3).withMinimum(1).withMaximum(10).withVisibility(v -> fallMode.getValue().equals(FallMode.BUCKET)).build()); - private Setting pickupDelay = register(Settings.integerBuilder("Pickup Delay").withValue(300).withMinimum(100).withMaximum(1000).withVisibility(v -> fallMode.getValue().equals(FallMode.BUCKET) && pickup.getValue()).build()); - - private long last = 0; - @EventHandler public Listener sendListener = new Listener<>(event -> { if ((fallMode.getValue().equals(FallMode.PACKET)) && event.getPacket() instanceof CPacketPlayer) { ((CPacketPlayer) event.getPacket()).onGround = true; } }); + private Setting pickup = register(Settings.booleanBuilder("Pickup").withValue(true).withVisibility(v -> fallMode.getValue().equals(FallMode.BUCKET)).build()); + private Setting distance = register(Settings.integerBuilder("Distance").withValue(3).withMinimum(1).withMaximum(10).withVisibility(v -> fallMode.getValue().equals(FallMode.BUCKET)).build()); + private Setting pickupDelay = register(Settings.integerBuilder("Pickup Delay").withValue(300).withMinimum(100).withMaximum(1000).withVisibility(v -> fallMode.getValue().equals(FallMode.BUCKET) && pickup.getValue()).build()); + private long last = 0; @Override public void onUpdate() { @@ -57,7 +55,10 @@ public class NoFall extends Module { } if (pickup.getValue()) { new Thread(() -> { - try { Thread.sleep(pickupDelay.getValue()); } catch (InterruptedException ignored) { } + try { + Thread.sleep(pickupDelay.getValue()); + } catch (InterruptedException ignored) { + } mc.player.rotationPitch = 90; mc.rightClickMouse(); }).start(); diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/player/NoPacketKick.java b/src/main/java/me/zeroeightsix/kami/module/modules/player/NoPacketKick.java index 85cca56df..e9023a017 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/player/NoPacketKick.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/player/NoPacketKick.java @@ -5,7 +5,7 @@ import me.zeroeightsix.kami.module.Module; /** * @author 086 * @see me.zeroeightsix.kami.mixin.client.MixinNetworkManager - * + *

* Fixed by 0x2E | PretendingToCode 4/10/2020 */ @Module.Info(name = "NoPacketKick", category = Module.Category.PLAYER, description = "Suppress network exceptions and prevent getting kicked", showOnArray = Module.ShowOnArray.OFF) diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/player/NoSwing.java b/src/main/java/me/zeroeightsix/kami/module/modules/player/NoSwing.java index 513201f73..2e5f6e505 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/player/NoSwing.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/player/NoSwing.java @@ -16,7 +16,7 @@ import net.minecraft.network.play.client.CPacketAnimation; public class NoSwing extends Module { @EventHandler - private Listener listener = new Listener<>(event -> { + private final Listener listener = new Listener<>(event -> { if (event.getPacket() instanceof CPacketAnimation) { event.cancel(); } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/player/PacketCancel.java b/src/main/java/me/zeroeightsix/kami/module/modules/player/PacketCancel.java index e3c1a59a6..de1d62c6c 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/player/PacketCancel.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/player/PacketCancel.java @@ -20,21 +20,21 @@ public class PacketCancel extends Module { private Setting packetUseEntity = register(Settings.booleanBuilder("CPacketUseEntity").withValue(true).withVisibility(v -> !all.getValue())); private Setting packetVehicleMove = register(Settings.booleanBuilder("CPacketVehicleMove").withValue(true).withVisibility(v -> !all.getValue())); private int numPackets; - + @EventHandler private final Listener sendListener = new Listener<>(event -> { if ( - (all.getValue()) - || - (packetInput.getValue() && event.getPacket() instanceof CPacketInput) - || - (packetPlayer.getValue() && event.getPacket() instanceof CPacketPlayer) - || - (packetEntityAction.getValue() && event.getPacket() instanceof CPacketEntityAction) - || - (packetUseEntity.getValue() && event.getPacket() instanceof CPacketUseEntity) - || - (packetVehicleMove.getValue() && event.getPacket() instanceof CPacketVehicleMove) + (all.getValue()) + || + (packetInput.getValue() && event.getPacket() instanceof CPacketInput) + || + (packetPlayer.getValue() && event.getPacket() instanceof CPacketPlayer) + || + (packetEntityAction.getValue() && event.getPacket() instanceof CPacketEntityAction) + || + (packetUseEntity.getValue() && event.getPacket() instanceof CPacketUseEntity) + || + (packetVehicleMove.getValue() && event.getPacket() instanceof CPacketVehicleMove) ) { event.cancel(); numPackets++; diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/player/Scaffold.java b/src/main/java/me/zeroeightsix/kami/module/modules/player/Scaffold.java index 2bbc17149..f80f37a35 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/player/Scaffold.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/player/Scaffold.java @@ -25,20 +25,31 @@ import static me.zeroeightsix.kami.util.BlockInteractionHelper.*; * Created by 086 on 20/01/19 * Updated by Polymer on 16/01/20 * Updated by S-B99 on 02/03/20 + * * @see me.zeroeightsix.kami.mixin.client.MixinEntity */ @Module.Info(name = "Scaffold", category = Module.Category.PLAYER, description = "Places blocks under you") public class Scaffold extends Module { + private static Scaffold INSTANCE; private Setting placeBlocks = register(Settings.b("Place Blocks", true)); private Setting modeSetting = register(Settings.enumBuilder(Mode.class).withName("Mode").withValue(Mode.LEGIT).build()); private Setting randomDelay = register(Settings.booleanBuilder("Random Delay").withValue(false).withVisibility(v -> modeSetting.getValue().equals(Mode.LEGIT)).build()); private Setting delayRange = register(Settings.integerBuilder("Delay Range").withMinimum(0).withValue(6).withMaximum(10).withVisibility(v -> modeSetting.getValue().equals(Mode.LEGIT) && randomDelay.getValue()).build()); private Setting ticks = register(Settings.integerBuilder("Ticks").withMinimum(0).withMaximum(60).withValue(2).withVisibility(v -> !modeSetting.getValue().equals(Mode.LEGIT)).build()); - private boolean shouldSlow = false; - - private static Scaffold INSTANCE; + @EventHandler + private final Listener eventListener = new Listener<>(event -> { + if (modeSetting.getValue().equals(Mode.LEGIT) && shouldSlow) { + if (randomDelay.getValue()) { + event.getMovementInput().moveStrafe *= 0.2f + getRandomInRange(); + event.getMovementInput().moveForward *= 0.2f + getRandomInRange(); + } else { + event.getMovementInput().moveStrafe *= 0.2f; + event.getMovementInput().moveForward *= 0.2f; + } + } + }); public Scaffold() { INSTANCE = this; @@ -48,24 +59,6 @@ public class Scaffold extends Module { return INSTANCE.isEnabled(); } - private enum Mode { - NEITHER, LEGIT - } - - @EventHandler - private Listener eventListener = new Listener<>(event -> { - if (modeSetting.getValue().equals(Mode.LEGIT) && shouldSlow) { - if (randomDelay.getValue()) { - event.getMovementInput().moveStrafe *= 0.2f + getRandomInRange(); - event.getMovementInput().moveForward *= 0.2f + getRandomInRange(); - } - else { - event.getMovementInput().moveStrafe *= 0.2f; - event.getMovementInput().moveForward *= 0.2f; - } - } - }); - @Override public void onUpdate() { if (mc.player == null || MODULE_MANAGER.isModuleEnabled(Freecam.class)) return; @@ -136,5 +129,9 @@ public class Scaffold extends Module { /* reset slot back to the original one */ Wrapper.getPlayer().inventory.currentItem = oldSlot; } + + private enum Mode { + NEITHER, LEGIT + } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/player/Timer.java b/src/main/java/me/zeroeightsix/kami/module/modules/player/Timer.java index f73f27d54..78dd02f82 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/player/Timer.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/player/Timer.java @@ -24,8 +24,7 @@ public class Timer extends Module { public void onUpdate() { if (!slow.getValue()) { mc.timer.tickLength = 50.0f / tickNormal.getValue(); - } - else { + } else { mc.timer.tickLength = 50.0f / (tickSlow.getValue() / 10.0f); } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/ArmourHUD.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/ArmourHUD.java index ea02d5027..f1d25e9b1 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/ArmourHUD.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/ArmourHUD.java @@ -18,15 +18,14 @@ import net.minecraft.world.GameType; @Module.Info(name = "ArmourHUD", category = Module.Category.RENDER, showOnArray = Module.ShowOnArray.OFF, description = "Displays your armour and it's durability on screen") public class ArmourHUD extends Module { - private static RenderItem itemRender = Minecraft.getMinecraft().getRenderItem(); + private static final RenderItem itemRender = Minecraft.getMinecraft().getRenderItem(); private Setting damage = register(Settings.b("Damage", false)); private NonNullList getArmour() { if (mc.playerController.getCurrentGameType().equals(GameType.CREATIVE) || mc.playerController.getCurrentGameType().equals(GameType.SPECTATOR)) { return NonNullList.withSize(4, ItemStack.EMPTY); - } - else { + } else { return mc.player.inventory.armorInventory; } } @@ -65,7 +64,7 @@ public class ArmourHUD extends Module { mc.fontRenderer.drawStringWithShadow(dmg + "", x + 8 - mc.fontRenderer.getStringWidth(dmg + "") / 2, y - 11, ColourHolder.toHex((int) (red * 255), (int) (green * 255), 0)); } } - GlStateManager.enableDepth(); - GlStateManager.disableLighting(); + GlStateManager.enableDepth(); + GlStateManager.disableLighting(); } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/ArmourHide.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/ArmourHide.java index 3b48be862..a9c4d9ac2 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/ArmourHide.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/ArmourHide.java @@ -10,17 +10,15 @@ import net.minecraft.inventory.EntityEquipmentSlot; */ @Module.Info(name = "ArmourHide", category = Module.Category.RENDER, description = "Hides the armour on selected entities", showOnArray = Module.ShowOnArray.OFF) public class ArmourHide extends Module { + public static ArmourHide INSTANCE; public Setting player = register(Settings.b("Players", false)); public Setting armourstand = register(Settings.b("Armour Stands", true)); public Setting mobs = register(Settings.b("Mobs", true)); - public Setting helmet = register(Settings.b("Helmet", false)); public Setting chestplate = register(Settings.b("Chestplate", false)); public Setting leggins = register(Settings.b("Leggings", false)); public Setting boots = register(Settings.b("Boots", false)); - public static ArmourHide INSTANCE; - public ArmourHide() { ArmourHide.INSTANCE = this; } @@ -32,10 +30,6 @@ public class ArmourHide extends Module { return true; } else if (slotIn == EntityEquipmentSlot.LEGS && ArmourHide.INSTANCE.leggins.getValue()) { return true; - } else if (slotIn == EntityEquipmentSlot.FEET && ArmourHide.INSTANCE.boots.getValue()) { - return true; - } else { - return false; - } + } else return slotIn == EntityEquipmentSlot.FEET && ArmourHide.INSTANCE.boots.getValue(); } } \ No newline at end of file diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/BossStack.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/BossStack.java index 563ab35ca..97a0ebf69 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/BossStack.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/BossStack.java @@ -22,11 +22,10 @@ import java.util.UUID; @Module.Info(name = "BossStack", description = "Modify the boss health GUI to take up less space", category = Module.Category.MISC) public class BossStack extends Module { + private static final ResourceLocation GUI_BARS_TEXTURES = new ResourceLocation("textures/gui/bars.png"); private static Setting mode = Settings.e("Mode", BossStackMode.STACK); private static Setting scale = Settings.doubleBuilder().withName("Scale").withMinimum(0.1d).withValue(0.5d).build(); - private static final ResourceLocation GUI_BARS_TEXTURES = new ResourceLocation("textures/gui/bars.png"); - public BossStack() { registerAll(mode, scale); } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/BoxESP.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/BoxESP.java index b1cf160a5..533900fbb 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/BoxESP.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/BoxESP.java @@ -36,7 +36,7 @@ public class BoxESP extends Module { @Override public void onWorldRender(RenderEvent event) { List entities = mc.world.loadedEntityList.stream().filter(this::getEntity).collect(Collectors.toList()); - for (Entity e: entities) { + for (Entity e : entities) { KamiTessellator.prepare(GL11.GL_QUADS); int colour = rgbToInt(red.getValue(), green.getValue(), blue.getValue(), alpha.getValue()); KamiTessellator.drawBoxSmall((float) e.getPositionVector().x - 0.25f, (float) e.getPositionVector().y, (float) e.getPositionVector().z - 0.25f, colour, GeometryMasks.Quad.ALL); diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/Brightness.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/Brightness.java index 5d5beae35..0119604d3 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/Brightness.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/Brightness.java @@ -15,14 +15,24 @@ import java.util.function.Function; @Module.Info(name = "FullBright", description = "Makes everything brighter!", category = Module.Category.RENDER) public class Brightness extends Module { + private static float currentBrightness = 0; + private static boolean inTransition = false; private Setting transition = register(Settings.b("Transition", true)); private Setting seconds = register(Settings.floatBuilder("Seconds").withMinimum(0f).withMaximum(10f).withValue(5f).withVisibility(o -> transition.getValue()).build()); private Setting mode = register(Settings.enumBuilder(Transition.class).withName("Mode").withValue(Transition.SINE).withVisibility(o -> transition.getValue()).build()); + private final Stack transitionStack = new Stack<>(); - private Stack transitionStack = new Stack<>(); + public static float getCurrentBrightness() { + return currentBrightness; + } - private static float currentBrightness = 0; - private static boolean inTransition = false; + public static boolean isInTransition() { + return inTransition; + } + + public static boolean shouldBeActive() { + return isInTransition() || currentBrightness == 1; // if in transition or enabled + } private void addTransition(boolean isUpwards) { if (transition.getValue()) { @@ -95,20 +105,8 @@ public class Brightness extends Module { return createTransition(length, polarity, this::sine); } - public static float getCurrentBrightness() { - return currentBrightness; - } - - public static boolean isInTransition() { - return inTransition; - } - - public static boolean shouldBeActive() { - return isInTransition() || currentBrightness == 1; // if in transition or enabled - } - public enum Transition { - LINEAR, SINE; + LINEAR, SINE } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/ChunkFinder.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/ChunkFinder.java index 160dd82b2..1fc74a4ab 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/ChunkFinder.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/ChunkFinder.java @@ -28,6 +28,8 @@ import static org.lwjgl.opengl.GL11.*; */ @Module.Info(name = "ChunkFinder", description = "Highlights newly generated chunks", category = Module.Category.RENDER) public class ChunkFinder extends Module { + static ArrayList chunks = new ArrayList<>(); + private static boolean dirty = true; private Setting yOffset = register(Settings.i("Y Offset", 0)); private Setting relative = register(Settings.b("Relative", true)); private Setting saveNewChunks = register(Settings.b("Save New Chunks", false)); @@ -35,14 +37,21 @@ public class ChunkFinder extends Module { private Setting saveInRegionFolder = register(Settings.booleanBuilder("In Region").withValue(false).withVisibility(aBoolean -> saveNewChunks.getValue()).build()); private Setting alsoSaveNormalCoords = register(Settings.booleanBuilder("Save Normal Coords").withValue(false).withVisibility(aBoolean -> saveNewChunks.getValue()).build()); private Setting closeFile = register(Settings.booleanBuilder("Close File").withValue(false).withVisibility(aBoolean -> saveNewChunks.getValue()).build()); - private LastSetting lastSetting = new LastSetting(); private PrintWriter logWriter; - - static ArrayList chunks = new ArrayList<>(); - - private static boolean dirty = true; - private int list = GL11.glGenLists(1); + @EventHandler + public Listener listener = new Listener<>(event -> { + if (!event.getPacket().isFullChunk()) { + chunks.add(event.getChunk()); + dirty = true; + if (saveNewChunks.getValue()) { + saveNewChunk(event.getChunk()); + } + } + }); + private final int list = GL11.glGenLists(1); + @EventHandler + private final Listener unloadListener = new Listener<>(event -> dirty = chunks.remove(event.getChunk())); @Override public void onWorldRender(RenderEvent event) { @@ -108,17 +117,6 @@ public class ChunkFinder extends Module { chunks.clear(); } - @EventHandler - public Listener listener = new Listener<>(event -> { - if (!event.getPacket().isFullChunk()) { - chunks.add(event.getChunk()); - dirty = true; - if (saveNewChunks.getValue()) { - saveNewChunk(event.getChunk()); - } - } - }); - // needs to be synchronized so no data gets lost public void saveNewChunk(Chunk chunk) { saveNewChunk(testAndGetLogWriter(), getNewChunkInfo(chunk)); @@ -140,7 +138,6 @@ public class ChunkFinder extends Module { return logWriter; } - private void logWriterClose() { if (logWriter != null) { logWriter.close(); @@ -277,10 +274,8 @@ public class ChunkFinder extends Module { String[] sp = ip.split("_"); String ending = sp[sp.length - 1]; - if (!isInteger(ending)) { // if it is numeric it means it might be a port... - return true; - } - return false; + // if it is numeric it means it might be a port... + return !isInteger(ending); } private boolean isInteger(String s) { @@ -296,10 +291,6 @@ public class ChunkFinder extends Module { log.println(data); } - - @EventHandler - private Listener unloadListener = new Listener<>(event -> dirty = chunks.remove(event.getChunk())); - @Override public void destroy() { GL11.glDeleteLists(1, 1); @@ -340,10 +331,8 @@ public class ChunkFinder extends Module { if (dimension != mc.player.dimension) { return true; } - if (!mc.getCurrentServerData().serverIP.equals(ip)) { // strings need equals + this way because could be null - return true; - } - return false; + // strings need equals + this way because could be null + return !mc.getCurrentServerData().serverIP.equals(ip); } private void update() { diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/CleanGUI.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/CleanGUI.java index 32ca870e3..25fb2ddd4 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/CleanGUI.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/CleanGUI.java @@ -10,10 +10,9 @@ import me.zeroeightsix.kami.setting.Settings; */ @Module.Info(name = "CleanGUI", category = Module.Category.RENDER, showOnArray = Module.ShowOnArray.OFF, description = "Modifies parts of the GUI to be transparent") public class CleanGUI extends Module { - public Setting inventoryGlobal = register(Settings.b("Inventory", true)); public static Setting chatGlobal = Settings.b("Chat", false); - private static CleanGUI INSTANCE = new CleanGUI(); + public Setting inventoryGlobal = register(Settings.b("Inventory", true)); public CleanGUI() { INSTANCE = this; diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/ESP.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/ESP.java index 7475fb876..ebb957c24 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/ESP.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/ESP.java @@ -29,10 +29,6 @@ public class ESP extends Module { private Setting mobs = register(Settings.b("Mobs", false)); private Setting renderInvis = register(Settings.b("Invisible", false)); - public enum ESPMode { - RECTANGLE, GLOW - } - @Override public void onWorldRender(RenderEvent event) { @@ -138,4 +134,8 @@ public class ESP extends Module { mc.player.setGlowing(false); } } + + public enum ESPMode { + RECTANGLE, GLOW + } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/ExtraTab.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/ExtraTab.java index 71346c87b..24abf0687 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/ExtraTab.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/ExtraTab.java @@ -10,9 +10,8 @@ import me.zeroeightsix.kami.setting.Settings; @Module.Info(name = "ExtraTab", description = "Expands the player tab menu", category = Module.Category.RENDER) public class ExtraTab extends Module { - public Setting tabSize = register(Settings.integerBuilder("Players").withMinimum(1).withValue(80).build()); - public static ExtraTab INSTANCE; + public Setting tabSize = register(Settings.integerBuilder("Players").withMinimum(1).withValue(80).build()); public ExtraTab() { ExtraTab.INSTANCE = this; diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/HoleESP.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/HoleESP.java index b60468fe4..497bfecb9 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/HoleESP.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/HoleESP.java @@ -37,25 +37,16 @@ public class HoleESP extends Module { private Setting renderDistance = register(Settings.d("Render Distance", 8.0d)); private Setting a0 = register(Settings.integerBuilder("Transparency").withMinimum(0).withValue(32).withMaximum(255).build()); - private Setting r1 = register(Settings.integerBuilder("Red (Obby)").withMinimum(0).withValue(208).withMaximum(255).withVisibility(v-> obbySettings()).build()); - private Setting g1 = register(Settings.integerBuilder("Green (Obby)").withMinimum(0).withValue(144).withMaximum(255).withVisibility(v-> obbySettings()).build()); - private Setting b1 = register(Settings.integerBuilder("Blue (Obby)").withMinimum(0).withValue(255).withMaximum(255).withVisibility(v-> obbySettings()).build()); - private Setting r2 = register(Settings.integerBuilder("Red (Bedrock)").withMinimum(0).withValue(144).withMaximum(255).withVisibility(v-> bedrockSettings()).build()); // 208 - private Setting g2 = register(Settings.integerBuilder("Green (Bedrock)").withMinimum(0).withValue(144).withMaximum(255).withVisibility(v-> bedrockSettings()).build()); - private Setting b2 = register(Settings.integerBuilder("Blue (Bedrock)").withMinimum(0).withValue(255).withMaximum(255).withVisibility(v-> bedrockSettings()).build()); private Setting renderModeSetting = register(Settings.e("Render Mode", RenderMode.BLOCK)); private Setting renderBlocksSetting = register(Settings.e("Render", RenderBlocks.BOTH)); - + private Setting r1 = register(Settings.integerBuilder("Red (Obby)").withMinimum(0).withValue(208).withMaximum(255).withVisibility(v -> obbySettings()).build()); + private Setting g1 = register(Settings.integerBuilder("Green (Obby)").withMinimum(0).withValue(144).withMaximum(255).withVisibility(v -> obbySettings()).build()); + private Setting b1 = register(Settings.integerBuilder("Blue (Obby)").withMinimum(0).withValue(255).withMaximum(255).withVisibility(v -> obbySettings()).build()); + private Setting r2 = register(Settings.integerBuilder("Red (Bedrock)").withMinimum(0).withValue(144).withMaximum(255).withVisibility(v -> bedrockSettings()).build()); // 208 + private Setting g2 = register(Settings.integerBuilder("Green (Bedrock)").withMinimum(0).withValue(144).withMaximum(255).withVisibility(v -> bedrockSettings()).build()); + private Setting b2 = register(Settings.integerBuilder("Blue (Bedrock)").withMinimum(0).withValue(255).withMaximum(255).withVisibility(v -> bedrockSettings()).build()); private ConcurrentHashMap safeHoles; - private enum RenderMode { - DOWN, BLOCK - } - - private enum RenderBlocks { - OBBY, BEDROCK, BOTH - } - private boolean obbySettings() { return renderBlocksSetting.getValue().equals(RenderBlocks.OBBY) || renderBlocksSetting.getValue().equals(RenderBlocks.BOTH); } @@ -64,7 +55,6 @@ public class HoleESP extends Module { return renderBlocksSetting.getValue().equals(RenderBlocks.BEDROCK) || renderBlocksSetting.getValue().equals(RenderBlocks.BOTH); } - @Override public void onUpdate() { @@ -130,28 +120,27 @@ public class HoleESP extends Module { } KamiTessellator.prepare(GL11.GL_QUADS); - safeHoles.forEach((blockPos, isBedrock) -> { - switch (renderBlocksSetting.getValue()) { - case BOTH: - if (isBedrock) { - drawBox(blockPos, r2.getValue(), g2.getValue(), b2.getValue()); - } - else { - drawBox(blockPos, r1.getValue(), g1.getValue(), b1.getValue()); - } - break; - case OBBY: - if (!isBedrock) { - drawBox(blockPos, r1.getValue(), g1.getValue(), b1.getValue()); - } - break; - case BEDROCK: - if (isBedrock) { - drawBox(blockPos, r2.getValue(), g2.getValue(), b2.getValue()); - } - break; - } - }); + safeHoles.forEach((blockPos, isBedrock) -> { + switch (renderBlocksSetting.getValue()) { + case BOTH: + if (isBedrock) { + drawBox(blockPos, r2.getValue(), g2.getValue(), b2.getValue()); + } else { + drawBox(blockPos, r1.getValue(), g1.getValue(), b1.getValue()); + } + break; + case OBBY: + if (!isBedrock) { + drawBox(blockPos, r1.getValue(), g1.getValue(), b1.getValue()); + } + break; + case BEDROCK: + if (isBedrock) { + drawBox(blockPos, r2.getValue(), g2.getValue(), b2.getValue()); + } + break; + } + }); KamiTessellator.release(); } @@ -164,4 +153,12 @@ public class HoleESP extends Module { } } + private enum RenderMode { + DOWN, BLOCK + } + + private enum RenderBlocks { + OBBY, BEDROCK, BOTH + } + } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/MobOwner.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/MobOwner.java index b312ceade..91375bfac 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/MobOwner.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/MobOwner.java @@ -16,21 +16,26 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; /** * I see you also watch FitMC :eyes: + * * @author cookiedragon234 * Taken from Backdoored 1.8.2 source - * + *

* UUID to username method and caching methods added by S-B99 */ @Module.Info(name = "MobOwner", description = "Displays the owner of tamed mobs", category = Module.Category.RENDER) public class MobOwner extends Module { + /* Periodically try to re-request invalid UUIDs */ + private static long startTime = 0; + /* Super safe method to limit requests to the Mojang API in case you load more then 10 different UUIDs */ + private static long startTime1 = 0; private Setting requestTime = register(Settings.integerBuilder("Cache Reset").withMinimum(10).withValue(20).build()); private Setting debug = register(Settings.b("Debug", true)); - /* First String is your key / uuid, second String is the value / username */ - private Map cachedUUIDs = new HashMap(){{ }}; + private final Map cachedUUIDs = new HashMap() {{ + }}; private int apiRequests = 0; - private String invalidText = "Offline or invalid UUID!"; + private final String invalidText = "Offline or invalid UUID!"; /** * @author S-B99 @@ -59,8 +64,6 @@ public class MobOwner extends Module { return invalidText; } - /* Periodically try to re-request invalid UUIDs */ - private static long startTime = 0; private void resetCache() { if (startTime == 0) startTime = System.currentTimeMillis(); if (startTime + (requestTime.getValue() * 1000) <= System.currentTimeMillis()) { // 1 requestTime = 1 second = 1000 ms @@ -75,8 +78,6 @@ public class MobOwner extends Module { } } - /* Super safe method to limit requests to the Mojang API in case you load more then 10 different UUIDs */ - private static long startTime1 = 0; private void resetRequests() { if (startTime1 == 0) startTime1 = System.currentTimeMillis(); if (startTime1 + (10 * 1000) <= System.currentTimeMillis()) { // 10 seconds @@ -121,8 +122,8 @@ public class MobOwner extends Module { } try { entity.setAlwaysRenderNameTag(false); + } catch (Exception ignored) { } - catch (Exception ignored) {} } } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/Nametags.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/Nametags.java index 8017729ee..35e680e7b 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/Nametags.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/Nametags.java @@ -37,6 +37,8 @@ import static org.lwjgl.opengl.GL11.*; @Module.Info(name = "Nametags", description = "Draws descriptive nametags above entities", category = Module.Category.RENDER) public class Nametags extends Module { + static final Minecraft mc = Minecraft.getMinecraft(); + RenderItem itemRenderer = mc.getRenderItem(); private Setting players = register(Settings.b("Players", true)); private Setting animals = register(Settings.b("Animals", false)); private Setting mobs = register(Settings.b("Mobs", false)); @@ -45,9 +47,6 @@ public class Nametags extends Module { private Setting health = register(Settings.b("Health", true)); private Setting armor = register(Settings.b("Armor", true)); - RenderItem itemRenderer = mc.getRenderItem(); - static final Minecraft mc = Minecraft.getMinecraft(); - @Override public void onWorldRender(RenderEvent event) { if (mc.getRenderManager().options == null) return; @@ -119,9 +118,11 @@ public class Nametags extends Module { GlStateManager.enableTexture2D(); GlStateManager.glNormal3f(0.0F, 1.0F, 0.0F); - if (!entityIn.isSneaking()) fontRendererIn.drawString(str, -i, 10, entityIn instanceof EntityPlayer ? Friends.isFriend(entityIn.getName()) ? 0x00bfff : 0xffffff : 0xffffff); + if (!entityIn.isSneaking()) + fontRendererIn.drawString(str, -i, 10, entityIn instanceof EntityPlayer ? Friends.isFriend(entityIn.getName()) ? 0x00bfff : 0xffffff : 0xffffff); else fontRendererIn.drawString(str, -i, 10, 0xffaa00); - if (entityIn instanceof EntityPlayer && armor.getValue()) renderArmor((EntityPlayer)entityIn, 0, -(fontRendererIn.FONT_HEIGHT + 1) - 20); + if (entityIn instanceof EntityPlayer && armor.getValue()) + renderArmor((EntityPlayer) entityIn, 0, -(fontRendererIn.FONT_HEIGHT + 1) - 20); GlStateManager.glNormal3f(0.0F, 0.0F, 0.0F); glTranslatef(0, 20, 0); @@ -129,6 +130,7 @@ public class Nametags extends Module { GlStateManager.enableDepth(); GlStateManager.popMatrix(); } + public void renderArmor(EntityPlayer player, int x, int y) { InventoryPlayer items = player.inventory; ItemStack inHand = player.getHeldItemMainhand(); @@ -139,19 +141,17 @@ public class Nametags extends Module { ItemStack offHand = player.getHeldItemOffhand(); ItemStack[] stuff = null; if (inHand != null && offHand != null) { - stuff = new ItemStack[] { inHand, helm, body, leggings, boots, offHand }; - } - else if (inHand != null && offHand == null) stuff = new ItemStack[] { inHand, helm, body, leggings, boots }; - else if (inHand == null && offHand != null) stuff = new ItemStack[] { helm, body, leggings, boots, offHand }; + stuff = new ItemStack[]{inHand, helm, body, leggings, boots, offHand}; + } else if (inHand != null && offHand == null) stuff = new ItemStack[]{inHand, helm, body, leggings, boots}; + else if (inHand == null && offHand != null) stuff = new ItemStack[]{helm, body, leggings, boots, offHand}; else { - stuff = new ItemStack[] { helm, body, leggings, boots }; + stuff = new ItemStack[]{helm, body, leggings, boots}; } List stacks = new ArrayList(); ItemStack[] array; int length = (array = stuff).length; - for (int j = 0; j < length; j++) - { + for (int j = 0; j < length; j++) { ItemStack i = array[j]; if ((i != null) && (i.getItem() != null)) { stacks.add(i); @@ -160,8 +160,7 @@ public class Nametags extends Module { int width = 16 * stacks.size() / 2; x -= width; GlStateManager.disableDepth(); - for (ItemStack stack : stacks) - { + for (ItemStack stack : stacks) { renderItem(stack, x, y); x += 16; } @@ -219,7 +218,8 @@ public class Nametags extends Module { if (stack.isItemStackDamageable()) drawDamage(stack, x, y); GlStateManager.scale(1.33F, 1.33F, 1.33F); EnchantEntry[] array; - int length = (array = enchants).length; for (int i = 0; i < length; i++) { + int length = (array = enchants).length; + for (int i = 0; i < length; i++) { EnchantEntry enchant = array[i]; int level = EnchantmentHelper.getEnchantmentLevel(enchant.getEnchant(), stack); String levelDisplay = "" + level; @@ -228,7 +228,7 @@ public class Nametags extends Module { } if (level > 0) { float scale2 = 0.32F; - GlStateManager.translate(x-1, y + 2, 0.0F); + GlStateManager.translate(x - 1, y + 2, 0.0F); GlStateManager.scale(0.42F, 0.42F, 0.42F); GlStateManager.disableDepth(); GlStateManager.disableLighting(); @@ -239,8 +239,8 @@ public class Nametags extends Module { GlStateManager.enableLighting(); GlStateManager.enableDepth(); GlStateManager.scale(2.42F, 2.42F, 2.42F); - GlStateManager.translate(-x+1, -y, 0.0F); - y += (int)((fontRenderer.FONT_HEIGHT + 3) * 0.28F); + GlStateManager.translate(-x + 1, -y, 0.0F); + y += (int) ((fontRenderer.FONT_HEIGHT + 3) * 0.28F); } } renderItem.zLevel = 0.0F; @@ -256,27 +256,24 @@ public class Nametags extends Module { float red = 1 - green; int dmg = 100 - (int) (red * 100); GlStateManager.disableDepth(); - mc.fontRenderer.drawStringWithShadow(dmg + "", x + 8 - mc.fontRenderer.getStringWidth(dmg + "") / 2f, y-11, ColourHolder.toHex((int) (red * 255), (int) (green * 255), 0)); + mc.fontRenderer.drawStringWithShadow(dmg + "", x + 8 - mc.fontRenderer.getStringWidth(dmg + "") / 2f, y - 11, ColourHolder.toHex((int) (red * 255), (int) (green * 255), 0)); GlStateManager.enableDepth(); } public static class EnchantEntry { - private Enchantment enchant; - private String name; + private final Enchantment enchant; + private final String name; - public EnchantEntry(Enchantment enchant, String name) - { + public EnchantEntry(Enchantment enchant, String name) { this.enchant = enchant; this.name = name; } - public Enchantment getEnchant() - { + public Enchantment getEnchant() { return this.enchant; } - public String getName() - { + public String getName() { return this.name; } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/NoRender.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/NoRender.java index a0e482fdd..dae5e8021 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/NoRender.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/NoRender.java @@ -16,12 +16,13 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; /** * Created by 086 on 4/02/2018. * Updated by S-B99 on 14/04/20 - * + *

* Skylight Updates taken from https://github.com/fr1kin/ForgeHax/blob/1a4f98d/src/main/java/com/matt/forgehax/mods/NoSkylightUpdates.java */ @Module.Info(name = "NoRender", category = Module.Category.RENDER, description = "Ignore entity spawn packets") public class NoRender extends Module { + public Setting beacon = register(Settings.b("Beacon Beams", false)); private Setting mob = register(Settings.b("Mob", false)); private Setting sand = register(Settings.b("Sand", false)); private Setting gentity = register(Settings.b("GEntity", false)); @@ -29,10 +30,12 @@ public class NoRender extends Module { private Setting xp = register(Settings.b("XP", false)); private Setting paint = register(Settings.b("Paintings", false)); private Setting fire = register(Settings.b("Fire", true)); + @EventHandler + public Listener blockOverlayEventListener = new Listener<>(event -> { + if (fire.getValue() && event.getOverlayType() == RenderBlockOverlayEvent.OverlayType.FIRE) + event.setCanceled(true); + }); private Setting explosion = register(Settings.b("Explosions", true)); - public Setting beacon = register(Settings.b("Beacon Beams", false)); - private Setting skylight = register(Settings.b("Skylight Updates", false)); - @EventHandler public Listener receiveListener = new Listener<>(event -> { Packet packet = event.getPacket(); @@ -45,12 +48,7 @@ public class NoRender extends Module { (packet instanceof SPacketSpawnPainting && paint.getValue())) event.cancel(); }); - - @EventHandler - public Listener blockOverlayEventListener = new Listener<>(event -> { - if (fire.getValue() && event.getOverlayType() == RenderBlockOverlayEvent.OverlayType.FIRE) - event.setCanceled(true); - }); + private Setting skylight = register(Settings.b("Skylight Updates", false)); @SubscribeEvent public void onLightingUpdate(WorldCheckLightForEvent event) { diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/Pathfind.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/Pathfind.java index f0f1f9154..dfd9b7cdc 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/Pathfind.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/Pathfind.java @@ -92,7 +92,7 @@ public class Pathfind extends Module { if ((points.size() <= 1) && to != null) { boolean b = createPath(to); boolean flag = points.size() <= 4; - if ((b && flag) || flag) { // The only points present are the starting and end point (or <=2 points in between). We've arrived! + if (flag) { // The only points present are the starting and end point (or <=2 points in between). We've arrived! // Might also return true if we've hit a dead end points.clear(); to = null; diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/StorageESP.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/StorageESP.java index f58d108c5..fa0cf01bc 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/StorageESP.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/StorageESP.java @@ -83,7 +83,7 @@ public class StorageESP extends Module { } if ((tileEntity instanceof TileEntityChest && chest.getValue()) || (tileEntity instanceof TileEntityDispenser && dispenser.getValue()) || (tileEntity instanceof TileEntityShulkerBox && shulker.getValue()) || (tileEntity instanceof TileEntityEnderChest && echest.getValue()) || (tileEntity instanceof TileEntityFurnace && furnace.getValue()) || (tileEntity instanceof TileEntityHopper && hopper.getValue())) if (color != -1) - a.add(new Triplet<>(pos, color, side)); //GeometryTessellator.drawCuboid(event.getBuffer(), pos, GeometryMasks.Line.ALL, color); + a.add(new Triplet<>(pos, color, side)); //GeometryTessellator.drawCuboid(event.getBuffer(), pos, GeometryMasks.Line.ALL, color); } for (Entity entity : Wrapper.getWorld().loadedEntityList) { diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/Tracers.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/Tracers.java index 8f70ca476..349a93b17 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/Tracers.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/Tracers.java @@ -25,6 +25,7 @@ import static me.zeroeightsix.kami.util.ColourConverter.rgbToInt; @Module.Info(name = "Tracers", description = "Draws lines to other living entities", category = Module.Category.RENDER) public class Tracers extends Module { + HueCycler cycler = new HueCycler(3600); private Setting players = register(Settings.b("Players", true)); private Setting friends = register(Settings.b("Friends", true)); private Setting animals = register(Settings.b("Animals", false)); @@ -37,7 +38,58 @@ public class Tracers extends Module { private Setting g = register(Settings.integerBuilder("Green").withMinimum(0).withValue(144).withMaximum(255).withVisibility(v -> customColours.getValue()).build()); private Setting b = register(Settings.integerBuilder("Blue").withMinimum(0).withValue(255).withMaximum(255).withVisibility(v -> customColours.getValue()).build()); - HueCycler cycler = new HueCycler(3600); + public static double interpolate(double now, double then) { + return then + (now - then) * mc.getRenderPartialTicks(); + } + + public static double[] interpolate(Entity entity) { + double posX = interpolate(entity.posX, entity.lastTickPosX) - mc.getRenderManager().renderPosX; + double posY = interpolate(entity.posY, entity.lastTickPosY) - mc.getRenderManager().renderPosY; + double posZ = interpolate(entity.posZ, entity.lastTickPosZ) - mc.getRenderManager().renderPosZ; + return new double[]{posX, posY, posZ}; + } + + public static void drawLineToEntity(Entity e, float red, float green, float blue, float opacity) { + double[] xyz = interpolate(e); + drawLine(xyz[0], xyz[1], xyz[2], e.height, red, green, blue, opacity); + } + + public static void drawLine(double posx, double posy, double posz, double up, float red, float green, float blue, float opacity) { + Vec3d eyes = new Vec3d(0, 0, 1) + .rotatePitch(-(float) Math + .toRadians(Minecraft.getMinecraft().player.rotationPitch)) + .rotateYaw(-(float) Math + .toRadians(Minecraft.getMinecraft().player.rotationYaw)); + + drawLineFromPosToPos(eyes.x, eyes.y + mc.player.getEyeHeight(), eyes.z, posx, posy, posz, up, red, green, blue, opacity); + } + + public static void drawLineFromPosToPos(double posx, double posy, double posz, double posx2, double posy2, double posz2, double up, float red, float green, float blue, float opacity) { + GL11.glBlendFunc(770, 771); + GL11.glLineWidth(1.5f); + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_DEPTH_TEST); + GL11.glDepthMask(false); + GL11.glColor4f(red, green, blue, opacity); + GlStateManager.disableLighting(); + GL11.glLoadIdentity(); + mc.entityRenderer.orientCamera(mc.getRenderPartialTicks()); + + GL11.glBegin(GL11.GL_LINES); + { + GL11.glVertex3d(posx, posy, posz); + GL11.glVertex3d(posx2, posy2, posz2); + GL11.glVertex3d(posx2, posy2, posz2); + GL11.glVertex3d(posx2, posy2 + up, posz2); + } + + GL11.glEnd(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glEnable(GL11.GL_DEPTH_TEST); + GL11.glDepthMask(true); + GL11.glColor3d(1d, 1d, 1d); + GlStateManager.enableLighting(); + } @Override public void onWorldRender(RenderEvent event) { @@ -131,57 +183,4 @@ public class Tracers extends Module { return ColourUtils.Colors.RED; } } - - public static double interpolate(double now, double then) { - return then + (now - then) * mc.getRenderPartialTicks(); - } - - public static double[] interpolate(Entity entity) { - double posX = interpolate(entity.posX, entity.lastTickPosX) - mc.getRenderManager().renderPosX; - double posY = interpolate(entity.posY, entity.lastTickPosY) - mc.getRenderManager().renderPosY; - double posZ = interpolate(entity.posZ, entity.lastTickPosZ) - mc.getRenderManager().renderPosZ; - return new double[]{posX, posY, posZ}; - } - - public static void drawLineToEntity(Entity e, float red, float green, float blue, float opacity) { - double[] xyz = interpolate(e); - drawLine(xyz[0], xyz[1], xyz[2], e.height, red, green, blue, opacity); - } - - public static void drawLine(double posx, double posy, double posz, double up, float red, float green, float blue, float opacity) { - Vec3d eyes = new Vec3d(0, 0, 1) - .rotatePitch(-(float) Math - .toRadians(Minecraft.getMinecraft().player.rotationPitch)) - .rotateYaw(-(float) Math - .toRadians(Minecraft.getMinecraft().player.rotationYaw)); - - drawLineFromPosToPos(eyes.x, eyes.y + mc.player.getEyeHeight(), eyes.z, posx, posy, posz, up, red, green, blue, opacity); - } - - public static void drawLineFromPosToPos(double posx, double posy, double posz, double posx2, double posy2, double posz2, double up, float red, float green, float blue, float opacity) { - GL11.glBlendFunc(770, 771); - GL11.glLineWidth(1.5f); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_DEPTH_TEST); - GL11.glDepthMask(false); - GL11.glColor4f(red, green, blue, opacity); - GlStateManager.disableLighting(); - GL11.glLoadIdentity(); - mc.entityRenderer.orientCamera(mc.getRenderPartialTicks()); - - GL11.glBegin(GL11.GL_LINES); - { - GL11.glVertex3d(posx, posy, posz); - GL11.glVertex3d(posx2, posy2, posz2); - GL11.glVertex3d(posx2, posy2, posz2); - GL11.glVertex3d(posx2, posy2 + up, posz2); - } - - GL11.glEnd(); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glEnable(GL11.GL_DEPTH_TEST); - GL11.glDepthMask(true); - GL11.glColor3d(1d, 1d, 1d); - GlStateManager.enableLighting(); - } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/XRay.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/XRay.java index 3a18d1820..4463f6d07 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/XRay.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/XRay.java @@ -32,14 +32,23 @@ import java.util.Set; public class XRay extends Module { // A default reasonable configuration for the XRay. Most people will want to use it like this. private static final String DEFAULT_XRAY_CONFIG = "minecraft:grass,minecraft:dirt,minecraft:netherrack,minecraft:gravel,minecraft:sand,minecraft:stone"; - // Split by ',' & each element trimmed (this is a bit weird but it works for now?) - private Setting hiddenBlockNames = register(Settings.stringBuilder("HiddenBlocks").withValue(DEFAULT_XRAY_CONFIG).withConsumer((old, value) -> { - refreshHiddenBlocksSet(value); + // This is used as part of a mechanism to make the Minecraft renderer play along with the XRay. + // Essentially, the XRay primitive is just a block state transformer. + // Then this implements a custom block that the block state transformer can use for hidden blocks. + public static Block transparentBlock; + // A static mirror of the state. + private static Set hiddenBlocks = Collections.synchronizedSet(new HashSet<>()); + private static boolean invertStatic, outlinesStatic = true; + // This is the state used for hidden blocks. + private static IBlockState transparentState; + public Setting invert = register(Settings.booleanBuilder("Invert").withValue(false).withConsumer((old, value) -> { + invertStatic = value; if (isEnabled()) mc.renderGlobal.loadRenderers(); }).build()); - public Setting invert = register(Settings.booleanBuilder("Invert").withValue(false).withConsumer((old, value) -> { - invertStatic = value; + // Split by ',' & each element trimmed (this is a bit weird but it works for now?) + private Setting hiddenBlockNames = register(Settings.stringBuilder("HiddenBlocks").withValue(DEFAULT_XRAY_CONFIG).withConsumer((old, value) -> { + refreshHiddenBlocksSet(value); if (isEnabled()) mc.renderGlobal.loadRenderers(); }).build()); @@ -49,68 +58,12 @@ public class XRay extends Module { mc.renderGlobal.loadRenderers(); }).build()); - // A static mirror of the state. - private static Set hiddenBlocks = Collections.synchronizedSet(new HashSet<>()); - private static boolean invertStatic, outlinesStatic = true; - - // This is the state used for hidden blocks. - private static IBlockState transparentState; - // This is used as part of a mechanism to make the Minecraft renderer play along with the XRay. - // Essentially, the XRay primitive is just a block state transformer. - // Then this implements a custom block that the block state transformer can use for hidden blocks. - public static Block transparentBlock; - public XRay() { invertStatic = invert.getValue(); outlinesStatic = outlines.getValue(); refreshHiddenBlocksSet(hiddenBlockNames.getValue()); } - // Get hidden block list for command display - public String extGet() { - return extGetInternal(null); - } - // Add entry by arbitrary user-provided string - public void extAdd(String s) { - hiddenBlockNames.setValue(extGetInternal(null) + ", " + s); - } - // Remove entry by arbitrary user-provided string - public void extRemove(String s) { - hiddenBlockNames.setValue(extGetInternal(Block.getBlockFromName(s))); - } - // Clears the list. - public void extClear() { - hiddenBlockNames.setValue(""); - } - // Resets the list to default - public void extDefaults() { extClear(); extAdd(DEFAULT_XRAY_CONFIG); } - // Set the list to 1 value - public void extSet(String s) { extClear(); extAdd(s); } - - private String extGetInternal(Block filter) { - StringBuilder sb = new StringBuilder(); - boolean notFirst = false; - for (Block b : hiddenBlocks) { - if (b == filter) - continue; - if (notFirst) - sb.append(", "); - notFirst = true; - sb.append(Block.REGISTRY.getNameForObject(b)); - } - return sb.toString(); - } - - private void refreshHiddenBlocksSet(String v) { - hiddenBlocks.clear(); - for (String s : v.split(",")) { - String s2 = s.trim(); - Block block = Block.getBlockFromName(s2); - if (block != null) - hiddenBlocks.add(block); - } - } - @SubscribeEvent public static void registerBlocks(RegistryEvent.Register event) { transparentBlock = new Block(Material.GLASS) { @@ -119,11 +72,13 @@ public class XRay extends Module { public BlockRenderLayer getRenderLayer() { return BlockRenderLayer.CUTOUT; } + // Not opaque so other materials (such as, of course, ores) will render @Override public boolean isOpaqueCube(IBlockState blah) { return false; } + // Essentially, the hidden-block world should be a projected grid-like thing...? @Override public boolean shouldSideBeRendered(IBlockState blah, IBlockAccess w, BlockPos pos, EnumFacing side) { @@ -161,6 +116,62 @@ public class XRay extends Module { return input; } + // Get hidden block list for command display + public String extGet() { + return extGetInternal(null); + } + + // Add entry by arbitrary user-provided string + public void extAdd(String s) { + hiddenBlockNames.setValue(extGetInternal(null) + ", " + s); + } + + // Remove entry by arbitrary user-provided string + public void extRemove(String s) { + hiddenBlockNames.setValue(extGetInternal(Block.getBlockFromName(s))); + } + + // Clears the list. + public void extClear() { + hiddenBlockNames.setValue(""); + } + + // Resets the list to default + public void extDefaults() { + extClear(); + extAdd(DEFAULT_XRAY_CONFIG); + } + + // Set the list to 1 value + public void extSet(String s) { + extClear(); + extAdd(s); + } + + private String extGetInternal(Block filter) { + StringBuilder sb = new StringBuilder(); + boolean notFirst = false; + for (Block b : hiddenBlocks) { + if (b == filter) + continue; + if (notFirst) + sb.append(", "); + notFirst = true; + sb.append(Block.REGISTRY.getNameForObject(b)); + } + return sb.toString(); + } + + private void refreshHiddenBlocksSet(String v) { + hiddenBlocks.clear(); + for (String s : v.split(",")) { + String s2 = s.trim(); + Block block = Block.getBlockFromName(s2); + if (block != null) + hiddenBlocks.add(block); + } + } + @Override protected void onEnable() { // This is important because otherwise the changes in ChunkCache behavior won't propagate. diff --git a/src/main/java/me/zeroeightsix/kami/setting/Setting.java b/src/main/java/me/zeroeightsix/kami/setting/Setting.java index e500ba2c2..0d04993e8 100644 --- a/src/main/java/me/zeroeightsix/kami/setting/Setting.java +++ b/src/main/java/me/zeroeightsix/kami/setting/Setting.java @@ -11,20 +11,15 @@ import java.util.function.Predicate; */ public abstract class Setting implements ISettingUnknown, Convertable { + private final Class valueType; String name; - T value; - /** * Returns false if the value is "out of bounds" */ - private Predicate restriction; - - private Predicate visibilityPredicate; - - private BiConsumer consumer; - - private final Class valueType; + private final Predicate restriction; + private final Predicate visibilityPredicate; + private final BiConsumer consumer; public Setting(T value, Predicate restriction, BiConsumer consumer, String name, Predicate visibilityPredicate) { this.value = value; diff --git a/src/main/java/me/zeroeightsix/kami/setting/SettingsRegister.java b/src/main/java/me/zeroeightsix/kami/setting/SettingsRegister.java index f5a68e208..fbcb83429 100644 --- a/src/main/java/me/zeroeightsix/kami/setting/SettingsRegister.java +++ b/src/main/java/me/zeroeightsix/kami/setting/SettingsRegister.java @@ -10,31 +10,16 @@ import java.util.StringTokenizer; */ public class SettingsRegister { - public static final SettingsRegister ROOT = new SettingsRegister(); + public static SettingsRegister ROOT = new SettingsRegister(); public HashMap registerHashMap = new HashMap<>(); public HashMap settingHashMap = new HashMap<>(); - public SettingsRegister subregister(String name) { - if (registerHashMap.containsKey(name)) return registerHashMap.get(name); - SettingsRegister register = new SettingsRegister(); - registerHashMap.put(name, register); - return register; - } - - private void put(String name, Setting setting) { - settingHashMap.put(name, setting); - } - public static void register(String name, Setting setting) { Pair pair = dig(name); pair.getValue().put(pair.getKey(), setting); } - public Setting getSetting(String group) { - return settingHashMap.get(group); - } - public static Setting get(String group) { Pair pair = dig(group); return pair.getValue().getSetting(pair.getKey()); @@ -56,4 +41,19 @@ public class SettingsRegister { return new Pair<>(previousToken == null ? "" : previousToken, current); } + public SettingsRegister subregister(String name) { + if (registerHashMap.containsKey(name)) return registerHashMap.get(name); + SettingsRegister register = new SettingsRegister(); + registerHashMap.put(name, register); + return register; + } + + private void put(String name, Setting setting) { + settingHashMap.put(name, setting); + } + + public Setting getSetting(String group) { + return settingHashMap.get(group); + } + } diff --git a/src/main/java/me/zeroeightsix/kami/setting/builder/SettingBuilder.java b/src/main/java/me/zeroeightsix/kami/setting/builder/SettingBuilder.java index 514faa023..dd6e718be 100644 --- a/src/main/java/me/zeroeightsix/kami/setting/builder/SettingBuilder.java +++ b/src/main/java/me/zeroeightsix/kami/setting/builder/SettingBuilder.java @@ -20,6 +20,13 @@ public abstract class SettingBuilder { protected List> predicateList = new ArrayList<>(); private Predicate visibilityPredicate; + public static Setting register(Setting setting, String group) { + String name = setting.getName(); + if (name == null || name.isEmpty()) throw new RuntimeException("Can't register nameless setting"); + SettingsRegister.register(group + "." + name, setting); + return setting; + } + public SettingBuilder withValue(T value) { this.initialValue = value; return this; @@ -60,15 +67,8 @@ public abstract class SettingBuilder { public abstract Setting build(); - public final Setting buildAndRegister(String group) { + public Setting buildAndRegister(String group) { return register(build(), group); } - public static Setting register(Setting setting, String group) { - String name = setting.getName(); - if (name == null || name.isEmpty()) throw new RuntimeException("Can't register nameless setting"); - SettingsRegister.register(group + "." + name, setting); - return setting; - } - } diff --git a/src/main/java/me/zeroeightsix/kami/setting/builder/numerical/IntegerSettingBuilder.java b/src/main/java/me/zeroeightsix/kami/setting/builder/numerical/IntegerSettingBuilder.java index 123febf43..902b4cf4c 100644 --- a/src/main/java/me/zeroeightsix/kami/setting/builder/numerical/IntegerSettingBuilder.java +++ b/src/main/java/me/zeroeightsix/kami/setting/builder/numerical/IntegerSettingBuilder.java @@ -22,7 +22,7 @@ public class IntegerSettingBuilder extends NumericalSettingBuilder { @Override public NumericalSettingBuilder withName(String name) { - return (IntegerSettingBuilder) super.withName(name); + return super.withName(name); } @Override diff --git a/src/main/java/me/zeroeightsix/kami/setting/config/Configuration.java b/src/main/java/me/zeroeightsix/kami/setting/config/Configuration.java index 40016a5cf..a431ef260 100644 --- a/src/main/java/me/zeroeightsix/kami/setting/config/Configuration.java +++ b/src/main/java/me/zeroeightsix/kami/setting/config/Configuration.java @@ -28,7 +28,7 @@ public class Configuration { for (Map.Entry entry : register.settingHashMap.entrySet()) { Setting setting = entry.getValue(); if (!(setting instanceof Convertable)) continue; - object.add(entry.getKey(), (JsonElement) ((Convertable) setting).converter().convert(setting.getValue())); + object.add(entry.getKey(), (JsonElement) setting.converter().convert(setting.getValue())); } return object; } @@ -73,7 +73,7 @@ public class Configuration { } else { Setting setting = register.getSetting(key); if (setting == null) continue; - setting.setValue(((Convertable) setting).converter().reverse().convert(element)); + setting.setValue(setting.converter().reverse().convert(element)); } } } diff --git a/src/main/java/me/zeroeightsix/kami/setting/converter/EnumConverter.java b/src/main/java/me/zeroeightsix/kami/setting/converter/EnumConverter.java index baf209fb3..1a6ea2ac3 100644 --- a/src/main/java/me/zeroeightsix/kami/setting/converter/EnumConverter.java +++ b/src/main/java/me/zeroeightsix/kami/setting/converter/EnumConverter.java @@ -35,8 +35,7 @@ public class EnumConverter extends Converter { } return Enum.valueOf(clazz, "null"); } - } - else { + } else { try { return Enum.valueOf(clazz, value.toString()); } catch (IllegalArgumentException e) { diff --git a/src/main/java/me/zeroeightsix/kami/setting/impl/EnumSetting.java b/src/main/java/me/zeroeightsix/kami/setting/impl/EnumSetting.java index bf7d77b66..86f0f0d6d 100644 --- a/src/main/java/me/zeroeightsix/kami/setting/impl/EnumSetting.java +++ b/src/main/java/me/zeroeightsix/kami/setting/impl/EnumSetting.java @@ -12,8 +12,8 @@ import java.util.function.Predicate; */ public class EnumSetting extends Setting { - private EnumConverter converter; public final Class clazz; + private final EnumConverter converter; public EnumSetting(T value, Predicate restriction, BiConsumer consumer, String name, Predicate visibilityPredicate, Class clazz) { super(value, restriction, consumer, name, visibilityPredicate); diff --git a/src/main/java/me/zeroeightsix/kami/util/BeaconGui.java b/src/main/java/me/zeroeightsix/kami/util/BeaconGui.java index b0e16f0e8..8ba71027a 100644 --- a/src/main/java/me/zeroeightsix/kami/util/BeaconGui.java +++ b/src/main/java/me/zeroeightsix/kami/util/BeaconGui.java @@ -21,15 +21,14 @@ import java.io.IOException; * @author TBM */ public class BeaconGui extends GuiBeacon { + public static final Potion[][] EFFECTS_LIST = new Potion[][]{{MobEffects.SPEED, MobEffects.HASTE}, {MobEffects.RESISTANCE, MobEffects.JUMP_BOOST}, {MobEffects.STRENGTH}}; private static final ResourceLocation BEACON_GUI_TEXTURES = new ResourceLocation("textures/gui/container/beacon.png"); - public static final Potion[][] EFFECTS_LIST = new Potion[][] {{MobEffects.SPEED, MobEffects.HASTE}, {MobEffects.RESISTANCE, MobEffects.JUMP_BOOST}, {MobEffects.STRENGTH}}; + boolean doRenderButtons; public BeaconGui(InventoryPlayer playerInventory, IInventory tileBeaconIn) { super(playerInventory, tileBeaconIn); } - boolean doRenderButtons; - @Override public void initGui() { super.initGui(); @@ -62,7 +61,7 @@ public class BeaconGui extends GuiBeacon { super.actionPerformed(button); if (button instanceof BeaconGui.PowerButtonCustom) { - BeaconGui.PowerButtonCustom guibeacon$powerbutton = (BeaconGui.PowerButtonCustom)button; + BeaconGui.PowerButtonCustom guibeacon$powerbutton = (BeaconGui.PowerButtonCustom) button; if (guibeacon$powerbutton.isSelected()) return; @@ -79,27 +78,6 @@ public class BeaconGui extends GuiBeacon { } - class PowerButtonCustom extends BeaconGui.Button { - private final Potion effect; - private final int tier; - - public PowerButtonCustom(int buttonId, int x, int y, Potion effectIn, int tierIn) { - super(buttonId, x, y, GuiContainer.INVENTORY_BACKGROUND, effectIn.getStatusIconIndex() % 8 * 18, 198 + effectIn.getStatusIconIndex() / 8 * 18); - this.effect = effectIn; - this.tier = tierIn; - } - - public void drawButtonForegroundLayer(int mouseX, int mouseY) { - String s = I18n.format(this.effect.getName()); - - if (this.tier >= 3 && this.effect != MobEffects.REGENERATION) { - s = s + " II"; - } - - BeaconGui.this.drawHoveringText(s, mouseX, mouseY); - } - } - @SideOnly(Side.CLIENT) static class Button extends GuiButton { private final ResourceLocation iconTexture; @@ -126,11 +104,9 @@ public class BeaconGui extends GuiBeacon { if (!this.enabled) { j += this.width * 2; - } - else if (this.selected) { + } else if (this.selected) { j += this.width * 1; - } - else if (this.hovered) { + } else if (this.hovered) { j += this.width * 3; } @@ -144,14 +120,33 @@ public class BeaconGui extends GuiBeacon { } } - public boolean isSelected() - { + public boolean isSelected() { return this.selected; } - public void setSelected(boolean selectedIn) - { + public void setSelected(boolean selectedIn) { this.selected = selectedIn; } } + + class PowerButtonCustom extends BeaconGui.Button { + private final Potion effect; + private final int tier; + + public PowerButtonCustom(int buttonId, int x, int y, Potion effectIn, int tierIn) { + super(buttonId, x, y, GuiContainer.INVENTORY_BACKGROUND, effectIn.getStatusIconIndex() % 8 * 18, 198 + effectIn.getStatusIconIndex() / 8 * 18); + this.effect = effectIn; + this.tier = tierIn; + } + + public void drawButtonForegroundLayer(int mouseX, int mouseY) { + String s = I18n.format(this.effect.getName()); + + if (this.tier >= 3 && this.effect != MobEffects.REGENERATION) { + s = s + " II"; + } + + BeaconGui.this.drawHoveringText(s, mouseX, mouseY); + } + } } diff --git a/src/main/java/me/zeroeightsix/kami/util/Bind.java b/src/main/java/me/zeroeightsix/kami/util/Bind.java index 0ad58ac94..9b4f21398 100644 --- a/src/main/java/me/zeroeightsix/kami/util/Bind.java +++ b/src/main/java/me/zeroeightsix/kami/util/Bind.java @@ -20,51 +20,6 @@ public class Bind { this.key = key; } - public int getKey() { - return key; - } - - public boolean isCtrl() { - return ctrl; - } - - public boolean isAlt() { - return alt; - } - - public boolean isShift() { - return shift; - } - - public boolean isEmpty() { - return !ctrl && !shift && !alt && key < 0; - } - - public void setAlt(boolean alt) { - this.alt = alt; - } - - public void setCtrl(boolean ctrl) { - this.ctrl = ctrl; - } - - public void setKey(int key) { - this.key = key; - } - - public void setShift(boolean shift) { - this.shift = shift; - } - - @Override - public String toString() { - return isEmpty() ? "None" : (isCtrl() ? "Ctrl+" : "") + (isAlt() ? "Alt+" : "") + (isShift() ? "Shift+" : "") + (key < 0 ? "None" : capitalise(Keyboard.getKeyName(key))); - } - - public boolean isDown(int eventKey) { - return !isEmpty() && (!BindCommand.modifiersEnabled.getValue() || (isShift() == isShiftDown()) && (isCtrl() == isCtrlDown()) && (isAlt() == isAltDown())) && eventKey == getKey(); - } - public static boolean isShiftDown() { return Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT); } @@ -77,13 +32,58 @@ public class Bind { return Keyboard.isKeyDown(Keyboard.KEY_LMENU) || Keyboard.isKeyDown(Keyboard.KEY_RMENU); } + public static Bind none() { + return new Bind(false, false, false, -1); + } + + public int getKey() { + return key; + } + + public void setKey(int key) { + this.key = key; + } + + public boolean isCtrl() { + return ctrl; + } + + public void setCtrl(boolean ctrl) { + this.ctrl = ctrl; + } + + public boolean isAlt() { + return alt; + } + + public void setAlt(boolean alt) { + this.alt = alt; + } + + public boolean isShift() { + return shift; + } + + public void setShift(boolean shift) { + this.shift = shift; + } + + public boolean isEmpty() { + return !ctrl && !shift && !alt && key < 0; + } + + @Override + public String toString() { + return isEmpty() ? "None" : (isCtrl() ? "Ctrl+" : "") + (isAlt() ? "Alt+" : "") + (isShift() ? "Shift+" : "") + (key < 0 ? "None" : capitalise(Keyboard.getKeyName(key))); + } + + public boolean isDown(int eventKey) { + return !isEmpty() && (!BindCommand.modifiersEnabled.getValue() || (isShift() == isShiftDown()) && (isCtrl() == isCtrlDown()) && (isAlt() == isAltDown())) && eventKey == getKey(); + } + public String capitalise(String str) { if (str.isEmpty()) return ""; return Character.toUpperCase(str.charAt(0)) + (str.length() != 1 ? str.substring(1).toLowerCase() : ""); } - public static Bind none() { - return new Bind(false, false, false, -1); - } - } diff --git a/src/main/java/me/zeroeightsix/kami/util/ColourConverter.java b/src/main/java/me/zeroeightsix/kami/util/ColourConverter.java index 5096b36de..f58bf720d 100644 --- a/src/main/java/me/zeroeightsix/kami/util/ColourConverter.java +++ b/src/main/java/me/zeroeightsix/kami/util/ColourConverter.java @@ -5,13 +5,21 @@ package me.zeroeightsix.kami.util; * Updated by S-B99 on 04/03/20 */ public class ColourConverter { - public static float toF(int i) { return i / 255f; } + public static float toF(int i) { + return i / 255f; + } - public static float toF(double d) { return (float) (d / 255f); } + public static float toF(double d) { + return (float) (d / 255f); + } - public static int rgbToInt(int r, int g, int b, int a) { return (r << 16) | (g << 8) | (b) | (a << 24); } + public static int rgbToInt(int r, int g, int b, int a) { + return (r << 16) | (g << 8) | (b) | (a << 24); + } - public static int rgbToInt(int r, int g, int b) { return (r << 16) | (g << 8) | (b); } + public static int rgbToInt(int r, int g, int b) { + return (r << 16) | (g << 8) | (b); + } // settingsToInt(r.getValue(), g.getValue(), b.getValue(), aBlock.getValue() } diff --git a/src/main/java/me/zeroeightsix/kami/util/ColourHolder.java b/src/main/java/me/zeroeightsix/kami/util/ColourHolder.java index 0b2a73aaf..a068638a6 100644 --- a/src/main/java/me/zeroeightsix/kami/util/ColourHolder.java +++ b/src/main/java/me/zeroeightsix/kami/util/ColourHolder.java @@ -28,6 +28,16 @@ public class ColourHolder { this.a = a; } + public static ColourHolder fromHex(int hex) { + ColourHolder n = new ColourHolder(0, 0, 0); + n.becomeHex(hex); + return n; + } + + public static int toHex(int r, int g, int b) { + return (0xff << 24) | ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff); + } + public ColourHolder brighter() { return new ColourHolder(Math.min(r + 10, 255), Math.min(g + 10, 255), Math.min(b + 10, 255), getA()); } @@ -57,16 +67,6 @@ public class ColourHolder { setA(255); } - public static ColourHolder fromHex(int hex) { - ColourHolder n = new ColourHolder(0, 0, 0); - n.becomeHex(hex); - return n; - } - - public static int toHex(int r, int g, int b) { - return (0xff << 24) | ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff); - } - public int toHex() { return toHex(r, g, b); } @@ -75,16 +75,22 @@ public class ColourHolder { return b; } + public ColourHolder setB(int b) { + this.b = b; + return this; + } + public int getG() { return g; } - public int getR() { - return r; + public ColourHolder setG(int g) { + this.g = g; + return this; } - public int getA() { - return a; + public int getR() { + return r; } public ColourHolder setR(int r) { @@ -92,14 +98,8 @@ public class ColourHolder { return this; } - public ColourHolder setB(int b) { - this.b = b; - return this; - } - - public ColourHolder setG(int g) { - this.g = g; - return this; + public int getA() { + return a; } public ColourHolder setA(int a) { diff --git a/src/main/java/me/zeroeightsix/kami/util/ColourTextFormatting.java b/src/main/java/me/zeroeightsix/kami/util/ColourTextFormatting.java index e5f38d313..e5171d4cf 100644 --- a/src/main/java/me/zeroeightsix/kami/util/ColourTextFormatting.java +++ b/src/main/java/me/zeroeightsix/kami/util/ColourTextFormatting.java @@ -11,30 +11,7 @@ import java.util.Map; * Updated by S-B99 on 25/03/20 */ public class ColourTextFormatting { - public enum ColourEnum { - BLACK(new Color(0,0, 0)), - DARK_BLUE(new Color(0, 0, 170)), - DARK_GREEN(new Color(0, 170, 0)), - DARK_AQUA(new Color(0, 170, 170)), - DARK_RED(new Color(170, 0, 0)), - DARK_PURPLE(new Color(170, 0, 170)), - GOLD(new Color(255, 170, 0)), - GRAY(new Color(170, 170, 170)), - DARK_GRAY(new Color(85, 85, 85)), - BLUE(new Color(85, 85, 255)), - GREEN(new Color(85, 255, 85)), - AQUA(new Color(85, 225, 225)), - RED(new Color(255, 85, 85)), - LIGHT_PURPLE(new Color(255, 85, 255)), - YELLOW(new Color(255, 255, 85)), - WHITE(new Color(255, 255, 255)); - - public Color colorLocal; - - ColourEnum(Color colorLocal) { this.colorLocal = colorLocal; } - } - - public static Map colourEnumMap = new HashMap(){{ + public static Map colourEnumMap = new HashMap() {{ put(TextFormatting.BLACK, ColourEnum.BLACK); put(TextFormatting.DARK_BLUE, ColourEnum.DARK_BLUE); put(TextFormatting.DARK_GREEN, ColourEnum.DARK_GREEN); @@ -52,12 +29,7 @@ public class ColourTextFormatting { put(TextFormatting.YELLOW, ColourEnum.YELLOW); put(TextFormatting.WHITE, ColourEnum.WHITE); }}; - - public enum ColourCode { - BLACK, DARK_BLUE, DARK_GREEN, DARK_AQUA, DARK_RED, DARK_PURPLE, GOLD, GRAY, DARK_GRAY, BLUE, GREEN, AQUA, RED, LIGHT_PURPLE, YELLOW, WHITE - } - - public static Map toTextMap = new HashMap(){{ + public static Map toTextMap = new HashMap() {{ put(ColourCode.BLACK, TextFormatting.BLACK); put(ColourCode.DARK_BLUE, TextFormatting.DARK_BLUE); put(ColourCode.DARK_GREEN, TextFormatting.DARK_GREEN); @@ -76,4 +48,33 @@ public class ColourTextFormatting { put(ColourCode.WHITE, TextFormatting.WHITE); }}; + public enum ColourEnum { + BLACK(new Color(0, 0, 0)), + DARK_BLUE(new Color(0, 0, 170)), + DARK_GREEN(new Color(0, 170, 0)), + DARK_AQUA(new Color(0, 170, 170)), + DARK_RED(new Color(170, 0, 0)), + DARK_PURPLE(new Color(170, 0, 170)), + GOLD(new Color(255, 170, 0)), + GRAY(new Color(170, 170, 170)), + DARK_GRAY(new Color(85, 85, 85)), + BLUE(new Color(85, 85, 255)), + GREEN(new Color(85, 255, 85)), + AQUA(new Color(85, 225, 225)), + RED(new Color(255, 85, 85)), + LIGHT_PURPLE(new Color(255, 85, 255)), + YELLOW(new Color(255, 255, 85)), + WHITE(new Color(255, 255, 255)); + + public Color colorLocal; + + ColourEnum(Color colorLocal) { + this.colorLocal = colorLocal; + } + } + + public enum ColourCode { + BLACK, DARK_BLUE, DARK_GREEN, DARK_AQUA, DARK_RED, DARK_PURPLE, GOLD, GRAY, DARK_GRAY, BLUE, GREEN, AQUA, RED, LIGHT_PURPLE, YELLOW, WHITE + } + } diff --git a/src/main/java/me/zeroeightsix/kami/util/ColourUtils.java b/src/main/java/me/zeroeightsix/kami/util/ColourUtils.java index 0560952ec..bbb89293e 100644 --- a/src/main/java/me/zeroeightsix/kami/util/ColourUtils.java +++ b/src/main/java/me/zeroeightsix/kami/util/ColourUtils.java @@ -13,6 +13,47 @@ import java.util.ArrayList; */ public class ColourUtils { + /** + * SubClass of ColorUtils. In order to lookup colour name + * + * @author Xiaoxiao Li + */ + public static int toRGBA(double r, double g, double b, double a) { + return toRGBA((float) r, (float) g, (float) b, (float) a); + } + + public static int toRGBA(int r, int g, int b, int a) { + return (r << 16) + (g << 8) + (b << 0) + (a << 24); + } + + public static int toRGBA(float r, float g, float b, float a) { + return toRGBA((int) (r * 255.f), (int) (g * 255.f), (int) (b * 255.f), (int) (a * 255.f)); + } + + public static int toRGBA(float[] colors) { + if (colors.length != 4) throw new IllegalArgumentException("colors[] must have a length of 4!"); + return toRGBA(colors[0], colors[1], colors[2], colors[3]); + } + + public static int toRGBA(double[] colors) { + if (colors.length != 4) throw new IllegalArgumentException("colors[] must have a length of 4!"); + return toRGBA((float) colors[0], (float) colors[1], (float) colors[2], (float) colors[3]); + } + + public static int[] toRGBAArray(int colorBuffer) { + return new int[]{ + (colorBuffer >> 16 & 255), + (colorBuffer >> 8 & 255), + (colorBuffer & 255), + (colorBuffer >> 24 & 255) + }; + } + + public static final int changeAlpha(int origColor, int userInputedAlpha) { + origColor = origColor & 0x00ffffff; // drop the previous alpha value + return (userInputedAlpha << 24) | origColor; // add the one the user inputted + } + /** * Initialize the colour list that we have. */ @@ -161,15 +202,6 @@ public class ColourUtils { return colorList; } - /** - * SubClass of ColorUtils. In order to lookup colour name - * - * @author Xiaoxiao Li - */ - public static int toRGBA(double r, double g, double b, double a) { - return toRGBA((float) r, (float) g, (float) b, (float) a); - } - /** * Get the closest colour name from our list * @@ -221,6 +253,20 @@ public class ColourUtils { color.getBlue()); } + public static class Colors { + public final static int WHITE = toRGBA(255, 255, 255, 255); + public final static int BLACK = toRGBA(0, 0, 0, 255); + public final static int RED = toRGBA(255, 0, 0, 255); + public final static int GREEN = toRGBA(0, 255, 0, 255); + public final static int BLUE = toRGBA(0, 0, 255, 255); + public final static int ORANGE = toRGBA(255, 128, 0, 255); + public final static int PURPLE = toRGBA(163, 73, 163, 255); + public final static int GRAY = toRGBA(127, 127, 127, 255); + public final static int DARK_RED = toRGBA(64, 0, 0, 255); + public final static int YELLOW = toRGBA(255, 255, 0, 255); + public final static int RAINBOW = Integer.MIN_VALUE; + } + public class ColorName { public int r, g, b; @@ -234,8 +280,8 @@ public class ColourUtils { } public int computeMSE(int pixR, int pixG, int pixB) { - return (int) (((pixR - r) * (pixR - r) + (pixG - g) * (pixG - g) + (pixB - b) - * (pixB - b)) / 3); + return ((pixR - r) * (pixR - r) + (pixG - g) * (pixG - g) + (pixB - b) + * (pixB - b)) / 3; } public int getR() { @@ -255,50 +301,4 @@ public class ColourUtils { } } - public static int toRGBA(int r, int g, int b, int a) { - return (r << 16) + (g << 8) + (b << 0) + (a << 24); - } - - public static int toRGBA(float r, float g, float b, float a) { - return toRGBA((int) (r * 255.f), (int) (g * 255.f), (int) (b * 255.f), (int) (a * 255.f)); - } - - public static int toRGBA(float[] colors) { - if (colors.length != 4) throw new IllegalArgumentException("colors[] must have a length of 4!"); - return toRGBA(colors[0], colors[1], colors[2], colors[3]); - } - - public static int toRGBA(double[] colors) { - if (colors.length != 4) throw new IllegalArgumentException("colors[] must have a length of 4!"); - return toRGBA((float) colors[0], (float) colors[1], (float) colors[2], (float) colors[3]); - } - - public static int[] toRGBAArray(int colorBuffer) { - return new int[]{ - (colorBuffer >> 16 & 255), - (colorBuffer >> 8 & 255), - (colorBuffer & 255), - (colorBuffer >> 24 & 255) - }; - } - - public static class Colors { - public final static int WHITE = toRGBA(255, 255, 255, 255); - public final static int BLACK = toRGBA(0, 0, 0, 255); - public final static int RED = toRGBA(255, 0, 0, 255); - public final static int GREEN = toRGBA(0, 255, 0, 255); - public final static int BLUE = toRGBA(0, 0, 255, 255); - public final static int ORANGE = toRGBA(255, 128, 0, 255); - public final static int PURPLE = toRGBA(163, 73, 163, 255); - public final static int GRAY = toRGBA(127, 127, 127, 255); - public final static int DARK_RED = toRGBA(64, 0, 0, 255); - public final static int YELLOW = toRGBA(255, 255, 0, 255); - public final static int RAINBOW = Integer.MIN_VALUE; - } - - public static final int changeAlpha(int origColor, int userInputedAlpha) { - origColor = origColor & 0x00ffffff; // drop the previous alpha value - return (userInputedAlpha << 24) | origColor; // add the one the user inputted - } - } \ No newline at end of file diff --git a/src/main/java/me/zeroeightsix/kami/util/EntityUtil.java b/src/main/java/me/zeroeightsix/kami/util/EntityUtil.java index d1066a545..588f6fc39 100644 --- a/src/main/java/me/zeroeightsix/kami/util/EntityUtil.java +++ b/src/main/java/me/zeroeightsix/kami/util/EntityUtil.java @@ -26,8 +26,7 @@ public class EntityUtil { if (e instanceof EntityWolf && ((EntityWolf) e).isAngry()) return false; if (e instanceof EntityAnimal || e instanceof EntityAgeable || e instanceof EntityTameable || e instanceof EntityAmbientCreature || e instanceof EntitySquid) return true; - if (e instanceof EntityIronGolem && ((EntityIronGolem) e).getRevengeTarget() == null) return true; - return false; + return e instanceof EntityIronGolem && ((EntityIronGolem) e).getRevengeTarget() == null; } public static boolean isLiving(Entity e) { @@ -176,11 +175,11 @@ public class EntityUtil { } public static double getRelativeX(float yaw) { - return (double) (MathHelper.sin(-yaw * 0.017453292F)); + return MathHelper.sin(-yaw * 0.017453292F); } public static double getRelativeZ(float yaw) { - return (double) (MathHelper.cos(yaw * 0.017453292F)); + return MathHelper.cos(yaw * 0.017453292F); } /** diff --git a/src/main/java/me/zeroeightsix/kami/util/Friends.java b/src/main/java/me/zeroeightsix/kami/util/Friends.java index 66dd622d7..e9d50368e 100644 --- a/src/main/java/me/zeroeightsix/kami/util/Friends.java +++ b/src/main/java/me/zeroeightsix/kami/util/Friends.java @@ -52,6 +52,23 @@ public class Friends { public FriendListConverter() { } + private static String getSource(String link) { + try { + URL u = new URL(link); + URLConnection con = u.openConnection(); + BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); + StringBuilder buffer = new StringBuilder(); + String inputLine; + while ((inputLine = in.readLine()) != null) + buffer.append(inputLine); + in.close(); + + return buffer.toString(); + } catch (Exception e) { + return null; + } + } + @Override protected JsonElement doForward(ArrayList list) { StringBuilder present = new StringBuilder(); @@ -89,23 +106,6 @@ public class Friends { return saved; } } - - private static String getSource(String link) { - try { - URL u = new URL(link); - URLConnection con = u.openConnection(); - BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); - StringBuilder buffer = new StringBuilder(); - String inputLine; - while ((inputLine = in.readLine()) != null) - buffer.append(inputLine); - in.close(); - - return buffer.toString(); - } catch (Exception e) { - return null; - } - } } } diff --git a/src/main/java/me/zeroeightsix/kami/util/InfoCalculator.java b/src/main/java/me/zeroeightsix/kami/util/InfoCalculator.java index e748be1c1..08993805f 100644 --- a/src/main/java/me/zeroeightsix/kami/util/InfoCalculator.java +++ b/src/main/java/me/zeroeightsix/kami/util/InfoCalculator.java @@ -10,22 +10,26 @@ import java.text.DecimalFormat; * @author S-B99 * Created by S-B99 on 18/01/20 * Updated by S-B99 on 06/02/20 - * + *

* Speed: * @author S-B99 * Created by S-B99 on 18/01/20 * Credit to Seppuku for the following calculation I made more efficient and got inspiration from * final String bps = "BPS: " + df.format((MathHelper.sqrt(deltaX * deltaX + deltaZ * deltaZ) / tickRate)); - * + *

* Durability: * @author TBM * Created by TBM on 8/12/19 - * + *

* TPS: * @author 086 */ public class InfoCalculator { + // Speed { + private static final DecimalFormat formatter = new DecimalFormat("#.#"); + // } + // Ping { public static int ping(Minecraft mc) { if (mc.getConnection() == null) { // tested, this is not null in mp @@ -40,10 +44,6 @@ public class InfoCalculator { return -1; } } - // } - - // Speed { - private static DecimalFormat formatter = new DecimalFormat("#.#"); public static String speed(boolean useUnitKmH, Minecraft mc) { float currentTps = mc.timer.tickLength / 1000.0f; @@ -54,9 +54,12 @@ public class InfoCalculator { private static double coordsDiff(char s, Minecraft mc) { switch (s) { - case 'x': return mc.player.posX - mc.player.prevPosX; - case 'z': return mc.player.posZ - mc.player.prevPosZ; - default: return 0.0; + case 'x': + return mc.player.posX - mc.player.prevPosX; + case 'z': + return mc.player.posZ - mc.player.prevPosZ; + default: + return 0.0; } } // } @@ -88,11 +91,15 @@ public class InfoCalculator { // } // Is Even { - public static boolean isNumberEven(int i) { return (i & 1) == 0; } + public static boolean isNumberEven(int i) { + return (i & 1) == 0; + } // } // Reverse Number { - public static int reverseNumber(int num, int min, int max) { return (max + min) - num; } + public static int reverseNumber(int num, int min, int max) { + return (max + min) - num; + } // } // Cardinal to Axis { @@ -123,7 +130,7 @@ public class InfoCalculator { case 1: return "End"; default: - return "No Dimension"; + return "No Dimension"; } } } diff --git a/src/main/java/me/zeroeightsix/kami/util/LogUtil.java b/src/main/java/me/zeroeightsix/kami/util/LogUtil.java index 320ef3f01..16c1a9bd8 100644 --- a/src/main/java/me/zeroeightsix/kami/util/LogUtil.java +++ b/src/main/java/me/zeroeightsix/kami/util/LogUtil.java @@ -15,7 +15,7 @@ public class LogUtil { Minecraft mc = Minecraft.getMinecraft(); int[] currentCoords = {(int) mc.player.posX, (int) mc.player.posY, (int) mc.player.posZ}; if (chunk == true) { - int[] chunkCoords = {currentCoords[0]/16, currentCoords[1]/16, currentCoords[2]/16}; + int[] chunkCoords = {currentCoords[0] / 16, currentCoords[1] / 16, currentCoords[2] / 16}; return chunkCoords; } else { return currentCoords; diff --git a/src/main/java/me/zeroeightsix/kami/util/MessageDetectionHelper.java b/src/main/java/me/zeroeightsix/kami/util/MessageDetectionHelper.java index 6c8b53b94..f793f10a9 100644 --- a/src/main/java/me/zeroeightsix/kami/util/MessageDetectionHelper.java +++ b/src/main/java/me/zeroeightsix/kami/util/MessageDetectionHelper.java @@ -5,8 +5,8 @@ import java.util.regex.Pattern; /** * A helper to detect certain messages and return a boolean or message * - * @see me.zeroeightsix.kami.module.modules.chat.DiscordNotifs * @author S-B99 + * @see me.zeroeightsix.kami.module.modules.chat.DiscordNotifs */ public class MessageDetectionHelper { public static String getMessageType(boolean direct, boolean directSent, String message, String server) { @@ -43,7 +43,8 @@ public class MessageDetectionHelper { public static boolean shouldSend(boolean all, boolean restart, boolean direct, boolean directSent, boolean queue, boolean importantPings, String message) { if (all) return true; - else return isRestart(restart, message) || isDirect(direct, message) || isDirectOther(directSent, message) || isQueue(queue, message) || isImportantQueue(importantPings, message); + else + return isRestart(restart, message) || isDirect(direct, message) || isDirectOther(directSent, message) || isQueue(queue, message) || isImportantQueue(importantPings, message); } } diff --git a/src/main/java/me/zeroeightsix/kami/util/Pair.java b/src/main/java/me/zeroeightsix/kami/util/Pair.java index d59f7b28a..576c6d2a0 100644 --- a/src/main/java/me/zeroeightsix/kami/util/Pair.java +++ b/src/main/java/me/zeroeightsix/kami/util/Pair.java @@ -16,14 +16,14 @@ public class Pair { return key; } - public S getValue() { - return value; - } - public void setKey(T key) { this.key = key; } + public S getValue() { + return value; + } + public void setValue(S value) { this.value = value; } diff --git a/src/main/java/me/zeroeightsix/kami/util/RichPresence.java b/src/main/java/me/zeroeightsix/kami/util/RichPresence.java index 632df9810..e86a6d75e 100644 --- a/src/main/java/me/zeroeightsix/kami/util/RichPresence.java +++ b/src/main/java/me/zeroeightsix/kami/util/RichPresence.java @@ -15,11 +15,6 @@ public class RichPresence { public static RichPresence INSTANCE; public CustomUser[] customUsers; - public static class CustomUser { - public String uuid; - public String type; - } - public RichPresence() { INSTANCE = this; try { @@ -32,4 +27,9 @@ public class RichPresence { e.printStackTrace(); } } + + public static class CustomUser { + public String uuid; + public String type; + } } diff --git a/src/main/java/me/zeroeightsix/kami/util/TimeUtil.java b/src/main/java/me/zeroeightsix/kami/util/TimeUtil.java index 0c0a75eb0..371766544 100644 --- a/src/main/java/me/zeroeightsix/kami/util/TimeUtil.java +++ b/src/main/java/me/zeroeightsix/kami/util/TimeUtil.java @@ -21,19 +21,14 @@ public class TimeUtil { return format.format(date); } - public enum TimeType { - HHMM, HHMMSS, HH - } - - public enum TimeUnit { - H24, H12 - } - private static String formatTimeString(TimeType timeType) { switch (timeType) { - case HHMM: return ":mm"; - case HHMMSS: return ":mm:ss"; - default: return ""; + case HHMM: + return ":mm"; + case HHMMSS: + return ":mm:ss"; + default: + return ""; } } @@ -41,9 +36,11 @@ public class TimeUtil { SimpleDateFormat formatter; switch (timeUnit) { case H12: - formatter = new SimpleDateFormat("hh" + formatTimeString(timeType), Locale.UK); break; + formatter = new SimpleDateFormat("hh" + formatTimeString(timeType), Locale.UK); + break; case H24: - formatter = new SimpleDateFormat("HH" + formatTimeString(timeType), Locale.UK); break; + formatter = new SimpleDateFormat("HH" + formatTimeString(timeType), Locale.UK); + break; default: throw new IllegalStateException("Unexpected value: " + timeUnit); } @@ -75,4 +72,12 @@ public class TimeUtil { } return time(dateFormatter(timeUnit, timeType)) + locale; } + + public enum TimeType { + HHMM, HHMMSS, HH + } + + public enum TimeUnit { + H24, H12 + } } diff --git a/src/main/java/me/zeroeightsix/kami/util/TrajectoryCalculator.java b/src/main/java/me/zeroeightsix/kami/util/TrajectoryCalculator.java index 393a7b758..4a33aa95e 100644 --- a/src/main/java/me/zeroeightsix/kami/util/TrajectoryCalculator.java +++ b/src/main/java/me/zeroeightsix/kami/util/TrajectoryCalculator.java @@ -49,6 +49,25 @@ public class TrajectoryCalculator { return ThrowingType.NONE; } + public static double[] interpolate(Entity entity) { + double posX = interpolate(entity.posX, entity.lastTickPosX) - Wrapper.getMinecraft().renderManager.renderPosX; + double posY = interpolate(entity.posY, entity.lastTickPosY) - Wrapper.getMinecraft().renderManager.renderPosY; + double posZ = interpolate(entity.posZ, entity.lastTickPosZ) - Wrapper.getMinecraft().renderManager.renderPosZ; + return new double[]{posX, posY, posZ}; + } + + public static double interpolate(double now, double then) { + return then + (now - then) * Wrapper.getMinecraft().getRenderPartialTicks(); + } + + public static Vec3d mult(Vec3d factor, float multiplier) { + return new Vec3d(factor.x * multiplier, factor.y * multiplier, factor.z * multiplier); + } + + public static Vec3d div(Vec3d factor, float divisor) { + return new Vec3d(factor.x / divisor, factor.y / divisor, factor.z / divisor); + } + public enum ThrowingType { NONE, BOW, EXPERIENCE, POTION, NORMAL } @@ -59,15 +78,15 @@ public class TrajectoryCalculator { * of them is {@link net.minecraft.entity.projectile.EntityThrowable} */ public static final class FlightPath { - private EntityLivingBase shooter; public Vec3d position; + private final EntityLivingBase shooter; private Vec3d motion; private float yaw; private float pitch; private AxisAlignedBB boundingBox; private boolean collided; private RayTraceResult target; - private ThrowingType throwingType; + private final ThrowingType throwingType; public FlightPath(EntityLivingBase entityLivingBase, ThrowingType throwingType) { this.shooter = entityLivingBase; @@ -149,7 +168,6 @@ public class TrajectoryCalculator { double currentDistance = 0.0d; // Get all possible collision entities disregarding the local thePlayer List collisionEntities = this.shooter.world.getEntitiesWithinAABBExcludingEntity(this.shooter, this.boundingBox.expand(this.motion.x, this.motion.y, this.motion.z).expand(1.0D, 1.0D, 1.0D)); - ; // Loop through every loaded entity in the world for (Entity entity : collisionEntities) { @@ -303,23 +321,4 @@ public class TrajectoryCalculator { return target; } } - - public static double[] interpolate(Entity entity) { - double posX = interpolate(entity.posX, entity.lastTickPosX) - Wrapper.getMinecraft().renderManager.renderPosX; - double posY = interpolate(entity.posY, entity.lastTickPosY) - Wrapper.getMinecraft().renderManager.renderPosY; - double posZ = interpolate(entity.posZ, entity.lastTickPosZ) - Wrapper.getMinecraft().renderManager.renderPosZ; - return new double[]{posX, posY, posZ}; - } - - public static double interpolate(double now, double then) { - return then + (now - then) * Wrapper.getMinecraft().getRenderPartialTicks(); - } - - public static Vec3d mult(Vec3d factor, float multiplier) { - return new Vec3d(factor.x * multiplier, factor.y * multiplier, factor.z * multiplier); - } - - public static Vec3d div(Vec3d factor, float divisor) { - return new Vec3d(factor.x / divisor, factor.y / divisor, factor.z / divisor); - } } diff --git a/src/main/java/me/zeroeightsix/kami/util/VectorUtil.java b/src/main/java/me/zeroeightsix/kami/util/VectorUtil.java index aa3dea222..861892d07 100644 --- a/src/main/java/me/zeroeightsix/kami/util/VectorUtil.java +++ b/src/main/java/me/zeroeightsix/kami/util/VectorUtil.java @@ -28,9 +28,9 @@ public class VectorUtil { /** * Gets vectors between two given vectors (startVec and destinationVec) every (distance between the given vectors) / steps * - * @param startVec Beginning vector + * @param startVec Beginning vector * @param destinationVec Ending vector - * @param steps distance between given vectors + * @param steps distance between given vectors * @return all vectors between startVec and destinationVec divided by steps */ public static ArrayList extendVec(Vec3d startVec, Vec3d destinationVec, int steps) { @@ -49,9 +49,9 @@ public class VectorUtil { /** * Moves a vector towards a destination based on distance * - * @param startVec Starting vector + * @param startVec Starting vector * @param destinationVec returned vector - * @param distance distance to move startVec by + * @param distance distance to move startVec by * @return vector based on startVec that is moved towards destinationVec by distance */ public static Vec3d advanceVec(Vec3d startVec, Vec3d destinationVec, double distance) { @@ -105,7 +105,9 @@ public class VectorUtil { for (int x = minX; x < maxX; x++) { for (int y = minY; y < maxY; y++) { - for (int z = minZ; z < maxZ; z++) { returnList.add(new BlockPos(x, y, z)); } + for (int z = minZ; z < maxZ; z++) { + returnList.add(new BlockPos(x, y, z)); + } } } diff --git a/src/main/java/me/zeroeightsix/kami/util/WebUtils.java b/src/main/java/me/zeroeightsix/kami/util/WebUtils.java index e6b274d89..e962df69d 100644 --- a/src/main/java/me/zeroeightsix/kami/util/WebUtils.java +++ b/src/main/java/me/zeroeightsix/kami/util/WebUtils.java @@ -60,40 +60,40 @@ public class WebUtils { } public static java.util.List getContributors(java.util.List exceptions) { - // log attempt - KamiMod.log.info("Attempting to get contributors from github api..."); + // log attempt + KamiMod.log.info("Attempting to get contributors from github api..."); - //initialize list - java.util.List contributorsAsList = new LinkedList<>(Collections.emptyList()); + //initialize list + java.util.List contributorsAsList = new LinkedList<>(Collections.emptyList()); - new Thread(() -> { - try { - // connect to https://api.github.com/repos/kami-blue/client/contributors - HttpsURLConnection connection = (HttpsURLConnection) new URL("https://api.github.com/repos/kami-blue/client/contributors").openConnection(); - connection.connect(); + new Thread(() -> { + try { + // connect to https://api.github.com/repos/kami-blue/client/contributors + HttpsURLConnection connection = (HttpsURLConnection) new URL("https://api.github.com/repos/kami-blue/client/contributors").openConnection(); + connection.connect(); - // then parse it - GithubUser[] contributors = new Gson().fromJson(new InputStreamReader(connection.getInputStream()), GithubUser[].class); + // then parse it + GithubUser[] contributors = new Gson().fromJson(new InputStreamReader(connection.getInputStream()), GithubUser[].class); - // disconnect from api - connection.disconnect(); + // disconnect from api + connection.disconnect(); - // add contributors to the list - for (GithubUser githubUser : contributors) { - contributorsAsList.add(githubUser); - for (int exception : exceptions) { - if (githubUser.id == exception) { - contributorsAsList.remove(githubUser); - } + // add contributors to the list + for (GithubUser githubUser : contributors) { + contributorsAsList.add(githubUser); + for (int exception : exceptions) { + if (githubUser.id == exception) { + contributorsAsList.remove(githubUser); } } - - } catch (Throwable t) { - // throw error - KamiMod.log.error("Attempt to get contributors from github api failed.\nError:\n\n" + t.toString()); - MessageSendHelper.sendErrorMessage("Attempt to get contributors from github api failed.\nError:\n\n" + t.toString()); } - }).start(); + + } catch (Throwable t) { + // throw error + KamiMod.log.error("Attempt to get contributors from github api failed.\nError:\n\n" + t.toString()); + MessageSendHelper.sendErrorMessage("Attempt to get contributors from github api failed.\nError:\n\n" + t.toString()); + } + }).start(); return contributorsAsList; } From 916d7a2a4bed129d8f5c0e2255ee21d38bee7912 Mon Sep 17 00:00:00 2001 From: Dominika Date: Thu, 16 Apr 2020 17:06:30 -0400 Subject: [PATCH 04/11] tooltips ShowOnArray.OFF --- .../me/zeroeightsix/kami/module/modules/client/Tooltips.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/client/Tooltips.java b/src/main/java/me/zeroeightsix/kami/module/modules/client/Tooltips.java index aab605a9f..0023cd160 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/client/Tooltips.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/client/Tooltips.java @@ -6,6 +6,6 @@ import me.zeroeightsix.kami.module.Module; * @author S-B99 * @see me.zeroeightsix.kami.gui.kami.theme.kami.RootCheckButtonUI */ -@Module.Info(name = "Tooltips", description = "Displays handy module descriptions in the GUI", category = Module.Category.CLIENT) +@Module.Info(name = "Tooltips", description = "Displays handy module descriptions in the GUI", category = Module.Category.CLIENT, showOnArray = Module.ShowOnArray.OFF) public class Tooltips extends Module { } From d5521344542aa5b044ea85129b2f10c5df54cb32 Mon Sep 17 00:00:00 2001 From: Bella Date: Thu, 16 Apr 2020 15:49:01 -0400 Subject: [PATCH 05/11] Revert "Autoformat everything for #588" This reverts commit 280088d8111698b9b51901527bd7a870f97ec57d. From c0ab056a5c03402756ab5766cbcc8e3167ab6433 Mon Sep 17 00:00:00 2001 From: Bella Date: Thu, 16 Apr 2020 15:49:01 -0400 Subject: [PATCH 06/11] Revert "Autoformat everything for #588" This reverts commit 280088d8111698b9b51901527bd7a870f97ec57d. --- .../me/zeroeightsix/kami/DiscordPresence.java | 25 +- .../java/me/zeroeightsix/kami/KamiMod.java | 106 ++++---- .../me/zeroeightsix/kami/command/Command.java | 25 +- .../kami/command/CommandManager.java | 33 +-- .../command/commands/AutoReplyCommand.java | 4 +- .../kami/command/commands/CreditsCommand.java | 56 ++-- .../command/commands/EntityStatsCommand.java | 22 +- .../kami/command/commands/FriendCommand.java | 66 ++--- .../commands/GenerateWebsiteCommand.java | 2 +- .../kami/command/commands/HelpCommand.java | 6 +- .../kami/command/commands/NBTCommand.java | 5 +- .../kami/command/commands/PathCommand.java | 7 +- .../command/commands/SignBookCommand.java | 2 +- .../command/commands/TeleportCommand.java | 3 +- .../kami/command/commands/VanishCommand.java | 1 + .../kami/command/commands/XRayCommand.java | 2 +- .../kami/command/syntax/ChunkBuilder.java | 2 +- .../kami/command/syntax/SyntaxChunk.java | 9 +- .../command/syntax/parsers/BlockParser.java | 2 +- .../syntax/parsers/DependantParser.java | 4 +- .../command/syntax/parsers/EnumParser.java | 2 +- .../command/syntax/parsers/ValueParser.java | 2 +- .../me/zeroeightsix/kami/event/KamiEvent.java | 2 +- .../kami/event/events/ChunkEvent.java | 4 +- .../kami/event/events/EntityEvent.java | 18 +- .../event/events/EntityUseTotemEvent.java | 2 +- .../kami/event/events/PlayerMoveEvent.java | 16 +- .../kami/event/events/PlayerTravelEvent.java | 3 +- .../me/zeroeightsix/kami/gui/font/CFont.java | 2 +- .../kami/gui/font/CFontRenderer.java | 14 +- .../kami/gui/kami/DisplayGuiScreen.java | 30 ++- .../zeroeightsix/kami/gui/kami/KamiGUI.java | 154 +++++------ .../gui/kami/component/ActiveModules.java | 2 +- .../kami/gui/kami/component/EnumButton.java | 16 +- .../gui/kami/component/SettingsPanel.java | 24 +- .../gui/kami/component/UnboundSlider.java | 11 +- .../kami/theme/kami/KamiActiveModulesUI.java | 3 +- .../gui/kami/theme/kami/KamiEnumButtonUI.java | 4 +- .../kami/gui/kami/theme/kami/KamiFrameUI.java | 4 +- .../kami/theme/kami/RootCheckButtonUI.java | 3 +- .../kami/gui/kami/theme/staticui/RadarUI.java | 3 +- .../zeroeightsix/kami/gui/mc/KamiGuiChat.java | 12 +- .../gui/mc/KamiGuiUpdateNotification.java | 3 +- .../me/zeroeightsix/kami/gui/rgui/GUI.java | 51 ++-- .../gui/rgui/component/AbstractComponent.java | 84 +++--- .../gui/rgui/component/AlignedComponent.java | 18 +- .../kami/gui/rgui/component/Component.java | 98 +++---- .../container/AbstractContainer.java | 11 +- .../rgui/component/container/Container.java | 18 +- .../rgui/component/container/use/Frame.java | 105 ++++---- .../component/container/use/Scrollpane.java | 16 +- .../rgui/component/listen/KeyListener.java | 6 +- .../rgui/component/listen/MouseListener.java | 52 ++-- .../rgui/component/listen/RenderListener.java | 4 +- .../rgui/component/listen/UpdateListener.java | 4 +- .../kami/gui/rgui/component/use/Button.java | 8 +- .../gui/rgui/component/use/CheckButton.java | 16 +- .../gui/rgui/component/use/InputField.java | 22 +- .../kami/gui/rgui/component/use/Label.java | 18 +- .../kami/gui/rgui/component/use/Slider.java | 44 +-- .../kami/gui/rgui/layout/Layout.java | 2 +- .../kami/gui/rgui/poof/IPoof.java | 6 +- .../kami/gui/rgui/poof/use/FramePoof.java | 10 +- .../kami/gui/rgui/poof/use/Poof.java | 4 +- .../gui/rgui/render/AbstractComponentUI.java | 2 +- .../kami/gui/rgui/render/ComponentUI.java | 20 +- .../gui/rgui/render/font/FontRenderer.java | 16 +- .../kami/gui/rgui/render/theme/Theme.java | 4 +- .../kami/gui/rgui/render/util/Uniform.java | 22 +- .../kami/mixin/client/MixinBlockSoulSand.java | 3 +- .../kami/mixin/client/MixinBlockWeb.java | 5 +- .../mixin/client/MixinEntityPlayerSP.java | 2 +- .../kami/mixin/client/MixinGuiChat.java | 6 +- .../kami/mixin/client/MixinGuiMainMenu.java | 2 + .../kami/mixin/client/MixinGuiScreen.java | 9 +- .../mixin/client/MixinLayerArmorBase.java | 2 +- .../client/MixinMovementInputFromOptions.java | 2 + .../kami/mixin/client/MixinRenderGlobal.java | 4 +- .../kami/mixin/client/MixinVisGraph.java | 2 +- .../me/zeroeightsix/kami/module/Module.java | 245 ++++++++--------- .../kami/module/ModuleManager.java | 4 +- .../kami/module/modules/capes/Capes.java | 79 +++--- .../kami/module/modules/capes/LayerCape.java | 3 +- .../kami/module/modules/chat/AntiSpam.java | 94 +++---- .../kami/module/modules/chat/AutoQMain.java | 8 +- .../kami/module/modules/chat/AutoReply.java | 17 +- .../kami/module/modules/chat/AutoTPA.java | 1 + .../module/modules/chat/ChatEncryption.java | 19 +- .../kami/module/modules/chat/CustomChat.java | 65 ++--- .../module/modules/chat/DiscordNotifs.java | 56 ++-- .../kami/module/modules/chat/FancyChat.java | 31 +-- .../kami/module/modules/chat/FormatChat.java | 21 +- .../kami/module/modules/chat/Spammer.java | 21 +- .../module/modules/client/ActiveModules.java | 44 ++- .../module/modules/client/CommandConfig.java | 5 +- .../module/modules/client/InfoOverlay.java | 90 +++---- .../modules/client/InventoryViewer.java | 44 ++- .../kami/module/modules/combat/AimBot.java | 4 +- .../module/modules/combat/AntiChainPop.java | 17 +- .../kami/module/modules/combat/Aura.java | 7 +- .../kami/module/modules/combat/AutoEZ.java | 124 ++++----- .../kami/module/modules/combat/AutoLog.java | 7 +- .../kami/module/modules/combat/AutoMend.java | 2 +- .../kami/module/modules/combat/AutoTotem.java | 14 +- .../modules/combat/BreakingWarning.java | 7 +- .../kami/module/modules/combat/Criticals.java | 2 +- .../module/modules/combat/CrystalAura.java | 209 ++++++++------- .../kami/module/modules/combat/Fastuse.java | 8 +- .../module/modules/combat/OffhandGap.java | 251 +++++++++--------- .../kami/module/modules/combat/Surround.java | 86 +++--- .../modules/combat/TotemPopCounter.java | 91 ++++--- .../module/modules/combat/VisualRange.java | 6 +- .../modules/experimental/HoleFiller.java | 96 +++---- .../kami/module/modules/hidden/CoordsLog.java | 18 +- .../kami/module/modules/hidden/Teleport.java | 4 +- .../kami/module/modules/misc/AntiAFK.java | 2 +- .../kami/module/modules/misc/AutoFish.java | 47 ++-- .../kami/module/modules/misc/AutoNametag.java | 2 +- .../module/modules/misc/AutoReconnect.java | 4 +- .../kami/module/modules/misc/AutoSpawner.java | 9 +- .../kami/module/modules/misc/AutoTool.java | 42 +-- .../kami/module/modules/misc/BlockData.java | 17 +- .../kami/module/modules/misc/BookCrash.java | 8 +- .../kami/module/modules/misc/CameraClip.java | 2 +- .../kami/module/modules/misc/ConsoleSpam.java | 12 +- .../kami/module/modules/misc/DiscordRPC.java | 21 +- .../kami/module/modules/misc/EntityTools.java | 26 +- .../module/modules/misc/MidClickFriends.java | 15 +- .../kami/module/modules/misc/SkinFlicker.java | 13 +- .../kami/module/modules/misc/XCarry.java | 2 +- .../module/modules/movement/AntiHunger.java | 2 +- .../module/modules/movement/AutoJump.java | 2 +- .../module/modules/movement/AutoRemount.java | 4 +- .../module/modules/movement/AutoWalk.java | 2 +- .../module/modules/movement/ElytraFlight.java | 34 +-- .../modules/movement/ElytraReplace.java | 4 +- .../module/modules/movement/EntitySpeed.java | 10 +- .../modules/movement/InventoryMove.java | 2 +- .../kami/module/modules/movement/Jesus.java | 26 +- .../module/modules/movement/NoSlowDown.java | 7 +- .../kami/module/modules/movement/Sprint.java | 11 +- .../module/modules/movement/TimerSpeed.java | 3 +- .../module/modules/movement/Velocity.java | 5 +- .../kami/module/modules/player/AutoEat.java | 9 +- .../module/modules/player/EndTeleport.java | 19 +- .../kami/module/modules/player/Freecam.java | 31 ++- .../module/modules/player/LagNotifier.java | 7 +- .../module/modules/player/NoEntityTrace.java | 3 +- .../kami/module/modules/player/NoFall.java | 15 +- .../module/modules/player/NoPacketKick.java | 2 +- .../kami/module/modules/player/NoSwing.java | 2 +- .../module/modules/player/PacketCancel.java | 24 +- .../kami/module/modules/player/Scaffold.java | 39 +-- .../kami/module/modules/player/Timer.java | 3 +- .../kami/module/modules/render/ArmourHUD.java | 9 +- .../module/modules/render/ArmourHide.java | 10 +- .../kami/module/modules/render/BossStack.java | 3 +- .../kami/module/modules/render/BoxESP.java | 2 +- .../module/modules/render/Brightness.java | 30 ++- .../module/modules/render/ChunkFinder.java | 49 ++-- .../kami/module/modules/render/CleanGUI.java | 5 +- .../kami/module/modules/render/ESP.java | 8 +- .../kami/module/modules/render/ExtraTab.java | 3 +- .../kami/module/modules/render/HoleESP.java | 73 ++--- .../kami/module/modules/render/MobOwner.java | 19 +- .../kami/module/modules/render/Nametags.java | 51 ++-- .../kami/module/modules/render/NoRender.java | 18 +- .../kami/module/modules/render/Pathfind.java | 2 +- .../module/modules/render/StorageESP.java | 2 +- .../kami/module/modules/render/Tracers.java | 107 ++++---- .../kami/module/modules/render/XRay.java | 133 +++++----- .../me/zeroeightsix/kami/setting/Setting.java | 13 +- .../kami/setting/SettingsRegister.java | 32 +-- .../kami/setting/builder/SettingBuilder.java | 16 +- .../numerical/IntegerSettingBuilder.java | 2 +- .../kami/setting/config/Configuration.java | 4 +- .../kami/setting/converter/EnumConverter.java | 3 +- .../kami/setting/impl/EnumSetting.java | 2 +- .../me/zeroeightsix/kami/util/BeaconGui.java | 61 +++-- .../java/me/zeroeightsix/kami/util/Bind.java | 98 +++---- .../kami/util/ColourConverter.java | 16 +- .../zeroeightsix/kami/util/ColourHolder.java | 44 +-- .../kami/util/ColourTextFormatting.java | 81 +++--- .../zeroeightsix/kami/util/ColourUtils.java | 114 ++++---- .../me/zeroeightsix/kami/util/EntityUtil.java | 7 +- .../me/zeroeightsix/kami/util/Friends.java | 34 +-- .../kami/util/InfoCalculator.java | 33 +-- .../me/zeroeightsix/kami/util/LogUtil.java | 2 +- .../kami/util/MessageDetectionHelper.java | 5 +- .../java/me/zeroeightsix/kami/util/Pair.java | 8 +- .../zeroeightsix/kami/util/RichPresence.java | 10 +- .../me/zeroeightsix/kami/util/TimeUtil.java | 31 +-- .../kami/util/TrajectoryCalculator.java | 43 +-- .../me/zeroeightsix/kami/util/VectorUtil.java | 12 +- .../me/zeroeightsix/kami/util/WebUtils.java | 52 ++-- 195 files changed, 2473 insertions(+), 2476 deletions(-) diff --git a/src/main/java/me/zeroeightsix/kami/DiscordPresence.java b/src/main/java/me/zeroeightsix/kami/DiscordPresence.java index 59218c114..facd397d8 100644 --- a/src/main/java/me/zeroeightsix/kami/DiscordPresence.java +++ b/src/main/java/me/zeroeightsix/kami/DiscordPresence.java @@ -15,19 +15,13 @@ import static me.zeroeightsix.kami.KamiMod.MODULE_MANAGER; * Updated (slightly) by Dewy on 3rd April 2020 */ public class DiscordPresence { - private static final club.minnced.discord.rpc.DiscordRPC rpc; public static DiscordRichPresence presence; private static boolean connected; + private static final club.minnced.discord.rpc.DiscordRPC rpc; private static String details; private static String state; private static DiscordRPC discordRPC; - static { - rpc = club.minnced.discord.rpc.DiscordRPC.INSTANCE; - DiscordPresence.presence = new DiscordRichPresence(); - DiscordPresence.connected = false; - } - public static void start() { KamiMod.log.info("Starting Discord RPC"); if (DiscordPresence.connected) return; @@ -64,17 +58,12 @@ public class DiscordPresence { DiscordPresence.presence.details = details; DiscordPresence.presence.state = state; DiscordPresence.rpc.Discord_UpdatePresence(DiscordPresence.presence); - } catch (Exception e2) { - e2.printStackTrace(); - } - try { - Thread.sleep(4000L); - } catch (InterruptedException e3) { - e3.printStackTrace(); } + catch (Exception e2) { e2.printStackTrace(); } + try { Thread.sleep(4000L); } + catch (InterruptedException e3) { e3.printStackTrace(); } } } - private static void setRpcFromSettings() { discordRPC = MODULE_MANAGER.getModuleT(DiscordRPC.class); details = discordRPC.getLine(discordRPC.line1Setting.getValue()) + " " + discordRPC.getLine(discordRPC.line3Setting.getValue()); @@ -86,6 +75,12 @@ public class DiscordPresence { DiscordPresence.rpc.Discord_UpdatePresence(DiscordPresence.presence); } + static { + rpc = club.minnced.discord.rpc.DiscordRPC.INSTANCE; + DiscordPresence.presence = new DiscordRichPresence(); + DiscordPresence.connected = false; + } + public static void setCustomIcons() { if (RichPresence.INSTANCE.customUsers != null) { for (RichPresence.CustomUser user : RichPresence.INSTANCE.customUsers) { diff --git a/src/main/java/me/zeroeightsix/kami/KamiMod.java b/src/main/java/me/zeroeightsix/kami/KamiMod.java index d521a4dc6..7cbfea686 100644 --- a/src/main/java/me/zeroeightsix/kami/KamiMod.java +++ b/src/main/java/me/zeroeightsix/kami/KamiMod.java @@ -73,18 +73,24 @@ public class KamiMod { public static final String MCVER = "1.12.2"; public static final String APP_ID = "638403216278683661"; + + private static final String UPDATE_JSON = "https://raw.githubusercontent.com/kami-blue/assets/assets/assets/updateChecker.json"; public static final String DONATORS_JSON = "https://raw.githubusercontent.com/kami-blue/assets/assets/assets/donators.json"; public static final String CAPES_JSON = "https://raw.githubusercontent.com/kami-blue/assets/assets/assets/capes.json"; public static final String GITHUB_LINK = "https://github.com/kami-blue/"; public static final String WEBSITE_LINK = "https://blue.bella.wtf"; + public static final String KAMI_KANJI = "\u30ab\u30df\u30d6\u30eb"; public static final char colour = '\u00A7'; public static final char separator = '\u23d0'; + + private static final String KAMI_CONFIG_NAME_DEFAULT = "KAMIBlueConfig.json"; + public static final Logger log = LogManager.getLogger("KAMI Blue"); + public static final EventBus EVENT_BUS = new EventManager(); public static final ModuleManager MODULE_MANAGER = new ModuleManager(); - private static final String UPDATE_JSON = "https://raw.githubusercontent.com/kami-blue/assets/assets/assets/updateChecker.json"; - private static final String KAMI_CONFIG_NAME_DEFAULT = "KAMIBlueConfig.json"; + public static String latest; // latest version (null if no internet or exception occurred) public static boolean isLatest; public static boolean hasAskedToUpdate = false; @@ -106,6 +112,54 @@ public class KamiMod { } }).buildAndRegister(""); + @Mod.EventHandler + public void preInit(FMLPreInitializationEvent event) { + updateCheck(); + } + + @Mod.EventHandler + public void postInit(FMLPostInitializationEvent event) { + setCustomIcons(); + Display.setTitle(MODNAME + " " + KAMI_KANJI + " " + MODVERSMALL); + } + + @Mod.EventHandler + public void init(FMLInitializationEvent event) { + log.info("\n\nInitializing " + MODNAME + " " + MODVER); + + MODULE_MANAGER.register(); + + MODULE_MANAGER.getModules().stream().filter(module -> module.alwaysListening).forEach(EVENT_BUS::subscribe); + MinecraftForge.EVENT_BUS.register(new ForgeEventProcessor()); + LagCompensator.INSTANCE = new LagCompensator(); + + Wrapper.init(); + + guiManager = new KamiGUI(); + guiManager.initializeGUI(); + + commandManager = new CommandManager(); + + Friends.initFriends(); + SettingsRegister.register("commandPrefix", Command.commandPrefix); + loadConfiguration(); + log.info("Settings loaded"); + + // custom names aren't known at compile-time + //MODULE_MANAGER.updateLookup(); // generate the lookup table after settings are loaded to make custom module names work + + new RichPresence(); + log.info("Rich Presence Users init!\n"); + + // After settings loaded, we want to let the enabled modules know they've been enabled (since the setting is done through reflection) + MODULE_MANAGER.getModules().stream().filter(Module::isEnabled).forEach(Module::enable); + + // load modules that are on by default // autoenable + MODULE_MANAGER.getModule(RunConfig.class).enable(); + + log.info(MODNAME + " Mod initialized!\n"); + } + public static String getConfigName() { Path config = Paths.get("KAMIBlueLastConfig.txt"); String kamiConfigName = KAMI_CONFIG_NAME_DEFAULT; @@ -203,54 +257,6 @@ public class KamiMod { return INSTANCE; } - @Mod.EventHandler - public void preInit(FMLPreInitializationEvent event) { - updateCheck(); - } - - @Mod.EventHandler - public void postInit(FMLPostInitializationEvent event) { - setCustomIcons(); - Display.setTitle(MODNAME + " " + KAMI_KANJI + " " + MODVERSMALL); - } - - @Mod.EventHandler - public void init(FMLInitializationEvent event) { - log.info("\n\nInitializing " + MODNAME + " " + MODVER); - - MODULE_MANAGER.register(); - - MODULE_MANAGER.getModules().stream().filter(module -> module.alwaysListening).forEach(EVENT_BUS::subscribe); - MinecraftForge.EVENT_BUS.register(new ForgeEventProcessor()); - LagCompensator.INSTANCE = new LagCompensator(); - - Wrapper.init(); - - guiManager = new KamiGUI(); - guiManager.initializeGUI(); - - commandManager = new CommandManager(); - - Friends.initFriends(); - SettingsRegister.register("commandPrefix", Command.commandPrefix); - loadConfiguration(); - log.info("Settings loaded"); - - // custom names aren't known at compile-time - //MODULE_MANAGER.updateLookup(); // generate the lookup table after settings are loaded to make custom module names work - - new RichPresence(); - log.info("Rich Presence Users init!\n"); - - // After settings loaded, we want to let the enabled modules know they've been enabled (since the setting is done through reflection) - MODULE_MANAGER.getModules().stream().filter(Module::isEnabled).forEach(Module::enable); - - // load modules that are on by default // autoenable - MODULE_MANAGER.getModule(RunConfig.class).enable(); - - log.info(MODNAME + " Mod initialized!\n"); - } - public KamiGUI getGuiManager() { return guiManager; } diff --git a/src/main/java/me/zeroeightsix/kami/command/Command.java b/src/main/java/me/zeroeightsix/kami/command/Command.java index c3268091c..cb9462548 100644 --- a/src/main/java/me/zeroeightsix/kami/command/Command.java +++ b/src/main/java/me/zeroeightsix/kami/command/Command.java @@ -1,23 +1,36 @@ package me.zeroeightsix.kami.command; +import me.zeroeightsix.kami.KamiMod; import me.zeroeightsix.kami.command.syntax.SyntaxChunk; import me.zeroeightsix.kami.setting.Setting; import me.zeroeightsix.kami.setting.Settings; +import me.zeroeightsix.kami.util.Wrapper; import net.minecraft.client.Minecraft; +import net.minecraft.launchwrapper.LogWrapper; +import net.minecraft.network.play.client.CPacketChatMessage; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.TextComponentBase; import java.util.Arrays; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import static me.zeroeightsix.kami.KamiMod.MODULE_MANAGER; public abstract class Command { - public static Setting commandPrefix = Settings.s("commandPrefix", ";"); - public final Minecraft mc = Minecraft.getMinecraft(); protected String label; protected String syntax; protected String description; protected List aliases; + + public final Minecraft mc = Minecraft.getMinecraft(); + protected SyntaxChunk[] syntaxChunks; + public static Setting commandPrefix = Settings.s("commandPrefix", ";"); + public Command(String label, SyntaxChunk[] syntaxChunks, String... aliases) { this.label = label; this.syntaxChunks = syntaxChunks; @@ -25,16 +38,16 @@ public abstract class Command { this.aliases = Arrays.asList(aliases); } - public static String getCommandPrefix() { - return commandPrefix.getValue(); + protected void setDescription(String description) { + this.description = description; } public String getDescription() { return description; } - protected void setDescription(String description) { - this.description = description; + public static String getCommandPrefix() { + return commandPrefix.getValue(); } public String getLabel() { diff --git a/src/main/java/me/zeroeightsix/kami/command/CommandManager.java b/src/main/java/me/zeroeightsix/kami/command/CommandManager.java index 5101d284a..36e2fae2c 100644 --- a/src/main/java/me/zeroeightsix/kami/command/CommandManager.java +++ b/src/main/java/me/zeroeightsix/kami/command/CommandManager.java @@ -14,7 +14,7 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; public class CommandManager { - private final ArrayList commands; + private ArrayList commands; public CommandManager() { commands = new ArrayList<>(); @@ -34,21 +34,6 @@ public class CommandManager { KamiMod.log.info("Commands initialised"); } - private static String[] removeElement(String[] input, int indexToDelete) { - List result = new LinkedList(); - - for (int i = 0; i < input.length; i++) { - if (i != indexToDelete) result.add(input[i]); - } - - return (String[]) result.toArray(input); - } - - private static String strip(String str, String key) { - if (str.startsWith(key) && str.endsWith(key)) return str.substring(key.length(), str.length() - key.length()); - return str; - } - public void callCommand(String command) { String[] parts = command.split(" (?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)"); // Split by every space if it isn't surrounded by quotes @@ -74,6 +59,22 @@ public class CommandManager { sendChatMessage("&7Unknown command. try '&f" + Command.getCommandPrefix() + "cmds&7' for a list of commands."); } + private static String[] removeElement(String[] input, int indexToDelete) { + List result = new LinkedList(); + + for (int i = 0; i < input.length; i++) { + if (i != indexToDelete) result.add(input[i]); + } + + return (String[]) result.toArray(input); + } + + + private static String strip(String str, String key) { + if (str.startsWith(key) && str.endsWith(key)) return str.substring(key.length(), str.length() - key.length()); + return str; + } + public ArrayList getCommands() { return commands; } diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/AutoReplyCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/AutoReplyCommand.java index 13a25a829..80aa1ec3e 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/AutoReplyCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/AutoReplyCommand.java @@ -32,7 +32,7 @@ public class AutoReplyCommand extends Command { if (s == null) continue; if (s.startsWith("=")) { - String sT = s.replace("=", ""); + String sT = s.replace("=" ,""); autoReply.listener.setValue(sT); sendChatMessage("Set the AutoReply listener to <" + sT + ">"); if (!autoReply.customListener.getValue()) { @@ -40,7 +40,7 @@ public class AutoReplyCommand extends Command { sendWarningMessage("The command will still work, but will not visibly do anything."); } } else if (s.startsWith("-")) { - String sT = s.replace("-", ""); + String sT = s.replace("-" ,""); autoReply.replyCommand.setValue(sT); sendChatMessage("Set the AutoReply reply command to <" + sT + ">"); if (!autoReply.customReplyCommand.getValue()) { diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/CreditsCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/CreditsCommand.java index 452d4629b..a0acf19ac 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/CreditsCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/CreditsCommand.java @@ -47,36 +47,36 @@ public class CreditsCommand extends Command { // Bots 27856297 // dependabot - ); + ); String message = - "\nName (Github if not same as name)" + - "\n&l&9Author:" + - "\n086 (zeroeightysix)" + - "\n&l&9Contributors:" + - "\nBella (S-B99)" + - "\nhub (blockparole)" + - "\nSasha (EmotionalLove)" + - "\nQther (d1gress / Vonr)" + - "\ncats (Cuhnt)" + - "\nJack (jacksonellsworth03)" + - "\nTheBritishMidget (TBM)" + - "\nHamburger (Hamburger2k)" + - "\n0x2E (PretendingToCode)" + - "\nBattery Settings (Bluskript)" + - "\nAn-En (AnotherEntity)" + - "\nArisa (Arisa-Snowbell)" + - "\nJamie (jamie27)" + - "\nWaizy (WaizyNet)" + - "\nIt is the end (Itistheend)" + - "\nbabbaj" + - "\nCrystallinqq" + - "\nleijurv" + - "\nElementars"; + "\nName (Github if not same as name)" + + "\n&l&9Author:" + + "\n086 (zeroeightysix)" + + "\n&l&9Contributors:" + + "\nBella (S-B99)" + + "\nhub (blockparole)" + + "\nSasha (EmotionalLove)" + + "\nQther (d1gress / Vonr)" + + "\ncats (Cuhnt)" + + "\nJack (jacksonellsworth03)" + + "\nTheBritishMidget (TBM)" + + "\nHamburger (Hamburger2k)" + + "\n0x2E (PretendingToCode)" + + "\nBattery Settings (Bluskript)" + + "\nAn-En (AnotherEntity)" + + "\nArisa (Arisa-Snowbell)" + + "\nJamie (jamie27)" + + "\nWaizy (WaizyNet)" + + "\nIt is the end (Itistheend)" + + "\nbabbaj" + + "\nCrystallinqq" + + "\nleijurv" + + "\nElementars"; - for (WebUtils.GithubUser u : WebUtils.getContributors(exceptions)) { - message = message.concat("\n" + u.login); - } + for (WebUtils.GithubUser u : WebUtils.getContributors(exceptions)) { + message = message.concat("\n" + u.login); + } - sendChatMessage(message); + sendChatMessage(message); } } diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/EntityStatsCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/EntityStatsCommand.java index df7e5b027..bf35c024f 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/EntityStatsCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/EntityStatsCommand.java @@ -22,14 +22,6 @@ public class EntityStatsCommand extends Command { setDescription("Print the statistics of the entity you're currently riding"); } - public static double round(double value, int places) { - if (places < 0) throw new IllegalArgumentException(); - - BigDecimal bd = BigDecimal.valueOf(value); - bd = bd.setScale(places, RoundingMode.HALF_UP); - return bd.doubleValue(); - } - @Override public void call(String[] args) { @@ -42,9 +34,9 @@ public class EntityStatsCommand extends Command { String ownerId = horse.getOwnerUniqueId() == null ? "Not tamed." : horse.getOwnerUniqueId().toString(); String builder = "&6Entity Statistics:" + "\n&cMax Health: " + maxHealth + - "\n&cSpeed: " + speed + - "\n&cJump: " + jump + - "\n&cOwner: " + EntityUtil.getNameFromUUID(ownerId).replace("\"", ""); + "\n&cSpeed: " + speed + + "\n&cJump: " + jump + + "\n&cOwner: " + EntityUtil.getNameFromUUID(ownerId).replace("\"", ""); sendChatMessage(builder); } else if (mc.player.getRidingEntity() instanceof EntityLivingBase) { EntityLivingBase entity = (EntityLivingBase) mc.player.getRidingEntity(); @@ -53,4 +45,12 @@ public class EntityStatsCommand extends Command { sendChatMessage("&4&lError: &cNot riding a compatible entity."); } } + + public static double round(double value, int places) { + if (places < 0) throw new IllegalArgumentException(); + + BigDecimal bd = BigDecimal.valueOf(value); + bd = bd.setScale(places, RoundingMode.HALF_UP); + return bd.doubleValue(); + } } diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/FriendCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/FriendCommand.java index 9d6fbc89d..166302ecc 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/FriendCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/FriendCommand.java @@ -33,39 +33,6 @@ public class FriendCommand extends Command { setDescription("Add someone as your friend!"); } - private static String requestIDs(String data) { - try { - String query = "https://api.mojang.com/profiles/minecraft"; - - URL url = new URL(query); - HttpURLConnection conn = (HttpURLConnection) url.openConnection(); - conn.setConnectTimeout(5000); - conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); - conn.setDoOutput(true); - conn.setDoInput(true); - conn.setRequestMethod("POST"); - - OutputStream os = conn.getOutputStream(); - os.write(data.getBytes(StandardCharsets.UTF_8)); - os.close(); - - // read the response - InputStream in = new BufferedInputStream(conn.getInputStream()); - String res = convertStreamToString(in); - in.close(); - conn.disconnect(); - - return res; - } catch (Exception e) { - return null; - } - } - - private static String convertStreamToString(InputStream is) { - java.util.Scanner s = new java.util.Scanner(is).useDelimiter("\\A"); - return s.hasNext() ? s.next() : "/"; - } - @Override public void call(String[] args) { if (args[0] == null) { @@ -143,4 +110,37 @@ public class FriendCommand extends Command { } return new Friends.Friend(profile.getGameProfile().getName(), profile.getGameProfile().getId()); } + + private static String requestIDs(String data) { + try { + String query = "https://api.mojang.com/profiles/minecraft"; + + URL url = new URL(query); + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + conn.setConnectTimeout(5000); + conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); + conn.setDoOutput(true); + conn.setDoInput(true); + conn.setRequestMethod("POST"); + + OutputStream os = conn.getOutputStream(); + os.write(data.getBytes(StandardCharsets.UTF_8)); + os.close(); + + // read the response + InputStream in = new BufferedInputStream(conn.getInputStream()); + String res = convertStreamToString(in); + in.close(); + conn.disconnect(); + + return res; + } catch (Exception e) { + return null; + } + } + + private static String convertStreamToString(InputStream is) { + java.util.Scanner s = new java.util.Scanner(is).useDelimiter("\\A"); + return s.hasNext() ? s.next() : "/"; + } } diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/GenerateWebsiteCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/GenerateWebsiteCommand.java index 0312538b0..aee36e267 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/GenerateWebsiteCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/GenerateWebsiteCommand.java @@ -15,7 +15,7 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; /** * @author S-B99 * Updated by S-B99 on 18/03/20 - *

+ * * Horribly designed command for uh, generating the modules page on the website. This was the easiest way I could do it, but maybe not the most efficient. */ public class GenerateWebsiteCommand extends Command { diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/HelpCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/HelpCommand.java index d865f88e6..264da3dcd 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/HelpCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/HelpCommand.java @@ -60,10 +60,12 @@ public class HelpCommand extends Command { String subject = args[0]; if (subject.equals("subjects")) { sendChatMessage("Subjects: " + subjectsList); - } else if (subject.equals("bind")) { + } + else if (subject.equals("bind")) { sendChatMessage("You can also use &7.bind&r modifiers on to allow modules to be bound to keybinds with modifiers, e.g &7ctrl + shift + w or ctrl + c.&r"); sendChatMessage("You can unbind modules with backspace in the GUI or by running &7.bind none&r"); - } else { + } + else { Subject subject1 = Arrays.stream(subjects).filter(subject2 -> { for (String name : subject2.names) if (name.equalsIgnoreCase(subject)) diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/NBTCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/NBTCommand.java index 6ef54f6ae..4f1df1639 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/NBTCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/NBTCommand.java @@ -19,8 +19,6 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendErrorMessage; */ public class NBTCommand extends Command { - private final Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); - private StringSelection nbt; public NBTCommand() { super("nbt", new ChunkBuilder() .append("action", true, new EnumParser(new String[]{"get", "copy", "wipe"})) @@ -28,6 +26,9 @@ public class NBTCommand extends Command { setDescription("Does NBT related stuff (&fget&7, &fcopy&7, &fset&7)"); } + private final Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); + private StringSelection nbt; + @Override public void call(String[] args) { if (args[0].isEmpty()) { diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/PathCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/PathCommand.java index e5ae6bc28..5836364fc 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/PathCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/PathCommand.java @@ -11,14 +11,15 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; * Created by 086 on 25/01/2018. */ public class PathCommand extends Command { - int x = Integer.MIN_VALUE; - int y = Integer.MIN_VALUE; - int z = Integer.MIN_VALUE; public PathCommand() { super("path", new ChunkBuilder().append("x").append("y").append("z").build()); setDescription("Pathfinding for AutoWalk"); } + int x = Integer.MIN_VALUE; + int y = Integer.MIN_VALUE; + int z = Integer.MIN_VALUE; + @Override public void call(String[] args) { if (args[0] != null && args[0].equalsIgnoreCase("retry")) { diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/SignBookCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/SignBookCommand.java index 28a1dc44a..0141383e8 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/SignBookCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/SignBookCommand.java @@ -42,7 +42,7 @@ public class SignBookCommand extends Command { ArrayList toAdd = new ArrayList<>(Arrays.asList(args)); String futureTitle = String.join(" ", toAdd); - futureTitle = futureTitle.replaceAll("&", Character.toString((char) c)); + futureTitle = futureTitle.replaceAll("&", Character.toString((char)c)); futureTitle = futureTitle.replaceAll("#n", "\n"); futureTitle = futureTitle.replaceAll("null", ""); // Random extra null added sometimes diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/TeleportCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/TeleportCommand.java index 02b0c2bd5..fcf925647 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/TeleportCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/TeleportCommand.java @@ -4,6 +4,7 @@ import me.zeroeightsix.kami.command.Command; import me.zeroeightsix.kami.command.syntax.ChunkBuilder; import me.zeroeightsix.kami.command.syntax.parsers.ModuleParser; import me.zeroeightsix.kami.module.modules.hidden.Teleport; +import net.minecraft.client.Minecraft; import net.minecraft.util.math.Vec3d; import java.text.DecimalFormat; @@ -19,7 +20,7 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendErrorMessage; public class TeleportCommand extends Command { - private final DecimalFormat df = new DecimalFormat("#.###"); + private DecimalFormat df = new DecimalFormat("#.###"); public TeleportCommand() { super("teleport", new ChunkBuilder() diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/VanishCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/VanishCommand.java index 43d03a882..542630434 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/VanishCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/VanishCommand.java @@ -1,6 +1,7 @@ package me.zeroeightsix.kami.command.commands; import me.zeroeightsix.kami.command.Command; +import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/XRayCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/XRayCommand.java index 0273cbfe6..1c702320e 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/XRayCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/XRayCommand.java @@ -63,7 +63,7 @@ public class XRayCommand extends Command { sendChatMessage("Enabled " + xr.getName() + " Invert"); } } else if (s.startsWith("=")) { - String sT = s.replace("=", ""); + String sT = s.replace("=" ,""); xr.extSet(sT); sendChatMessage("Set the " + xr.getName() + " block list to " + sT); } else if (s.startsWith("+") || s.startsWith("-")) { diff --git a/src/main/java/me/zeroeightsix/kami/command/syntax/ChunkBuilder.java b/src/main/java/me/zeroeightsix/kami/command/syntax/ChunkBuilder.java index 2626a0e16..17a4a83f3 100644 --- a/src/main/java/me/zeroeightsix/kami/command/syntax/ChunkBuilder.java +++ b/src/main/java/me/zeroeightsix/kami/command/syntax/ChunkBuilder.java @@ -9,7 +9,7 @@ import java.util.List; public class ChunkBuilder { private static final SyntaxChunk[] EXAMPLE = SyntaxChunk.EMPTY; - private final List chunks = new ArrayList<>(); + private List chunks = new ArrayList<>(); public ChunkBuilder append(SyntaxChunk syntaxChunk) { chunks.add(syntaxChunk); diff --git a/src/main/java/me/zeroeightsix/kami/command/syntax/SyntaxChunk.java b/src/main/java/me/zeroeightsix/kami/command/syntax/SyntaxChunk.java index 550ef6ec0..d84abeb22 100644 --- a/src/main/java/me/zeroeightsix/kami/command/syntax/SyntaxChunk.java +++ b/src/main/java/me/zeroeightsix/kami/command/syntax/SyntaxChunk.java @@ -2,13 +2,14 @@ package me.zeroeightsix.kami.command.syntax; public class SyntaxChunk { - public static final SyntaxChunk[] EMPTY = new SyntaxChunk[]{}; private boolean headless = false; - private final String head; // Null if headless - private final String type; - private final boolean necessary; + private String head; // Null if headless + private String type; + private boolean necessary; private SyntaxParser parser; + public static final SyntaxChunk[] EMPTY = new SyntaxChunk[]{}; + public SyntaxChunk(String head, String type, boolean necessary) { this.head = head; this.type = type; diff --git a/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/BlockParser.java b/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/BlockParser.java index d6da0527c..4a92436dd 100644 --- a/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/BlockParser.java +++ b/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/BlockParser.java @@ -10,7 +10,7 @@ import java.util.TreeMap; public class BlockParser extends AbstractParser { - private static final HashMap blockNames = new HashMap<>(); + private static HashMap blockNames = new HashMap<>(); public BlockParser() { if (!blockNames.isEmpty()) return; diff --git a/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/DependantParser.java b/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/DependantParser.java index e055dfd59..b7ab0cdd6 100644 --- a/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/DependantParser.java +++ b/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/DependantParser.java @@ -4,8 +4,8 @@ import me.zeroeightsix.kami.command.syntax.SyntaxChunk; public class DependantParser extends AbstractParser { - private final int dependantIndex; - private final Dependency dependancy; + private int dependantIndex; + private Dependency dependancy; public DependantParser(int dependantIndex, Dependency dependancy) { this.dependantIndex = dependantIndex; diff --git a/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/EnumParser.java b/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/EnumParser.java index 3da8670c4..b8b8a740c 100644 --- a/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/EnumParser.java +++ b/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/EnumParser.java @@ -8,7 +8,7 @@ import java.util.Collections; public class EnumParser extends AbstractParser { - private final String[] modes; + private String[] modes; public EnumParser(String[] modes) { this.modes = modes; diff --git a/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/ValueParser.java b/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/ValueParser.java index e39bc35a3..4f982d6ad 100644 --- a/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/ValueParser.java +++ b/src/main/java/me/zeroeightsix/kami/command/syntax/parsers/ValueParser.java @@ -12,7 +12,7 @@ import static me.zeroeightsix.kami.KamiMod.MODULE_MANAGER; public class ValueParser extends AbstractParser { - private final int moduleIndex; + private int moduleIndex; public ValueParser(int moduleIndex) { this.moduleIndex = moduleIndex; diff --git a/src/main/java/me/zeroeightsix/kami/event/KamiEvent.java b/src/main/java/me/zeroeightsix/kami/event/KamiEvent.java index 7c194423b..2e1005da2 100644 --- a/src/main/java/me/zeroeightsix/kami/event/KamiEvent.java +++ b/src/main/java/me/zeroeightsix/kami/event/KamiEvent.java @@ -8,8 +8,8 @@ import me.zeroeightsix.kami.util.Wrapper; */ public class KamiEvent extends Cancellable { + private Era era = Era.PRE; private final float partialTicks; - private final Era era = Era.PRE; public KamiEvent() { partialTicks = Wrapper.getMinecraft().getRenderPartialTicks(); diff --git a/src/main/java/me/zeroeightsix/kami/event/events/ChunkEvent.java b/src/main/java/me/zeroeightsix/kami/event/events/ChunkEvent.java index 13eb9c829..43d8def8b 100644 --- a/src/main/java/me/zeroeightsix/kami/event/events/ChunkEvent.java +++ b/src/main/java/me/zeroeightsix/kami/event/events/ChunkEvent.java @@ -8,8 +8,8 @@ import net.minecraft.world.chunk.Chunk; * @author 086 */ public class ChunkEvent extends KamiEvent { - private final Chunk chunk; - private final SPacketChunkData packet; + private Chunk chunk; + private SPacketChunkData packet; public ChunkEvent(Chunk chunk, SPacketChunkData packet) { this.chunk = chunk; diff --git a/src/main/java/me/zeroeightsix/kami/event/events/EntityEvent.java b/src/main/java/me/zeroeightsix/kami/event/events/EntityEvent.java index dcc1b4d69..c31e36627 100644 --- a/src/main/java/me/zeroeightsix/kami/event/events/EntityEvent.java +++ b/src/main/java/me/zeroeightsix/kami/event/events/EntityEvent.java @@ -8,7 +8,7 @@ import net.minecraft.entity.Entity; */ public class EntityEvent extends KamiEvent { - private final Entity entity; + private Entity entity; public EntityEvent(Entity entity) { super(); @@ -33,22 +33,22 @@ public class EntityEvent extends KamiEvent { return x; } - public void setX(double x) { - this.x = x; - } - public double getY() { return y; } - public void setY(double y) { - this.y = y; - } - public double getZ() { return z; } + public void setX(double x) { + this.x = x; + } + + public void setY(double y) { + this.y = y; + } + public void setZ(double z) { this.z = z; } diff --git a/src/main/java/me/zeroeightsix/kami/event/events/EntityUseTotemEvent.java b/src/main/java/me/zeroeightsix/kami/event/events/EntityUseTotemEvent.java index e2dd5b4ec..d541a70ba 100644 --- a/src/main/java/me/zeroeightsix/kami/event/events/EntityUseTotemEvent.java +++ b/src/main/java/me/zeroeightsix/kami/event/events/EntityUseTotemEvent.java @@ -4,7 +4,7 @@ import me.zeroeightsix.kami.event.KamiEvent; import net.minecraft.entity.Entity; public class EntityUseTotemEvent extends KamiEvent { - private final Entity entity; + private Entity entity; public EntityUseTotemEvent(Entity entity) { super(); diff --git a/src/main/java/me/zeroeightsix/kami/event/events/PlayerMoveEvent.java b/src/main/java/me/zeroeightsix/kami/event/events/PlayerMoveEvent.java index e2534ff1b..a4578ed59 100644 --- a/src/main/java/me/zeroeightsix/kami/event/events/PlayerMoveEvent.java +++ b/src/main/java/me/zeroeightsix/kami/event/events/PlayerMoveEvent.java @@ -30,22 +30,22 @@ public class PlayerMoveEvent extends KamiEvent { return x; } - public void setX(double x) { - this.x = x; - } - public double getY() { return y; } - public void setY(double y) { - this.y = y; - } - public double getZ() { return z; } + public void setX(double x) { + this.x = x; + } + + public void setY(double y) { + this.y = y; + } + public void setZ(double z) { this.z = z; } diff --git a/src/main/java/me/zeroeightsix/kami/event/events/PlayerTravelEvent.java b/src/main/java/me/zeroeightsix/kami/event/events/PlayerTravelEvent.java index 23dfa4425..9e6d85fb6 100644 --- a/src/main/java/me/zeroeightsix/kami/event/events/PlayerTravelEvent.java +++ b/src/main/java/me/zeroeightsix/kami/event/events/PlayerTravelEvent.java @@ -2,5 +2,4 @@ package me.zeroeightsix.kami.event.events; import me.zeroeightsix.kami.event.KamiEvent; -public class PlayerTravelEvent extends KamiEvent { -} +public class PlayerTravelEvent extends KamiEvent {} diff --git a/src/main/java/me/zeroeightsix/kami/gui/font/CFont.java b/src/main/java/me/zeroeightsix/kami/gui/font/CFont.java index efe5b38bb..9d5abeeb8 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/font/CFont.java +++ b/src/main/java/me/zeroeightsix/kami/gui/font/CFont.java @@ -9,6 +9,7 @@ import java.awt.image.BufferedImage; public class CFont { + private float imgSize = 512; protected CharData[] charData = new CharData[256]; protected Font font; protected boolean antiAlias; @@ -16,7 +17,6 @@ public class CFont { protected int fontHeight = -1; protected int charOffset = 0; protected DynamicTexture tex; - private final float imgSize = 512; public CFont(Font font, boolean antiAlias, boolean fractionalMetrics) { this.font = font; diff --git a/src/main/java/me/zeroeightsix/kami/gui/font/CFontRenderer.java b/src/main/java/me/zeroeightsix/kami/gui/font/CFontRenderer.java index f82bba5ea..e81cfe331 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/font/CFontRenderer.java +++ b/src/main/java/me/zeroeightsix/kami/gui/font/CFontRenderer.java @@ -10,14 +10,12 @@ import java.util.List; public class CFontRenderer extends CFont { - private final int[] colorCode = new int[32]; - private final String colorcodeIdentifiers = "0123456789abcdefklmnor"; protected CharData[] boldChars = new CharData[256]; protected CharData[] italicChars = new CharData[256]; protected CharData[] boldItalicChars = new CharData[256]; - protected DynamicTexture texBold; - protected DynamicTexture texItalic; - protected DynamicTexture texItalicBold; + + private final int[] colorCode = new int[32]; + private final String colorcodeIdentifiers = "0123456789abcdefklmnor"; public CFontRenderer(Font font, boolean antiAlias, boolean fractionalMetrics) { super(font, antiAlias, fractionalMetrics); @@ -215,6 +213,10 @@ public class CFontRenderer extends CFont { setupBoldItalicIDs(); } + protected DynamicTexture texBold; + protected DynamicTexture texItalic; + protected DynamicTexture texItalicBold; + private void setupBoldItalicIDs() { texBold = setupTexture(this.font.deriveFont(1), this.antiAlias, this.fractionalMetrics, this.boldChars); texItalic = setupTexture(this.font.deriveFont(2), this.antiAlias, this.fractionalMetrics, this.italicChars); @@ -282,7 +284,7 @@ public class CFontRenderer extends CFont { currentWord = currentWord + c; } else { finalWords.add(currentWord); - currentWord = "\u00A7" + lastColorCode + c; + currentWord = "\u00A7" + lastColorCode + String.valueOf(c); } } diff --git a/src/main/java/me/zeroeightsix/kami/gui/kami/DisplayGuiScreen.java b/src/main/java/me/zeroeightsix/kami/gui/kami/DisplayGuiScreen.java index fb7a7b3af..982d3a5b8 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/kami/DisplayGuiScreen.java +++ b/src/main/java/me/zeroeightsix/kami/gui/kami/DisplayGuiScreen.java @@ -24,10 +24,12 @@ import static org.lwjgl.opengl.GL11.glEnable; */ public class DisplayGuiScreen extends GuiScreen { + KamiGUI gui; + public final GuiScreen lastScreen; + public static int mouseX; public static int mouseY; - public final GuiScreen lastScreen; - KamiGUI gui; + Framebuffer framebuffer; public DisplayGuiScreen(GuiScreen lastScreen) { @@ -47,18 +49,6 @@ public class DisplayGuiScreen extends GuiScreen { framebuffer = new Framebuffer(Wrapper.getMinecraft().displayWidth, Wrapper.getMinecraft().displayHeight, false); } - public static int getScale() { - int scaleFactor = 0; - int scale = Wrapper.getMinecraft().gameSettings.guiScale; - if (scale == 0) - scale = 1000; - while (scaleFactor < scale && Wrapper.getMinecraft().displayWidth / (scaleFactor + 1) >= 320 && Wrapper.getMinecraft().displayHeight / (scaleFactor + 1) >= 240) - scaleFactor++; - if (scaleFactor == 0) - scaleFactor = 1; - return scaleFactor; - } - @Override public void onGuiClosed() { KamiGUI gui = KamiMod.getInstance().getGuiManager(); @@ -114,6 +104,18 @@ public class DisplayGuiScreen extends GuiScreen { } } + public static int getScale() { + int scaleFactor = 0; + int scale = Wrapper.getMinecraft().gameSettings.guiScale; + if (scale == 0) + scale = 1000; + while (scaleFactor < scale && Wrapper.getMinecraft().displayWidth / (scaleFactor + 1) >= 320 && Wrapper.getMinecraft().displayHeight / (scaleFactor + 1) >= 240) + scaleFactor++; + if (scaleFactor == 0) + scaleFactor = 1; + return scaleFactor; + } + private void calculateMouse() { Minecraft minecraft = Minecraft.getMinecraft(); int scaleFactor = getScale(); diff --git a/src/main/java/me/zeroeightsix/kami/gui/kami/KamiGUI.java b/src/main/java/me/zeroeightsix/kami/gui/kami/KamiGUI.java index ec70638f7..64e3c4133 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/kami/KamiGUI.java +++ b/src/main/java/me/zeroeightsix/kami/gui/kami/KamiGUI.java @@ -45,79 +45,20 @@ import static me.zeroeightsix.kami.util.InfoCalculator.cardinalToAxis; /** * Created by 086 on 25/06/2017. * Updated by S-B99 on 28/01/20 - * * @see me.zeroeightsix.kami.module.modules.client.InventoryViewer */ public class KamiGUI extends GUI { public static final RootFontRenderer fontRenderer = new RootFontRenderer(1); - private static final int DOCK_OFFSET = 0; - public static ColourHolder primaryColour = new ColourHolder(29, 29, 29); public Theme theme; + public static ColourHolder primaryColour = new ColourHolder(29, 29, 29); + public KamiGUI() { super(new KamiTheme()); theme = getTheme(); } - private static String getEntityName(@Nonnull Entity entity) { - if (entity instanceof EntityItem) { - return TextFormatting.DARK_AQUA + ((EntityItem) entity).getItem().getItem().getItemStackDisplayName(((EntityItem) entity).getItem()); - } - if (entity instanceof EntityWitherSkull) { - return TextFormatting.DARK_GRAY + "Wither skull"; - } - if (entity instanceof EntityEnderCrystal) { - return TextFormatting.LIGHT_PURPLE + "End crystal"; - } - if (entity instanceof EntityEnderPearl) { - return "Thrown ender pearl"; - } - if (entity instanceof EntityMinecart) { - return "Minecart"; - } - if (entity instanceof EntityItemFrame) { - return "Item frame"; - } - if (entity instanceof EntityEgg) { - return "Thrown egg"; - } - if (entity instanceof EntitySnowball) { - return "Thrown snowball"; - } - - return entity.getName(); - } - - public static > Map sortByValue(Map map) { - List> list = - new LinkedList<>(map.entrySet()); - Collections.sort(list, Comparator.comparing(o -> (o.getValue()))); - - Map result = new LinkedHashMap(); - for (Map.Entry entry : list) { - result.put(entry.getKey(), entry.getValue()); - } - return result; - } - - public static void dock(Frame component) { - Docking docking = component.getDocking(); - if (docking.isTop()) - component.setY(DOCK_OFFSET); - if (docking.isBottom()) - component.setY((Wrapper.getMinecraft().displayHeight / DisplayGuiScreen.getScale()) - component.getHeight() - DOCK_OFFSET); - if (docking.isLeft()) - component.setX(DOCK_OFFSET); - if (docking.isRight()) - component.setX((Wrapper.getMinecraft().displayWidth / DisplayGuiScreen.getScale()) - component.getWidth() - DOCK_OFFSET); - if (docking.isCenterHorizontal()) - component.setX((Wrapper.getMinecraft().displayWidth / (DisplayGuiScreen.getScale() * 2) - component.getWidth() / 2)); - if (docking.isCenterVertical()) - component.setY(Wrapper.getMinecraft().displayHeight / (DisplayGuiScreen.getScale() * 2) - component.getHeight() / 2); - - } - @Override public void drawGUI() { super.drawGUI(); @@ -234,21 +175,13 @@ public class KamiGUI extends GUI { } } - @Override - public void onMouseRelease(MouseButtonEvent event) { - } + @Override public void onMouseRelease(MouseButtonEvent event) { } - @Override - public void onMouseDrag(MouseButtonEvent event) { - } + @Override public void onMouseDrag(MouseButtonEvent event) { } - @Override - public void onMouseMove(MouseMoveEvent event) { - } + @Override public void onMouseMove(MouseMoveEvent event) { } - @Override - public void onScroll(MouseScrollEvent event) { - } + @Override public void onScroll(MouseScrollEvent event) { } }); ArrayList frames = new ArrayList<>(); @@ -295,7 +228,7 @@ public class KamiGUI extends GUI { // information2.setFontRenderer(fontRenderer); frames.add(frame); */ - + /* * Information Overlay / InfoOverlay */ @@ -385,10 +318,8 @@ public class KamiGUI extends GUI { String extraPaddingForFactors; EntityPlayer ePlayer = (EntityPlayer) e; - if (ePlayer.isPotionActive(MobEffects.WEAKNESS)) weaknessFactor = "W"; - else weaknessFactor = ""; - if (ePlayer.isPotionActive(MobEffects.STRENGTH)) strengthFactor = "S"; - else strengthFactor = ""; + if (ePlayer.isPotionActive(MobEffects.WEAKNESS)) weaknessFactor = "W"; else weaknessFactor = ""; + if (ePlayer.isPotionActive(MobEffects.STRENGTH)) strengthFactor = "S"; else strengthFactor = ""; if (weaknessFactor.equals("") && strengthFactor.equals("")) extraPaddingForFactors = ""; else extraPaddingForFactors = " "; @@ -437,7 +368,7 @@ public class KamiGUI extends GUI { frame.setCloseable(false); Frame finalFrame1 = frame; entityLabel.addTickListener(new TickListener() { - final Minecraft mc = Wrapper.getMinecraft(); + Minecraft mc = Wrapper.getMinecraft(); @Override public void onTick() { @@ -487,7 +418,7 @@ public class KamiGUI extends GUI { frame.setPinnable(true); Label coordsLabel = new Label(""); coordsLabel.addTickListener(new TickListener() { - final Minecraft mc = Minecraft.getMinecraft(); + Minecraft mc = Minecraft.getMinecraft(); @Override public void onTick() { @@ -565,8 +496,65 @@ public class KamiGUI extends GUI { } } - @Override - public void destroyGUI() { - kill(); + private static String getEntityName(@Nonnull Entity entity) { + if (entity instanceof EntityItem) { + return TextFormatting.DARK_AQUA + ((EntityItem) entity).getItem().getItem().getItemStackDisplayName(((EntityItem) entity).getItem()); + } + if (entity instanceof EntityWitherSkull) { + return TextFormatting.DARK_GRAY + "Wither skull"; + } + if (entity instanceof EntityEnderCrystal) { + return TextFormatting.LIGHT_PURPLE + "End crystal"; + } + if (entity instanceof EntityEnderPearl) { + return "Thrown ender pearl"; + } + if (entity instanceof EntityMinecart) { + return "Minecart"; + } + if (entity instanceof EntityItemFrame) { + return "Item frame"; + } + if (entity instanceof EntityEgg) { + return "Thrown egg"; + } + if (entity instanceof EntitySnowball) { + return "Thrown snowball"; + } + + return entity.getName(); + } + + public static > Map sortByValue(Map map) { + List> list = + new LinkedList<>(map.entrySet()); + Collections.sort(list, Comparator.comparing(o -> (o.getValue()))); + + Map result = new LinkedHashMap(); + for (Map.Entry entry : list) { + result.put(entry.getKey(), entry.getValue()); + } + return result; + } + + @Override public void destroyGUI() { kill(); } + + private static final int DOCK_OFFSET = 0; + + public static void dock(Frame component) { + Docking docking = component.getDocking(); + if (docking.isTop()) + component.setY(DOCK_OFFSET); + if (docking.isBottom()) + component.setY((Wrapper.getMinecraft().displayHeight / DisplayGuiScreen.getScale()) - component.getHeight() - DOCK_OFFSET); + if (docking.isLeft()) + component.setX(DOCK_OFFSET); + if (docking.isRight()) + component.setX((Wrapper.getMinecraft().displayWidth / DisplayGuiScreen.getScale()) - component.getWidth() - DOCK_OFFSET); + if (docking.isCenterHorizontal()) + component.setX((Wrapper.getMinecraft().displayWidth / (DisplayGuiScreen.getScale() * 2) - component.getWidth() / 2)); + if (docking.isCenterVertical()) + component.setY(Wrapper.getMinecraft().displayHeight / (DisplayGuiScreen.getScale() * 2) - component.getHeight() / 2); + } } diff --git a/src/main/java/me/zeroeightsix/kami/gui/kami/component/ActiveModules.java b/src/main/java/me/zeroeightsix/kami/gui/kami/component/ActiveModules.java index d91f6f8ee..49fe5df0d 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/kami/component/ActiveModules.java +++ b/src/main/java/me/zeroeightsix/kami/gui/kami/component/ActiveModules.java @@ -29,4 +29,4 @@ public class ActiveModules extends Label { } }); } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/main/java/me/zeroeightsix/kami/gui/kami/component/EnumButton.java b/src/main/java/me/zeroeightsix/kami/gui/kami/component/EnumButton.java index 4147cfcab..d842796c9 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/kami/component/EnumButton.java +++ b/src/main/java/me/zeroeightsix/kami/gui/kami/component/EnumButton.java @@ -32,6 +32,10 @@ public class EnumButton extends Button { }); } + public void setModes(String[] modes) { + this.modes = modes; + } + protected void increaseIndex(int amount) { int old = index; int newI = index + amount; @@ -49,22 +53,18 @@ public class EnumButton extends Button { return index; } - public void setIndex(int index) { - this.index = index; - } - public String[] getModes() { return modes; } - public void setModes(String[] modes) { - this.modes = modes; - } - public String getIndexMode() { return modes[index]; } + public void setIndex(int index) { + this.index = index; + } + public static abstract class EnumbuttonIndexPoof extends Poof { ButtonPoof.ButtonInfo info; diff --git a/src/main/java/me/zeroeightsix/kami/gui/kami/component/SettingsPanel.java b/src/main/java/me/zeroeightsix/kami/gui/kami/component/SettingsPanel.java index f28673032..fdc2f1427 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/kami/component/SettingsPanel.java +++ b/src/main/java/me/zeroeightsix/kami/gui/kami/component/SettingsPanel.java @@ -41,18 +41,6 @@ public class SettingsPanel extends OrganisedContainer { return module; } - public void setModule(Module module) { - this.module = module; - setMinimumWidth((int) (getParent().getWidth() * .9f)); - prepare(); - - setAffectLayout(false); - for (Component component : children) { - component.setWidth(getWidth() - 10); - component.setX(5); - } - } - private void prepare() { getChildren().clear(); if (module == null) { @@ -155,4 +143,16 @@ public class SettingsPanel extends OrganisedContainer { return; } } + + public void setModule(Module module) { + this.module = module; + setMinimumWidth((int) (getParent().getWidth() * .9f)); + prepare(); + + setAffectLayout(false); + for (Component component : children) { + component.setWidth(getWidth() - 10); + component.setX(5); + } + } } diff --git a/src/main/java/me/zeroeightsix/kami/gui/kami/component/UnboundSlider.java b/src/main/java/me/zeroeightsix/kami/gui/kami/component/UnboundSlider.java index 0203dae56..c9e4ade3a 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/kami/component/UnboundSlider.java +++ b/src/main/java/me/zeroeightsix/kami/gui/kami/component/UnboundSlider.java @@ -9,9 +9,10 @@ import me.zeroeightsix.kami.gui.rgui.component.use.Slider; */ public class UnboundSlider extends AbstractComponent { - public int sensitivity = 5; double value; String text; + public int sensitivity = 5; + int originX; double originValue; @@ -63,10 +64,6 @@ public class UnboundSlider extends AbstractComponent { this.min = min; } - public double getValue() { - return value; - } - public void setValue(double value) { if (min != Double.MIN_VALUE) value = Math.max(value, min); if (max != Double.MAX_VALUE) value = Math.min(value, max); @@ -75,6 +72,10 @@ public class UnboundSlider extends AbstractComponent { this.value = integer ? Math.floor(info.getNewValue()) : info.getNewValue(); } + public double getValue() { + return value; + } + public String getText() { return text; } diff --git a/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/KamiActiveModulesUI.java b/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/KamiActiveModulesUI.java index db3b19600..79fa12320 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/KamiActiveModulesUI.java +++ b/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/KamiActiveModulesUI.java @@ -25,7 +25,6 @@ import static org.lwjgl.opengl.GL11.glDisable; */ public class KamiActiveModulesUI extends AbstractComponentUI { ActiveModules activeMods; - @Override public void renderComponent(me.zeroeightsix.kami.gui.kami.component.ActiveModules component, FontRenderer f) { GL11.glDisable(GL11.GL_CULL_FACE); @@ -61,7 +60,7 @@ public class KamiActiveModulesUI extends AbstractComponentUI { + RootSmallFontRenderer smallFontRenderer = new RootSmallFontRenderer(); + protected Color idleColour = new Color(163, 163, 163); protected Color downColour = new Color(255, 255, 255); - RootSmallFontRenderer smallFontRenderer = new RootSmallFontRenderer(); + EnumButton modeComponent; long lastMS = System.currentTimeMillis(); diff --git a/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/KamiFrameUI.java b/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/KamiFrameUI.java index 68bc62e4e..6eaa2b082 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/KamiFrameUI.java +++ b/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/KamiFrameUI.java @@ -28,9 +28,9 @@ import static org.lwjgl.opengl.GL11.*; */ public class KamiFrameUI extends AbstractComponentUI { - private static final RootFontRenderer ff = new RootLargeFontRenderer(); ColourHolder frameColour = KamiGUI.primaryColour.setA(100); ColourHolder outlineColour = frameColour.darker(); + Component yLineComponent = null; Component xLineComponent = null; Component centerXComponent = null; @@ -39,6 +39,8 @@ public class KamiFrameUI extends AbstractComponentUI { boolean centerY = false; int xLineOffset = 0; + private static final RootFontRenderer ff = new RootLargeFontRenderer(); + @Override public void renderComponent(Frame component, FontRenderer fontRenderer) { if (component.getOpacity() == 0) diff --git a/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/RootCheckButtonUI.java b/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/RootCheckButtonUI.java index de06fca33..72910470c 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/RootCheckButtonUI.java +++ b/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/RootCheckButtonUI.java @@ -48,8 +48,7 @@ public class RootCheckButtonUI extends AbstractComponentU c = (c & GuiC.buttonHoveredN.color.getRGB()) << 1; // hovered text color if (component.hasDescription() && !isSettingsOpen() && MODULE_MANAGER.isModuleEnabled(Tooltips.class)) { Component componentAt = KamiMod.getInstance().guiManager.getComponentAt(DisplayGuiScreen.mouseX, DisplayGuiScreen.mouseY); - if (componentAt.getHeight() != 11) - return; // PREVENT DRAWING WHEN OUTSIDE THE CONTAINER // 11 is height of the regular module + if (componentAt.getHeight() != 11) return; // PREVENT DRAWING WHEN OUTSIDE THE CONTAINER // 11 is height of the regular module glDisable(GL_SCISSOR_TEST); // let it draw outside of the container glDepthRange(0, 0.01); // set render priority to the top diff --git a/src/main/java/me/zeroeightsix/kami/gui/kami/theme/staticui/RadarUI.java b/src/main/java/me/zeroeightsix/kami/gui/kami/theme/staticui/RadarUI.java index a42ead1f0..e81833f2c 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/kami/theme/staticui/RadarUI.java +++ b/src/main/java/me/zeroeightsix/kami/gui/kami/theme/staticui/RadarUI.java @@ -9,6 +9,7 @@ import me.zeroeightsix.kami.util.Wrapper; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.player.EntityPlayer; import org.lwjgl.opengl.GL11; import static org.lwjgl.opengl.GL11.*; @@ -18,8 +19,8 @@ import static org.lwjgl.opengl.GL11.*; */ public class RadarUI extends AbstractComponentUI { - public final static int radius = 45; float scale = 2; + public final static int radius = 45; @Override public void handleSizeComponent(Radar component) { diff --git a/src/main/java/me/zeroeightsix/kami/gui/mc/KamiGuiChat.java b/src/main/java/me/zeroeightsix/kami/gui/mc/KamiGuiChat.java index 77d12942b..0cf492721 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/mc/KamiGuiChat.java +++ b/src/main/java/me/zeroeightsix/kami/gui/mc/KamiGuiChat.java @@ -18,7 +18,7 @@ import static me.zeroeightsix.kami.util.ColourConverter.toF; public class KamiGuiChat extends GuiChat { - private final String startString; + private String startString; private String currentFillinLine; private int cursor; @@ -77,8 +77,7 @@ public class KamiGuiChat extends GuiChat { if (c.getLabel().startsWith(args[0]) || c.getLabel().equals(args[0])) options.put(c.getLabel(), c); - if (c.getAliases() != null) - c.getAliases().stream().filter(alias -> alias.startsWith(args[0]) || alias.equals(args[0])).forEach(alias -> options.put(alias, c)); + if (c.getAliases() != null) c.getAliases().stream().filter(alias -> alias.startsWith(args[0]) || alias.equals(args[0])).forEach(alias -> options.put(alias, c)); } if (options.isEmpty()) { @@ -92,10 +91,9 @@ public class KamiGuiChat extends GuiChat { AtomicBoolean isAlias = new AtomicBoolean(false); currentFillinLine = alphaCommand.getAliases().stream().filter(alias -> - alias.startsWith(args[0])).findFirst().map(s -> { - isAlias.set(true); - return s.substring(args[0].length()); - }).orElseGet(() -> + alias.startsWith(args[0])).findFirst().map(s -> { isAlias.set(true); + return s.substring(args[0].length()); + }).orElseGet(() -> alphaCommand.getLabel().substring(args[0].length())); if (alphaCommand.getSyntaxChunks() == null || alphaCommand.getSyntaxChunks().length == 0) diff --git a/src/main/java/me/zeroeightsix/kami/gui/mc/KamiGuiUpdateNotification.java b/src/main/java/me/zeroeightsix/kami/gui/mc/KamiGuiUpdateNotification.java index 4d782f413..6afd1d585 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/mc/KamiGuiUpdateNotification.java +++ b/src/main/java/me/zeroeightsix/kami/gui/mc/KamiGuiUpdateNotification.java @@ -45,8 +45,7 @@ public class KamiGuiUpdateNotification extends GuiScreen { } @Override - protected void keyTyped(char typedChar, int keyCode) { - } + protected void keyTyped(char typedChar, int keyCode) {} @Override protected void actionPerformed(GuiButton button) { diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/GUI.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/GUI.java index 4e9d1965f..6c69b6e82 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/GUI.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/GUI.java @@ -28,36 +28,11 @@ public abstract class GUI extends AbstractContainer { int mx = 0; int my = 0; - long lastMS = System.currentTimeMillis(); public GUI(Theme theme) { super(theme); } - public static int[] calculateRealPosition(Component c) { - int realX = c.getX(), realY = c.getY(); - if (c instanceof Container) { - realX += ((Container) c).getOriginOffsetX(); - realY += ((Container) c).getOriginOffsetY(); - } - - Component parent = c.getParent(); - while (parent != null) { - realX += parent.getX(); - realY += parent.getY(); - if (parent instanceof Container) { - realX += ((Container) parent).getOriginOffsetX(); - realY += ((Container) parent).getOriginOffsetY(); - } - parent = parent.getParent(); - } - - return new int[]{ - realX, - realY - }; - } - public abstract void initializeGUI(); public abstract void destroyGUI(); @@ -358,6 +333,8 @@ public abstract class GUI extends AbstractContainer { } } + long lastMS = System.currentTimeMillis(); + public void update() { if (System.currentTimeMillis() - lastMS > 1000 / 20) { callTick(this); @@ -372,4 +349,28 @@ public abstract class GUI extends AbstractContainer { public Component getFocus() { return focus; } + + public static int[] calculateRealPosition(Component c) { + int realX = c.getX(), realY = c.getY(); + if (c instanceof Container) { + realX += ((Container) c).getOriginOffsetX(); + realY += ((Container) c).getOriginOffsetY(); + } + + Component parent = c.getParent(); + while (parent != null) { + realX += parent.getX(); + realY += parent.getY(); + if (parent instanceof Container) { + realX += ((Container) parent).getOriginOffsetX(); + realY += ((Container) parent).getOriginOffsetY(); + } + parent = parent.getParent(); + } + + return new int[]{ + realX, + realY + }; + } } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/AbstractComponent.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/AbstractComponent.java index 24f3c13f4..555731b39 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/AbstractComponent.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/AbstractComponent.java @@ -18,33 +18,37 @@ import java.util.ArrayList; */ public abstract class AbstractComponent implements Component { - protected int priority = 0; int x; int y; int width; int height; + int minWidth = Integer.MIN_VALUE; int minHeight = Integer.MIN_VALUE; int maxWidth = Integer.MAX_VALUE; int maxHeight = Integer.MAX_VALUE; + + protected int priority = 0; + private Setting visible = Settings.b("Visible", true); float opacity = 1f; + private boolean focus = false; ComponentUI ui; Theme theme; Container parent; + boolean hover = false; boolean press = false; boolean drag = false; + boolean affectlayout = true; + ArrayList mouseListeners = new ArrayList<>(); ArrayList renderListeners = new ArrayList<>(); ArrayList keyListeners = new ArrayList<>(); ArrayList updateListeners = new ArrayList<>(); ArrayList tickListeners = new ArrayList<>(); + ArrayList poofs = new ArrayList<>(); - boolean workingy = false; - boolean workingx = false; - private Setting visible = Settings.b("Visible", true); - private boolean focus = false; public AbstractComponent() { addMouseListener(new MouseListener() { @@ -103,13 +107,13 @@ public abstract class AbstractComponent implements Component { } @Override - public boolean isFocused() { - return focus; + public void setFocused(boolean focus) { + this.focus = focus; } @Override - public void setFocused(boolean focus) { - this.focus = focus; + public boolean isFocused() { + return focus; } @Override @@ -117,6 +121,38 @@ public abstract class AbstractComponent implements Component { return x; } + @Override + public int getY() { + return y; + } + + @Override + public int getWidth() { + return width; + } + + @Override + public int getHeight() { + return height; + } + + boolean workingy = false; + + public void setY(int y) { + final int oldX = getX(); + final int oldY = getY(); + this.y = y; + if (!workingy) { + workingy = true; + getUpdateListeners().forEach(listener -> listener.updateLocation(this, oldX, oldY)); // First call components own updatelisteners + if (getParent() != null) + getParent().getUpdateListeners().forEach(listener -> listener.updateLocation(this, oldX, oldY)); // And then notify the parent + workingy = false; + } + } + + boolean workingx = false; + public void setX(int x) { final int oldX = getX(); final int oldY = getY(); @@ -130,29 +166,6 @@ public abstract class AbstractComponent implements Component { } } - @Override - public int getY() { - return y; - } - - public void setY(int y) { - final int oldX = getX(); - final int oldY = getY(); - this.y = y; - if (!workingy) { - workingy = true; - getUpdateListeners().forEach(listener -> listener.updateLocation(this, oldX, oldY)); // First call components own updatelisteners - if (getParent() != null) - getParent().getUpdateListeners().forEach(listener -> listener.updateLocation(this, oldX, oldY)); // And then notify the parent - workingy = false; - } - } - - @Override - public int getWidth() { - return width; - } - @Override public void setWidth(int width) { width = Math.max(getMinimumWidth(), Math.min(width, getMaximumWidth())); @@ -165,11 +178,6 @@ public abstract class AbstractComponent implements Component { getParent().getUpdateListeners().forEach(listener -> listener.updateSize(this, oldWidth, oldHeight)); // And then notify the parent } - @Override - public int getHeight() { - return height; - } - @Override public void setHeight(int height) { height = Math.max(getMinimumHeight(), Math.min(height, getMaximumHeight())); @@ -298,7 +306,7 @@ public abstract class AbstractComponent implements Component { boolean liesin = false; if (component instanceof Container) - liesin = liesIn(component); + liesin = liesIn((Container) component); if (liesin) return true; } return false; diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/AlignedComponent.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/AlignedComponent.java index 21437d613..b129c1109 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/AlignedComponent.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/AlignedComponent.java @@ -6,15 +6,7 @@ package me.zeroeightsix.kami.gui.rgui.component; public class AlignedComponent extends AbstractComponent { Alignment alignment; - public Alignment getAlignment() { - return alignment; - } - - public void setAlignment(Alignment alignment) { - this.alignment = alignment; - } - - public enum Alignment { + public static enum Alignment { LEFT(0), CENTER(1), RIGHT(2); int index; @@ -27,4 +19,12 @@ public class AlignedComponent extends AbstractComponent { return index; } } + + public Alignment getAlignment() { + return alignment; + } + + public void setAlignment(Alignment alignment) { + this.alignment = alignment; + } } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/Component.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/Component.java index 4144d99f4..605846cd4 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/Component.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/Component.java @@ -14,96 +14,96 @@ import java.util.ArrayList; */ public interface Component { // Getters for location and size - int getX(); // Relative to its parent. + public int getX(); // Relative to its parent. + + public int getY(); + + public int getWidth(); + + public int getHeight(); // Setters for location and size - void setX(int x); + public void setX(int x); - int getY(); + public void setY(int y); - void setY(int y); + public void setWidth(int width); - int getWidth(); + public void setHeight(int height); - void setWidth(int width); + public Component setMinimumWidth(int width); - int getHeight(); + public Component setMaximumWidth(int width); - void setHeight(int height); + public Component setMinimumHeight(int height); - int getMinimumWidth(); + public Component setMaximumHeight(int height); - Component setMinimumWidth(int width); + public int getMinimumWidth(); - int getMaximumWidth(); + public int getMaximumWidth(); - Component setMaximumWidth(int width); + public int getMinimumHeight(); - int getMinimumHeight(); + public int getMaximumHeight(); - Component setMinimumHeight(int height); + public float getOpacity(); - int getMaximumHeight(); + public void setOpacity(float opacity); - Component setMaximumHeight(int height); + public boolean doAffectLayout(); - float getOpacity(); + public void setAffectLayout(boolean flag); - void setOpacity(float opacity); + public Container getParent(); - boolean doAffectLayout(); + public void setParent(Container parent); - void setAffectLayout(boolean flag); + public boolean liesIn(Component container); - Container getParent(); + public boolean isVisible(); - void setParent(Container parent); + public void setVisible(boolean visible); - boolean liesIn(Component container); + public void setFocused(boolean focus); - boolean isVisible(); + public boolean isFocused(); - void setVisible(boolean visible); + public ComponentUI getUI(); - boolean isFocused(); + public Theme getTheme(); - void setFocused(boolean focus); + public void setTheme(Theme theme); - ComponentUI getUI(); + public boolean isHovered(); - Theme getTheme(); + public boolean isPressed(); - void setTheme(Theme theme); + public ArrayList getMouseListeners(); - boolean isHovered(); + public void addMouseListener(MouseListener listener); - boolean isPressed(); + public ArrayList getRenderListeners(); - ArrayList getMouseListeners(); + public void addRenderListener(RenderListener listener); - void addMouseListener(MouseListener listener); + public ArrayList getKeyListeners(); - ArrayList getRenderListeners(); + public void addKeyListener(KeyListener listener); - void addRenderListener(RenderListener listener); + public ArrayList getUpdateListeners(); - ArrayList getKeyListeners(); + public void addUpdateListener(UpdateListener listener); - void addKeyListener(KeyListener listener); + public ArrayList getTickListeners(); - ArrayList getUpdateListeners(); + public void addTickListener(TickListener listener); - void addUpdateListener(UpdateListener listener); + public void addPoof(IPoof poof); - ArrayList getTickListeners(); + public void callPoof(Class target, PoofInfo info); - void addTickListener(TickListener listener); + public int getPriority(); // The higher, the more prioritized. - void addPoof(IPoof poof); - - void callPoof(Class target, PoofInfo info); - - int getPriority(); // The higher, the more prioritized. - - void kill(); + public void kill(); } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/AbstractContainer.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/AbstractContainer.java index 2e355e12f..11292b7f3 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/AbstractContainer.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/AbstractContainer.java @@ -57,7 +57,8 @@ public abstract class AbstractContainer extends AbstractComponent implements Con @Override public Container removeChild(Component component) { - children.remove(component); + if (children.contains(component)) + children.remove(component); return this; } @@ -149,15 +150,15 @@ public abstract class AbstractContainer extends AbstractComponent implements Con return originoffsetX; } - public void setOriginOffsetX(int originoffsetX) { - this.originoffsetX = originoffsetX; - } - @Override public int getOriginOffsetY() { return originoffsetY; } + public void setOriginOffsetX(int originoffsetX) { + this.originoffsetX = originoffsetX; + } + public void setOriginOffsetY(int originoffsetY) { this.originoffsetY = originoffsetY; } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/Container.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/Container.java index d5bf5aae6..d652cd04e 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/Container.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/Container.java @@ -8,21 +8,21 @@ import java.util.ArrayList; * Created by 086 on 25/06/2017. */ public interface Container extends Component { - ArrayList getChildren(); + public ArrayList getChildren(); - Component getComponentAt(int x, int y); + public Component getComponentAt(int x, int y); - Container addChild(Component... component); + public Container addChild(Component... component); - Container removeChild(Component component); + public Container removeChild(Component component); - boolean hasChild(Component component); + public boolean hasChild(Component component); - void renderChildren(); + public void renderChildren(); - int getOriginOffsetX(); + public int getOriginOffsetX(); - int getOriginOffsetY(); + public int getOriginOffsetY(); - boolean penetrateTest(int x, int y); + public boolean penetrateTest(int x, int y); } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/use/Frame.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/use/Frame.java index 7caad72fd..14c50ca3c 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/use/Frame.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/use/Frame.java @@ -115,14 +115,56 @@ public class Frame extends OrganisedContainer { addMouseListener(new GayMouseListener()); } - public boolean isMinimizeable() { - return isMinimizeable; + // what is this naming?? + public class GayMouseListener implements MouseListener { + @Override + public void onMouseDown(MouseButtonEvent event) { + dx = event.getX() + getOriginOffsetX(); + dy = event.getY() + getOriginOffsetY(); + if (dy <= getOriginOffsetY() && event.getButton() == 0 && dy > 0) + doDrag = true; + else + doDrag = false; + + if (isMinimized && event.getY() > getOriginOffsetY()) + event.cancel(); + } + + @Override + public void onMouseRelease(MouseButtonEvent event) { + doDrag = false; + startDrag = false; + } + + @Override + public void onMouseDrag(MouseButtonEvent event) { + if (!doDrag) return; + startDrag = true; + } + + @Override + public void onMouseMove(MouseMoveEvent event) { + + } + + @Override + public void onScroll(MouseScrollEvent event) { + + } + } + + public void setCloseable(boolean closeable) { + isCloseable = closeable; } public void setMinimizeable(boolean minimizeable) { isMinimizeable = minimizeable; } + public boolean isMinimizeable() { + return isMinimizeable; + } + public boolean isMinimized() { return isMinimized; } @@ -148,26 +190,20 @@ public class Frame extends OrganisedContainer { isMinimized = minimized; } - public boolean isCloseable() { - return isCloseable; - } - - public void setCloseable(boolean closeable) { - isCloseable = closeable; - } + public boolean isCloseable() { return isCloseable; } public boolean isPinnable() { return isPinneable; } - public void setPinnable(boolean pinneable) { - isPinneable = pinneable; - } - public boolean isPinned() { return isPinned; } + public void setPinnable(boolean pinneable) { + isPinneable = pinneable; + } + public void setPinned(boolean pinned) { isPinned = pinned && isPinneable; } @@ -199,52 +235,17 @@ public class Frame extends OrganisedContainer { return x; } - public void setX(int x) { - this.x = x; - } - public int getY() { return y; } + public void setX(int x) { + this.x = x; + } + public void setY(int y) { this.y = y; } } } - - // what is this naming?? - public class GayMouseListener implements MouseListener { - @Override - public void onMouseDown(MouseButtonEvent event) { - dx = event.getX() + getOriginOffsetX(); - dy = event.getY() + getOriginOffsetY(); - doDrag = dy <= getOriginOffsetY() && event.getButton() == 0 && dy > 0; - - if (isMinimized && event.getY() > getOriginOffsetY()) - event.cancel(); - } - - @Override - public void onMouseRelease(MouseButtonEvent event) { - doDrag = false; - startDrag = false; - } - - @Override - public void onMouseDrag(MouseButtonEvent event) { - if (!doDrag) return; - startDrag = true; - } - - @Override - public void onMouseMove(MouseMoveEvent event) { - - } - - @Override - public void onScroll(MouseScrollEvent event) { - - } - } } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/use/Scrollpane.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/use/Scrollpane.java index 975df3293..255787cb2 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/use/Scrollpane.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/container/use/Scrollpane.java @@ -173,10 +173,6 @@ public class Scrollpane extends OrganisedContainer { return doScrollY; } - public int getScrolledX() { - return scrolledX; - } - public void setScrolledX(int scrolledX) { int a = getScrolledX(); this.scrolledX = scrolledX; @@ -185,10 +181,6 @@ public class Scrollpane extends OrganisedContainer { component.setX(component.getX() - dif); } - public int getScrolledY() { - return scrolledY; - } - public void setScrolledY(int scrolledY) { int a = getScrolledY(); this.scrolledY = scrolledY; @@ -197,6 +189,14 @@ public class Scrollpane extends OrganisedContainer { component.setY(component.getY() - dif); } + public int getScrolledX() { + return scrolledX; + } + + public int getScrolledY() { + return scrolledY; + } + public int getMaxScrollX() { return maxScrollX; } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/KeyListener.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/KeyListener.java index ce3f2d7e9..2dadeca4d 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/KeyListener.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/KeyListener.java @@ -5,11 +5,11 @@ package me.zeroeightsix.kami.gui.rgui.component.listen; */ public interface KeyListener { - void onKeyDown(KeyEvent event); + public void onKeyDown(KeyEvent event); - void onKeyUp(KeyEvent event); + public void onKeyUp(KeyEvent event); - class KeyEvent { + public static class KeyEvent { int key; public KeyEvent(int key) { diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/MouseListener.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/MouseListener.java index c63f664a9..b27e5851b 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/MouseListener.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/MouseListener.java @@ -6,17 +6,17 @@ import me.zeroeightsix.kami.gui.rgui.component.Component; * Created by 086 on 26/06/2017. */ public interface MouseListener { - void onMouseDown(MouseButtonEvent event); + public void onMouseDown(MouseButtonEvent event); - void onMouseRelease(MouseButtonEvent event); + public void onMouseRelease(MouseButtonEvent event); - void onMouseDrag(MouseButtonEvent event); + public void onMouseDrag(MouseButtonEvent event); - void onMouseMove(MouseMoveEvent event); + public void onMouseMove(MouseMoveEvent event); - void onScroll(MouseScrollEvent event); + public void onScroll(MouseScrollEvent event); - class MouseMoveEvent { + public static class MouseMoveEvent { boolean cancelled = false; int x; int y; @@ -48,10 +48,6 @@ public interface MouseListener { return y; } - public void setY(int y) { - this.y = y; - } - public int getX() { return x; } @@ -60,12 +56,16 @@ public interface MouseListener { this.x = x; } + public void setY(int y) { + this.y = y; + } + public boolean isCancelled() { return cancelled; } } - class MouseButtonEvent { + public static class MouseButtonEvent { int x; int y; int button; @@ -84,30 +84,30 @@ public interface MouseListener { return component; } - public int getButton() { - return button; - } - public void setButton(int button) { this.button = button; } - public int getX() { - return x; + public int getButton() { + return button; } public void setX(int x) { this.x = x; } - public int getY() { - return y; + public int getX() { + return x; } public void setY(int y) { this.y = y; } + public int getY() { + return y; + } + public void cancel() { cancelled = true; } @@ -117,7 +117,7 @@ public interface MouseListener { } } - class MouseScrollEvent { + public static class MouseScrollEvent { int x; int y; boolean up; @@ -143,22 +143,22 @@ public interface MouseListener { this.up = up; } - public int getX() { - return x; - } - public void setX(int x) { this.x = x; } - public int getY() { - return y; + public int getX() { + return x; } public void setY(int y) { this.y = y; } + public int getY() { + return y; + } + public void cancel() { cancelled = true; } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/RenderListener.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/RenderListener.java index 7c57a9a3f..5c170317f 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/RenderListener.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/RenderListener.java @@ -4,7 +4,7 @@ package me.zeroeightsix.kami.gui.rgui.component.listen; * Created by 086 on 26/06/2017. */ public interface RenderListener { - void onPreRender(); + public void onPreRender(); - void onPostRender(); + public void onPostRender(); } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/UpdateListener.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/UpdateListener.java index d31e72524..ebdf775de 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/UpdateListener.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/listen/UpdateListener.java @@ -6,7 +6,7 @@ import me.zeroeightsix.kami.gui.rgui.component.Component; * Created by 086 on 3/08/2017. */ public interface UpdateListener { - void updateSize(T component, int oldWidth, int oldHeight); + public void updateSize(T component, int oldWidth, int oldHeight); - void updateLocation(T component, int oldX, int oldY); + public void updateLocation(T component, int oldX, int oldY); } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/Button.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/Button.java index 76695c957..75e42be7c 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/Button.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/Button.java @@ -62,14 +62,14 @@ public class Button extends AbstractComponent { return description; } - public void setDescription(String description) { - this.description = description; - } - public boolean hasDescription() { return description != null; } + public void setDescription(String description) { + this.description = description; + } + // Nothing to wipe. @Override public void kill() { diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/CheckButton.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/CheckButton.java index 11b9a2699..834291336 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/CheckButton.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/CheckButton.java @@ -51,14 +51,14 @@ public class CheckButton extends Button { }); } - public boolean isToggled() { - return toggled; - } - public void setToggled(boolean toggled) { this.toggled = toggled; } + public boolean isToggled() { + return toggled; + } + public static abstract class CheckButtonPoof extends Poof { CheckButtonPoofInfo info; @@ -69,13 +69,13 @@ public class CheckButton extends Button { this.action = action; } - public CheckButtonPoofInfoAction getAction() { - return action; - } - public enum CheckButtonPoofInfoAction { TOGGLE, ENABLE, DISABLE } + + public CheckButtonPoofInfoAction getAction() { + return action; + } } } } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/InputField.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/InputField.java index a5a01af99..3ce4f604b 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/InputField.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/InputField.java @@ -53,6 +53,14 @@ public class InputField extends AbstractComponent { FontRenderer fontRenderer = null; + public FontRenderer getFontRenderer() { + return fontRenderer == null ? getTheme().getFontRenderer() : fontRenderer; + } + + public void setFontRenderer(FontRenderer fontRenderer) { + this.fontRenderer = fontRenderer; + } + public InputField(String text) { currentState.text = text; @@ -364,14 +372,6 @@ public class InputField extends AbstractComponent { this(""); } - public FontRenderer getFontRenderer() { - return fontRenderer == null ? getTheme().getFontRenderer() : fontRenderer; - } - - public void setFontRenderer(FontRenderer fontRenderer) { - this.fontRenderer = fontRenderer; - } - public InputState getCurrentState() { return currentState; } @@ -462,9 +462,6 @@ public class InputField extends AbstractComponent { return echoChar != 0; } - public abstract static class InputFieldTextPoof extends Poof { - } - public class InputState { String text; int cursorRow; @@ -525,4 +522,7 @@ public class InputField extends AbstractComponent { this.selectionEnd = selectionEnd; } } + + public abstract static class InputFieldTextPoof extends Poof { + } } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/Label.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/Label.java index c509d092a..64e0a078c 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/Label.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/Label.java @@ -30,11 +30,6 @@ public class Label extends AlignedComponent { return text; } - public void setText(String text) { - this.text = text; - getTheme().getUIForComponent(this).handleSizeComponent(this); - } - public String[] getLines() { String[] lines; if (isMultiline()) { @@ -45,6 +40,11 @@ public class Label extends AlignedComponent { return lines; } + public void setText(String text) { + this.text = text; + getTheme().getUIForComponent(this).handleSizeComponent(this); + } + public void addText(String add) { setText(getText() + add); } @@ -70,10 +70,6 @@ public class Label extends AlignedComponent { return shadow; } - public void setShadow(boolean shadow) { - this.shadow = shadow; - } - public FontRenderer getFontRenderer() { return fontRenderer; } @@ -88,4 +84,8 @@ public class Label extends AlignedComponent { setFontRenderer(theme.getFontRenderer()); getTheme().getUIForComponent(this).handleSizeComponent(this); } + + public void setShadow(boolean shadow) { + this.shadow = shadow; + } } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/Slider.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/Slider.java index 1f26868dd..4cb0c5b6d 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/Slider.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/component/use/Slider.java @@ -59,6 +59,14 @@ public class Slider extends AbstractComponent { this(value, minimum, maximum, getDefaultStep(minimum, maximum), text, false); } + private double calculateValue(double x) { + double d1 = x / getWidth(); + double d2 = (maximum - minimum); + double s = d1 * d2 + minimum; + + return MathHelper.clamp(Math.floor((Math.round(s / step) * step) * 100) / 100, minimum, maximum); // round to 2 decimals & clamp min and max + } + public static double getDefaultStep(double min, double max) { double s = gcd(min, max); if (s == max) { @@ -71,21 +79,6 @@ public class Slider extends AbstractComponent { return s; } - public static double gcd(double a, double b) { - a = Math.floor(a); - b = Math.floor(b); - if (a == 0 || b == 0) return a + b; // base case - return gcd(b, a % b); - } - - private double calculateValue(double x) { - double d1 = x / getWidth(); - double d2 = (maximum - minimum); - double s = d1 * d2 + minimum; - - return MathHelper.clamp(Math.floor((Math.round(s / step) * step) * 100) / 100, minimum, maximum); // round to 2 decimals & clamp min and max - } - public String getText() { return text; } @@ -98,13 +91,6 @@ public class Slider extends AbstractComponent { return value; } - public void setValue(double value) { - SliderPoof.SliderPoofInfo info = new SliderPoof.SliderPoofInfo(this.value, value); - callPoof(SliderPoof.class, info); - double newValue = info.getNewValue(); - this.value = integer ? (int) newValue : newValue; - } - public double getMaximum() { return maximum; } @@ -113,6 +99,13 @@ public class Slider extends AbstractComponent { return minimum; } + public void setValue(double value) { + SliderPoof.SliderPoofInfo info = new SliderPoof.SliderPoofInfo(this.value, value); + callPoof(SliderPoof.class, info); + double newValue = info.getNewValue(); + this.value = integer ? (int) newValue : newValue; + } + public static abstract class SliderPoof extends Poof { public static class SliderPoofInfo extends PoofInfo { double oldValue; @@ -137,4 +130,11 @@ public class Slider extends AbstractComponent { } } + public static double gcd(double a, double b) { + a = Math.floor(a); + b = Math.floor(b); + if (a == 0 || b == 0) return a + b; // base case + return gcd(b, a % b); + } + } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/layout/Layout.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/layout/Layout.java index f6e0f7c37..6466bf82c 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/layout/Layout.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/layout/Layout.java @@ -7,6 +7,6 @@ import me.zeroeightsix.kami.gui.rgui.component.container.Container; */ public interface Layout { - void organiseContainer(Container container); + public void organiseContainer(Container container); } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/poof/IPoof.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/poof/IPoof.java index b8ccef35b..2c39a7b95 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/poof/IPoof.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/poof/IPoof.java @@ -6,9 +6,9 @@ import me.zeroeightsix.kami.gui.rgui.component.Component; * Created by 086 on 21/07/2017. */ public interface IPoof { - void execute(T component, S info); + public void execute(T component, S info); - Class getComponentClass(); + public Class getComponentClass(); - Class getInfoClass(); + public Class getInfoClass(); } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/poof/use/FramePoof.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/poof/use/FramePoof.java index e2d5c1fcd..6bf5a9d73 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/poof/use/FramePoof.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/poof/use/FramePoof.java @@ -7,12 +7,8 @@ import me.zeroeightsix.kami.gui.rgui.poof.PoofInfo; * Created by 086 on 29/07/2017. */ public abstract class FramePoof extends Poof { - public enum Action { - MINIMIZE, MAXIMIZE, CLOSE - } - public static class FramePoofInfo extends PoofInfo { - private final Action action; + private Action action; public FramePoofInfo(Action action) { this.action = action; @@ -22,4 +18,8 @@ public abstract class FramePoof extends return action; } } + + public enum Action { + MINIMIZE, MAXIMIZE, CLOSE + } } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/poof/use/Poof.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/poof/use/Poof.java index ddf7b373e..700c19b6f 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/poof/use/Poof.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/poof/use/Poof.java @@ -12,8 +12,8 @@ import java.lang.reflect.ParameterizedType; */ public abstract class Poof implements IPoof { - private final Class componentclass; - private final Class infoclass; + private Class componentclass; + private Class infoclass; public Poof() { this.componentclass = (Class) ((ParameterizedType) getClass() diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/render/AbstractComponentUI.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/render/AbstractComponentUI.java index e64ff1a4f..7586f6c06 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/render/AbstractComponentUI.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/render/AbstractComponentUI.java @@ -11,7 +11,7 @@ import java.lang.reflect.ParameterizedType; */ public abstract class AbstractComponentUI implements ComponentUI { - private final Class persistentClass; + private Class persistentClass; public AbstractComponentUI() { this.persistentClass = (Class) ((ParameterizedType) getClass() diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/render/ComponentUI.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/render/ComponentUI.java index dafc92c68..7e05c118a 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/render/ComponentUI.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/render/ComponentUI.java @@ -9,24 +9,24 @@ import me.zeroeightsix.kami.gui.rgui.render.font.FontRenderer; */ public interface ComponentUI { - void renderComponent(T component, FontRenderer fontRenderer); + public void renderComponent(T component, FontRenderer fontRenderer); - void handleMouseDown(T component, int x, int y, int button); + public void handleMouseDown(T component, int x, int y, int button); - void handleMouseRelease(T component, int x, int y, int button); + public void handleMouseRelease(T component, int x, int y, int button); - void handleMouseDrag(T component, int x, int y, int button); + public void handleMouseDrag(T component, int x, int y, int button); - void handleScroll(T component, int x, int y, int amount, boolean up); + public void handleScroll(T component, int x, int y, int amount, boolean up); - void handleKeyDown(T component, int key); + public void handleKeyDown(T component, int key); - void handleKeyUp(T component, int key); + public void handleKeyUp(T component, int key); - void handleAddComponent(T component, Container container); + public void handleAddComponent(T component, Container container); - void handleSizeComponent(T component); + public void handleSizeComponent(T component); - Class getHandledClass(); + public Class getHandledClass(); } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/render/font/FontRenderer.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/render/font/FontRenderer.java index 57cee7ce4..3bb38f793 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/render/font/FontRenderer.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/render/font/FontRenderer.java @@ -7,20 +7,20 @@ import java.awt.*; */ public interface FontRenderer { - int getFontHeight(); + public int getFontHeight(); - int getStringHeight(String text); + public int getStringHeight(String text); - int getStringWidth(String text); + public int getStringWidth(String text); - void drawString(int x, int y, String text); + public void drawString(int x, int y, String text); - void drawString(int x, int y, int r, int g, int b, String text); + public void drawString(int x, int y, int r, int g, int b, String text); - void drawString(int x, int y, Color color, String text); + public void drawString(int x, int y, Color color, String text); - void drawString(int x, int y, int colour, String text); + public void drawString(int x, int y, int colour, String text); - void drawStringWithShadow(int x, int y, int r, int g, int b, String text); + public void drawStringWithShadow(int x, int y, int r, int g, int b, String text); } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/render/theme/Theme.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/render/theme/Theme.java index c8a8010e6..6bf71a9cc 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/render/theme/Theme.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/render/theme/Theme.java @@ -8,7 +8,7 @@ import me.zeroeightsix.kami.gui.rgui.render.font.FontRenderer; * Created by 086 on 25/06/2017. */ public interface Theme { - ComponentUI getUIForComponent(Component component); + public ComponentUI getUIForComponent(Component component); - FontRenderer getFontRenderer(); + public FontRenderer getFontRenderer(); } diff --git a/src/main/java/me/zeroeightsix/kami/gui/rgui/render/util/Uniform.java b/src/main/java/me/zeroeightsix/kami/gui/rgui/render/util/Uniform.java index 0891bded3..49aba0488 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/rgui/render/util/Uniform.java +++ b/src/main/java/me/zeroeightsix/kami/gui/rgui/render/util/Uniform.java @@ -28,17 +28,6 @@ public final class Uniform { this.location = location; } - /** - * Creates a uniform variable from the shader object id and the uniform's name - * - * @param shaderID Shader object ID - * @param uniformName Uniform Name - * @return The UniformVariable representation - */ - public static Uniform get(int shaderID, String uniformName) { - return new Uniform(uniformName, glGetUniformLocationARB(shaderID, uniformName)); - } - /** * Sets the value of this Uniform as an Int * @@ -97,4 +86,15 @@ public final class Uniform { public final int getLocation() { return this.location; } + + /** + * Creates a uniform variable from the shader object id and the uniform's name + * + * @param shaderID Shader object ID + * @param uniformName Uniform Name + * @return The UniformVariable representation + */ + public static Uniform get(int shaderID, String uniformName) { + return new Uniform(uniformName, glGetUniformLocationARB(shaderID, uniformName)); + } } \ No newline at end of file diff --git a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinBlockSoulSand.java b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinBlockSoulSand.java index 74af1adde..5c464b6cf 100644 --- a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinBlockSoulSand.java +++ b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinBlockSoulSand.java @@ -22,8 +22,7 @@ public class MixinBlockSoulSand { @Inject(method = "onEntityCollision", at = @At("HEAD"), cancellable = true) public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState state, Entity entityIn, CallbackInfo info) { // If noslowdown is on, just don't do anything else in this method (slow the player) - if (MODULE_MANAGER.isModuleEnabled(NoSlowDown.class) && MODULE_MANAGER.getModuleT(NoSlowDown.class).soulSand.getValue()) - info.cancel(); + if (MODULE_MANAGER.isModuleEnabled(NoSlowDown.class) && MODULE_MANAGER.getModuleT(NoSlowDown.class).soulSand.getValue()) info.cancel(); } } diff --git a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinBlockWeb.java b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinBlockWeb.java index 18c18d4c6..7bf874605 100644 --- a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinBlockWeb.java +++ b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinBlockWeb.java @@ -14,8 +14,8 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import static me.zeroeightsix.kami.KamiMod.MODULE_MANAGER; /** - * @author 086 * @see MixinBlockSoulSand + * @author 086 */ @Mixin(BlockWeb.class) public class MixinBlockWeb { @@ -23,8 +23,7 @@ public class MixinBlockWeb { @Inject(method = "onEntityCollision", at = @At("HEAD"), cancellable = true) public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState state, Entity entityIn, CallbackInfo info) { // If noslowdown is on, just don't do anything else in this method (slow the player) - if (MODULE_MANAGER.isModuleEnabled(NoSlowDown.class) && MODULE_MANAGER.getModuleT(NoSlowDown.class).cobweb.getValue()) - info.cancel(); + if (MODULE_MANAGER.isModuleEnabled(NoSlowDown.class) && MODULE_MANAGER.getModuleT(NoSlowDown.class).cobweb.getValue()) info.cancel(); } } diff --git a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinEntityPlayerSP.java b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinEntityPlayerSP.java index d9143bb7a..01364c97d 100644 --- a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinEntityPlayerSP.java +++ b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinEntityPlayerSP.java @@ -51,7 +51,7 @@ public abstract class MixinEntityPlayerSP extends EntityPlayer { public void onDisplayGUIChest(IInventory chestInventory, CallbackInfo ci) { if (MODULE_MANAGER.isModuleEnabled(BeaconSelector.class)) { if (chestInventory instanceof IInteractionObject) { - if ("minecraft:beacon".equals(((IInteractionObject) chestInventory).getGuiID())) { + if ("minecraft:beacon".equals(((IInteractionObject)chestInventory).getGuiID())) { Minecraft.getMinecraft().displayGuiScreen(new BeaconGui(this.inventory, chestInventory)); ci.cancel(); } diff --git a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinGuiChat.java b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinGuiChat.java index ed19c5f69..1ae3b2af8 100644 --- a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinGuiChat.java +++ b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinGuiChat.java @@ -17,12 +17,14 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(GuiChat.class) public abstract class MixinGuiChat { + @Shadow + protected GuiTextField inputField; + @Shadow public String historyBuffer; + @Shadow public int sentHistoryCursor; - @Shadow - protected GuiTextField inputField; @Shadow public abstract void initGui(); diff --git a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinGuiMainMenu.java b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinGuiMainMenu.java index dbd874114..539786568 100644 --- a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinGuiMainMenu.java +++ b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinGuiMainMenu.java @@ -5,7 +5,9 @@ import me.zeroeightsix.kami.gui.mc.KamiGuiUpdateNotification; import me.zeroeightsix.kami.util.Wrapper; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiMainMenu; +import net.minecraft.client.gui.GuiScreen; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; diff --git a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinGuiScreen.java b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinGuiScreen.java index ec54ac5de..08cad71e9 100644 --- a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinGuiScreen.java +++ b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinGuiScreen.java @@ -26,8 +26,7 @@ import static me.zeroeightsix.kami.KamiMod.MODULE_MANAGER; @Mixin(GuiScreen.class) public class MixinGuiScreen { - @Shadow - public Minecraft mc; + @Shadow public Minecraft mc; RenderItem itemRender = Minecraft.getMinecraft().getRenderItem(); FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; @@ -41,7 +40,7 @@ public class MixinGuiScreen { // We'll take over! info.cancel(); - NonNullList nonnulllist = NonNullList.withSize(27, ItemStack.EMPTY); + NonNullList nonnulllist = NonNullList.withSize(27, ItemStack.EMPTY); ItemStackHelper.loadAllItems(blockEntityTag, nonnulllist); GlStateManager.enableBlend(); @@ -101,9 +100,9 @@ public class MixinGuiScreen { * see https://github.com/kami-blue/client/pull/293 for discussion * authors words: * Also @S-B99 you should be more careful with merging commits, especially from people who are new to coding. Stuff like this is obviously stolen, and can get your repository DMCA'd. - *

+ * * as shown be the rest of his discussion, he was fine with it - * I even aknowledged when it was added, after cookies approval, that it was pasted from backdoored. + * I even aknowledged when it was added, after cookies approval, that it was pasted from backdoored. */ @Inject(method = "Lnet/minecraft/client/gui/GuiScreen;drawWorldBackground(I)V", at = @At("HEAD"), cancellable = true) private void drawWorldBackgroundWrapper(final int tint, final CallbackInfo ci) { diff --git a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinLayerArmorBase.java b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinLayerArmorBase.java index ffedea204..be44b8b3b 100644 --- a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinLayerArmorBase.java +++ b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinLayerArmorBase.java @@ -17,7 +17,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; */ @Mixin(LayerArmorBase.class) public abstract class MixinLayerArmorBase { - @Inject(method = "renderArmorLayer", at = @At("HEAD"), cancellable = true) + @Inject(method = "renderArmorLayer", at=@At("HEAD"), cancellable = true) public void onRenderArmorLayer(EntityLivingBase entityLivingBaseIn, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, float netHeadYaw, float headPitch, float scale, EntityEquipmentSlot slotIn, CallbackInfo ci) { if (ArmourHide.INSTANCE.isEnabled()) { if (!(ArmourHide.INSTANCE.player.getValue()) && entityLivingBaseIn instanceof EntityPlayer) { diff --git a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinMovementInputFromOptions.java b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinMovementInputFromOptions.java index f2d0949bc..b6c64c6cb 100644 --- a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinMovementInputFromOptions.java +++ b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinMovementInputFromOptions.java @@ -12,11 +12,13 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; import static me.zeroeightsix.kami.KamiMod.MODULE_MANAGER; +import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; /** * @author Finz0 * Used with LGPLv3 license permission * https://github.com/S-B99/osiris/blob/master/src/main/java/me/finz0/osiris/mixin/mixins/MixinMovementInputFromOptions.java + * * @see InventoryMove */ @Mixin(value = MovementInputFromOptions.class, priority = Integer.MAX_VALUE) diff --git a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinRenderGlobal.java b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinRenderGlobal.java index a3c7e7011..be831a248 100644 --- a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinRenderGlobal.java +++ b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinRenderGlobal.java @@ -12,10 +12,10 @@ import org.spongepowered.asm.mixin.Shadow; @Mixin(RenderGlobal.class) public class MixinRenderGlobal { - @Shadow - public ChunkRenderContainer renderContainer; @Shadow Minecraft mc; + @Shadow + public ChunkRenderContainer renderContainer; // @Inject(method = "renderBlockLayer(Lnet/minecraft/util/BlockRenderLayer;)V", at = @At("HEAD"), cancellable = true) // public void renderBlockLayer(BlockRenderLayer blockLayerIn, CallbackInfo callbackInfo) { diff --git a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinVisGraph.java b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinVisGraph.java index c3efab7b3..125e16bcf 100644 --- a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinVisGraph.java +++ b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinVisGraph.java @@ -25,7 +25,7 @@ public class MixinVisGraph { // This part prevents the "block-level culling". OptiFine does this for you but vanilla doesn't. // We have to implement this here or else OptiFine causes trouble. if (MODULE_MANAGER.isModuleEnabled(Freecam.class)) - callbackInfo.setReturnValue(EnumSet.allOf(EnumFacing.class)); + callbackInfo.setReturnValue(EnumSet.allOf(EnumFacing.class)); } } diff --git a/src/main/java/me/zeroeightsix/kami/module/Module.java b/src/main/java/me/zeroeightsix/kami/module/Module.java index 9c5dd23e5..de230cfdc 100644 --- a/src/main/java/me/zeroeightsix/kami/module/Module.java +++ b/src/main/java/me/zeroeightsix/kami/module/Module.java @@ -25,32 +25,24 @@ import java.util.List; */ public class Module { - protected static final Minecraft mc = Minecraft.getMinecraft(); private final String originalName = getAnnotation().name(); private final Category category = getAnnotation().category(); private final String description = getAnnotation().description(); - public boolean alwaysListening; - public List settingList = new ArrayList<>(); - private Setting name = register(Settings.s("Name", originalName)); + private final Setting name = register(Settings.s("Name", originalName)); private Setting bind = register(Settings.custom("Bind", Bind.none(), new BindConverter()).build()); private Setting enabled = register(Settings.booleanBuilder("Enabled").withVisibility(aBoolean -> false).withValue(false).build()); private Setting showOnArray = register(Settings.e("Visible", getAnnotation().showOnArray())); + public boolean alwaysListening; + protected static final Minecraft mc = Minecraft.getMinecraft(); + + public List settingList = new ArrayList<>(); + public Module() { alwaysListening = getAnnotation().alwaysListening(); registerAll(bind, enabled, showOnArray); } - /* If you change a setting with ;set or eg a defaults button the GUI doesn't update, so call this */ - public static void closeSettings() { - List panels = ContainerHelper.getAllChildren(SettingsPanel.class, KamiMod.getInstance().getGuiManager()); - for (SettingsPanel settingsPanel : panels) { - if (settingsPanel.isVisible()) { - settingsPanel.setModule(null); - } - } - } - private Info getAnnotation() { if (getClass().isAnnotationPresent(Info.class)) { return getClass().getAnnotation(Info.class); @@ -58,21 +50,22 @@ public class Module { throw new IllegalStateException("No Annotation on class " + this.getClass().getCanonicalName() + "!"); } - public void onUpdate() { - } + public void onUpdate() {} - public void onRender() { - } + public void onRender() {} - public void onWorldRender(RenderEvent event) { + public void onWorldRender(RenderEvent event) {} + + public Bind getBind() { + return bind.getValue(); } // public boolean showOnArray() { // return showOnArray.getValue(); // } - public Bind getBind() { - return bind.getValue(); + public enum ShowOnArray { + ON, OFF } public ShowOnArray getShowOnArray() { @@ -83,116 +76,12 @@ public class Module { return bind.getValue().toString(); } - public String getOriginalName() { - return originalName; - } - - public String getName() { - return name.getValue(); - } - public void setName(String name) { this.name.setValue(name); } - public String getChatName() { - return "[" + name.getValue() + "] "; - } - - public String getDescription() { - return description; - } - - public Category getCategory() { - return category; - } - - public boolean isEnabled() { - return enabled.getValue(); - } - - public void setEnabled(boolean enabled) { - boolean prev = this.enabled.getValue(); - if (prev != enabled) - if (enabled) - enable(); - else - disable(); - } - - public boolean isOnArray() { - return showOnArray.getValue().equals(ShowOnArray.ON); - } - - public boolean isProduction() { - return !category.equals(Category.EXPERIMENTAL) && !category.equals(Category.HIDDEN); - } - - protected void onEnable() { - } - - protected void onDisable() { - } - - public void toggle() { - setEnabled(!isEnabled()); - } - - public void enable() { - enabled.setValue(true); - onEnable(); - if (!alwaysListening) - KamiMod.EVENT_BUS.subscribe(this); - } - - public void disable() { - enabled.setValue(false); - onDisable(); - if (!alwaysListening) - KamiMod.EVENT_BUS.unsubscribe(this); - } - - public boolean isDisabled() { - return !isEnabled(); - } - - public String getHudInfo() { - return null; - } - - protected final void setAlwaysListening(boolean alwaysListening) { - this.alwaysListening = alwaysListening; - if (alwaysListening) KamiMod.EVENT_BUS.subscribe(this); - if (!alwaysListening && isDisabled()) KamiMod.EVENT_BUS.unsubscribe(this); - } - - /** - * Cleanup method in case this module wants to do something when the client closes down - */ - public void destroy() { - } - - protected void registerAll(Setting... settings) { - for (Setting setting : settings) { - register(setting); - } - } - - protected Setting register(Setting setting) { - if (settingList == null) settingList = new ArrayList<>(); - settingList.add(setting); - return SettingBuilder.register(setting, "modules." + originalName); - } - - protected Setting register(SettingBuilder builder) { - if (settingList == null) settingList = new ArrayList<>(); - Setting setting = builder.buildAndRegister("modules." + name); - settingList.add(setting); - return setting; - } - - public enum ShowOnArray { - ON, OFF + public String getOriginalName() { + return originalName; } /** @@ -221,7 +110,6 @@ public class Module { public boolean isHidden() { return hidden; } - public String getName() { return name; } @@ -230,16 +118,109 @@ public class Module { @Retention(RetentionPolicy.RUNTIME) public @interface Info { String name(); - String description(); - Module.Category category(); - boolean alwaysListening() default false; - ShowOnArray showOnArray() default ShowOnArray.ON; } + public String getName() { + return name.getValue(); + } + + public String getChatName() { + return "[" + name.getValue() + "] "; + } + + public String getDescription() { return description; } + + public Category getCategory() { return category; } + + public boolean isEnabled() { return enabled.getValue(); } + + public boolean isOnArray() { return showOnArray.getValue().equals(ShowOnArray.ON); } + + public boolean isProduction() { return !category.equals(Category.EXPERIMENTAL) && !category.equals(Category.HIDDEN); } + + protected void onEnable() {} + + protected void onDisable() {} + + public void toggle() { setEnabled(!isEnabled()); } + + public void enable() { + enabled.setValue(true); + onEnable(); + if (!alwaysListening) + KamiMod.EVENT_BUS.subscribe(this); + } + + public void disable() { + enabled.setValue(false); + onDisable(); + if (!alwaysListening) + KamiMod.EVENT_BUS.unsubscribe(this); + } + + public boolean isDisabled() { + return !isEnabled(); + } + + public void setEnabled(boolean enabled) { + boolean prev = this.enabled.getValue(); + if (prev != enabled) + if (enabled) + enable(); + else + disable(); + } + + public String getHudInfo() { + return null; + } + + protected final void setAlwaysListening(boolean alwaysListening) { + this.alwaysListening = alwaysListening; + if (alwaysListening) KamiMod.EVENT_BUS.subscribe(this); + if (!alwaysListening && isDisabled()) KamiMod.EVENT_BUS.unsubscribe(this); + } + + /** + * Cleanup method in case this module wants to do something when the client closes down + */ + public void destroy() { + } + + /* If you change a setting with ;set or eg a defaults button the GUI doesn't update, so call this */ + public static void closeSettings() { + List panels = ContainerHelper.getAllChildren(SettingsPanel.class, KamiMod.getInstance().getGuiManager()); + for (SettingsPanel settingsPanel : panels) { + if (settingsPanel.isVisible()) { + settingsPanel.setModule(null); + } + } + } + + protected void registerAll(Setting... settings) { + for (Setting setting : settings) { + register(setting); + } + } + + protected Setting register(Setting setting) { + if (settingList == null) settingList = new ArrayList<>(); + settingList.add(setting); + return SettingBuilder.register(setting, "modules." + originalName); + } + + protected Setting register(SettingBuilder builder) { + if (settingList == null) settingList = new ArrayList<>(); + Setting setting = builder.buildAndRegister("modules." + name); + settingList.add(setting); + return setting; + } + + private class BindConverter extends Converter { @Override protected JsonElement doForward(Bind bind) { diff --git a/src/main/java/me/zeroeightsix/kami/module/ModuleManager.java b/src/main/java/me/zeroeightsix/kami/module/ModuleManager.java index c6834c125..a4e8ee13b 100644 --- a/src/main/java/me/zeroeightsix/kami/module/ModuleManager.java +++ b/src/main/java/me/zeroeightsix/kami/module/ModuleManager.java @@ -25,7 +25,7 @@ public class ModuleManager { /** * Linked map for the registered Modules */ - private final Map, Module> modules = new LinkedHashMap<>(); + private Map, Module> modules = new LinkedHashMap<>(); /** * Registers modules, and then calls updateLookup() for indexing. @@ -123,7 +123,7 @@ public class ModuleManager { * Get typed module object so that no casting is needed afterwards. * * @param clazz Module class - * @param Type of module + * @param Type of module * @return Object */ public T getModuleT(Class clazz) { diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/capes/Capes.java b/src/main/java/me/zeroeightsix/kami/module/modules/capes/Capes.java index c4a224771..669b11459 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/capes/Capes.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/capes/Capes.java @@ -30,9 +30,11 @@ import java.util.Map; @Module.Info(name = "Capes", category = Module.Category.CLIENT, description = "Controls the display of KAMI Blue capes", showOnArray = Module.ShowOnArray.OFF) public class Capes extends Module { - public static Capes INSTANCE; // This allows controlling if other capes (Mojang, OptiFine) should override the KAMI Blue cape. public Setting overrideOtherCapes = register(Settings.b("Override Other Capes", true)); + + public static Capes INSTANCE; + // This starts out null, and then is replaced from another thread if the Capes module is enabled. // It maps the UUIDs to CachedCape instances. // When it arrives here it must no longer be modified. @@ -44,36 +46,6 @@ public class Capes extends Module { INSTANCE = this; } - public static ResourceLocation getCapeResource(AbstractClientPlayer player) { - CachedCape result = INSTANCE.allCapes.get(player.getUniqueID().toString()); - if (result == null) - return null; - result.request(); - return result.location; - } - - private static BufferedImage parseCape(BufferedImage img) { - int imageWidth = 64; - int imageHeight = 32; - - int srcWidth = img.getWidth(); - int srcHeight = img.getHeight(); - while (imageWidth < srcWidth || imageHeight < srcHeight) { - imageWidth *= 2; - imageHeight *= 2; - } - BufferedImage imgNew = new BufferedImage(imageWidth, imageHeight, 2); - Graphics g = imgNew.getGraphics(); - g.drawImage(img, 0, 0, null); - g.dispose(); - - return imgNew; - } - - private static String formatUUID(String uuid) { - return uuid.replaceAll("-", ""); - } - @Override public void onEnable() { // Begin the download if we haven't begun the download before and we're enabling the module. @@ -111,6 +83,42 @@ public class Capes extends Module { } } + public static ResourceLocation getCapeResource(AbstractClientPlayer player) { + CachedCape result = INSTANCE.allCapes.get(player.getUniqueID().toString()); + if (result == null) + return null; + result.request(); + return result.location; + } + + private static BufferedImage parseCape(BufferedImage img) { + int imageWidth = 64; + int imageHeight = 32; + + int srcWidth = img.getWidth(); + int srcHeight = img.getHeight(); + while (imageWidth < srcWidth || imageHeight < srcHeight) { + imageWidth *= 2; + imageHeight *= 2; + } + BufferedImage imgNew = new BufferedImage(imageWidth, imageHeight, 2); + Graphics g = imgNew.getGraphics(); + g.drawImage(img, 0, 0, null); + g.dispose(); + + return imgNew; + } + + private static String formatUUID(String uuid) { + return uuid.replaceAll("-", ""); + } + + // This is the raw Gson structure as seen in the assets + public class CapeUser { + public String uuid; + public String url; + } + // This is the shared cape instance. private static class CachedCape { public final ResourceLocation location; @@ -134,8 +142,7 @@ public class Capes extends Module { } @Override - public void skinAvailable() { - } + public void skinAvailable() {} }; TextureManager textureManager = Wrapper.getMinecraft().getTextureManager(); @@ -144,10 +151,4 @@ public class Capes extends Module { textureManager.loadTexture(location, textureCape); } } - - // This is the raw Gson structure as seen in the assets - public class CapeUser { - public String uuid; - public String url; - } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/capes/LayerCape.java b/src/main/java/me/zeroeightsix/kami/module/modules/capes/LayerCape.java index f08f94d54..5b4090138 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/capes/LayerCape.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/capes/LayerCape.java @@ -24,8 +24,7 @@ public class LayerCape implements LayerRenderer { ResourceLocation rl = Capes.getCapeResource(player); ItemStack itemstack = player.getItemStackFromSlot(EntityEquipmentSlot.CHEST); - if (!player.hasPlayerInfo() || player.isInvisible() || !player.isWearing(EnumPlayerModelParts.CAPE) || itemstack.getItem() == Items.ELYTRA || rl == null) - return; + if (!player.hasPlayerInfo() || player.isInvisible() || !player.isWearing(EnumPlayerModelParts.CAPE) || itemstack.getItem() == Items.ELYTRA || rl == null) return; float f9 = 0.14f; float f10 = 0.0f; diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/chat/AntiSpam.java b/src/main/java/me/zeroeightsix/kami/module/modules/chat/AntiSpam.java index d9ffbe5ed..4caae9717 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/chat/AntiSpam.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/chat/AntiSpam.java @@ -62,27 +62,9 @@ public class AntiSpam extends Module { private Setting showBlocked = register(Settings.enumBuilder(ShowBlocked.class).withName("Show Blocked").withValue(ShowBlocked.LOG_FILE).withVisibility(v -> p.getValue().equals(Page.TWO)).build()); private ConcurrentHashMap messageHistory; - private final Map, String[]> settingMap = new HashMap, String[]>() {{ - put(wordsLongerThen, FilterPatterns.LONG_WORD); - put(greenText, FilterPatterns.GREEN_TEXT); - put(specialCharBegin, FilterPatterns.SPECIAL_BEGINNING); - put(specialCharEnding, FilterPatterns.SPECIAL_ENDING); - put(specialCharBegin, FilterPatterns.SPECIAL_BEGINNING); - put(ownsMeAndAll, FilterPatterns.OWNS_ME_AND_ALL); - put(iJustThanksTo, FilterPatterns.I_JUST_THANKS_TO); - put(numberSuffix, FilterPatterns.NUMBER_SUFFIX); - put(numberPrefix, FilterPatterns.NUMBER_PREFIX); - put(discordLinks, FilterPatterns.DISCORD); - put(webLinks, FilterPatterns.WEB_LINK); - put(ips, FilterPatterns.IP_ADDR); - put(ipsAgr, FilterPatterns.IP_ADDR_AGR); - put(announcers, FilterPatterns.ANNOUNCER); - put(spammers, FilterPatterns.SPAMMER); - put(insulters, FilterPatterns.INSULTER); - put(greeters, FilterPatterns.GREETER); - put(hypixelShills, FilterPatterns.HYPIXEL_SHILLS); - put(tradeChat, FilterPatterns.TRADE_CHAT); - }}; + private enum Page { ONE, TWO } + private enum ShowBlocked { NONE, LOG_FILE, CHAT } + @EventHandler public Listener listener = new Listener<>(event -> { if (mc.player == null || isDisabled()) return; @@ -106,14 +88,10 @@ public class AntiSpam extends Module { }); @Override - public void onEnable() { - messageHistory = new ConcurrentHashMap<>(); - } + public void onEnable() { messageHistory = new ConcurrentHashMap<>(); } @Override - public void onDisable() { - messageHistory = null; - } + public void onDisable() { messageHistory = null; } private boolean isSpam(String message) { ChatTimestamp chatTimestamp = MODULE_MANAGER.getModuleT(ChatTimestamp.class); @@ -132,12 +110,12 @@ public class AntiSpam extends Module { } } - private String removeUsername(String username) { - return username.replaceAll("<[^>]*> ", ""); - } + + + private String removeUsername(String username) { return username.replaceAll("<[^>]*> ", ""); } private boolean detectSpam(String message) { - + for (Map.Entry, String[]> entry : settingMap.entrySet()) { if (entry.getKey().getValue() && findPatterns(entry.getValue(), message, true)) { sendResult(entry.getKey().getName(), message); @@ -149,15 +127,12 @@ public class AntiSpam extends Module { if (messageHistory == null) messageHistory = new ConcurrentHashMap<>(); boolean isDuplicate = false; - if (messageHistory.containsKey(message) && (System.currentTimeMillis() - messageHistory.get(message)) / 1000 < duplicatesTimeout.getValue()) - isDuplicate = true; + if (messageHistory.containsKey(message) && (System.currentTimeMillis() - messageHistory.get(message)) / 1000 < duplicatesTimeout.getValue()) isDuplicate = true; messageHistory.put(message, System.currentTimeMillis()); if (isDuplicate) { - if (showBlocked.getValue().equals(ShowBlocked.CHAT)) - sendChatMessage(getChatName() + "Duplicate: " + message); - else if (showBlocked.getValue().equals(ShowBlocked.LOG_FILE)) - KamiMod.log.info(getChatName() + "Duplicate: " + message); + if (showBlocked.getValue().equals(ShowBlocked.CHAT)) sendChatMessage(getChatName() + "Duplicate: " + message); + else if (showBlocked.getValue().equals(ShowBlocked.LOG_FILE)) KamiMod.log.info(getChatName() + "Duplicate: " + message); } } @@ -176,20 +151,27 @@ public class AntiSpam extends Module { return false; } - private void sendResult(String name, String message) { - if (showBlocked.getValue().equals(ShowBlocked.CHAT)) sendChatMessage(getChatName() + name + ": " + message); - else if (showBlocked.getValue().equals(ShowBlocked.LOG_FILE)) - KamiMod.log.info(getChatName() + name + ": " + message); - } - - private enum Page {ONE, TWO} - - private enum ShowBlocked {NONE, LOG_FILE, CHAT} - -// private static Integer getCharacters() { -// AntiSpam antiSpam = ((AntiSpam) ModuleManager.getModuleByName("AntiSpam")); -// return antiSpam.characters.getValue(); -// } + private Map, String[]> settingMap = new HashMap, String[]>(){{ + put(wordsLongerThen, FilterPatterns.LONG_WORD); + put(greenText, FilterPatterns.GREEN_TEXT); + put(specialCharBegin, FilterPatterns.SPECIAL_BEGINNING); + put(specialCharEnding, FilterPatterns.SPECIAL_ENDING); + put(specialCharBegin, FilterPatterns.SPECIAL_BEGINNING); + put(ownsMeAndAll, FilterPatterns.OWNS_ME_AND_ALL); + put(iJustThanksTo, FilterPatterns.I_JUST_THANKS_TO); + put(numberSuffix, FilterPatterns.NUMBER_SUFFIX); + put(numberPrefix, FilterPatterns.NUMBER_PREFIX); + put(discordLinks, FilterPatterns.DISCORD); + put(webLinks, FilterPatterns.WEB_LINK); + put(ips, FilterPatterns.IP_ADDR); + put(ipsAgr, FilterPatterns.IP_ADDR_AGR); + put(announcers, FilterPatterns.ANNOUNCER); + put(spammers, FilterPatterns.SPAMMER); + put(insulters, FilterPatterns.INSULTER); + put(greeters, FilterPatterns.GREETER); + put(hypixelShills, FilterPatterns.HYPIXEL_SHILLS); + put(tradeChat, FilterPatterns.TRADE_CHAT); + }}; private static class FilterPatterns { private static final String[] ANNOUNCER = { @@ -385,4 +367,14 @@ public class AntiSpam extends Module { "[/@#^()\\[\\]{}<>|\\-+=\\\\]", }; } + +// private static Integer getCharacters() { +// AntiSpam antiSpam = ((AntiSpam) ModuleManager.getModuleByName("AntiSpam")); +// return antiSpam.characters.getValue(); +// } + + private void sendResult(String name, String message) { + if (showBlocked.getValue().equals(ShowBlocked.CHAT)) sendChatMessage(getChatName() + name + ": " + message); + else if (showBlocked.getValue().equals(ShowBlocked.LOG_FILE)) KamiMod.log.info(getChatName() + name + ": " + message); + } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/chat/AutoQMain.java b/src/main/java/me/zeroeightsix/kami/module/modules/chat/AutoQMain.java index 014fef25a..e1957cde9 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/chat/AutoQMain.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/chat/AutoQMain.java @@ -66,11 +66,7 @@ public class AutoQMain extends Module { mc.playerController.connection.sendPacket(new CPacketChatMessage("/queue main")); } - private void sendMessage(String message) { - if (showWarns.getValue()) sendWarningMessage(getChatName() + message); - } + private void sendMessage(String message) { if (showWarns.getValue()) sendWarningMessage(getChatName() + message); } - public void onDisable() { - delayTime = 0; - } + public void onDisable() { delayTime = 0; } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/chat/AutoReply.java b/src/main/java/me/zeroeightsix/kami/module/modules/chat/AutoReply.java index 2ca16ad3b..6cf69f13d 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/chat/AutoReply.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/chat/AutoReply.java @@ -18,21 +18,19 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendWarningMessage; */ @Module.Info(name = "AutoReply", description = "Automatically replies to messages", category = Module.Category.CHAT) public class AutoReply extends Module { - private static long startTime = 0; public Setting customMessage = register(Settings.b("Custom Message", false)); - public Setting message = register(Settings.stringBuilder("Custom Text").withValue("Use &7" + Command.getCommandPrefix() + "autoreply&r to modify this").withConsumer((old, value) -> { - }).withVisibility(v -> customMessage.getValue()).build()); + public Setting message = register(Settings.stringBuilder("Custom Text").withValue("Use &7" + Command.getCommandPrefix() + "autoreply&r to modify this").withConsumer((old, value) -> {}).withVisibility(v -> customMessage.getValue()).build()); public Setting customListener = register(Settings.b("Custom Listener", false)); - public Setting listener = register(Settings.stringBuilder("Custom Listener Name").withValue("unchanged").withConsumer((old, value) -> { - }).withVisibility(v -> customListener.getValue()).build()); + public Setting listener = register(Settings.stringBuilder("Custom Listener Name").withValue("unchanged").withConsumer((old, value) -> {}).withVisibility(v -> customListener.getValue()).build()); public Setting customReplyCommand = register(Settings.b("Custom Reply Command", false)); - public Setting replyCommand = register(Settings.stringBuilder("Custom Reply Command").withValue("unchanged").withConsumer((old, value) -> { - }).withVisibility(v -> customReplyCommand.getValue()).build()); - @EventHandler - public Listener receiveListener; + public Setting replyCommand = register(Settings.stringBuilder("Custom Reply Command").withValue("unchanged").withConsumer((old, value) -> {}).withVisibility(v -> customReplyCommand.getValue()).build()); + private String listenerDefault = "whispers:"; private String replyCommandDefault = "r"; + @EventHandler + public Listener receiveListener; + public AutoReply() { receiveListener = new Listener<>(event -> { if (event.getPacket() instanceof SPacketChat && ((SPacketChat) event.getPacket()).getChatComponent().getUnformattedText().contains(listenerDefault) && !((SPacketChat) event.getPacket()).getChatComponent().getUnformattedText().contains(mc.player.getName())) { @@ -45,6 +43,7 @@ public class AutoReply extends Module { }); } + private static long startTime = 0; @Override public void onUpdate() { if (customListener.getValue()) listenerDefault = listener.getValue(); diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/chat/AutoTPA.java b/src/main/java/me/zeroeightsix/kami/module/modules/chat/AutoTPA.java index 1db98f363..b823f184a 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/chat/AutoTPA.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/chat/AutoTPA.java @@ -7,6 +7,7 @@ import me.zeroeightsix.kami.module.Module; import me.zeroeightsix.kami.setting.Setting; import me.zeroeightsix.kami.setting.Settings; import me.zeroeightsix.kami.util.Friends; +import me.zeroeightsix.kami.util.Wrapper; import net.minecraft.network.play.server.SPacketChat; import static me.zeroeightsix.kami.util.MessageSendHelper.sendServerMessage; diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/chat/ChatEncryption.java b/src/main/java/me/zeroeightsix/kami/module/modules/chat/ChatEncryption.java index ccabea858..cd8cebe7f 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/chat/ChatEncryption.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/chat/ChatEncryption.java @@ -26,13 +26,16 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; @Module.Info(name = "ChatEncryption", description = "Encrypts and decrypts chat messages (Delimiter %)", category = Module.Category.CHAT, showOnArray = Module.ShowOnArray.OFF) public class ChatEncryption extends Module { - private static final char[] ORIGIN_CHARS = new char[]{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '-', '_', '/', ';', '=', '?', '+', '\u00B5', '\u00A3', '*', '^', '\u00F9', '$', '!', '{', '}', '\'', '"', '|', '&'}; - private final Pattern CHAT_PATTERN = Pattern.compile("<.*?> "); private Setting mode = register(Settings.e("Mode", EncryptionMode.SHUFFLE)); private Setting key = register(Settings.i("Key", 6)); private Setting delim = register(Settings.b("Delimiter", true)); + + private final Pattern CHAT_PATTERN = Pattern.compile("<.*?> "); + + private static final char[] ORIGIN_CHARS = new char[]{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '-', '_', '/', ';', '=', '?', '+', '\u00B5', '\u00A3', '*', '^', '\u00F9', '$', '!', '{', '}', '\'', '"', '|', '&'}; + @EventHandler - private final Listener sendListener = new Listener<>(event -> { + private Listener sendListener = new Listener<>(event -> { if (event.getPacket() instanceof CPacketChatMessage) { String s = ((CPacketChatMessage) event.getPacket()).getMessage(); if (delim.getValue()) { @@ -61,7 +64,7 @@ public class ChatEncryption extends Module { }); @EventHandler - private final Listener receiveListener = new Listener<>(event -> { + private Listener receiveListener = new Listener<>(event -> { if (event.getPacket() instanceof SPacketChat) { String s = ((SPacketChat) event.getPacket()).getChatComponent().getUnformattedText(); @@ -91,10 +94,6 @@ public class ChatEncryption extends Module { } }); - private static Map reverseMap(Map map) { - return map.entrySet().stream().collect(Collectors.toMap(Map.Entry::getValue, Map.Entry::getKey)); - } - private Map generateShuffleMap(int seed) { Random r = new Random(seed); List characters = CharBuffer.wrap(ORIGIN_CHARS).chars().mapToObj(value -> (char) value).collect(Collectors.toList()); @@ -132,6 +131,10 @@ public class ChatEncryption extends Module { }); } + private static Map reverseMap(Map map) { + return map.entrySet().stream().collect(Collectors.toMap(Map.Entry::getValue, Map.Entry::getKey)); + } + private enum EncryptionMode { SHUFFLE, SHIFT } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/chat/CustomChat.java b/src/main/java/me/zeroeightsix/kami/module/modules/chat/CustomChat.java index 1ec7b00eb..0cf0a9589 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/chat/CustomChat.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/chat/CustomChat.java @@ -18,13 +18,35 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendWarningMessage; */ @Module.Info(name = "CustomChat", category = Module.Category.CHAT, description = "Add a custom suffix to the end of your message!", showOnArray = Module.ShowOnArray.OFF) public class CustomChat extends Module { - public static String[] cmdCheck = new String[]{"/", ",", ".", "-", ";", "?", "*", "^", "&", Command.getCommandPrefix()}; - private static long startTime = 0; public Setting textMode = register(Settings.e("Message", TextMode.ON_TOP)); - public Setting customText = register(Settings.stringBuilder("Custom Text").withValue("unchanged").withConsumer((old, value) -> { - }).build()); private Setting decoMode = register(Settings.e("Separator", DecoMode.NONE)); private Setting commands = register(Settings.b("Commands", false)); + public Setting customText = register(Settings.stringBuilder("Custom Text").withValue("unchanged").withConsumer((old, value) -> {}).build()); + + private enum DecoMode { SEPARATOR, CLASSIC, NONE } + public enum TextMode { NAME, ON_TOP, WEBSITE, JAPANESE, CUSTOM } + public static String[] cmdCheck = new String[]{"/", ",", ".", "-", ";", "?", "*", "^", "&", Command.getCommandPrefix()}; + + private String getText(TextMode t) { + switch (t) { + case NAME: return "\u1d0b\u1d00\u1d0d\u026a \u0299\u029f\u1d1c\u1d07"; + case ON_TOP: return "\u1d0b\u1d00\u1d0d\u026a \u0299\u029f\u1d1c\u1d07 \u1d0f\u0274 \u1d1b\u1d0f\u1d18"; + case WEBSITE: return "\u0299\u029f\u1d1c\u1d07\u002e\u0299\u1d07\u029f\u029f\u1d00\u002e\u1d21\u1d1b\u0493"; + case JAPANESE: return "\u4e0a\u306b\u30ab\u30df\u30d6\u30eb\u30fc"; + case CUSTOM: return customText.getValue(); + default: return ""; + } + } + + private String getFull(DecoMode d) { + switch (d) { + case NONE: return " " + getText(textMode.getValue()); + case CLASSIC: return " \u00ab " + getText(textMode.getValue()) + " \u00bb"; + case SEPARATOR: return " " + separator + " " + getText(textMode.getValue()); + default: return ""; + } + } + @EventHandler public Listener listener = new Listener<>(event -> { if (event.getPacket() instanceof CPacketChatMessage) { @@ -36,36 +58,6 @@ public class CustomChat extends Module { } }); - private String getText(TextMode t) { - switch (t) { - case NAME: - return "\u1d0b\u1d00\u1d0d\u026a \u0299\u029f\u1d1c\u1d07"; - case ON_TOP: - return "\u1d0b\u1d00\u1d0d\u026a \u0299\u029f\u1d1c\u1d07 \u1d0f\u0274 \u1d1b\u1d0f\u1d18"; - case WEBSITE: - return "\u0299\u029f\u1d1c\u1d07\u002e\u0299\u1d07\u029f\u029f\u1d00\u002e\u1d21\u1d1b\u0493"; - case JAPANESE: - return "\u4e0a\u306b\u30ab\u30df\u30d6\u30eb\u30fc"; - case CUSTOM: - return customText.getValue(); - default: - return ""; - } - } - - private String getFull(DecoMode d) { - switch (d) { - case NONE: - return " " + getText(textMode.getValue()); - case CLASSIC: - return " \u00ab " + getText(textMode.getValue()) + " \u00bb"; - case SEPARATOR: - return " " + separator + " " + getText(textMode.getValue()); - default: - return ""; - } - } - private boolean isCommand(String s) { for (String value : cmdCheck) { if (s.startsWith(value)) return true; @@ -73,6 +65,7 @@ public class CustomChat extends Module { return false; } + private static long startTime = 0; @Override public void onUpdate() { if (startTime == 0) startTime = System.currentTimeMillis(); @@ -83,8 +76,4 @@ public class CustomChat extends Module { startTime = System.currentTimeMillis(); } } - - private enum DecoMode {SEPARATOR, CLASSIC, NONE} - - public enum TextMode {NAME, ON_TOP, WEBSITE, JAPANESE, CUSTOM} } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/chat/DiscordNotifs.java b/src/main/java/me/zeroeightsix/kami/module/modules/chat/DiscordNotifs.java index 6e6fae5ac..ed4f2ca71 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/chat/DiscordNotifs.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/chat/DiscordNotifs.java @@ -32,25 +32,6 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendErrorMessage; */ @Module.Info(name = "DiscordNotifs", category = Module.Category.CHAT, description = "Sends your chat to a set Discord channel", alwaysListening = true) public class DiscordNotifs extends Module { - private static ServerData cServer; - /* Getters for messages */ - private static long startTime = 0; - public Setting url = register(Settings.s("URL", "unchanged")); - public Setting pingID = register(Settings.s("Ping ID", "unchanged")); - public Setting avatar = register(Settings.s("Avatar", KamiMod.GITHUB_LINK + "assets/raw/assets/assets/icons/kami.png")); - @EventHandler - public Listener serverConnectedEvent = new Listener<>(event -> { - if (isEnabled() && event.getScreen() instanceof GuiConnecting) { - cServer = mc.currentServerData; - EVENT_BUS.post(new ServerConnectedEvent()); - } - }); - @EventHandler - public Listener serverDisconnectedEvent = new Listener<>(event -> { - if (isEnabled() && event.getScreen() instanceof GuiDisconnected && (cServer != null || mc.currentServerData != null)) { - EVENT_BUS.post(new ServerDisconnectedEvent()); - } - }); private Setting timeout = register(Settings.b("Timeout", true)); private Setting timeoutTime = register(Settings.integerBuilder().withName("Seconds").withMinimum(0).withMaximum(120).withValue(10).withVisibility(v -> timeout.getValue()).build()); private Setting time = register(Settings.b("Timestamp", true)); @@ -61,6 +42,12 @@ public class DiscordNotifs extends Module { private Setting restart = register(Settings.booleanBuilder("Restart Msgs").withValue(true).withVisibility(v -> !all.getValue()).build()); private Setting direct = register(Settings.booleanBuilder("Received DMs").withValue(true).withVisibility(v -> !all.getValue()).build()); private Setting directSent = register(Settings.booleanBuilder("Send DMs").withValue(true).withVisibility(v -> !all.getValue()).build()); + public Setting url = register(Settings.s("URL", "unchanged")); + public Setting pingID = register(Settings.s("Ping ID", "unchanged")); + public Setting avatar = register(Settings.s("Avatar", KamiMod.GITHUB_LINK + "assets/raw/assets/assets/icons/kami.png")); + + private static ServerData cServer; + /* Listeners to send the messages */ @EventHandler public Listener listener0 = new Listener<>(event -> { @@ -73,12 +60,14 @@ public class DiscordNotifs extends Module { sendMessage(getPingID(message) + getMessageType(direct.getValue(), directSent.getValue(), message, getServer()) + getTime() + message, avatar.getValue()); } }); + @EventHandler public Listener listener1 = new Listener<>(event -> { if (isDisabled()) return; if (!disconnect.getValue()) return; sendMessage(getPingID("KamiBlueMessageType1") + getTime() + getMessageType(direct.getValue(), directSent.getValue(), "KamiBlueMessageType1", getServer()), avatar.getValue()); }); + @EventHandler public Listener listener2 = new Listener<>(event -> { if (isDisabled()) return; @@ -86,10 +75,11 @@ public class DiscordNotifs extends Module { sendMessage(getPingID("KamiBlueMessageType2") + getTime() + getMessageType(direct.getValue(), directSent.getValue(), "KamiBlueMessageType2", getServer()), avatar.getValue()); }); + /* Getters for messages */ + private static long startTime = 0; private boolean timeout(String message) { if (!timeout.getValue()) return true; - else if (isRestart(restart.getValue(), message) || isDirect(direct.getValue(), message) || isDirectOther(directSent.getValue(), message)) - return true; + else if (isRestart(restart.getValue(), message) || isDirect(direct.getValue(), message) || isDirectOther(directSent.getValue(), message)) return true; if (startTime == 0) startTime = System.currentTimeMillis(); if (startTime + (timeoutTime.getValue() * 1000) <= System.currentTimeMillis()) { // 1 timeout = 1 second = 1000 ms startTime = System.currentTimeMillis(); @@ -100,10 +90,8 @@ public class DiscordNotifs extends Module { /* Text formatting and misc methods */ private String getPingID(String message) { - if (isRestart(restart.getValue(), message) || isDirect(direct.getValue(), message) || isDirectOther(directSent.getValue(), message) || isImportantQueue(importantPings.getValue(), message)) - return formatPingID(); - else if ((message.equals("KamiBlueMessageType1")) || (message.equals("KamiBlueMessageType2"))) - return formatPingID(); + if (isRestart(restart.getValue(), message) || isDirect(direct.getValue(), message) || isDirectOther(directSent.getValue(), message) || isImportantQueue(importantPings.getValue(), message)) return formatPingID(); + else if ((message.equals("KamiBlueMessageType1")) || (message.equals("KamiBlueMessageType2"))) return formatPingID(); else return ""; } @@ -135,9 +123,25 @@ public class DiscordNotifs extends Module { if (url.getValue().equals("unchanged")) { sendErrorMessage(getChatName() + "You must first set a webhook url with the '&7" + Command.getCommandPrefix() + "discordnotifs&r' command"); disable(); - } else if (pingID.getValue().equals("unchanged") && importantPings.getValue()) { + } + else if (pingID.getValue().equals("unchanged") && importantPings.getValue()) { sendErrorMessage(getChatName() + "For Pings to work, you must set a Discord ID with the '&7" + Command.getCommandPrefix() + "discordnotifs&r' command"); disable(); } } + + @EventHandler + public Listener serverConnectedEvent = new Listener<>(event -> { + if (isEnabled() && event.getScreen() instanceof GuiConnecting) { + cServer = mc.currentServerData; + EVENT_BUS.post(new ServerConnectedEvent()); + } + }); + + @EventHandler + public Listener serverDisconnectedEvent = new Listener<>(event -> { + if (isEnabled() && event.getScreen() instanceof GuiDisconnected && (cServer != null || mc.currentServerData != null)) { + EVENT_BUS.post(new ServerDisconnectedEvent()); + } + }); } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/chat/FancyChat.java b/src/main/java/me/zeroeightsix/kami/module/modules/chat/FancyChat.java index 16319f668..9e932bbd1 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/chat/FancyChat.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/chat/FancyChat.java @@ -18,23 +18,14 @@ import static me.zeroeightsix.kami.util.InfoCalculator.isNumberEven; */ @Module.Info(name = "FancyChat", category = Module.Category.CHAT, description = "Makes messages you send fancy", showOnArray = Module.ShowOnArray.OFF) public class FancyChat extends Module { - private static final Random random = new Random(); private Setting uwu = register(Settings.b("uwu", true)); private Setting leet = register(Settings.b("1337", false)); private Setting mock = register(Settings.b("mOcK", false)); private Setting green = register(Settings.b(">", false)); private Setting randomSetting = register(Settings.booleanBuilder("Random Case").withValue(true).withVisibility(v -> mock.getValue()).build()); private Setting commands = register(Settings.b("Commands", false)); - @EventHandler - public Listener listener = new Listener<>(event -> { - if (event.getPacket() instanceof CPacketChatMessage) { - String s = ((CPacketChatMessage) event.getPacket()).getMessage(); - if (!commands.getValue() && isCommand(s)) return; - s = getText(s); - if (s.length() >= 256) s = s.substring(0, 256); - ((CPacketChatMessage) event.getPacket()).message = s; - } - }); + + private static Random random = new Random(); private String getText(String s) { if (uwu.getValue()) s = uwuConverter(s); @@ -48,6 +39,17 @@ public class FancyChat extends Module { return "> " + input; } + @EventHandler + public Listener listener = new Listener<>(event -> { + if (event.getPacket() instanceof CPacketChatMessage) { + String s = ((CPacketChatMessage) event.getPacket()).getMessage(); + if (!commands.getValue() && isCommand(s)) return; + s = getText(s); + if (s.length() >= 256) s = s.substring(0, 256); + ((CPacketChatMessage) event.getPacket()).message = s; + } + }); + @Override public String getHudInfo() { StringBuilder returned = new StringBuilder(); @@ -75,7 +77,7 @@ public class FancyChat extends Module { private String leetConverter(String input) { StringBuilder message = new StringBuilder(); - for (int i = 0; i < input.length(); i++) { + for (int i = 0 ; i < input.length() ; i++) { String inputChar = input.charAt(i) + ""; inputChar = inputChar.toLowerCase(); inputChar = leetSwitch(inputChar); @@ -86,7 +88,7 @@ public class FancyChat extends Module { private String mockingConverter(String input) { StringBuilder message = new StringBuilder(); - for (int i = 0; i < input.length(); i++) { + for (int i = 0 ; i < input.length() ; i++) { String inputChar = input.charAt(i) + ""; int rand = 0; @@ -126,8 +128,7 @@ public class FancyChat extends Module { return "$"; case "t": return "7"; - default: - return i; + default: return i; } } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/chat/FormatChat.java b/src/main/java/me/zeroeightsix/kami/module/modules/chat/FormatChat.java index e3d4d5c5f..da72dc994 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/chat/FormatChat.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/chat/FormatChat.java @@ -18,6 +18,17 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendWarningMessage; @Module.Info(name = "FormatChat", description = "Add colour and linebreak support to upstream chat packets", category = Module.Category.CHAT) public class FormatChat extends Module { + @Override + public void onEnable() { + if (Minecraft.getMinecraft().getCurrentServerData() == null) { + sendWarningMessage(getChatName() + " &6&lWarning: &r&6This does not work in singleplayer"); + disable(); + } + else { + sendWarningMessage(getChatName() + " &6&lWarning: &r&6This will kick you on most servers!"); + } + } + @EventHandler public Listener sendListener = new Listener<>(event -> { if (event.getPacket() instanceof CPacketChatMessage) { @@ -31,14 +42,4 @@ public class FormatChat extends Module { } } }); - - @Override - public void onEnable() { - if (Minecraft.getMinecraft().getCurrentServerData() == null) { - sendWarningMessage(getChatName() + " &6&lWarning: &r&6This does not work in singleplayer"); - disable(); - } else { - sendWarningMessage(getChatName() + " &6&lWarning: &r&6This will kick you on most servers!"); - } - } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/chat/Spammer.java b/src/main/java/me/zeroeightsix/kami/module/modules/chat/Spammer.java index 85ef51830..f1cff9c59 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/chat/Spammer.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/chat/Spammer.java @@ -20,18 +20,10 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.*; */ @Module.Info(name = "Spammer", description = "Spams text from a file on a set delay into the chat", category = Module.Category.CHAT) public class Spammer extends Module { - private static long startTime = 0; - List tempLines = new ArrayList<>(); - String[] spammer; private Setting timeoutTime = register(Settings.integerBuilder().withName("Timeout (s)").withMinimum(1).withMaximum(240).withValue(10).build()); - public static String getRandom(String[] array) { - int rand = new Random().nextInt(array.length); - while (array[rand].isEmpty() || array[rand].equals(" ")) { - rand = new Random().nextInt(array.length); // big meme to try to avoid sending empty messages - } - return array[rand]; - } + List tempLines = new ArrayList<>(); + String[] spammer; public void onEnable() { BufferedReader bufferedReader; @@ -57,6 +49,7 @@ public class Spammer extends Module { sendMsg(getRandom(spammer)); } + private static long startTime = 0; private void sendMsg(String message) { if (startTime == 0) startTime = System.currentTimeMillis(); if (startTime + (timeoutTime.getValue() * 1000) <= System.currentTimeMillis()) { // 1 timeout = 1 second = 1000 ms @@ -64,4 +57,12 @@ public class Spammer extends Module { sendServerMessage(message); } } + + public static String getRandom(String[] array) { + int rand = new Random().nextInt(array.length); + while (array[rand].isEmpty() || array[rand].equals(" ")) { + rand = new Random().nextInt(array.length); // big meme to try to avoid sending empty messages + } + return array[rand]; + } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/client/ActiveModules.java b/src/main/java/me/zeroeightsix/kami/module/modules/client/ActiveModules.java index 50e9b6907..1fdca9d2b 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/client/ActiveModules.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/client/ActiveModules.java @@ -23,12 +23,16 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendDisableMessage; */ @Module.Info(name = "ActiveModules", category = Module.Category.CLIENT, description = "Configures ActiveModules colours and modes", showOnArray = Module.ShowOnArray.OFF) public class ActiveModules extends Module { + private Setting forgeHax = register(Settings.b("ForgeHax", false)); public Setting mode = register(Settings.e("Mode", Mode.RAINBOW)); + private Setting rainbowSpeed = register(Settings.integerBuilder().withName("Speed R").withValue(30).withMinimum(0).withMaximum(100).withVisibility(v -> mode.getValue().equals(Mode.RAINBOW)).build()); public Setting saturationR = register(Settings.integerBuilder().withName("Saturation R").withValue(117).withMinimum(0).withMaximum(255).withVisibility(v -> mode.getValue().equals(Mode.RAINBOW)).build()); public Setting brightnessR = register(Settings.integerBuilder().withName("Brightness R").withValue(255).withMinimum(0).withMaximum(255).withVisibility(v -> mode.getValue().equals(Mode.RAINBOW)).build()); public Setting hueC = register(Settings.integerBuilder().withName("Hue C").withValue(178).withMinimum(0).withMaximum(255).withVisibility(v -> mode.getValue().equals(Mode.CUSTOM)).build()); public Setting saturationC = register(Settings.integerBuilder().withName("Saturation C").withValue(156).withMinimum(0).withMaximum(255).withVisibility(v -> mode.getValue().equals(Mode.CUSTOM)).build()); public Setting brightnessC = register(Settings.integerBuilder().withName("Brightness C").withValue(255).withMinimum(0).withMaximum(255).withVisibility(v -> mode.getValue().equals(Mode.CUSTOM)).build()); + private Setting alternate = register(Settings.booleanBuilder().withName("Alternate").withValue(true).withVisibility(v -> mode.getValue().equals(Mode.INFO_OVERLAY)).build()); + public Setting chat = register(Settings.s("Chat", "162,136,227")); public Setting combat = register(Settings.s("Combat", "229,68,109")); public Setting experimental = register(Settings.s("Experimental", "211,188,192")); @@ -37,9 +41,6 @@ public class ActiveModules extends Module { public Setting player = register(Settings.s("Player", "255,137,102")); public Setting movement = register(Settings.s("Movement", "111,60,145")); public Setting misc = register(Settings.s("Misc", "165,102,139")); - private Setting forgeHax = register(Settings.b("ForgeHax", false)); - private Setting rainbowSpeed = register(Settings.integerBuilder().withName("Speed R").withValue(30).withMinimum(0).withMaximum(100).withVisibility(v -> mode.getValue().equals(Mode.RAINBOW)).build()); - private Setting alternate = register(Settings.booleanBuilder().withName("Alternate").withValue(true).withVisibility(v -> mode.getValue().equals(Mode.INFO_OVERLAY)).build()); private static int getRgb(String input, int arrayPos) { String[] toConvert = input.split(","); @@ -66,8 +67,7 @@ public class ActiveModules extends Module { case STRIKETHROUGH: case OBFUSCATED: case BOLD: - localColor = colourEnumMap.get(TextFormatting.WHITE).colorLocal; - break; + localColor = colourEnumMap.get(TextFormatting.WHITE).colorLocal; break; default: localColor = colourEnumMap.get(infoGetSetting(isOne)).colorLocal; } @@ -87,24 +87,15 @@ public class ActiveModules extends Module { public int getCategoryColour(Module module) { switch (module.getCategory()) { - case CHAT: - return rgbToInt(getRgb(chat.getValue(), 0), getRgb(chat.getValue(), 1), getRgb(chat.getValue(), 2)); - case COMBAT: - return rgbToInt(getRgb(combat.getValue(), 0), getRgb(combat.getValue(), 1), getRgb(combat.getValue(), 2)); - case EXPERIMENTAL: - return rgbToInt(getRgb(experimental.getValue(), 0), getRgb(experimental.getValue(), 1), getRgb(experimental.getValue(), 2)); - case CLIENT: - return rgbToInt(getRgb(client.getValue(), 0), getRgb(client.getValue(), 1), getRgb(client.getValue(), 2)); - case RENDER: - return rgbToInt(getRgb(render.getValue(), 0), getRgb(render.getValue(), 1), getRgb(render.getValue(), 2)); - case PLAYER: - return rgbToInt(getRgb(player.getValue(), 0), getRgb(player.getValue(), 1), getRgb(player.getValue(), 2)); - case MOVEMENT: - return rgbToInt(getRgb(movement.getValue(), 0), getRgb(movement.getValue(), 1), getRgb(movement.getValue(), 2)); - case MISC: - return rgbToInt(getRgb(misc.getValue(), 0), getRgb(misc.getValue(), 1), getRgb(misc.getValue(), 2)); - default: - return rgbToInt(1, 1, 1); + case CHAT: return rgbToInt(getRgb(chat.getValue(), 0), getRgb(chat.getValue(), 1), getRgb(chat.getValue(), 2)); + case COMBAT: return rgbToInt(getRgb(combat.getValue(), 0), getRgb(combat.getValue(), 1), getRgb(combat.getValue(), 2)); + case EXPERIMENTAL: return rgbToInt(getRgb(experimental.getValue(), 0), getRgb(experimental.getValue(), 1), getRgb(experimental.getValue(), 2)); + case CLIENT: return rgbToInt(getRgb(client.getValue(), 0), getRgb(client.getValue(), 1), getRgb(client.getValue(), 2)); + case RENDER: return rgbToInt(getRgb(render.getValue(), 0), getRgb(render.getValue(), 1), getRgb(render.getValue(), 2)); + case PLAYER: return rgbToInt(getRgb(player.getValue(), 0), getRgb(player.getValue(), 1), getRgb(player.getValue(), 2)); + case MOVEMENT: return rgbToInt(getRgb(movement.getValue(), 0), getRgb(movement.getValue(), 1), getRgb(movement.getValue(), 2)); + case MISC: return rgbToInt(getRgb(misc.getValue(), 0), getRgb(misc.getValue(), 1), getRgb(misc.getValue(), 2)); + default: return rgbToInt(1, 1, 1); } } @@ -119,9 +110,6 @@ public class ActiveModules extends Module { else return ""; } - public void onDisable() { - sendDisableMessage(this.getClass()); - } - - public enum Mode {RAINBOW, CUSTOM, CATEGORY, INFO_OVERLAY} + public enum Mode { RAINBOW, CUSTOM, CATEGORY, INFO_OVERLAY } + public void onDisable() { sendDisableMessage(this.getClass()); } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/client/CommandConfig.java b/src/main/java/me/zeroeightsix/kami/module/modules/client/CommandConfig.java index 93ef06f33..2711ff0b1 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/client/CommandConfig.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/client/CommandConfig.java @@ -14,10 +14,7 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendErrorMessage; public class CommandConfig extends Module { public Setting aliasInfo = register(Settings.b("Alias Info", true)); public Setting prefixChat = register(Settings.b("PrefixChat", true)); - - public void onDisable() { - sendDisableMessage(this.getClass()); - } + public void onDisable() { sendDisableMessage(this.getClass()); } private void sendDisableMessage(Class clazz) { sendErrorMessage("Error: The " + MODULE_MANAGER.getModule(clazz).getName() + " module is only for configuring command options, disabling it doesn't do anything."); diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/client/InfoOverlay.java b/src/main/java/me/zeroeightsix/kami/module/modules/client/InfoOverlay.java index 01a0d4bb1..880dbccdd 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/client/InfoOverlay.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/client/InfoOverlay.java @@ -29,8 +29,6 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendDisableMessage; public class InfoOverlay extends Module { /* This is so horrible but there's no other way */ private Setting page = register(Settings.enumBuilder(Page.class).withName("Page").withValue(Page.ONE).build()); - public Setting firstColour = register(Settings.enumBuilder(ColourTextFormatting.ColourCode.class).withName("First Colour").withValue(ColourTextFormatting.ColourCode.WHITE).withVisibility(v -> page.getValue().equals(Page.THREE)).build()); - public Setting secondColour = register(Settings.enumBuilder(ColourTextFormatting.ColourCode.class).withName("Second Colour").withValue(ColourTextFormatting.ColourCode.BLUE).withVisibility(v -> page.getValue().equals(Page.THREE)).build()); /* Page One */ private Setting version = register(Settings.booleanBuilder("Version").withValue(true).withVisibility(v -> page.getValue().equals(Page.ONE)).build()); private Setting username = register(Settings.booleanBuilder("Username").withValue(true).withVisibility(v -> page.getValue().equals(Page.ONE)).build()); @@ -52,19 +50,13 @@ public class InfoOverlay extends Module { public Setting timeTypeSetting = register(Settings.enumBuilder(TimeUtil.TimeType.class).withName("Time Format").withValue(TimeUtil.TimeType.HHMMSS).withVisibility(v -> page.getValue().equals(Page.THREE) && time.getValue()).build()); public Setting timeUnitSetting = register(Settings.enumBuilder(TimeUtil.TimeUnit.class).withName("Time Unit").withValue(TimeUtil.TimeUnit.H12).withVisibility(v -> page.getValue().equals(Page.THREE) && time.getValue()).build()); public Setting doLocale = register(Settings.booleanBuilder("Time Show AMPM").withValue(true).withVisibility(v -> page.getValue().equals(Page.THREE) && time.getValue()).build()); + public Setting firstColour = register(Settings.enumBuilder(ColourTextFormatting.ColourCode.class).withName("First Colour").withValue(ColourTextFormatting.ColourCode.WHITE).withVisibility(v -> page.getValue().equals(Page.THREE)).build()); + public Setting secondColour = register(Settings.enumBuilder(ColourTextFormatting.ColourCode.class).withName("Second Colour").withValue(ColourTextFormatting.ColourCode.BLUE).withVisibility(v -> page.getValue().equals(Page.THREE)).build()); public static String getStringColour(TextFormatting c) { return c.toString(); } - public static int getItems(Item i) { - return mc.player.inventory.mainInventory.stream().filter(itemStack -> itemStack.getItem() == i).mapToInt(ItemStack::getCount).sum() + mc.player.inventory.offHandInventory.stream().filter(itemStack -> itemStack.getItem() == i).mapToInt(ItemStack::getCount).sum(); - } - - public static int getArmor(Item i) { - return mc.player.inventory.armorInventory.stream().filter(itemStack -> itemStack.getItem() == i).mapToInt(ItemStack::getCount).sum(); - } - private TextFormatting setToText(ColourTextFormatting.ColourCode colourCode) { return toTextMap.get(colourCode); } @@ -73,69 +65,59 @@ public class InfoOverlay extends Module { ArrayList infoContents = new ArrayList<>(); if (version.getValue()) { infoContents.add(getStringColour(setToText(firstColour.getValue())) + KamiMod.KAMI_KANJI + getStringColour(setToText(secondColour.getValue())) + " " + KamiMod.MODVERSMALL); - } - if (username.getValue()) { + } if (username.getValue()) { infoContents.add(getStringColour(setToText(firstColour.getValue())) + "Welcome" + getStringColour(setToText(secondColour.getValue())) + " " + mc.getSession().getUsername() + "!"); - } - if (time.getValue()) { + } if (time.getValue()) { infoContents.add(getStringColour(setToText(firstColour.getValue())) + TimeUtil.getFinalTime(setToText(secondColour.getValue()), setToText(firstColour.getValue()), timeUnitSetting.getValue(), timeTypeSetting.getValue(), doLocale.getValue())); - } - if (tps.getValue()) { + } if (tps.getValue()) { infoContents.add(getStringColour(setToText(firstColour.getValue())) + InfoCalculator.tps() + getStringColour(setToText(secondColour.getValue())) + " tps"); - } - if (fps.getValue()) { + } if (fps.getValue()) { infoContents.add(getStringColour(setToText(firstColour.getValue())) + Minecraft.debugFPS + getStringColour(setToText(secondColour.getValue())) + " fps"); - } - if (speed.getValue()) { + } if (speed.getValue()) { infoContents.add(getStringColour(setToText(firstColour.getValue())) + InfoCalculator.speed(useUnitKmH(), mc) + getStringColour(setToText(secondColour.getValue())) + " " + unitType(speedUnit.getValue())); - } - if (timerSpeed.getValue()) { + } if (timerSpeed.getValue()) { infoContents.add(getStringColour(setToText(firstColour.getValue())) + TimerSpeed.returnGui() + getStringColour(setToText(secondColour.getValue())) + "t"); - } - if (ping.getValue()) { + } if (ping.getValue()) { infoContents.add(getStringColour(setToText(firstColour.getValue())) + InfoCalculator.ping(mc) + getStringColour(setToText(secondColour.getValue())) + " ms"); - } - if (durability.getValue()) { + } if (durability.getValue()) { infoContents.add(getStringColour(setToText(firstColour.getValue())) + InfoCalculator.dura(mc) + getStringColour(setToText(secondColour.getValue())) + " dura"); - } - if (memory.getValue()) { + } if (memory.getValue()) { infoContents.add(getStringColour(setToText(firstColour.getValue())) + InfoCalculator.memory() + getStringColour(setToText(secondColour.getValue())) + "mB free"); - } - if (totems.getValue()) { - infoContents.add(getStringColour(setToText(firstColour.getValue())) + getItems(Items.TOTEM_OF_UNDYING) + getStringColour(setToText(secondColour.getValue())) + " Totems"); - } - if (endCrystals.getValue()) { - infoContents.add(getStringColour(setToText(firstColour.getValue())) + getItems(Items.END_CRYSTAL) + getStringColour(setToText(secondColour.getValue())) + " Crystals"); - } - if (expBottles.getValue()) { - infoContents.add(getStringColour(setToText(firstColour.getValue())) + getItems(Items.EXPERIENCE_BOTTLE) + getStringColour(setToText(secondColour.getValue())) + " EXP Bottles"); - } - if (godApples.getValue()) { - infoContents.add(getStringColour(setToText(firstColour.getValue())) + getItems(Items.GOLDEN_APPLE) + getStringColour(setToText(secondColour.getValue())) + " God Apples"); + } if (totems.getValue()) { + infoContents.add(getStringColour(setToText(firstColour.getValue())) + getItems(Items.TOTEM_OF_UNDYING) + getStringColour(setToText(secondColour.getValue())) + " Totems"); + } if (endCrystals.getValue()) { + infoContents.add(getStringColour(setToText(firstColour.getValue())) + getItems(Items.END_CRYSTAL) + getStringColour(setToText(secondColour.getValue())) + " Crystals"); + } if (expBottles.getValue()) { + infoContents.add(getStringColour(setToText(firstColour.getValue())) + getItems(Items.EXPERIENCE_BOTTLE) + getStringColour(setToText(secondColour.getValue())) + " EXP Bottles"); + } if (godApples.getValue()) { + infoContents.add(getStringColour(setToText(firstColour.getValue())) + getItems(Items.GOLDEN_APPLE) + getStringColour(setToText(secondColour.getValue())) + " God Apples"); } return infoContents; } - public void onDisable() { - sendDisableMessage(this.getClass()); - } + public void onDisable() { sendDisableMessage(this.getClass()); } + + private enum SpeedUnit { MPS, KMH } + + private enum Page { ONE, TWO, THREE } public boolean useUnitKmH() { return speedUnit.getValue().equals(SpeedUnit.KMH); } - private String unitType(SpeedUnit s) { - switch (s) { - case MPS: - return "m/s"; - case KMH: - return "km/h"; - default: - return "Invalid unit type (mps or kmh)"; - } + public static int getItems(Item i) { + return mc.player.inventory.mainInventory.stream().filter(itemStack -> itemStack.getItem() == i).mapToInt(ItemStack::getCount).sum() + mc.player.inventory.offHandInventory.stream().filter(itemStack -> itemStack.getItem() == i).mapToInt(ItemStack::getCount).sum(); } - private enum SpeedUnit {MPS, KMH} + public static int getArmor(Item i) { + return mc.player.inventory.armorInventory.stream().filter(itemStack -> itemStack.getItem() == i).mapToInt(ItemStack::getCount).sum(); + } - private enum Page {ONE, TWO, THREE} + private String unitType(SpeedUnit s) { + switch (s) { + case MPS: return "m/s"; + case KMH: return "km/h"; + default: return "Invalid unit type (mps or kmh)"; + } + } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/client/InventoryViewer.java b/src/main/java/me/zeroeightsix/kami/module/modules/client/InventoryViewer.java index a4db402b8..c64fd3f83 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/client/InventoryViewer.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/client/InventoryViewer.java @@ -38,21 +38,6 @@ public class InventoryViewer extends Module { private boolean isTop = false; private boolean isBottom = false; - private static void preItemRender() { - GlStateManager.pushMatrix(); - GlStateManager.enableDepth(); - GlStateManager.depthMask(true); - // Yes, this is meant to be paired with disableStandardItemLighting - 20kdc - RenderHelper.enableGUIStandardItemLighting(); - } - - private static void postItemRender() { - RenderHelper.disableStandardItemLighting(); - GlStateManager.depthMask(false); - GlStateManager.disableDepth(); - GlStateManager.popMatrix(); - } - private int invMoveHorizontal() { if (!docking.getValue() || mcTexture.getValue()) return 0; if (isLeft) return 45; @@ -93,6 +78,10 @@ public class InventoryViewer extends Module { } } + private enum ViewSize { + LARGE, MEDIUM, SMALL + } + private void boxRender(final int x, final int y) { // SET UNRELIABLE DEFAULTS (Don't restore these) { GlStateManager.enableAlpha(); @@ -127,10 +116,6 @@ public class InventoryViewer extends Module { } } - // These methods should apply and clean up in pairs. - // That means that if a pre* has to disableAlpha, the post* function should enableAlpha. - // - 20kdc - private void itemRender(final NonNullList items, final int x, final int y) { GlStateManager.clear(GL11.GL_DEPTH_BUFFER_BIT); for (int size = items.size(), item = 9; item < size; ++item) { @@ -143,11 +128,24 @@ public class InventoryViewer extends Module { } } - public void onDisable() { - sendDisableMessage(this.getClass()); + // These methods should apply and clean up in pairs. + // That means that if a pre* has to disableAlpha, the post* function should enableAlpha. + // - 20kdc + + private static void preItemRender() { + GlStateManager.pushMatrix(); + GlStateManager.enableDepth(); + GlStateManager.depthMask(true); + // Yes, this is meant to be paired with disableStandardItemLighting - 20kdc + RenderHelper.enableGUIStandardItemLighting(); } - private enum ViewSize { - LARGE, MEDIUM, SMALL + private static void postItemRender() { + RenderHelper.disableStandardItemLighting(); + GlStateManager.depthMask(false); + GlStateManager.disableDepth(); + GlStateManager.popMatrix(); } + + public void onDisable() { sendDisableMessage(this.getClass()); } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AimBot.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AimBot.java index a2f8360a0..f1e7141d7 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AimBot.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AimBot.java @@ -52,9 +52,9 @@ public class AimBot extends Module { mc.playerController.syncCurrentPlayItem(); } - for (Entity entity : mc.world.loadedEntityList) { + for(Entity entity : mc.world.loadedEntityList) { - if (entity instanceof EntityLivingBase) { + if(entity instanceof EntityLivingBase) { EntityLivingBase potentialTarget = (EntityLivingBase) entity; if (!(potentialTarget instanceof EntityPlayerSP) && mc.player.getDistance(potentialTarget) <= range.getValue() && !(potentialTarget.getHealth() <= 0)) { diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AntiChainPop.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AntiChainPop.java index fdb0c8689..b797e398c 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AntiChainPop.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AntiChainPop.java @@ -16,13 +16,15 @@ import static me.zeroeightsix.kami.module.modules.client.InfoOverlay.getItems; /** * @author S-B99 * Created by S-B99 on 25/03/20 - *

+ * * Event / Packet mode taken from CliNet * https://github.com/DarkiBoi/CliNet/blob/fd225a5c8cc373974b0c9a3457acbeed206e8cca/src/main/java/me/zeroeightsix/kami/module/modules/combat/TotemPopCounter.java */ @Module.Info(name = "AntiChainPop", description = "Enables Surround when popping a totem", category = Module.Category.COMBAT) public class AntiChainPop extends Module { private Setting mode = register(Settings.e("Mode", Mode.PACKET)); + private int totems = 0; + @EventHandler public Listener selfPopListener = new Listener<>(event -> { if (mc.player == null || !mode.getValue().equals(Mode.PACKET)) return; @@ -37,7 +39,6 @@ public class AntiChainPop extends Module { } }); - private int totems = 0; public void onUpdate() { if (mc.player == null) return; @@ -62,13 +63,7 @@ public class AntiChainPop extends Module { surround.enable(); } - public void onEnable() { - totems = 0; - } - - public void onDisable() { - totems = 0; - } - - private enum Mode {ITEMS, PACKET} + public void onEnable() { totems = 0; } + public void onDisable() { totems = 0; } + private enum Mode { ITEMS, PACKET } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/Aura.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/Aura.java index 2290041f1..a84eb40a1 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/Aura.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/Aura.java @@ -38,6 +38,9 @@ public class Aura extends Module { private int waitCounter; + public enum HitMode { SWORD, AXE, NONE } + private enum WaitMode { DELAY, SPAM } + @Override public void onUpdate() { if (mc.player == null || mc.player.isDead) return; @@ -127,8 +130,4 @@ public class Aura extends Module { private boolean canEntityFeetBeSeen(Entity entityIn) { return mc.world.rayTraceBlocks(new Vec3d(mc.player.posX, mc.player.posY + mc.player.getEyeHeight(), mc.player.posZ), new Vec3d(entityIn.posX, entityIn.posY, entityIn.posZ), false, true, false) == null; } - - public enum HitMode {SWORD, AXE, NONE} - - private enum WaitMode {DELAY, SPAM} } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoEZ.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoEZ.java index 330ae0da6..df94abad3 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoEZ.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoEZ.java @@ -21,73 +21,73 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendWarningMessage; */ @Module.Info(name = "AutoEZ", category = Module.Category.COMBAT, description = "Sends an insult in chat after killing someone") public class AutoEZ extends Module { - private static long startTime = 0; - public Setting mode = register(Settings.e("Mode", Mode.ONTOP)); - public Setting customText = register(Settings.stringBuilder("Custom Text").withValue("unchanged").withConsumer((old, value) -> { - }).build()); - EntityPlayer focus; - int hasBeenCombat; - @EventHandler - public Listener livingDeathEventListener = new Listener<>(event -> { - if (event.getTarget() instanceof EntityPlayer) { - focus = (EntityPlayer) event.getTarget(); - if (event.getEntityPlayer().getUniqueID() == mc.player.getUniqueID()) { - if (focus.getHealth() <= 0.0 || focus.isDead || !mc.world.playerEntities.contains(focus)) { - mc.player.sendChatMessage(getText(mode.getValue(), event.getTarget().getName())); - return; - } - hasBeenCombat = 1000; - } - } - }); - @EventHandler - public Listener listener = new Listener<>(event -> { - if (!(event.getScreen() instanceof GuiGameOver)) return; - if (mc.player.getHealth() > 0) { - hasBeenCombat = 0; - } - }); + public Setting mode = register(Settings.e("Mode", Mode.ONTOP)); + public Setting customText = register(Settings.stringBuilder("Custom Text").withValue("unchanged").withConsumer((old, value) -> {}).build()); - private String getText(Mode m, String playerName) { - if (m.equals(Mode.CUSTOM)) { - return customText.getValue().replace("$NAME", playerName); - } - return m.text.replace("$NAME", playerName); - } + EntityPlayer focus; + int hasBeenCombat; - @Override - public void onUpdate() { - if (mc.player == null) return; - if (hasBeenCombat > 0 && (focus.getHealth() <= 0.0f || focus.isDead || !mc.world.playerEntities.contains(focus))) { - mc.player.sendChatMessage(getText(mode.getValue(), focus.getName())); - hasBeenCombat = 0; - } - --hasBeenCombat; - if (startTime == 0) startTime = System.currentTimeMillis(); - if (startTime + 5000 <= System.currentTimeMillis()) { // 5 seconds in milliseconds - if (mode.getValue().equals(Mode.CUSTOM) && customText.getValue().equalsIgnoreCase("unchanged") && mc.player != null) { - sendWarningMessage(getChatName() + " Warning: In order to use the custom " + getName() + ", please run the &7" + Command.getCommandPrefix() + "autoez&r command to change it, with '&7$NAME&f' being the username of the killed player"); - } - startTime = System.currentTimeMillis(); - } - } + public enum Mode { + GG("gg, $NAME"), + ONTOP("KAMI BLUE on top! ez $NAME"), + EZD("You just got ez'd $NAME"), + EZ_HYPIXEL("E Z Win $NAME"), + NAENAE("You just got naenae'd by kami blue plus, $NAME"), + CUSTOM(); - public enum Mode { - GG("gg, $NAME"), - ONTOP("KAMI BLUE on top! ez $NAME"), - EZD("You just got ez'd $NAME"), - EZ_HYPIXEL("E Z Win $NAME"), - NAENAE("You just got naenae'd by kami blue plus, $NAME"), - CUSTOM(); + private String text; - private String text; + Mode(String text) { + this.text = text; + } + Mode() { } // yes + } - Mode(String text) { - this.text = text; - } + private String getText(Mode m, String playerName) { + if (m.equals(Mode.CUSTOM)) { + return customText.getValue().replace("$NAME", playerName); + } + return m.text.replace("$NAME", playerName); + } - Mode() { - } // yes - } + @EventHandler + public Listener livingDeathEventListener = new Listener<>(event -> { + if (event.getTarget() instanceof EntityPlayer) { + focus = (EntityPlayer) event.getTarget(); + if (event.getEntityPlayer().getUniqueID() == mc.player.getUniqueID()) { + if (focus.getHealth() <= 0.0 || focus.isDead || !mc.world.playerEntities.contains(focus)) { + mc.player.sendChatMessage(getText(mode.getValue(), event.getTarget().getName())); + return; + } + hasBeenCombat = 1000; + } + } + }); + + @EventHandler + public Listener listener = new Listener<>(event -> { + if (!(event.getScreen() instanceof GuiGameOver)) return; + if (mc.player.getHealth() > 0) { + hasBeenCombat = 0; + } + }); + + private static long startTime = 0; + @Override + public void onUpdate() { + if (mc.player == null) return; + if (hasBeenCombat > 0 && (focus.getHealth() <= 0.0f || focus.isDead || !mc.world.playerEntities.contains(focus))) { + mc.player.sendChatMessage(getText(mode.getValue(), focus.getName())); + hasBeenCombat = 0; + } + --hasBeenCombat; + if (startTime == 0) startTime = System.currentTimeMillis(); + if (startTime + 5000 <= System.currentTimeMillis()) { // 5 seconds in milliseconds + if (mode.getValue().equals(Mode.CUSTOM) && customText.getValue().equalsIgnoreCase("unchanged") && mc.player != null) { + sendWarningMessage(getChatName() + " Warning: In order to use the custom " + getName() + ", please run the &7" + Command.getCommandPrefix() + "autoez&r command to change it, with '&7$NAME&f' being the username of the killed player"); + } + startTime = System.currentTimeMillis(); + } + } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoLog.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoLog.java index 2099104d7..b5b8e475b 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoLog.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoLog.java @@ -21,11 +21,12 @@ import static me.zeroeightsix.kami.KamiMod.MODULE_MANAGER; @Module.Info(name = "AutoLog", description = "Automatically log when in danger or on low health", category = Module.Category.COMBAT) public class AutoLog extends Module { - long lastLog = System.currentTimeMillis(); private Setting health = register(Settings.integerBuilder("Health").withRange(0, 36).withValue(6).build()); private boolean shouldLog = false; + long lastLog = System.currentTimeMillis(); + @EventHandler - private final Listener livingDamageEventListener = new Listener<>(event -> { + private Listener livingDamageEventListener = new Listener<>(event -> { if (mc.player == null) return; if (event.getEntity() == mc.player) { if (mc.player.getHealth() - event.getAmount() < health.getValue()) { @@ -35,7 +36,7 @@ public class AutoLog extends Module { }); @EventHandler - private final Listener entityJoinWorldEventListener = new Listener<>(event -> { + private Listener entityJoinWorldEventListener = new Listener<>(event -> { if (mc.player == null) return; if (event.getEntity() instanceof EntityEnderCrystal) { if (mc.player.getHealth() - CrystalAura.calculateDamage((EntityEnderCrystal) event.getEntity(), mc.player) < health.getValue()) { diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoMend.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoMend.java index 22134b603..ee80bc5a6 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoMend.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoMend.java @@ -27,7 +27,7 @@ public class AutoMend extends Module { private int initHotbarSlot = -1; @EventHandler - private final Listener receiveListener = new Listener<>(event -> { + private Listener receiveListener = new Listener<>(event -> { if (mc.player != null && (mc.player.getHeldItemMainhand().getItem() == Items.EXPERIENCE_BOTTLE)) { mc.rightClickDelayTimer = 0; } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoTotem.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoTotem.java index 8757e96e9..a9be2892f 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoTotem.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoTotem.java @@ -17,14 +17,18 @@ import static me.zeroeightsix.kami.module.modules.client.InfoOverlay.getItems; */ @Module.Info(name = "AutoTotem", category = Module.Category.COMBAT, description = "Refills your offhand with totems or other items") public class AutoTotem extends Module { - int totems; - boolean moving = false; - boolean returnI = false; private Setting modeSetting = register(Settings.e("Mode", Mode.REPLACE_OFFHAND)); private Setting smartOffhand = register(Settings.booleanBuilder("Custom Item").withValue(false).withVisibility(v -> modeSetting.getValue().equals(Mode.REPLACE_OFFHAND)).build()); private Setting healthSetting = register(Settings.doubleBuilder("Custom Item Health").withValue(14.0).withVisibility(v -> smartOffhand.getValue() && modeSetting.getValue().equals(Mode.REPLACE_OFFHAND)).build()); private Setting smartItemSetting = register(Settings.enumBuilder(CustomItem.class).withName("Item").withValue(CustomItem.GAPPLE).withVisibility(v -> smartOffhand.getValue()).build()); + private enum Mode { NEITHER, REPLACE_OFFHAND, INVENTORY;} + private enum CustomItem { CRYSTAL, GAPPLE } + + int totems; + boolean moving = false; + boolean returnI = false; + @Override public void onUpdate() { if (!modeSetting.getValue().equals(Mode.INVENTORY) && mc.currentScreen instanceof GuiContainer) @@ -97,8 +101,4 @@ public class AutoTotem extends Module { public String getHudInfo() { return "" + getItems(settingToItem()); } - - private enum Mode {NEITHER, REPLACE_OFFHAND, INVENTORY} - - private enum CustomItem {CRYSTAL, GAPPLE} } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/BreakingWarning.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/BreakingWarning.java index c9e31b702..da1ed9eb3 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/BreakingWarning.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/BreakingWarning.java @@ -20,7 +20,7 @@ import static me.zeroeightsix.kami.gui.kami.DisplayGuiScreen.getScale; /** * @author Antonio32A * Updated by S-B99 on 31/03/20 - *

+ * * Antonio32A created the pastDistance method, used by ForgeHax here: * https://github.com/fr1kin/ForgeHax/blob/2011740/src/main/java/com/matt/forgehax/mods/CoordsFinder.java#L126 */ @@ -35,7 +35,7 @@ public class BreakingWarning extends Module { private int delay; @EventHandler - private final Listener receiveListener = new Listener<>(event -> { + private Listener receiveListener = new Listener<>(event -> { if (event.getPacket() instanceof SPacketBlockBreakAnim) { SPacketBlockBreakAnim packet = (SPacketBlockBreakAnim) event.getPacket(); @@ -51,8 +51,7 @@ public class BreakingWarning extends Module { if (obsidianOnly.getValue() && !block.equals(Blocks.OBSIDIAN)) return; if (pickaxeOnly.getValue()) { - if (breaker.itemStackMainHand.isEmpty() || !(breaker.itemStackMainHand.getItem() instanceof ItemPickaxe)) - return; + if (breaker.itemStackMainHand.isEmpty() || !(breaker.itemStackMainHand.getItem() instanceof ItemPickaxe)) return; } if (pastDistance(mc.player, pos, minRange.getValue())) { diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/Criticals.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/Criticals.java index e911f385a..2e5c12c2a 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/Criticals.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/Criticals.java @@ -13,7 +13,7 @@ import net.minecraftforge.event.entity.player.AttackEntityEvent; @Module.Info(name = "Criticals", category = Module.Category.COMBAT, description = "Always do critical attacks") public class Criticals extends Module { @EventHandler - private final Listener attackEntityEventListener = new Listener<>(event -> { + private Listener attackEntityEventListener = new Listener<>(event -> { if (!mc.player.isInWater() && !mc.player.isInLava()) { if (mc.player.onGround) { /* lol Minecraft checks for criticals if you're not on a block so just say you're not */ mc.player.connection.sendPacket(new CPacketPlayer.Position(mc.player.posX, mc.player.posY + 0.1f, mc.player.posZ, false)); diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/CrystalAura.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/CrystalAura.java index 5fc7ad531..cce92e9e1 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/CrystalAura.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/CrystalAura.java @@ -52,17 +52,8 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; */ @Module.Info(name = "CrystalAura", category = Module.Category.COMBAT, description = "Places End Crystals to kill enemies") public class CrystalAura extends Module { - private static boolean togglePitch = false; - private static EntityEnderCrystal lastCrystal; - private static List ignoredCrystals = new ArrayList<>(); - private static int hitTries = 0; - private static boolean isSpoofingAngles; - private static double yaw; - private static double pitch; - private static long startTime = 0; private Setting defaultSetting = register(Settings.b("Defaults", false)); private Setting p = register(Settings.enumBuilder(Page.class).withName("Page").withValue(Page.ONE).build()); - public Setting range = register(Settings.doubleBuilder("Range").withMinimum(1.0).withValue(4.0).withMaximum(10.0).withVisibility(v -> p.getValue().equals(Page.ONE)).build()); /* Page One */ private Setting explodeBehavior = register(Settings.enumBuilder(ExplodeBehavior.class).withName("Explode Behavior").withValue(ExplodeBehavior.ALWAYS).withVisibility(v -> p.getValue().equals(Page.ONE)).build()); private Setting placeBehavior = register(Settings.enumBuilder(PlaceBehavior.class).withName("Place Behavior").withValue(PlaceBehavior.TRADITIONAL).withVisibility(v -> p.getValue().equals(Page.ONE)).build()); @@ -70,6 +61,7 @@ public class CrystalAura extends Module { private Setting place = register(Settings.booleanBuilder("Place").withValue(false).withVisibility(v -> p.getValue().equals(Page.ONE)).build()); private Setting explode = register(Settings.booleanBuilder("Explode").withValue(false).withVisibility(v -> p.getValue().equals(Page.ONE)).build()); private Setting checkAbsorption = register(Settings.booleanBuilder("Check Absorption").withValue(true).withVisibility(v -> p.getValue().equals(Page.ONE)).build()); + public Setting range = register(Settings.doubleBuilder("Range").withMinimum(1.0).withValue(4.0).withMaximum(10.0).withVisibility(v -> p.getValue().equals(Page.ONE)).build()); private Setting delay = register(Settings.doubleBuilder("Hit Delay").withMinimum(0.0).withValue(5.0).withMaximum(10.0).withVisibility(v -> p.getValue().equals(Page.ONE)).build()); private Setting hitAttempts = register(Settings.integerBuilder("Hit Attempts").withValue(-1).withMinimum(-1).withMaximum(20).withVisibility(v -> p.getValue().equals(Page.ONE)).build()); private Setting minDmg = register(Settings.doubleBuilder("Minimum Damage").withMinimum(0.0).withValue(0.0).withMaximum(32.0).withVisibility(v -> p.getValue().equals(Page.ONE)).build()); @@ -89,88 +81,23 @@ public class CrystalAura extends Module { private Setting g = register(Settings.integerBuilder("Green").withMinimum(0).withValue(144).withMaximum(255).withVisibility(v -> p.getValue().equals(Page.TWO) && customColours.getValue()).build()); private Setting b = register(Settings.integerBuilder("Blue").withMinimum(0).withValue(255).withMaximum(255).withVisibility(v -> p.getValue().equals(Page.TWO) && customColours.getValue()).build()); private Setting statusMessages = register(Settings.booleanBuilder("Status Messages").withValue(false).withVisibility(v -> p.getValue().equals(Page.TWO)).build()); + + private enum ExplodeBehavior { HOLE_ONLY, PREVENT_SUICIDE, LEFT_CLICK_ONLY, ALWAYS } + private enum PlaceBehavior { MULTI, TRADITIONAL } + private enum Page { ONE, TWO } + private BlockPos render; private Entity renderEnt; private long systemTime = -1; + private static boolean togglePitch = false; // we need this cooldown to not place from old hotbar slot, before we have switched to crystals private boolean switchCoolDown = false; private boolean isAttacking = false; private int oldSlot = -1; - @EventHandler - private final Listener cPacketListener = new Listener<>(event -> { - Packet packet = event.getPacket(); - if (packet instanceof CPacketPlayer) { - if (isSpoofingAngles) { - ((CPacketPlayer) packet).yaw = (float) yaw; - ((CPacketPlayer) packet).pitch = (float) pitch; - } - } - }); - public static BlockPos getPlayerPos() { - return new BlockPos(Math.floor(mc.player.posX), Math.floor(mc.player.posY), Math.floor(mc.player.posZ)); - } - - public static float calculateDamage(double posX, double posY, double posZ, Entity entity) { - float doubleExplosionSize = 6.0F * 2.0F; - double distancedSize = entity.getDistance(posX, posY, posZ) / (double) doubleExplosionSize; - Vec3d vec3d = new Vec3d(posX, posY, posZ); - double blockDensity = entity.world.getBlockDensity(vec3d, entity.getEntityBoundingBox()); - double v = (1.0D - distancedSize) * blockDensity; - float damage = (float) ((int) ((v * v + v) / 2.0D * 7.0D * (double) doubleExplosionSize + 1.0D)); - double finalD = 1; - /*if (entity instanceof EntityLivingBase) - finalD = getBlastReduction((EntityLivingBase) entity,getDamageMultiplied(damage));*/ - if (entity instanceof EntityLivingBase) { - finalD = getBlastReduction((EntityLivingBase) entity, getDamageMultiplied(damage), new Explosion(mc.world, null, posX, posY, posZ, 6F, false, true)); - } - return (float) finalD; - } - - public static float getBlastReduction(EntityLivingBase entity, float damage, Explosion explosion) { - if (entity instanceof EntityPlayer) { - EntityPlayer ep = (EntityPlayer) entity; - DamageSource ds = DamageSource.causeExplosionDamage(explosion); - damage = CombatRules.getDamageAfterAbsorb(damage, (float) ep.getTotalArmorValue(), (float) ep.getEntityAttribute(SharedMonsterAttributes.ARMOR_TOUGHNESS).getAttributeValue()); - - int k = EnchantmentHelper.getEnchantmentModifierDamage(ep.getArmorInventoryList(), ds); - float f = MathHelper.clamp(k, 0.0F, 20.0F); - damage = damage * (1.0F - f / 25.0F); - - if (entity.isPotionActive(Objects.requireNonNull(Potion.getPotionById(11)))) { - damage = damage - (damage / 4); - } - - damage = Math.max(damage - ep.getAbsorptionAmount(), 0.0F); - return damage; - } - damage = CombatRules.getDamageAfterAbsorb(damage, (float) entity.getTotalArmorValue(), (float) entity.getEntityAttribute(SharedMonsterAttributes.ARMOR_TOUGHNESS).getAttributeValue()); - return damage; - } - - private static float getDamageMultiplied(float damage) { - int diff = mc.world.getDifficulty().getId(); - return damage * (diff == 0 ? 0 : (diff == 2 ? 1 : (diff == 1 ? 0.5f : 1.5f))); - } - - public static float calculateDamage(EntityEnderCrystal crystal, Entity entity) { - return calculateDamage(crystal.posX, crystal.posY, crystal.posZ, entity); - } - - //this modifies packets being sent so no extra ones are made. NCP used to flag with "too many packets" - private static void setYawAndPitch(float yaw1, float pitch1) { - yaw = yaw1; - pitch = pitch1; - isSpoofingAngles = true; - } - - private static void resetRotation() { - if (isSpoofingAngles) { - yaw = mc.player.rotationYaw; - pitch = mc.player.rotationPitch; - isSpoofingAngles = false; - } - } + private static EntityEnderCrystal lastCrystal; + private static List ignoredCrystals = new ArrayList<>(); + private static int hitTries = 0; public void onUpdate() { if (defaultSetting.getValue()) { @@ -231,9 +158,10 @@ public class CrystalAura extends Module { .orElse(null); + if (explode.getValue() && crystal != null && mc.player.getDistance(crystal) <= range.getValue() && passSwordCheck()) { // Added delay to stop ncp from flagging "hitting too fast" - if (((System.nanoTime() / 1000000f) - systemTime) >= 25 * delay.getValue()) { + if (((System.nanoTime() / 1000000f) - systemTime) >= 25*delay.getValue()) { if (antiWeakness.getValue() && mc.player.isPotionActive(MobEffects.WEAKNESS)) { if (!isAttacking) { // save initial player hand @@ -273,7 +201,7 @@ public class CrystalAura extends Module { if (explodeBehavior.getValue() == ExplodeBehavior.ALWAYS) { explode(crystal); } - for (Vec3d vecOffset : holeOffset) { /* for placeholder offset for each BlockPos in the list holeOffset */ + for (Vec3d vecOffset:holeOffset) { /* for placeholder offset for each BlockPos in the list holeOffset */ BlockPos offset = new BlockPos(vecOffset.x, vecOffset.y, vecOffset.z); if (mc.world.getBlockState(offset).getBlock() == Blocks.OBSIDIAN || mc.world.getBlockState(offset).getBlock() == Blocks.BEDROCK) { holeBlocks++; @@ -285,7 +213,7 @@ public class CrystalAura extends Module { } } if (explodeBehavior.getValue() == ExplodeBehavior.PREVENT_SUICIDE) { - if (mc.player.getPositionVector().distanceTo(crystal.getPositionVector()) <= 0.5 && mc.player.getPosition().getY() == crystal.getPosition().getY() || mc.player.getPositionVector().distanceTo(crystal.getPositionVector()) >= 2.3 && mc.player.getPosition().getY() == crystal.getPosition().getY() || mc.player.getPositionVector().distanceTo(crystal.getPositionVector()) >= 0.5 && mc.player.getPosition().getY() != crystal.getPosition().getY()) { + if (mc.player.getPositionVector().distanceTo(crystal.getPositionVector()) <= 0.5 && mc.player.getPosition().getY() == crystal.getPosition().getY()|| mc.player.getPositionVector().distanceTo(crystal.getPositionVector()) >= 2.3 && mc.player.getPosition().getY() == crystal.getPosition().getY()||mc.player.getPositionVector().distanceTo(crystal.getPositionVector()) >= 0.5 && mc.player.getPosition().getY() != crystal.getPosition().getY()) { explode(crystal); } } @@ -378,7 +306,7 @@ public class CrystalAura extends Module { } double d = calculateDamage(blockPos.x + .5, blockPos.y + 1, blockPos.z + .5, entity); double self = calculateDamage(blockPos.x + .5, blockPos.y + 1, blockPos.z + .5, mc.player); - if (self >= mc.player.getHealth() + mc.player.getAbsorptionAmount() || self > d) continue; + if (self >= mc.player.getHealth()+mc.player.getAbsorptionAmount() || self > d) continue; if (b < 10 && d >= 15 || d >= ((EntityLivingBase) entity).getHealth() + ((EntityLivingBase) entity).getAbsorptionAmount() || 6 >= ((EntityLivingBase) entity).getHealth() + ((EntityLivingBase) entity).getAbsorptionAmount() && b < 4 || b < 9 && d >= minDmg.getValue() && minDmg.getValue() > 0.0) { q = blockPos; damage = d; @@ -436,8 +364,7 @@ public class CrystalAura extends Module { if (render != null) { KamiTessellator.prepare(GL11.GL_QUADS); int colour = 0x44ffffff; - if (customColours.getValue()) - colour = rgbToInt(r.getValue(), g.getValue(), b.getValue(), aBlock.getValue()); + if (customColours.getValue()) colour = rgbToInt(r.getValue(), g.getValue(), b.getValue(), aBlock.getValue()); KamiTessellator.drawBox(render, colour, GeometryMasks.Quad.ALL); KamiTessellator.release(); if (renderEnt != null && tracer.getValue()) { @@ -457,12 +384,9 @@ public class CrystalAura extends Module { } } - - //Better Rotation Spoofing System: - private void lookAtPacket(double px, double py, double pz, EntityPlayer me) { double[] v = calculateLookAt(px, py, pz, me); - setYawAndPitch((float) v[0], (float) v[1] + 1f); + setYawAndPitch((float) v[0], (float) v[1]+1f); } private boolean canPlaceCrystal(BlockPos blockPos) { @@ -476,6 +400,10 @@ public class CrystalAura extends Module { && mc.world.getEntitiesWithinAABB(Entity.class, new AxisAlignedBB(boost2)).isEmpty(); } + public static BlockPos getPlayerPos() { + return new BlockPos(Math.floor(mc.player.posX), Math.floor(mc.player.posY), Math.floor(mc.player.posZ)); + } + private List findCrystalBlocks() { NonNullList positions = NonNullList.create(); positions.addAll(getSphere(getPlayerPos(), range.getValue().floatValue(), range.getValue().intValue(), false, true, 0).stream().filter(this::canPlaceCrystal).collect(Collectors.toList())); @@ -501,10 +429,88 @@ public class CrystalAura extends Module { return circleblocks; } - public void onEnable() { - sendMessage("&aENABLED&r"); + public static float calculateDamage(double posX, double posY, double posZ, Entity entity) { + float doubleExplosionSize = 6.0F * 2.0F; + double distancedSize = entity.getDistance(posX, posY, posZ) / (double) doubleExplosionSize; + Vec3d vec3d = new Vec3d(posX, posY, posZ); + double blockDensity = entity.world.getBlockDensity(vec3d, entity.getEntityBoundingBox()); + double v = (1.0D - distancedSize) * blockDensity; + float damage = (float) ((int) ((v * v + v) / 2.0D * 7.0D * (double) doubleExplosionSize + 1.0D)); + double finalD = 1; + /*if (entity instanceof EntityLivingBase) + finalD = getBlastReduction((EntityLivingBase) entity,getDamageMultiplied(damage));*/ + if (entity instanceof EntityLivingBase) { + finalD = getBlastReduction((EntityLivingBase) entity, getDamageMultiplied(damage), new Explosion(mc.world, null, posX, posY, posZ, 6F, false, true)); + } + return (float) finalD; } + public static float getBlastReduction(EntityLivingBase entity, float damage, Explosion explosion) { + if (entity instanceof EntityPlayer) { + EntityPlayer ep = (EntityPlayer) entity; + DamageSource ds = DamageSource.causeExplosionDamage(explosion); + damage = CombatRules.getDamageAfterAbsorb(damage, (float) ep.getTotalArmorValue(), (float) ep.getEntityAttribute(SharedMonsterAttributes.ARMOR_TOUGHNESS).getAttributeValue()); + + int k = EnchantmentHelper.getEnchantmentModifierDamage(ep.getArmorInventoryList(), ds); + float f = MathHelper.clamp(k, 0.0F, 20.0F); + damage = damage * (1.0F - f / 25.0F); + + if (entity.isPotionActive(Objects.requireNonNull(Potion.getPotionById(11)))) { + damage = damage - (damage / 4); + } + + damage = Math.max(damage - ep.getAbsorptionAmount(), 0.0F); + return damage; + } + damage = CombatRules.getDamageAfterAbsorb(damage, (float) entity.getTotalArmorValue(), (float) entity.getEntityAttribute(SharedMonsterAttributes.ARMOR_TOUGHNESS).getAttributeValue()); + return damage; + } + + private static float getDamageMultiplied(float damage) { + int diff = mc.world.getDifficulty().getId(); + return damage * (diff == 0 ? 0 : (diff == 2 ? 1 : (diff == 1 ? 0.5f : 1.5f))); + } + + public static float calculateDamage(EntityEnderCrystal crystal, Entity entity) { + return calculateDamage(crystal.posX, crystal.posY, crystal.posZ, entity); + } + + + //Better Rotation Spoofing System: + + private static boolean isSpoofingAngles; + private static double yaw; + private static double pitch; + + //this modifies packets being sent so no extra ones are made. NCP used to flag with "too many packets" + private static void setYawAndPitch(float yaw1, float pitch1) { + yaw = yaw1; + pitch = pitch1; + isSpoofingAngles = true; + } + + private static void resetRotation() { + if (isSpoofingAngles) { + yaw = mc.player.rotationYaw; + pitch = mc.player.rotationPitch; + isSpoofingAngles = false; + } + } + + + @EventHandler + private Listener cPacketListener = new Listener<>(event -> { + Packet packet = event.getPacket(); + if (packet instanceof CPacketPlayer) { + if (isSpoofingAngles) { + ((CPacketPlayer) packet).yaw = (float) yaw; + ((CPacketPlayer) packet).pitch = (float) pitch; + } + } + }); + + public void onEnable() { sendMessage("&aENABLED&r"); } + public void onDisable() { sendMessage("&cDISABLED&r"); render = null; @@ -530,16 +536,14 @@ public class CrystalAura extends Module { mc.playerController.attackEntity(mc.player, crystal); mc.player.swingArm(EnumHand.MAIN_HAND); } - } catch (Throwable ignored) { - } + } catch (Throwable ignored) { } systemTime = System.nanoTime() / 1000000L; } private boolean passSwordCheck() { if (!noToolExplode.getValue() || antiWeakness.getValue()) return true; - else - return !noToolExplode.getValue() || (!(mc.player.getHeldItemMainhand().getItem() instanceof ItemTool) && !(mc.player.getHeldItemMainhand().getItem() instanceof ItemSword)); + else return !noToolExplode.getValue() || (!(mc.player.getHeldItemMainhand().getItem() instanceof ItemTool) && !(mc.player.getHeldItemMainhand().getItem() instanceof ItemSword)); } @Override @@ -573,6 +577,7 @@ public class CrystalAura extends Module { } } + private static long startTime = 0; private boolean resetTime() { if (startTime == 0) startTime = System.currentTimeMillis(); if (startTime + 900000 <= System.currentTimeMillis()) { // 15 minutes in milliseconds @@ -587,10 +592,4 @@ public class CrystalAura extends Module { sendChatMessage(getChatName() + message); } } - - private enum ExplodeBehavior {HOLE_ONLY, PREVENT_SUICIDE, LEFT_CLICK_ONLY, ALWAYS} - - private enum PlaceBehavior {MULTI, TRADITIONAL} - - private enum Page {ONE, TWO} } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/Fastuse.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/Fastuse.java index cda29044a..56bae12d3 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/Fastuse.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/Fastuse.java @@ -10,23 +10,22 @@ import net.minecraft.util.math.BlockPos; /** * Created by S-B99 on 23/10/2019 - * * @author S-B99 * Updated by S-B99 on 03/12/19 * Updated by d1gress/Qther on 4/12/19 - *

+ * * Bowspam code from https://github.com/seppukudevelopment/seppuku/blob/5586365/src/main/java/me/rigamortis/seppuku/impl/module/combat/FastBowModule.java */ @Module.Info(category = Module.Category.COMBAT, description = "Use items faster", name = "FastUse") public class Fastuse extends Module { - private static long time = 0; private Setting delay = register(Settings.integerBuilder("Delay").withMinimum(0).withMaximum(20).withValue(0).build()); private Setting all = register(Settings.b("All", false)); private Setting bow = register(Settings.booleanBuilder().withName("Bow").withValue(true).withVisibility(v -> !all.getValue()).build()); private Setting expBottles = register(Settings.booleanBuilder().withName("Exp Bottles").withValue(true).withVisibility(v -> !all.getValue()).build()); private Setting endCrystals = register(Settings.booleanBuilder().withName("End Crystals").withValue(true).withVisibility(v -> !all.getValue()).build()); private Setting fireworks = register(Settings.booleanBuilder().withName("Fireworks").withValue(false).withVisibility(v -> !all.getValue()).build()); + private static long time = 0; @Override public void onDisable() { @@ -61,6 +60,7 @@ public class Fastuse extends Module { if (all.getValue()) return true; if (expBottles.getValue() && item instanceof ItemExpBottle) return true; if (endCrystals.getValue() && item instanceof ItemEndCrystal) return true; - return fireworks.getValue() && item instanceof ItemFirework; + if (fireworks.getValue() && item instanceof ItemFirework) return true; + return false; } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/OffhandGap.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/OffhandGap.java index 033cb21e1..91799c91c 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/OffhandGap.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/OffhandGap.java @@ -27,139 +27,138 @@ import static me.zeroeightsix.kami.module.modules.client.InfoOverlay.getItems; */ @Module.Info(name = "OffhandGap", category = Module.Category.COMBAT, description = "Holds a God apple when right clicking your sword!") public class OffhandGap extends Module { - int gaps = -1; - boolean autoTotemWasEnabled = false; - boolean cancelled = false; - boolean isGuiOpened = false; - @EventHandler - public Listener listener = new Listener<>(event -> isGuiOpened = event.getScreen() != null); - Item usedItem; - CrystalAura crystalAura; - private Setting disableHealth = register(Settings.doubleBuilder("Disable Health").withMinimum(0.0).withValue(4.0).withMaximum(20.0).build()); - private Setting eatWhileAttacking = register(Settings.b("Eat While Attacking", false)); - private Setting swordOrAxeOnly = register(Settings.b("Sword or Axe Only", true)); - private Setting preferBlocks = register(Settings.booleanBuilder("Prefer Placing Blocks").withValue(false).withVisibility(v -> !swordOrAxeOnly.getValue()).build()); - private Setting crystalCheck = register(Settings.b("Crystal Check", false)); - @EventHandler - private final Listener sendListener = new Listener<>(e -> { - if (e.getPacket() instanceof CPacketPlayerTryUseItem) { - if (cancelled) { - disableGaps(); - return; - } - if (mc.player.getHeldItemMainhand().getItem() instanceof ItemSword || mc.player.getHeldItemMainhand().getItem() instanceof ItemAxe || passItemCheck()) { - if (MODULE_MANAGER.isModuleEnabled(AutoTotem.class)) { - autoTotemWasEnabled = true; - MODULE_MANAGER.getModule(AutoTotem.class).disable(); - } - if (!eatWhileAttacking.getValue()) { /* Save item for later when using preventDesync */ - usedItem = mc.player.getHeldItemMainhand().getItem(); - } - enableGaps(gaps); - } - } - try { - /* If you stop holding right click move totem back */ - if (!mc.gameSettings.keyBindUseItem.isKeyDown() && mc.player.getHeldItemOffhand().getItem() == Items.GOLDEN_APPLE) - disableGaps(); - /* In case you didn't stop right clicking but you switched items by scrolling or something */ - else if ((usedItem != mc.player.getHeldItemMainhand().getItem()) && mc.player.getHeldItemOffhand().getItem() == Items.GOLDEN_APPLE) { - if (!eatWhileAttacking.getValue()) { - usedItem = mc.player.getHeldItemMainhand().getItem(); - disableGaps(); - } - } - /* Force disable if under health limit */ - else if (mc.player.getHealth() + mc.player.getAbsorptionAmount() <= disableHealth.getValue()) { - disableGaps(); - } - /* Disable if there are crystals in the range of CrystalAura */ - crystalAura = MODULE_MANAGER.getModuleT(CrystalAura.class); - if (crystalCheck.getValue() && crystalAura.isEnabled()) { - EntityEnderCrystal crystal = mc.world.loadedEntityList.stream() - .filter(entity -> entity instanceof EntityEnderCrystal) - .map(entity -> (EntityEnderCrystal) entity) - .min(Comparator.comparing(c -> mc.player.getDistance(c))) - .orElse(null); - if (Objects.requireNonNull(crystal).getPosition().distanceSq(mc.player.getPosition().x, mc.player.getPosition().y, mc.player.getPosition().z) <= crystalAura.range.getValue()) { - disableGaps(); - } - } - } catch (NullPointerException ignored) { - } - }); + private Setting disableHealth = register(Settings.doubleBuilder("Disable Health").withMinimum(0.0).withValue(4.0).withMaximum(20.0).build()); + private Setting eatWhileAttacking = register(Settings.b("Eat While Attacking", false)); + private Setting swordOrAxeOnly = register(Settings.b("Sword or Axe Only", true)); + private Setting preferBlocks = register(Settings.booleanBuilder("Prefer Placing Blocks").withValue(false).withVisibility(v -> !swordOrAxeOnly.getValue()).build()); + private Setting crystalCheck = register(Settings.b("Crystal Check", false)); - @Override - public void onUpdate() { - if (mc.player == null) return; + int gaps = -1; + boolean autoTotemWasEnabled = false; + boolean cancelled = false; + boolean isGuiOpened = false; + Item usedItem; + CrystalAura crystalAura; - /* If your health doesn't meet the cutoff then set it to true */ - cancelled = mc.player.getHealth() + mc.player.getAbsorptionAmount() <= disableHealth.getValue(); - if (cancelled) { - disableGaps(); - return; - } + @EventHandler + private Listener sendListener = new Listener<>(e ->{ + if (e.getPacket() instanceof CPacketPlayerTryUseItem) { + if (cancelled) { + disableGaps(); + return; + } + if (mc.player.getHeldItemMainhand().getItem() instanceof ItemSword || mc.player.getHeldItemMainhand().getItem() instanceof ItemAxe || passItemCheck()) { + if (MODULE_MANAGER.isModuleEnabled(AutoTotem.class)) { + autoTotemWasEnabled = true; + MODULE_MANAGER.getModule(AutoTotem.class).disable(); + } + if (!eatWhileAttacking.getValue()) { /* Save item for later when using preventDesync */ + usedItem = mc.player.getHeldItemMainhand().getItem(); + } + enableGaps(gaps); + } + } + try { + /* If you stop holding right click move totem back */ + if (!mc.gameSettings.keyBindUseItem.isKeyDown() && mc.player.getHeldItemOffhand().getItem() == Items.GOLDEN_APPLE) disableGaps(); + /* In case you didn't stop right clicking but you switched items by scrolling or something */ + else if ((usedItem != mc.player.getHeldItemMainhand().getItem()) && mc.player.getHeldItemOffhand().getItem() == Items.GOLDEN_APPLE) { + if (!eatWhileAttacking.getValue()) { + usedItem = mc.player.getHeldItemMainhand().getItem(); + disableGaps(); + } + } + /* Force disable if under health limit */ + else if (mc.player.getHealth() + mc.player.getAbsorptionAmount() <= disableHealth.getValue()) { + disableGaps(); + } + /* Disable if there are crystals in the range of CrystalAura */ + crystalAura = MODULE_MANAGER.getModuleT(CrystalAura.class); + if (crystalCheck.getValue() && crystalAura.isEnabled()) { + EntityEnderCrystal crystal = mc.world.loadedEntityList.stream() + .filter(entity -> entity instanceof EntityEnderCrystal) + .map(entity -> (EntityEnderCrystal) entity) + .min(Comparator.comparing(c -> mc.player.getDistance(c))) + .orElse(null); + if (Objects.requireNonNull(crystal).getPosition().distanceSq(mc.player.getPosition().x, mc.player.getPosition().y, mc.player.getPosition().z) <= crystalAura.range.getValue()) { + disableGaps(); + } + } + } catch (NullPointerException ignored) { } + }); - if (mc.player.getHeldItemOffhand().getItem() != Items.GOLDEN_APPLE) { - for (int i = 0; i < 45; i++) { - if (mc.player.inventory.getStackInSlot(i).getItem() == Items.GOLDEN_APPLE) { - gaps = i; - break; - } - } - } - } + @Override + public void onUpdate() { + if (mc.player == null) return; - /* If weaponCheck is disabled, check if they're not holding an item you'd want to use normally */ - private boolean passItemCheck() { - if (swordOrAxeOnly.getValue()) return false; - else { - Item item = mc.player.getHeldItemMainhand().getItem(); - if (item instanceof ItemBow) return false; - if (item instanceof ItemSnowball) return false; - if (item instanceof ItemEgg) return false; - if (item instanceof ItemPotion) return false; - if (item instanceof ItemEnderEye) return false; - if (item instanceof ItemEnderPearl) return false; - if (item instanceof ItemFood) return false; - if (item instanceof ItemShield) return false; - if (item instanceof ItemFlintAndSteel) return false; - if (item instanceof ItemFishingRod) return false; - if (item instanceof ItemArmor) return false; - if (item instanceof ItemExpBottle) return false; - return !preferBlocks.getValue() || !(item instanceof ItemBlock); - } - } + /* If your health doesn't meet the cutoff then set it to true */ + cancelled = mc.player.getHealth() + mc.player.getAbsorptionAmount() <= disableHealth.getValue(); + if (cancelled) { disableGaps(); return; } - private void disableGaps() { - if (autoTotemWasEnabled != MODULE_MANAGER.isModuleEnabled(AutoTotem.class)) { - moveGapsWaitForNoGui(); - MODULE_MANAGER.getModule(AutoTotem.class).enable(); - autoTotemWasEnabled = false; - } - } + if (mc.player.getHeldItemOffhand().getItem() != Items.GOLDEN_APPLE) { + for (int i = 0; i < 45; i++) { + if (mc.player.inventory.getStackInSlot(i).getItem() == Items.GOLDEN_APPLE) { + gaps = i; + break; + } + } + } + } - private void enableGaps(int slot) { - if (mc.player.getHeldItemOffhand().getItem() != Items.GOLDEN_APPLE) { - mc.playerController.windowClick(0, slot < 9 ? slot + 36 : slot, 0, ClickType.PICKUP, mc.player); - mc.playerController.windowClick(0, 45, 0, ClickType.PICKUP, mc.player); - } - } + /* If weaponCheck is disabled, check if they're not holding an item you'd want to use normally */ + private boolean passItemCheck() { + if (swordOrAxeOnly.getValue()) return false; + else { + Item item = mc.player.getHeldItemMainhand().getItem(); + if (item instanceof ItemBow) return false; + if (item instanceof ItemSnowball) return false; + if (item instanceof ItemEgg) return false; + if (item instanceof ItemPotion) return false; + if (item instanceof ItemEnderEye) return false; + if (item instanceof ItemEnderPearl) return false; + if (item instanceof ItemFood) return false; + if (item instanceof ItemShield) return false; + if (item instanceof ItemFlintAndSteel) return false; + if (item instanceof ItemFishingRod) return false; + if (item instanceof ItemArmor) return false; + if (item instanceof ItemExpBottle) return false; + if (preferBlocks.getValue() && item instanceof ItemBlock) return false; + } + return true; + } - private void moveGapsToInventory(int slot) { - if (mc.player.getHeldItemOffhand().getItem() == Items.GOLDEN_APPLE) { - mc.playerController.windowClick(0, 45, 0, ClickType.PICKUP, mc.player); - mc.playerController.windowClick(0, slot < 9 ? slot + 36 : slot, 0, ClickType.PICKUP, mc.player); - } - } + private void disableGaps() { + if (autoTotemWasEnabled != MODULE_MANAGER.isModuleEnabled(AutoTotem.class)) { + moveGapsWaitForNoGui(); + MODULE_MANAGER.getModule(AutoTotem.class).enable(); + autoTotemWasEnabled = false; + } + } - private void moveGapsWaitForNoGui() { - if (isGuiOpened) return; - moveGapsToInventory(gaps); - } + private void enableGaps(int slot) { + if (mc.player.getHeldItemOffhand().getItem() != Items.GOLDEN_APPLE) { + mc.playerController.windowClick(0, slot < 9 ? slot + 36 : slot, 0, ClickType.PICKUP, mc.player); + mc.playerController.windowClick(0, 45, 0, ClickType.PICKUP, mc.player); + } + } - @Override - public String getHudInfo() { - return String.valueOf(getItems(Items.GOLDEN_APPLE)); - } + private void moveGapsToInventory(int slot) { + if (mc.player.getHeldItemOffhand().getItem() == Items.GOLDEN_APPLE) { + mc.playerController.windowClick(0, 45, 0, ClickType.PICKUP, mc.player); + mc.playerController.windowClick(0, slot < 9 ? slot + 36 : slot, 0, ClickType.PICKUP, mc.player); + } + } + + private void moveGapsWaitForNoGui() { + if (isGuiOpened) return; + moveGapsToInventory(gaps); + } + + @EventHandler + public Listener listener = new Listener<>(event -> isGuiOpened = event.getScreen() != null); + + @Override + public String getHudInfo() { + return String.valueOf(getItems(Items.GOLDEN_APPLE)); + } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/Surround.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/Surround.java index 57c044fc9..955e3489a 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/Surround.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/Surround.java @@ -35,7 +35,6 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; @Module.Info(name = "Surround", category = Module.Category.COMBAT, description = "Surrounds you with obsidian to take less damage") public class Surround extends Module { - private final Vec3d[] surroundTargets = new Vec3d[]{new Vec3d(0.0D, 0.0D, 0.0D), new Vec3d(1.0D, 1.0D, 0.0D), new Vec3d(0.0D, 1.0D, 1.0D), new Vec3d(-1.0D, 1.0D, 0.0D), new Vec3d(0.0D, 1.0D, -1.0D), new Vec3d(1.0D, 0.0D, 0.0D), new Vec3d(0.0D, 0.0D, 1.0D), new Vec3d(-1.0D, 0.0D, 0.0D), new Vec3d(0.0D, 0.0D, -1.0D), new Vec3d(1.0D, 1.0D, 0.0D), new Vec3d(0.0D, 1.0D, 1.0D), new Vec3d(-1.0D, 1.0D, 0.0D), new Vec3d(0.0D, 1.0D, -1.0D)}; public Setting autoDisable = register(Settings.b("Disable on place", true)); private Setting spoofRotations = register(Settings.b("Spoof Rotations", true)); private Setting spoofHotbar = register(Settings.b("Spoof Hotbar", false)); @@ -43,43 +42,21 @@ public class Surround extends Module { private Setting debugMsgs = register(Settings.e("Debug Messages", DebugMsgs.IMPORTANT)); private Setting autoCenter = register(Settings.e("Auto Center", AutoCenter.TP)); private Setting placeAnimation = register(Settings.b("Place Animation", false)); + + private final Vec3d[] surroundTargets = new Vec3d[]{new Vec3d(0.0D, 0.0D, 0.0D), new Vec3d(1.0D, 1.0D, 0.0D), new Vec3d(0.0D, 1.0D, 1.0D), new Vec3d(-1.0D, 1.0D, 0.0D), new Vec3d(0.0D, 1.0D, -1.0D), new Vec3d(1.0D, 0.0D, 0.0D), new Vec3d(0.0D, 0.0D, 1.0D), new Vec3d(-1.0D, 0.0D, 0.0D), new Vec3d(0.0D, 0.0D, -1.0D), new Vec3d(1.0D, 1.0D, 0.0D), new Vec3d(0.0D, 1.0D, 1.0D), new Vec3d(-1.0D, 1.0D, 0.0D), new Vec3d(0.0D, 1.0D, -1.0D)}; + private Vec3d playerPos; private BlockPos basePos; private int offsetStep = 0; private int playerHotbarSlot = -1; private int lastHotbarSlot = -1; - private static boolean canBeClicked(BlockPos pos) { - return getBlock(pos).canCollideCheck(getState(pos), false); + private enum DebugMsgs { + NONE, IMPORTANT, ALL } - public static Block getBlock(BlockPos pos) { - return getState(pos).getBlock(); - } - - private static IBlockState getState(BlockPos pos) { - return mc.world.getBlockState(pos); - } - - private static void faceVectorPacketInstant(Vec3d vec) { - float[] rotations = getLegitRotations(vec); - mc.player.connection.sendPacket(new Rotation(rotations[0], rotations[1], mc.player.onGround)); - } - - private static float[] getLegitRotations(Vec3d vec) { - Vec3d eyesPos = getEyesPos(); - double diffX = vec.x - eyesPos.x; - double diffY = vec.y - eyesPos.y; - double diffZ = vec.z - eyesPos.z; - double diffXZ = Math.sqrt(diffX * diffX + diffZ * diffZ); - float yaw = (float) Math.toDegrees(Math.atan2(diffZ, diffX)) - 90.0F; - float pitch = (float) (-Math.toDegrees(Math.atan2(diffY, diffXZ))); - return new float[]{mc.player.rotationYaw + MathHelper.wrapDegrees(yaw - mc.player.rotationYaw), mc.player.rotationPitch + MathHelper.wrapDegrees(pitch - mc.player.rotationPitch)}; - } - /* End of Autocenter */ - - private static Vec3d getEyesPos() { - return new Vec3d(mc.player.posX, mc.player.posY + (double) mc.player.getEyeHeight(), mc.player.posZ); + private enum AutoCenter { + OFF, TP } public void onUpdate() { @@ -117,16 +94,17 @@ public class Surround extends Module { private void centerPlayer(double x, double y, double z) { if (debugMsgs.getValue().equals(DebugMsgs.ALL) && playerPos != null) { sendChatMessage(getChatName() + " Player position is " + playerPos.toString()); - } else if (debugMsgs.getValue().equals(DebugMsgs.ALL)) { + } + else if (debugMsgs.getValue().equals(DebugMsgs.ALL)) { sendChatMessage(getChatName() + " Player position is null"); } mc.player.connection.sendPacket(new CPacketPlayer.Position(x, y, z, true)); mc.player.setPosition(x, y, z); } - double getDst(Vec3d vec) { return playerPos.distanceTo(vec); } + /* End of Autocenter */ public void onEnable() { if (mc.player == null) return; @@ -147,18 +125,15 @@ public class Surround extends Module { x = centerPos.getX() + 0.5; z = centerPos.getZ() + 0.5; centerPlayer(x, y, z); - } - if (getDst(plusMinus) < getDst(plusPlus) && getDst(plusMinus) < getDst(minusMinus) && getDst(plusMinus) < getDst(minusPlus)) { + } if (getDst(plusMinus) < getDst(plusPlus) && getDst(plusMinus) < getDst(minusMinus) && getDst(plusMinus) < getDst(minusPlus)) { x = centerPos.getX() + 0.5; z = centerPos.getZ() - 0.5; centerPlayer(x, y, z); - } - if (getDst(minusMinus) < getDst(plusPlus) && getDst(minusMinus) < getDst(plusMinus) && getDst(minusMinus) < getDst(minusPlus)) { + } if (getDst(minusMinus) < getDst(plusPlus) && getDst(minusMinus) < getDst(plusMinus) && getDst(minusMinus) < getDst(minusPlus)) { x = centerPos.getX() - 0.5; z = centerPos.getZ() - 0.5; centerPlayer(x, y, z); - } - if (getDst(minusPlus) < getDst(plusPlus) && getDst(minusPlus) < getDst(plusMinus) && getDst(minusPlus) < getDst(minusMinus)) { + } if (getDst(minusPlus) < getDst(plusPlus) && getDst(minusPlus) < getDst(plusMinus) && getDst(minusPlus) < getDst(minusMinus)) { x = centerPos.getX() - 0.5; z = centerPos.getZ() + 0.5; centerPlayer(x, y, z); @@ -222,8 +197,7 @@ public class Surround extends Module { } else if (!BlockInteractionHelper.checkForNeighbours(blockPos) && debugMsgs.getValue().equals(DebugMsgs.ALL)) { sendChatMessage(getChatName() + " !checkForNeighbours(blockPos), disabling! "); } else { - if (placeAnimation.getValue()) - mc.player.connection.sendPacket(new CPacketAnimation(mc.player.getActiveHand())); + if (placeAnimation.getValue()) mc.player.connection.sendPacket(new CPacketAnimation(mc.player.getActiveHand())); placeBlockExecute(blockPos); } if (MODULE_MANAGER.isModuleEnabled(NoBreakAnimation.class)) { @@ -314,11 +288,35 @@ public class Surround extends Module { } } - private enum DebugMsgs { - NONE, IMPORTANT, ALL + private static boolean canBeClicked(BlockPos pos) { + return getBlock(pos).canCollideCheck(getState(pos), false); } - private enum AutoCenter { - OFF, TP + public static Block getBlock(BlockPos pos) { + return getState(pos).getBlock(); + } + + private static IBlockState getState(BlockPos pos) { + return mc.world.getBlockState(pos); + } + + private static void faceVectorPacketInstant(Vec3d vec) { + float[] rotations = getLegitRotations(vec); + mc.player.connection.sendPacket(new Rotation(rotations[0], rotations[1], mc.player.onGround)); + } + + private static float[] getLegitRotations(Vec3d vec) { + Vec3d eyesPos = getEyesPos(); + double diffX = vec.x - eyesPos.x; + double diffY = vec.y - eyesPos.y; + double diffZ = vec.z - eyesPos.z; + double diffXZ = Math.sqrt(diffX * diffX + diffZ * diffZ); + float yaw = (float) Math.toDegrees(Math.atan2(diffZ, diffX)) - 90.0F; + float pitch = (float) (-Math.toDegrees(Math.atan2(diffY, diffXZ))); + return new float[]{mc.player.rotationYaw + MathHelper.wrapDegrees(yaw - mc.player.rotationYaw), mc.player.rotationPitch + MathHelper.wrapDegrees(pitch - mc.player.rotationPitch)}; + } + + private static Vec3d getEyesPos() { + return new Vec3d(mc.player.posX, mc.player.posY + (double) mc.player.getEyeHeight(), mc.player.posZ); } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/TotemPopCounter.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/TotemPopCounter.java index 79d229f96..41139f41c 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/TotemPopCounter.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/TotemPopCounter.java @@ -38,37 +38,10 @@ public class TotemPopCounter extends Module { private Setting thanksTo = register(Settings.b("Thanks to", false)); private Setting colourCode = register(Settings.e("Color Name", ColourTextFormatting.ColourCode.DARK_PURPLE)); private Setting colourCode1 = register(Settings.e("Color Number", ColourTextFormatting.ColourCode.LIGHT_PURPLE)); + + private enum Announce { CLIENT, EVERYONE } private HashMap playerList = new HashMap(); - @EventHandler - public Listener listListener = new Listener<>(event -> { - if (playerList == null) playerList = new HashMap<>(); - - if (playerList.get(event.getEntity().getName()) == null) { - playerList.put(event.getEntity().getName(), 1); - sendMessage(formatName(event.getEntity().getName()) + " popped " + formatNumber(1) + " totem" + ending()); - } else if (!(playerList.get(event.getEntity().getName()) == null)) { - int popCounter = playerList.get(event.getEntity().getName()); - popCounter += 1; - playerList.put(event.getEntity().getName(), popCounter); - sendMessage(formatName(event.getEntity().getName()) + " popped " + formatNumber(popCounter) + " totems" + ending()); - } - }); private boolean isDead = false; - @EventHandler - public Listener popListener = new Listener<>(event -> { - if (mc.player == null) return; - - if (event.getPacket() instanceof SPacketEntityStatus) { - SPacketEntityStatus packet = (SPacketEntityStatus) event.getPacket(); - if (packet.getOpCode() == 35) { - Entity entity = packet.getEntity(mc.world); - if (friendCheck(entity.getName()) || selfCheck(entity.getName())) { - EVENT_BUS.post(new EntityUseTotemEvent(entity)); - } - } - } - - }); @Override public void onUpdate() { @@ -85,10 +58,10 @@ public class TotemPopCounter extends Module { for (EntityPlayer player : mc.world.playerEntities) { if ( resetDeaths.getValue() - && 0 >= player.getHealth() - && friendCheck(player.getName()) - && selfCheck(player.getName()) - && playerList.containsKey(player.getName())) { + && 0 >= player.getHealth() + && friendCheck(player.getName()) + && selfCheck(player.getName()) + && playerList.containsKey(player.getName())) { /* To note: if they died after popping 1 totem it's going to say totems, but I cba to fix it */ sendMessage(formatName(player.getName()) + " died after popping " + formatNumber(playerList.get(player.getName())) + " totems" + ending()); playerList.remove(player.getName(), playerList.get(player.getName())); @@ -96,6 +69,23 @@ public class TotemPopCounter extends Module { } } + @EventHandler + public Listener listListener = new Listener<>(event -> { + if (playerList == null) playerList = new HashMap<>(); + + if (playerList.get(event.getEntity().getName()) == null) { + playerList.put(event.getEntity().getName(), 1); + sendMessage(formatName(event.getEntity().getName()) + " popped " + formatNumber(1) + " totem" + ending()); + } + + else if (!(playerList.get(event.getEntity().getName()) == null)) { + int popCounter = playerList.get(event.getEntity().getName()); + popCounter += 1; + playerList.put(event.getEntity().getName(), popCounter); + sendMessage(formatName(event.getEntity().getName()) + " popped " + formatNumber(popCounter) + " totems" + ending()); + } + }); + private boolean friendCheck(String name) { if (isDead) return false; for (Friends.Friend names : Friends.friends.getValue()) { @@ -108,7 +98,11 @@ public class TotemPopCounter extends Module { if (isDead) return false; if (countSelf.getValue() && name.equalsIgnoreCase(mc.player.getName())) { return true; - } else return countSelf.getValue() || !name.equalsIgnoreCase(mc.player.getName()); + } + else if (!countSelf.getValue() && name.equalsIgnoreCase(mc.player.getName())) { + return false; + } + return true; } private boolean isSelf(String name) { @@ -126,10 +120,7 @@ public class TotemPopCounter extends Module { String extraText = ""; if (isFriend(name) && !isPublic()) extraText = "Your friend, "; else if (isFriend(name) && isPublic()) extraText = "My friend, "; - if (isSelf(name)) { - extraText = ""; - name = "I"; - } + if (isSelf(name)) { extraText = ""; name = "I"; } if (announceSetting.getValue().equals(Announce.EVERYONE)) { return extraText + name; @@ -140,13 +131,15 @@ public class TotemPopCounter extends Module { private String grammar(String name) { if (isSelf(name)) { return "my"; - } else return "their"; + } + else return "their"; } private String ending() { if (thanksTo.getValue()) { return " thanks to " + KamiMod.MODNAME + "!"; - } else return "!"; + } + else return "!"; } private boolean isPublic() { @@ -170,9 +163,23 @@ public class TotemPopCounter extends Module { } } + @EventHandler + public Listener popListener = new Listener<>(event -> { + if (mc.player == null) return; + + if (event.getPacket() instanceof SPacketEntityStatus) { + SPacketEntityStatus packet = (SPacketEntityStatus) event.getPacket(); + if (packet.getOpCode() == 35) { + Entity entity = packet.getEntity(mc.world); + if (friendCheck(entity.getName()) || selfCheck(entity.getName())) { + EVENT_BUS.post(new EntityUseTotemEvent(entity)); + } + } + } + + }); + private TextFormatting setToText(ColourTextFormatting.ColourCode colourCode) { return toTextMap.get(colourCode); } - - private enum Announce {CLIENT, EVERYONE} } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/VisualRange.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/VisualRange.java index 8f217c6bd..71b7d7f34 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/VisualRange.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/VisualRange.java @@ -25,7 +25,7 @@ public class VisualRange extends Module { private Setting uwuAura = register(Settings.b("UwU Aura", false)); private List knownPlayers; - + @Override public void onUpdate() { if (mc.player == null) return; @@ -48,7 +48,7 @@ public class VisualRange extends Module { } else { sendNotification(ChatFormatting.RED.toString() + playerName + ChatFormatting.RESET.toString() + " entered the Battlefield!"); } - if (uwuAura.getValue()) sendServerMessage("/w " + playerName + " hi uwu"); + if (uwuAura.getValue()) sendServerMessage("/w "+ playerName + " hi uwu"); return; } @@ -66,7 +66,7 @@ public class VisualRange extends Module { } else { sendNotification(ChatFormatting.RED.toString() + playerName + ChatFormatting.RESET.toString() + " left the Battlefield!"); } - if (uwuAura.getValue()) sendServerMessage(("/w " + playerName + " bye uwu")); + if (uwuAura.getValue()) sendServerMessage(("/w "+ playerName + " bye uwu")); } return; diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/experimental/HoleFiller.java b/src/main/java/me/zeroeightsix/kami/module/modules/experimental/HoleFiller.java index 3eb7ac207..b95324f0f 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/experimental/HoleFiller.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/experimental/HoleFiller.java @@ -39,49 +39,28 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; * Created by polymer on 12/03/20 */ -@Module.Info(name = "HoleFiller", category = Module.Category.EXPERIMENTAL, description = "Fills holes around the player to make people easier to crystal.") +@Module.Info(name = "HoleFiller", category = Module.Category.EXPERIMENTAL, description="Fills holes around the player to make people easier to crystal.") public class HoleFiller extends Module { - static boolean isSpoofingAngles; - static float yaw; - static float pitch; - private final BlockPos[] surroundOffset = { - new BlockPos(0, -1, 0), // down - new BlockPos(0, 0, -1), // north - new BlockPos(1, 0, 0), // east - new BlockPos(0, 0, 1), // south - new BlockPos(-1, 0, 0) // west - }; - public List blockPosList; - public boolean isHole; - List entities = new ArrayList<>(); private Setting distance = register(Settings.d("Range", 4.0)); private Setting render = register(Settings.b("Render Filled Blocks", false)); private Setting holeCheck = register(Settings.b("Only Fill in Hole", true)); private Setting ignoreWalls = register(Settings.b("Ignore Walls", false)); - @EventHandler - private final Listener cPacketListener = new Listener<>(event -> { - Packet packet = event.getPacket(); - if (packet instanceof CPacketPlayer) { - if (isSpoofingAngles) { - ((CPacketPlayer) packet).yaw = yaw; - ((CPacketPlayer) packet).pitch = pitch; - } - } - }); - private static void setYawAndPitch(float yaw1, float pitch1) { - yaw = yaw1; - pitch = pitch1; - isSpoofingAngles = true; - } + public List blockPosList; + List entities = new ArrayList<>(); - private static void resetRotation() { - if (isSpoofingAngles) { - yaw = mc.player.rotationYaw; - pitch = mc.player.rotationPitch; - isSpoofingAngles = false; - } - } + public boolean isHole; + static boolean isSpoofingAngles; + static float yaw; + static float pitch; + + private final BlockPos[] surroundOffset = { + new BlockPos(0, -1, 0), // down + new BlockPos(0, 0, -1), // north + new BlockPos(1, 0, 0), // east + new BlockPos(0, 0, 1), // south + new BlockPos(-1, 0, 0) // west + }; private int findObiInHotbar() { int slot = -1; @@ -104,11 +83,11 @@ public class HoleFiller extends Module { if (mc.player == null || mc.world == null) return; Vec3d[] holeOffset = { - mc.player.getPositionVector().add(1, 0, 0), - mc.player.getPositionVector().add(-1, 0, 0), - mc.player.getPositionVector().add(0, 0, 1), - mc.player.getPositionVector().add(0, 0, -1), - mc.player.getPositionVector().add(0, -1, 0) + mc.player.getPositionVector().add(1, 0, 0), + mc.player.getPositionVector().add(-1, 0, 0), + mc.player.getPositionVector().add(0, 0, 1), + mc.player.getPositionVector().add(0, 0, -1), + mc.player.getPositionVector().add(0, -1, 0) }; @@ -121,14 +100,14 @@ public class HoleFiller extends Module { for (BlockPos pos : maybe) { if (ignoreWalls.getValue()) { blockPosList.add(pos); - } else if (mc.world.rayTraceBlocks(new Vec3d(mc.player.getPosition().x, mc.player.getPosition().y + p.getEyeHeight(), mc.player.getPosition().z), new Vec3d(pos.x, pos.y + (double) p.getEyeHeight(), pos.z), false, true, false) != null) { + } else if (mc.world.rayTraceBlocks(new Vec3d(mc.player.getPosition().x, mc.player.getPosition().y + p.getEyeHeight(), mc.player.getPosition().z), new Vec3d(pos.x, pos.y + (double)p.getEyeHeight(), pos.z), false, true, false) != null) { blockPosList.add(pos); } } } if (blockPosList == null) return; - for (BlockPos p : blockPosList) { + for (BlockPos p: blockPosList) { if (p == null) return; isHole = true; @@ -151,8 +130,8 @@ public class HoleFiller extends Module { int h = 0; if (holeCheck.getValue()) { - for (Vec3d o : holeOffset) { - BlockPos q = new BlockPos(o.x, o.y, o.z); + for (Vec3d o: holeOffset) { + BlockPos q = new BlockPos (o.x, o.y, o.z); Block b = mc.world.getBlockState(q).getBlock(); if (b == Blocks.OBSIDIAN || b == Blocks.BEDROCK) { h++; @@ -188,9 +167,32 @@ public class HoleFiller extends Module { } } } - private void lookAtPacket(double px, double py, double pz, EntityPlayer me) { double[] v = calculateLookAt(px, py, pz, me); - setYawAndPitch((float) v[0], (float) v[1] + 1f); + setYawAndPitch((float) v[0], (float) v[1]+1f); } + private static void setYawAndPitch(float yaw1, float pitch1) { + yaw = yaw1; + pitch = pitch1; + isSpoofingAngles = true; + } + + private static void resetRotation() { + if (isSpoofingAngles) { + yaw = mc.player.rotationYaw; + pitch = mc.player.rotationPitch; + isSpoofingAngles = false; + } + } + + @EventHandler + private Listener cPacketListener = new Listener<>(event -> { + Packet packet = event.getPacket(); + if (packet instanceof CPacketPlayer) { + if (isSpoofingAngles) { + ((CPacketPlayer) packet).yaw = (float) yaw; + ((CPacketPlayer) packet).pitch = (float) pitch; + } + } + }); } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/hidden/CoordsLog.java b/src/main/java/me/zeroeightsix/kami/module/modules/hidden/CoordsLog.java index 152382f02..9038b1218 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/hidden/CoordsLog.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/hidden/CoordsLog.java @@ -1,22 +1,30 @@ package me.zeroeightsix.kami.module.modules.hidden; +import me.zeroeightsix.kami.util.LogUtil; import me.zeroeightsix.kami.module.Module; import me.zeroeightsix.kami.setting.Setting; import me.zeroeightsix.kami.setting.Settings; -import me.zeroeightsix.kami.util.LogUtil; +import static me.zeroeightsix.kami.util.MessageSendHelper.sendRawChatMessage; + +import net.minecraft.client.Minecraft; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.function.Function; + +import java.io.FileWriter; +import java.io.IOException; @Module.Info(name = "CoordsLog", description = "Automatically writes the coordinates of the player to a file with a user defined delay between logs.", category = Module.Category.HIDDEN, showOnArray = Module.ShowOnArray.OFF) public class CoordsLog extends Module { - private static boolean playerIsDead = false; - private static long startTime = 0; private Setting delay = register(Settings.doubleBuilder("Time between logs").withMinimum(1.0).withValue(15.0).withMaximum(60.0).build()); private Setting checkDuplicates = register(Settings.b("Don't log same coord 2 times in a row", true)); private Setting useChunkCoord = register(Settings.b("Use chunk coordinate", true)); + private int previousCoord; + private static boolean playerIsDead = false; + @Override public void onUpdate() { if (mc.player == null) @@ -29,13 +37,15 @@ public class CoordsLog extends Module { } } + private static long startTime = 0; + private void timeout() { if (startTime == 0) startTime = System.currentTimeMillis(); if (startTime + (delay.getValue() * 1000) <= System.currentTimeMillis()) { // 1 timeout = 1 second = 1000 ms startTime = System.currentTimeMillis(); int[] cCArray = LogUtil.getCurrentCoord(useChunkCoord.getValue()); - int currentCoord = cCArray[0] * 3 + cCArray[1] * 32 + cCArray[2] / 2; + int currentCoord = (int) cCArray[0]*3 + (int) cCArray[1]*32 + (int) cCArray[2]/2; if (checkDuplicates.getValue() == true) { if (currentCoord != previousCoord) { logCoordinates(); diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/hidden/Teleport.java b/src/main/java/me/zeroeightsix/kami/module/modules/hidden/Teleport.java index 65508f236..6866d3561 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/hidden/Teleport.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/hidden/Teleport.java @@ -13,10 +13,10 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendErrorMessage; @Module.Info(name = "Teleport", description = "Library for teleport command", category = Module.Category.HIDDEN) public class Teleport extends Module { - public static Vec3d finalPos; - public static double blocksPerTeleport; private long lastTp; private Vec3d lastPos; + public static Vec3d finalPos; + public static double blocksPerTeleport; @Override public void onUpdate() { diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AntiAFK.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AntiAFK.java index 857d1c7b1..14fb17b9a 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AntiAFK.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AntiAFK.java @@ -17,7 +17,7 @@ public class AntiAFK extends Module { private Setting swing = register(Settings.b("Swing", true)); private Setting turn = register(Settings.b("Turn", true)); - private final Random random = new Random(); + private Random random = new Random(); @Override public void onUpdate() { diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoFish.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoFish.java index 22e9a2be9..2a8c01a93 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoFish.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoFish.java @@ -26,34 +26,15 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; */ @Module.Info(name = "AutoFish", category = Module.Category.MISC, description = "Automatically catch fish", alwaysListening = true) public class AutoFish extends Module { + private boolean recastHide = false; private static ServerData cServer; - @EventHandler - public Listener serverConnectedEvent = new Listener<>(event -> { - if (isEnabled() && event.getScreen() instanceof GuiConnecting) { - cServer = mc.currentServerData; - EVENT_BUS.post(new ServerConnectedEvent()); - } - }); - @EventHandler - public Listener serverDisconnectedEvent = new Listener<>(event -> { - if (isEnabled() && event.getScreen() instanceof GuiDisconnected && (cServer != null || mc.currentServerData != null)) { - EVENT_BUS.post(new ServerDisconnectedEvent()); - } - }); Random random; - private final boolean recastHide = false; + private Setting defaultSetting = register(Settings.b("Defaults", false)); private Setting baseDelay = register(Settings.integerBuilder("Throw Delay").withValue(450).withMinimum(50).withMaximum(1000).build()); private Setting extraDelay = register(Settings.integerBuilder("Catch Delay").withValue(300).withMinimum(0).withMaximum(1000).build()); private Setting variation = register(Settings.integerBuilder("Variation").withValue(50).withMinimum(0).withMaximum(1000).build()); private Setting recast = register(Settings.booleanBuilder("Recast").withValue(false).withVisibility(v -> recastHide).build()); - @EventHandler - public Listener disconnectedEventListener = new Listener<>(event -> { - if (isDisabled()) return; - recast.setValue(true); - }); - @EventHandler - private final Listener receiveListener = new Listener<>(this::invoke); public void onUpdate() { if (defaultSetting.getValue()) defaults(); @@ -63,6 +44,15 @@ public class AutoFish extends Module { } } + @EventHandler + public Listener disconnectedEventListener = new Listener<>(event -> { + if (isDisabled()) return; + recast.setValue(true); + }); + + @EventHandler + private Listener receiveListener = new Listener<>(this::invoke); + private void invoke(PacketEvent.Receive e) { if (isEnabled() && e.getPacket() instanceof SPacketSoundEffect) { SPacketSoundEffect pck = (SPacketSoundEffect) e.getPacket(); @@ -93,6 +83,21 @@ public class AutoFish extends Module { } } + @EventHandler + public Listener serverConnectedEvent = new Listener<>(event -> { + if (isEnabled() && event.getScreen() instanceof GuiConnecting) { + cServer = mc.currentServerData; + EVENT_BUS.post(new ServerConnectedEvent()); + } + }); + + @EventHandler + public Listener serverDisconnectedEvent = new Listener<>(event -> { + if (isEnabled() && event.getScreen() instanceof GuiDisconnected && (cServer != null || mc.currentServerData != null)) { + EVENT_BUS.post(new ServerDisconnectedEvent()); + } + }); + private boolean kindaEquals(int kara, int ni) { return ni == kara || ni == kara - 1 || ni == kara + 1; } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoNametag.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoNametag.java index 1dc08be53..e24a56e1e 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoNametag.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoNametag.java @@ -95,5 +95,5 @@ public class AutoNametag extends Module { } } - private enum Mode {WITHER, ANY} + private enum Mode { WITHER, ANY } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoReconnect.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoReconnect.java index 31c2b2454..f9738cb4b 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoReconnect.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoReconnect.java @@ -16,18 +16,20 @@ import net.minecraft.client.multiplayer.ServerData; @Module.Info(name = "AutoReconnect", description = "Automatically reconnects after being disconnected", category = Module.Category.MISC, alwaysListening = true, showOnArray = Module.ShowOnArray.OFF) public class AutoReconnect extends Module { + private Setting seconds = register(Settings.integerBuilder("Seconds").withValue(5).withMinimum(0).build()); private static ServerData cServer; + @EventHandler public Listener closedListener = new Listener<>(event -> { if (event.getScreen() instanceof GuiConnecting) cServer = mc.currentServerData; }); + @EventHandler public Listener displayedListener = new Listener<>(event -> { if (isEnabled() && event.getScreen() instanceof GuiDisconnected && (cServer != null || mc.currentServerData != null)) event.setScreen(new KamiGuiDisconnected((GuiDisconnected) event.getScreen())); }); - private Setting seconds = register(Settings.integerBuilder("Seconds").withValue(5).withMinimum(0).build()); private class KamiGuiDisconnected extends GuiDisconnected { diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoSpawner.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoSpawner.java index 15e927e26..8f10de95f 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoSpawner.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoSpawner.java @@ -37,7 +37,6 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; @Module.Info(name = "AutoSpawner", category = Module.Category.MISC, description = "Automatically spawns Withers, Iron Golems and Snowmen") public class AutoSpawner extends Module { - private static boolean isSneaking; private Setting useMode = register(Settings.e("Use Mode", UseMode.SPAM)); private Setting party = register(Settings.b("Party", false)); private Setting partyWithers = register(Settings.booleanBuilder("Withers").withValue(false).withVisibility(v -> party.getValue()).build()); @@ -46,6 +45,9 @@ public class AutoSpawner extends Module { private Setting delay = register(Settings.integerBuilder("Delay").withMinimum(12).withValue(20).withMaximum(100).build()); private Setting rotate = register(Settings.b("Rotate", true)); private Setting debug = register(Settings.b("Debug", false)); + + private static boolean isSneaking; + private BlockPos placeTarget; private boolean rotationPlaceableX; private boolean rotationPlaceableZ; @@ -100,10 +102,7 @@ public class AutoSpawner extends Module { @Override protected void onEnable() { - if (mc.player == null) { - disable(); - return; - } + if (mc.player == null) { disable(); return; } buildStage = 1; delayStep = 1; diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoTool.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoTool.java index 321bd9d87..98ba3f876 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoTool.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoTool.java @@ -26,10 +26,29 @@ public class AutoTool extends Module { private Setting preferTool = register(Settings.e("Prefer", Aura.HitMode.NONE)); @EventHandler - private final Listener leftClickListener = new Listener<>(event -> equipBestTool(mc.world.getBlockState(event.getPos()))); + private Listener leftClickListener = new Listener<>(event -> equipBestTool(mc.world.getBlockState(event.getPos()))); @EventHandler - private final Listener attackListener = new Listener<>(event -> equipBestWeapon(preferTool.getValue())); + private Listener attackListener = new Listener<>(event -> equipBestWeapon(preferTool.getValue())); + + private void equipBestTool(IBlockState blockState) { + int bestSlot = -1; + double max = 0; + for (int i = 0; i < 9; i++) { + ItemStack stack = mc.player.inventory.getStackInSlot(i); + if (stack.isEmpty) continue; + float speed = stack.getDestroySpeed(blockState); + int eff; + if (speed > 1) { + speed += ((eff = EnchantmentHelper.getEnchantmentLevel(Enchantments.EFFICIENCY, stack)) > 0 ? (Math.pow(eff, 2) + 1) : 0); + if (speed > max) { + max = speed; + bestSlot = i; + } + } + } + if (bestSlot != -1) equip(bestSlot); + } public static void equipBestWeapon(Aura.HitMode hitMode) { int bestSlot = -1; @@ -67,23 +86,4 @@ public class AutoTool extends Module { mc.player.inventory.currentItem = slot; mc.playerController.syncCurrentPlayItem(); } - - private void equipBestTool(IBlockState blockState) { - int bestSlot = -1; - double max = 0; - for (int i = 0; i < 9; i++) { - ItemStack stack = mc.player.inventory.getStackInSlot(i); - if (stack.isEmpty) continue; - float speed = stack.getDestroySpeed(blockState); - int eff; - if (speed > 1) { - speed += ((eff = EnchantmentHelper.getEnchantmentLevel(Enchantments.EFFICIENCY, stack)) > 0 ? (Math.pow(eff, 2) + 1) : 0); - if (speed > max) { - max = speed; - bestSlot = i; - } - } - } - if (bestSlot != -1) equip(bestSlot); - } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/BlockData.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/BlockData.java index 3e1db9a10..8c1e8afb3 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/BlockData.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/BlockData.java @@ -18,12 +18,20 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; /** * @author 0x2E | PretendingToCode - *

+ * * TODO: Fix delay timer because that shit broken */ @Module.Info(name = "BlockData", category = Module.Category.MISC, description = "Right click blocks to display their data") public class BlockData extends Module { private int delay = 0; + + @Override + public void onUpdate() { + if (delay > 0) { + delay--; + } + } + @EventHandler public Listener mouseListener = new Listener<>(event -> { if (Mouse.getEventButton() == 1 && delay == 0) { @@ -42,11 +50,4 @@ public class BlockData extends Module { } } }); - - @Override - public void onUpdate() { - if (delay > 0) { - delay--; - } - } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/BookCrash.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/BookCrash.java index 235c030b6..15cd0710b 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/BookCrash.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/BookCrash.java @@ -34,10 +34,6 @@ public class BookCrash extends Module { private Setting pagesSettings = register(Settings.i("Pages", 50)); private Setting autoToggle = register(Settings.b("AutoToggle", true)); - private static String repeat(int count, String with) { - return new String(new char[count]).replace("\0", with); - } - @Override public void onUpdate() { if (Minecraft.getMinecraft().getCurrentServerData() == null || Minecraft.getMinecraft().getCurrentServerData().serverIP.isEmpty()) { @@ -99,4 +95,8 @@ public class BookCrash extends Module { ASCII, FFFF, RANDOM, OLD } + private static String repeat(int count, String with) { + return new String(new char[count]).replace("\0", with); + } + } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/CameraClip.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/CameraClip.java index 28ac80a3b..34acb17cd 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/CameraClip.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/CameraClip.java @@ -6,7 +6,7 @@ import net.minecraft.util.math.Vec3d; /** * Created by 086 on 11/12/2017. - *

+ * * {@link me.zeroeightsix.kami.mixin.client.MixinEntityRenderer#rayTraceBlocks(WorldClient, Vec3d, Vec3d)} */ @Module.Info(name = "CameraClip", category = Module.Category.MISC, description = "Allows your 3rd person camera to pass through blocks", showOnArray = Module.ShowOnArray.OFF) diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/ConsoleSpam.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/ConsoleSpam.java index 6d700d2c2..52eb1fa47 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/ConsoleSpam.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/ConsoleSpam.java @@ -19,6 +19,12 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; @Module.Info(name = "ConsoleSpam", description = "Spams Spigot consoles by sending invalid UpdateSign packets", category = Module.Category.MISC) public class ConsoleSpam extends Module { + @Override + public void onEnable() { + sendChatMessage(getChatName() + " Every time you right click a sign, a warning will appear in console."); + sendChatMessage(getChatName() + " Use an autoclicker to automate this process."); + } + @EventHandler public Listener sendListener = new Listener<>(event -> { if (event.getPacket() instanceof CPacketPlayerTryUseItemOnBlock) { @@ -27,10 +33,4 @@ public class ConsoleSpam extends Module { Wrapper.getPlayer().connection.sendPacket(new CPacketUpdateSign(location, new TileEntitySign().signText)); } }); - - @Override - public void onEnable() { - sendChatMessage(getChatName() + " Every time you right click a sign, a warning will appear in console."); - sendChatMessage(getChatName() + " Use an autoclicker to automate this process."); - } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/DiscordRPC.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/DiscordRPC.java index c332c871e..ab9a73c05 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/DiscordRPC.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/DiscordRPC.java @@ -16,17 +16,19 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendWarningMessage; */ @Module.Info(name = "DiscordRPC", category = Module.Category.MISC, description = "Discord Rich Presence") public class DiscordRPC extends Module { - private static long startTime = 0; + private Setting coordsConfirm = register(Settings.b("Coords Confirm", false)); public Setting line1Setting = register(Settings.e("Line 1 Left", LineInfo.VERSION)); // details left public Setting line3Setting = register(Settings.e("Line 1 Right", LineInfo.USERNAME)); // details right public Setting line2Setting = register(Settings.e("Line 2 Left", LineInfo.SERVER_IP)); // state left public Setting line4Setting = register(Settings.e("Line 2 Right", LineInfo.HEALTH)); // state right - private Setting coordsConfirm = register(Settings.b("Coords Confirm", false)); + + public enum LineInfo { + VERSION, WORLD, DIMENSION, USERNAME, HEALTH, SERVER_IP, COORDS, NONE + } public String getLine(LineInfo line) { switch (line) { - case VERSION: - return KamiMod.MODVERSMALL; + case VERSION: return KamiMod.MODVERSMALL; case WORLD: if (mc.isIntegratedServerRunning()) return "Singleplayer"; else if (mc.getCurrentServerData() != null) return "Multiplayer"; @@ -44,11 +46,9 @@ public class DiscordRPC extends Module { else if (mc.isIntegratedServerRunning()) return "Offline"; else return "Main Menu"; case COORDS: - if (mc.player != null && coordsConfirm.getValue()) - return "(" + (int) mc.player.posX + " " + (int) mc.player.posY + " " + (int) mc.player.posZ + ")"; + if (mc.player != null && coordsConfirm.getValue()) return "(" + (int) mc.player.posX + " " + (int) mc.player.posY + " " + (int) mc.player.posZ + ")"; else return "No coords"; - default: - return ""; + default: return ""; } } @@ -57,6 +57,7 @@ public class DiscordRPC extends Module { DiscordPresence.start(); } + private static long startTime = 0; @Override public void onUpdate() { if (startTime == 0) startTime = System.currentTimeMillis(); @@ -74,8 +75,4 @@ public class DiscordRPC extends Module { protected void onDisable() { DiscordPresence.end(); } - - public enum LineInfo { - VERSION, WORLD, DIMENSION, USERNAME, HEALTH, SERVER_IP, COORDS, NONE - } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/EntityTools.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/EntityTools.java index 7af7abb03..7b66ef322 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/EntityTools.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/EntityTools.java @@ -14,15 +14,26 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; /** * @author 0x2E | PretendingToCode - *

+ * * Inspired by ForgeHax, recreated with expressed permission from creator - *

+ * * TODO: Fix delay timer because that shit broken */ @Module.Info(name = "EntityTools", category = Module.Category.MISC, description = "Right click entities to perform actions on them") public class EntityTools extends Module { private Setting mode = register(Settings.e("Mode", Mode.DELETE)); private int delay = 0; + private enum Mode { + DELETE, INFO + } + + @Override + public void onUpdate() { + if (delay > 0) { + delay--; + } + } + @EventHandler public Listener mouseListener = new Listener<>(event -> { if (Mouse.getEventButton() == 1 && delay == 0) { @@ -39,15 +50,4 @@ public class EntityTools extends Module { } } }); - - @Override - public void onUpdate() { - if (delay > 0) { - delay--; - } - } - - private enum Mode { - DELETE, INFO - } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/MidClickFriends.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/MidClickFriends.java index b93facfd1..cf92a9c6a 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/MidClickFriends.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/MidClickFriends.java @@ -21,6 +21,14 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; @Module.Info(name = "MidClickFriends", category = Module.Category.MISC, description = "Middle click players to friend or unfriend them", showOnArray = Module.ShowOnArray.OFF) public class MidClickFriends extends Module { private int delay = 0; + + @Override + public void onUpdate() { + if (delay > 0) { + delay--; + } + } + @EventHandler public Listener mouseListener = new Listener<>(event -> { if (delay == 0) { @@ -40,13 +48,6 @@ public class MidClickFriends extends Module { } }); - @Override - public void onUpdate() { - if (delay > 0) { - delay--; - } - } - private void remove(String name) { delay = 20; Friends.Friend friend = Friends.friends.getValue().stream().filter(friend1 -> friend1.getUsername().equalsIgnoreCase(name)).findFirst().get(); diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/SkinFlicker.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/SkinFlicker.java index 103a1a94b..71d408c07 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/SkinFlicker.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/SkinFlicker.java @@ -13,6 +13,9 @@ import java.util.Random; @Module.Info(name = "SkinFlicker", description = "Toggle your skin layers rapidly for a cool skin effect", category = Module.Category.MISC) public class SkinFlicker extends Module { + private Setting mode = register(Settings.e("Mode", FlickerMode.HORIZONTAL)); + private Setting slowness = register(Settings.integerBuilder().withName("Slowness").withValue(2).withMinimum(1).build()); + private final static EnumPlayerModelParts[] PARTS_HORIZONTAL = new EnumPlayerModelParts[]{ EnumPlayerModelParts.LEFT_SLEEVE, EnumPlayerModelParts.JACKET, @@ -21,6 +24,7 @@ public class SkinFlicker extends Module { EnumPlayerModelParts.RIGHT_PANTS_LEG, EnumPlayerModelParts.RIGHT_SLEEVE }; + private final static EnumPlayerModelParts[] PARTS_VERTICAL = new EnumPlayerModelParts[]{ EnumPlayerModelParts.HAT, EnumPlayerModelParts.JACKET, @@ -29,10 +33,9 @@ public class SkinFlicker extends Module { EnumPlayerModelParts.LEFT_PANTS_LEG, EnumPlayerModelParts.RIGHT_PANTS_LEG, }; - private Setting mode = register(Settings.e("Mode", FlickerMode.HORIZONTAL)); - private Setting slowness = register(Settings.integerBuilder().withName("Slowness").withValue(2).withMinimum(1).build()); - private final Random r = new Random(); - private final int len = EnumPlayerModelParts.values().length; + + private Random r = new Random(); + private int len = EnumPlayerModelParts.values().length; @Override public void onUpdate() { @@ -53,7 +56,7 @@ public class SkinFlicker extends Module { } } - public enum FlickerMode { + public static enum FlickerMode { HORIZONTAL, VERTICAL, RANDOM } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/XCarry.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/XCarry.java index e563182e8..56c9a79a3 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/XCarry.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/XCarry.java @@ -12,7 +12,7 @@ import net.minecraft.network.play.client.CPacketCloseWindow; @Module.Info(name = "XCarry", category = Module.Category.PLAYER, description = "Store items in crafting slots", showOnArray = Module.ShowOnArray.OFF) public class XCarry extends Module { @EventHandler - private final Listener l = new Listener<>(event -> { + private Listener l = new Listener<>(event -> { if (event.getPacket() instanceof CPacketCloseWindow) { event.cancel(); } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/movement/AntiHunger.java b/src/main/java/me/zeroeightsix/kami/module/modules/movement/AntiHunger.java index 487223a7d..6f9afb7b6 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/movement/AntiHunger.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/movement/AntiHunger.java @@ -15,7 +15,7 @@ import static net.minecraft.network.play.client.CPacketEntityAction.Action.STOP_ /** * Created by 086 on 8/04/2018. * Code tweaked by coderynx & OverFloyd. - *

+ * * Movement taken from Seppuku * https://github.com/seppukudevelopment/seppuku/blob/005e2da/src/main/java/me/rigamortis/seppuku/impl/module/player/NoHungerModule.java */ diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/movement/AutoJump.java b/src/main/java/me/zeroeightsix/kami/module/modules/movement/AutoJump.java index d8332b15e..ac0d7ce9f 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/movement/AutoJump.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/movement/AutoJump.java @@ -9,7 +9,6 @@ import me.zeroeightsix.kami.setting.Settings; */ @Module.Info(name = "AutoJump", category = Module.Category.MOVEMENT, description = "Automatically jumps if possible") public class AutoJump extends Module { - private static long startTime = 0; private Setting delay = register(Settings.integerBuilder("Tick Delay").withValue(10).build()); @Override @@ -25,6 +24,7 @@ public class AutoJump extends Module { } } + private static long startTime = 0; private boolean timeout() { if (startTime == 0) startTime = System.currentTimeMillis(); if (startTime + ((delay.getValue() / 20) * 1000) <= System.currentTimeMillis()) { // 1 timeout = 1 second = 1000 ms diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/movement/AutoRemount.java b/src/main/java/me/zeroeightsix/kami/module/modules/movement/AutoRemount.java index b34208780..bff8bcb40 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/movement/AutoRemount.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/movement/AutoRemount.java @@ -18,6 +18,8 @@ public class AutoRemount extends Module { private Setting modeSetting = register(Settings.e("Mode", Mode.HORSE)); private Setting range = register(Settings.floatBuilder("Range").withMinimum(1.0f).withValue(1.5f).withMaximum(10.0f).build()); + private enum Mode { HORSE, DONKEY } + public void onUpdate() { switch (modeSetting.getValue()) { case HORSE: @@ -41,6 +43,4 @@ public class AutoRemount extends Module { } } - - private enum Mode {HORSE, DONKEY} } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/movement/AutoWalk.java b/src/main/java/me/zeroeightsix/kami/module/modules/movement/AutoWalk.java index bfba08a9f..09c6c332c 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/movement/AutoWalk.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/movement/AutoWalk.java @@ -21,7 +21,7 @@ public class AutoWalk extends Module { private Setting mode = register(Settings.e("Mode", AutoWalkMode.FORWARD)); @EventHandler - private final Listener inputUpdateEventListener = new Listener<>(event -> { + private Listener inputUpdateEventListener = new Listener<>(event -> { switch (mode.getValue()) { case FORWARD: event.getMovementInput().moveForward = 1; diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/movement/ElytraFlight.java b/src/main/java/me/zeroeightsix/kami/module/modules/movement/ElytraFlight.java index 556cbfab3..b3e4c8067 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/movement/ElytraFlight.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/movement/ElytraFlight.java @@ -25,7 +25,6 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendErrorMessage; */ @Module.Info(name = "ElytraFlight", description = "Modifies elytras to fly at custom velocities and fall speeds", category = Module.Category.MOVEMENT) public class ElytraFlight extends Module { - public float packetYaw = 0.0f; private Setting mode = register(Settings.e("Mode", ElytraFlightMode.HIGHWAY)); private Setting defaultSetting = register(Settings.b("Defaults", false)); private Setting easyTakeOff = register(Settings.booleanBuilder("Easy Takeoff H").withValue(true).withVisibility(v -> mode.getValue().equals(ElytraFlightMode.HIGHWAY)).build()); @@ -43,15 +42,18 @@ public class ElytraFlight extends Module { private Setting upSpeedBoost = register(Settings.floatBuilder("Up Speed B").withValue(0.08f).withVisibility(v -> mode.getValue().equals(ElytraFlightMode.BOOST)).build()); private Setting downSpeedBoost = register(Settings.floatBuilder("Down Speed B").withValue(0.04f).withVisibility(v -> mode.getValue().equals(ElytraFlightMode.BOOST)).build()); private Setting downSpeedControl = register(Settings.doubleBuilder("Down Speed C").withMaximum(10.0).withMinimum(0.0).withValue(2.0).withVisibility(v -> mode.getValue().equals(ElytraFlightMode.CONTROL)).build()); + private ElytraFlightMode enabledMode; private boolean hasDoneWarning; + /* Control mode states */ private double hoverTarget = -1.0; + public float packetYaw = 0.0f; private boolean hoverState = false; /* Control Mode */ @EventHandler - private final Listener sendListener = new Listener<>(event -> { + private Listener sendListener = new Listener<>(event -> { if (!mode.getValue().equals(ElytraFlightMode.CONTROL) || mc.player == null) return; if (event.getPacket() instanceof CPacketPlayer) { if (!mc.player.isElytraFlying()) return; @@ -65,9 +67,8 @@ public class ElytraFlight extends Module { }); @EventHandler - private final Listener receiveListener = new Listener<>(event -> { - if (!mode.getValue().equals(ElytraFlightMode.CONTROL) || mc.player == null || !mc.player.isElytraFlying()) - return; + private Listener receiveListener = new Listener<>(event -> { + if (!mode.getValue().equals(ElytraFlightMode.CONTROL) || mc.player == null || !mc.player.isElytraFlying()) return; if (event.getPacket() instanceof SPacketPlayerPosLook) { SPacketPlayerPosLook packet = (SPacketPlayerPosLook) event.getPacket(); packet.pitch = ElytraFlight.mc.player.rotationPitch; @@ -75,7 +76,7 @@ public class ElytraFlight extends Module { }); @EventHandler - private final Listener playerTravelListener = new Listener<>(event -> { + private Listener playerTravelListener = new Listener<>(event -> { if (!mode.getValue().equals(ElytraFlightMode.CONTROL) || mc.player == null) return; boolean doHover; if (!mc.player.isElytraFlying()) { @@ -181,18 +182,20 @@ public class ElytraFlight extends Module { if (mc.gameSettings.keyBindJump.isKeyDown()) mc.player.motionY += upSpeedBoost.getValue(); - else if (mc.gameSettings.keyBindSneak.isKeyDown()) - mc.player.motionY -= downSpeedBoost.getValue(); + else + if (mc.gameSettings.keyBindSneak.isKeyDown()) + mc.player.motionY -= downSpeedBoost.getValue(); if (mc.gameSettings.keyBindForward.isKeyDown()) { float yaw = (float) Math.toRadians(mc.player.rotationYaw); mc.player.motionX -= MathHelper.sin(yaw) * 0.05F; mc.player.motionZ += MathHelper.cos(yaw) * 0.05F; - } else if (mc.gameSettings.keyBindBack.isKeyDown()) { - float yaw = (float) Math.toRadians(mc.player.rotationYaw); - mc.player.motionX += MathHelper.sin(yaw) * 0.05F; - mc.player.motionZ -= MathHelper.cos(yaw) * 0.05F; - } + } else + if (mc.gameSettings.keyBindBack.isKeyDown()) { + float yaw = (float) Math.toRadians(mc.player.rotationYaw); + mc.player.motionX += MathHelper.sin(yaw) * 0.05F; + mc.player.motionZ -= MathHelper.cos(yaw) * 0.05F; + } } else { mc.player.capabilities.setFlySpeed(.915f); mc.player.capabilities.isFlying = true; @@ -280,7 +283,6 @@ public class ElytraFlight extends Module { } } - private enum ElytraFlightMode {BOOST, FLY, CONTROL, HIGHWAY} - - private enum TakeoffMode {CLIENT, PACKET} + private enum ElytraFlightMode { BOOST, FLY, CONTROL, HIGHWAY } + private enum TakeoffMode { CLIENT, PACKET } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/movement/ElytraReplace.java b/src/main/java/me/zeroeightsix/kami/module/modules/movement/ElytraReplace.java index 41427c377..e93879115 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/movement/ElytraReplace.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/movement/ElytraReplace.java @@ -24,6 +24,8 @@ public class ElytraReplace extends Module { private int elytraCount; + private enum InventoryMode { ON, OFF } + @Override public void onUpdate() { @@ -140,6 +142,4 @@ public class ElytraReplace extends Module { return true; } else return !elytraFlightCheck.getValue(); } - - private enum InventoryMode {ON, OFF} } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/movement/EntitySpeed.java b/src/main/java/me/zeroeightsix/kami/module/modules/movement/EntitySpeed.java index 31e15133e..c32cc47ab 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/movement/EntitySpeed.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/movement/EntitySpeed.java @@ -18,20 +18,16 @@ import net.minecraft.world.chunk.EmptyChunk; @Module.Info(name = "EntitySpeed", category = Module.Category.MOVEMENT, description = "Abuse client-sided movement to shape sound barrier breaking rideables") public class EntitySpeed extends Module { - private static Setting opacity = Settings.f("Boat opacity", .5f); private Setting speed = register(Settings.f("Speed", 1)); private Setting antiStuck = register(Settings.b("AntiStuck")); private Setting flight = register(Settings.b("Flight", false)); private Setting wobble = register(Settings.booleanBuilder("Wobble").withValue(true).withVisibility(b -> flight.getValue()).build()); + private static Setting opacity = Settings.f("Boat opacity", .5f); public EntitySpeed() { register(opacity); } - public static float getOpacity() { - return opacity.getValue(); - } - @Override public void onUpdate() { if ((mc.world != null) && (mc.player.getRidingEntity() != null)) { @@ -151,4 +147,8 @@ public class EntitySpeed extends Module { return antiStuck.getValue() && mc.world.getChunk((int) (entity.posX + motX) >> 4, (int) (entity.posZ + motZ) >> 4) instanceof EmptyChunk; } + public static float getOpacity() { + return opacity.getValue(); + } + } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/movement/InventoryMove.java b/src/main/java/me/zeroeightsix/kami/module/modules/movement/InventoryMove.java index 3a8d7715b..69fdaddc4 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/movement/InventoryMove.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/movement/InventoryMove.java @@ -13,8 +13,8 @@ import org.lwjgl.input.Keyboard; */ @Module.Info(name = "InventoryMove", description = "Allows you to walk around with GUIs opened", category = Module.Category.MOVEMENT) public class InventoryMove extends Module { - public Setting sneak = register(Settings.b("Sneak", false)); private Setting speed = register(Settings.i("Look speed", 10)); + public Setting sneak = register(Settings.b("Sneak", false)); public void onUpdate() { if (mc.player == null || mc.currentScreen == null || mc.currentScreen instanceof GuiChat) return; diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/movement/Jesus.java b/src/main/java/me/zeroeightsix/kami/module/modules/movement/Jesus.java index 2f2afe0f2..5e2771783 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/movement/Jesus.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/movement/Jesus.java @@ -26,6 +26,19 @@ import static me.zeroeightsix.kami.KamiMod.MODULE_MANAGER; public class Jesus extends Module { private static final AxisAlignedBB WATER_WALK_AA = new AxisAlignedBB(0.D, 0.D, 0.D, 1.D, 0.99D, 1.D); + + @Override + public void onUpdate() { + if (!MODULE_MANAGER.isModuleEnabled(Freecam.class)) { + if (EntityUtil.isInWater(mc.player) && !mc.player.isSneaking()) { + mc.player.motionY = 0.1; + if (mc.player.getRidingEntity() != null && !(mc.player.getRidingEntity() instanceof EntityBoat)) { + mc.player.getRidingEntity().motionY = 0.3; + } + } + } + } + @EventHandler Listener addCollisionBoxToListEventListener = new Listener<>((event) -> { if (mc.player != null @@ -42,6 +55,7 @@ public class Jesus extends Module { event.cancel(); } }); + @EventHandler Listener packetEventSendListener = new Listener<>(event -> { if (event.getEra() == KamiEvent.Era.PRE) { @@ -75,16 +89,4 @@ public class Jesus extends Module { return entity.posY >= pos.getY(); } - @Override - public void onUpdate() { - if (!MODULE_MANAGER.isModuleEnabled(Freecam.class)) { - if (EntityUtil.isInWater(mc.player) && !mc.player.isSneaking()) { - mc.player.motionY = 0.1; - if (mc.player.getRidingEntity() != null && !(mc.player.getRidingEntity() instanceof EntityBoat)) { - mc.player.getRidingEntity().motionY = 0.3; - } - } - } - } - } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/movement/NoSlowDown.java b/src/main/java/me/zeroeightsix/kami/module/modules/movement/NoSlowDown.java index e57796db8..0804b7820 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/movement/NoSlowDown.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/movement/NoSlowDown.java @@ -12,7 +12,6 @@ import net.minecraftforge.client.event.InputUpdateEvent; /** * Created by 086 on 15/12/2017. * Updated by S-B99 on 31/03/20 - * * @see me.zeroeightsix.kami.mixin.client.MixinBlockSoulSand * @see net.minecraft.client.entity.EntityPlayerSP#onLivingUpdate() */ @@ -32,7 +31,7 @@ public class NoSlowDown extends Module { * We'll abuse this fact, and multiply moveStrafe and moveForward by 5 to nullify the *0.2f hardcoded by Mojang. */ @EventHandler - private final Listener eventListener = new Listener<>(event -> { + private Listener eventListener = new Listener<>(event -> { if (passItemCheck(mc.player.getActiveItemStack().getItem()) && !mc.player.isRiding()) { event.getMovementInput().moveStrafe *= 5; event.getMovementInput().moveForward *= 5; @@ -46,9 +45,7 @@ public class NoSlowDown extends Module { } @Override - public void onDisable() { - Blocks.SLIME_BLOCK.slipperiness = 0.8f; - } + public void onDisable() { Blocks.SLIME_BLOCK.slipperiness = 0.8f; } private boolean passItemCheck(Item item) { if (!mc.player.isHandActive()) return false; diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/movement/Sprint.java b/src/main/java/me/zeroeightsix/kami/module/modules/movement/Sprint.java index 4ff6a92d9..73a606e44 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/movement/Sprint.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/movement/Sprint.java @@ -14,11 +14,12 @@ public class Sprint extends Module { @Override public void onUpdate() { if (mc.player == null) return; - if (MODULE_MANAGER.getModule(ElytraFlight.class).isEnabled() && (mc.player.isElytraFlying() || mc.player.capabilities.isFlying)) - return; + if (MODULE_MANAGER.getModule(ElytraFlight.class).isEnabled() && (mc.player.isElytraFlying() || mc.player.capabilities.isFlying)) return; try { - mc.player.setSprinting(!mc.player.collidedHorizontally && mc.player.moveForward > 0); - } catch (Exception ignored) { - } + if (!mc.player.collidedHorizontally && mc.player.moveForward > 0) + mc.player.setSprinting(true); + else + mc.player.setSprinting(false); + } catch (Exception ignored) { } } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/movement/TimerSpeed.java b/src/main/java/me/zeroeightsix/kami/module/modules/movement/TimerSpeed.java index ea295ee5e..5a8d29627 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/movement/TimerSpeed.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/movement/TimerSpeed.java @@ -12,8 +12,8 @@ import me.zeroeightsix.kami.util.InfoCalculator; */ @Module.Info(name = "TimerSpeed", description = "Automatically change your timer to go fast", category = Category.MOVEMENT) public class TimerSpeed extends Module { - private static float curSpeed = 0.0f; private float tickDelay = 0.0f; + private static float curSpeed = 0.0f; private Setting minimumSpeed = register(Settings.floatBuilder("Minimum Speed").withMinimum(0.1F).withMaximum(10.0F).withValue(4.0F).build()); private Setting maxSpeed = register(Settings.floatBuilder("Max Speed").withMinimum(0.1F).withMaximum(10.0F).withValue(7.0F).build()); private Setting attemptSpeed = register(Settings.floatBuilder("Attempt Speed").withMinimum(1.0F).withMaximum(10.0F).withValue(4.2F).build()); @@ -36,7 +36,6 @@ public class TimerSpeed extends Module { } ++tickDelay; } - public void onDisable() { mc.timer.tickLength = 50.0F; } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/movement/Velocity.java b/src/main/java/me/zeroeightsix/kami/module/modules/movement/Velocity.java index 8c05bce47..ef3348953 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/movement/Velocity.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/movement/Velocity.java @@ -13,7 +13,6 @@ import net.minecraft.network.play.server.SPacketExplosion; /** * Created by 086 on 16/11/2017. - * * @see me.zeroeightsix.kami.mixin.client.MixinBlockLiquid */ @Module.Info(name = "Velocity", description = "Modify knockback impact", category = Module.Category.MOVEMENT) @@ -24,7 +23,7 @@ public class Velocity extends Module { private Setting vertical = register(Settings.f("Vertical", 0)); @EventHandler - private final Listener packetEventListener = new Listener<>(event -> { + private Listener packetEventListener = new Listener<>(event -> { if (event.getEra() == KamiEvent.Era.PRE) { if (event.getPacket() instanceof SPacketEntityVelocity) { SPacketEntityVelocity velocity = (SPacketEntityVelocity) event.getPacket(); @@ -45,7 +44,7 @@ public class Velocity extends Module { }); @EventHandler - private final Listener entityCollisionListener = new Listener<>(event -> { + private Listener entityCollisionListener = new Listener<>(event -> { if (event.getEntity() == mc.player) { if ((horizontal.getValue() == 0 && vertical.getValue() == 0) || noPush.getValue()) { event.cancel(); diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/player/AutoEat.java b/src/main/java/me/zeroeightsix/kami/module/modules/player/AutoEat.java index 6dfb0ebae..b0127e9db 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/player/AutoEat.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/player/AutoEat.java @@ -28,7 +28,7 @@ public class AutoEat extends Module { private boolean isValid(ItemStack stack, int food) { return ( (passItemCheck(stack.getItem()) && stack.getItem() instanceof ItemFood && (foodLevel.getValue() - food) >= ((ItemFood) stack.getItem()).getHealAmount(stack)) || - (passItemCheck(stack.getItem()) && stack.getItem() instanceof ItemFood && (healthLevel.getValue() - (mc.player.getHealth() + mc.player.getAbsorptionAmount()) > 0f)) + (passItemCheck(stack.getItem()) && stack.getItem() instanceof ItemFood && (healthLevel.getValue() - (mc.player.getHealth() + mc.player.getAbsorptionAmount()) > 0f)) ); } @@ -36,9 +36,10 @@ public class AutoEat extends Module { if (item == Items.ROTTEN_FLESH) return false; if (item == Items.SPIDER_EYE) return false; if (item == Items.POISONOUS_POTATO) return false; - return item != Items.FISH || new ItemStack(Items.FISH).getItemDamage() != 3; - } - + if (item == Items.FISH && new ItemStack(Items.FISH).getItemDamage() == 3) return false; + return true; + } + @Override public void onUpdate() { if (mc.player == null) return; diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/player/EndTeleport.java b/src/main/java/me/zeroeightsix/kami/module/modules/player/EndTeleport.java index 6d540546b..6d6fcf6eb 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/player/EndTeleport.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/player/EndTeleport.java @@ -21,15 +21,6 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendWarningMessage; @Module.Info(name = "EndTeleport", category = Module.Category.PLAYER, description = "Allows for teleportation when going through end portals") public class EndTeleport extends Module { private Setting confirmed = register(Settings.b("Confirm", true)); - @EventHandler - public Listener receiveListener = new Listener<>(event -> { - if (event.getPacket() instanceof SPacketRespawn) { - if (((SPacketRespawn) event.getPacket()).getDimensionID() == 1 && confirmed.getValue()) { - Objects.requireNonNull(Wrapper.getMinecraft().getConnection()).handleDisconnect(new SPacketDisconnect(new TextComponentString("Attempting teleportation exploit"))); - disable(); - } - } - }); @Override public void onEnable() { @@ -40,4 +31,14 @@ public class EndTeleport extends Module { sendWarningMessage(getChatName() + "This module will kick you from the server! It is part of the exploit and cannot be avoided"); } } + + @EventHandler + public Listener receiveListener = new Listener<>(event -> { + if (event.getPacket() instanceof SPacketRespawn) { + if (((SPacketRespawn) event.getPacket()).getDimensionID() == 1 && confirmed.getValue()) { + Objects.requireNonNull(Wrapper.getMinecraft().getConnection()).handleDisconnect(new SPacketDisconnect(new TextComponentString("Attempting teleportation exploit"))); + disable(); + } + } + }); } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/player/Freecam.java b/src/main/java/me/zeroeightsix/kami/module/modules/player/Freecam.java index b66bd79ce..c44877a94 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/player/Freecam.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/player/Freecam.java @@ -31,20 +31,6 @@ public class Freecam extends Module { private boolean isRidingEntity; private Entity ridingEntity; - @EventHandler - private final Listener moveListener = new Listener<>(event -> mc.player.noClip = true); - @EventHandler - private final Listener pushListener = new Listener<>(event -> event.setCanceled(true)); - @EventHandler - private final Listener sendListener = new Listener<>(event -> { - if (event.getPacket() instanceof CPacketPlayer || event.getPacket() instanceof CPacketInput) { - event.cancel(); - } - if (packetCancel.getValue() && (event.getPacket() instanceof CPacketUseEntity || event.getPacket() instanceof CPacketVehicleMove)) { - event.cancel(); - } - - }); @Override protected void onEnable() { @@ -110,4 +96,21 @@ public class Freecam extends Module { mc.player.fallDistance = 0; } + @EventHandler + private Listener moveListener = new Listener<>(event -> mc.player.noClip = true); + + @EventHandler + private Listener pushListener = new Listener<>(event -> event.setCanceled(true)); + + @EventHandler + private Listener sendListener = new Listener<>(event -> { + if (event.getPacket() instanceof CPacketPlayer || event.getPacket() instanceof CPacketInput) { + event.cancel(); + } + if (packetCancel.getValue() && (event.getPacket() instanceof CPacketUseEntity || event.getPacket() instanceof CPacketVehicleMove)) { + event.cancel(); + } + + }); + } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/player/LagNotifier.java b/src/main/java/me/zeroeightsix/kami/module/modules/player/LagNotifier.java index 16b43b8b4..69526942e 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/player/LagNotifier.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/player/LagNotifier.java @@ -14,14 +14,12 @@ import static me.zeroeightsix.kami.util.InfoCalculator.round; /** * @author S-B99 - * Thanks Brady and cooker and leij for helping me not be completely retarded + * Thanks Brady and cooker and leij for helping me not be completely retarded */ @Module.Info(name = "LagNotifier", description = "Displays a warning when the server is lagging", category = Module.Category.PLAYER) public class LagNotifier extends Module { private Setting timeout = register(Settings.doubleBuilder().withName("Timeout").withValue(1.0).withMinimum(0.0).withMaximum(10.0).build()); private long serverLastUpdated; - @EventHandler - private final Listener receiveListener = new Listener<>(event -> serverLastUpdated = System.currentTimeMillis()); @Override public void onRender() { @@ -34,6 +32,9 @@ public class LagNotifier extends Module { renderer.drawStringWithShadow(mc.displayWidth / divider / 2 - renderer.getStringWidth(text) / 2, mc.displayHeight / divider / 2 - 217, 255, 85, 85, text); } + @EventHandler + private Listener receiveListener = new Listener<>(event -> serverLastUpdated = System.currentTimeMillis()); + private double timeDifference() { return round((System.currentTimeMillis() - serverLastUpdated) / 1000d, 1); } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/player/NoEntityTrace.java b/src/main/java/me/zeroeightsix/kami/module/modules/player/NoEntityTrace.java index 6c21662d9..965b51e25 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/player/NoEntityTrace.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/player/NoEntityTrace.java @@ -10,9 +10,10 @@ import me.zeroeightsix.kami.setting.Settings; @Module.Info(name = "NoEntityTrace", category = Module.Category.PLAYER, description = "Blocks entities from stopping you from mining") public class NoEntityTrace extends Module { - private static NoEntityTrace INSTANCE; private Setting mode = register(Settings.e("Mode", TraceMode.DYNAMIC)); + private static NoEntityTrace INSTANCE; + public NoEntityTrace() { NoEntityTrace.INSTANCE = this; } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/player/NoFall.java b/src/main/java/me/zeroeightsix/kami/module/modules/player/NoFall.java index d16c84c3f..230949aaa 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/player/NoFall.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/player/NoFall.java @@ -21,16 +21,18 @@ import net.minecraft.util.math.Vec3d; public class NoFall extends Module { private Setting fallMode = register(Settings.e("Mode", FallMode.PACKET)); + private Setting pickup = register(Settings.booleanBuilder("Pickup").withValue(true).withVisibility(v -> fallMode.getValue().equals(FallMode.BUCKET)).build()); + private Setting distance = register(Settings.integerBuilder("Distance").withValue(3).withMinimum(1).withMaximum(10).withVisibility(v -> fallMode.getValue().equals(FallMode.BUCKET)).build()); + private Setting pickupDelay = register(Settings.integerBuilder("Pickup Delay").withValue(300).withMinimum(100).withMaximum(1000).withVisibility(v -> fallMode.getValue().equals(FallMode.BUCKET) && pickup.getValue()).build()); + + private long last = 0; + @EventHandler public Listener sendListener = new Listener<>(event -> { if ((fallMode.getValue().equals(FallMode.PACKET)) && event.getPacket() instanceof CPacketPlayer) { ((CPacketPlayer) event.getPacket()).onGround = true; } }); - private Setting pickup = register(Settings.booleanBuilder("Pickup").withValue(true).withVisibility(v -> fallMode.getValue().equals(FallMode.BUCKET)).build()); - private Setting distance = register(Settings.integerBuilder("Distance").withValue(3).withMinimum(1).withMaximum(10).withVisibility(v -> fallMode.getValue().equals(FallMode.BUCKET)).build()); - private Setting pickupDelay = register(Settings.integerBuilder("Pickup Delay").withValue(300).withMinimum(100).withMaximum(1000).withVisibility(v -> fallMode.getValue().equals(FallMode.BUCKET) && pickup.getValue()).build()); - private long last = 0; @Override public void onUpdate() { @@ -55,10 +57,7 @@ public class NoFall extends Module { } if (pickup.getValue()) { new Thread(() -> { - try { - Thread.sleep(pickupDelay.getValue()); - } catch (InterruptedException ignored) { - } + try { Thread.sleep(pickupDelay.getValue()); } catch (InterruptedException ignored) { } mc.player.rotationPitch = 90; mc.rightClickMouse(); }).start(); diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/player/NoPacketKick.java b/src/main/java/me/zeroeightsix/kami/module/modules/player/NoPacketKick.java index e9023a017..85cca56df 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/player/NoPacketKick.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/player/NoPacketKick.java @@ -5,7 +5,7 @@ import me.zeroeightsix.kami.module.Module; /** * @author 086 * @see me.zeroeightsix.kami.mixin.client.MixinNetworkManager - *

+ * * Fixed by 0x2E | PretendingToCode 4/10/2020 */ @Module.Info(name = "NoPacketKick", category = Module.Category.PLAYER, description = "Suppress network exceptions and prevent getting kicked", showOnArray = Module.ShowOnArray.OFF) diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/player/NoSwing.java b/src/main/java/me/zeroeightsix/kami/module/modules/player/NoSwing.java index 2e5f6e505..513201f73 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/player/NoSwing.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/player/NoSwing.java @@ -16,7 +16,7 @@ import net.minecraft.network.play.client.CPacketAnimation; public class NoSwing extends Module { @EventHandler - private final Listener listener = new Listener<>(event -> { + private Listener listener = new Listener<>(event -> { if (event.getPacket() instanceof CPacketAnimation) { event.cancel(); } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/player/PacketCancel.java b/src/main/java/me/zeroeightsix/kami/module/modules/player/PacketCancel.java index de1d62c6c..e3c1a59a6 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/player/PacketCancel.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/player/PacketCancel.java @@ -20,21 +20,21 @@ public class PacketCancel extends Module { private Setting packetUseEntity = register(Settings.booleanBuilder("CPacketUseEntity").withValue(true).withVisibility(v -> !all.getValue())); private Setting packetVehicleMove = register(Settings.booleanBuilder("CPacketVehicleMove").withValue(true).withVisibility(v -> !all.getValue())); private int numPackets; - + @EventHandler private final Listener sendListener = new Listener<>(event -> { if ( - (all.getValue()) - || - (packetInput.getValue() && event.getPacket() instanceof CPacketInput) - || - (packetPlayer.getValue() && event.getPacket() instanceof CPacketPlayer) - || - (packetEntityAction.getValue() && event.getPacket() instanceof CPacketEntityAction) - || - (packetUseEntity.getValue() && event.getPacket() instanceof CPacketUseEntity) - || - (packetVehicleMove.getValue() && event.getPacket() instanceof CPacketVehicleMove) + (all.getValue()) + || + (packetInput.getValue() && event.getPacket() instanceof CPacketInput) + || + (packetPlayer.getValue() && event.getPacket() instanceof CPacketPlayer) + || + (packetEntityAction.getValue() && event.getPacket() instanceof CPacketEntityAction) + || + (packetUseEntity.getValue() && event.getPacket() instanceof CPacketUseEntity) + || + (packetVehicleMove.getValue() && event.getPacket() instanceof CPacketVehicleMove) ) { event.cancel(); numPackets++; diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/player/Scaffold.java b/src/main/java/me/zeroeightsix/kami/module/modules/player/Scaffold.java index f80f37a35..2bbc17149 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/player/Scaffold.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/player/Scaffold.java @@ -25,31 +25,20 @@ import static me.zeroeightsix.kami.util.BlockInteractionHelper.*; * Created by 086 on 20/01/19 * Updated by Polymer on 16/01/20 * Updated by S-B99 on 02/03/20 - * * @see me.zeroeightsix.kami.mixin.client.MixinEntity */ @Module.Info(name = "Scaffold", category = Module.Category.PLAYER, description = "Places blocks under you") public class Scaffold extends Module { - private static Scaffold INSTANCE; private Setting placeBlocks = register(Settings.b("Place Blocks", true)); private Setting modeSetting = register(Settings.enumBuilder(Mode.class).withName("Mode").withValue(Mode.LEGIT).build()); private Setting randomDelay = register(Settings.booleanBuilder("Random Delay").withValue(false).withVisibility(v -> modeSetting.getValue().equals(Mode.LEGIT)).build()); private Setting delayRange = register(Settings.integerBuilder("Delay Range").withMinimum(0).withValue(6).withMaximum(10).withVisibility(v -> modeSetting.getValue().equals(Mode.LEGIT) && randomDelay.getValue()).build()); private Setting ticks = register(Settings.integerBuilder("Ticks").withMinimum(0).withMaximum(60).withValue(2).withVisibility(v -> !modeSetting.getValue().equals(Mode.LEGIT)).build()); + private boolean shouldSlow = false; - @EventHandler - private final Listener eventListener = new Listener<>(event -> { - if (modeSetting.getValue().equals(Mode.LEGIT) && shouldSlow) { - if (randomDelay.getValue()) { - event.getMovementInput().moveStrafe *= 0.2f + getRandomInRange(); - event.getMovementInput().moveForward *= 0.2f + getRandomInRange(); - } else { - event.getMovementInput().moveStrafe *= 0.2f; - event.getMovementInput().moveForward *= 0.2f; - } - } - }); + + private static Scaffold INSTANCE; public Scaffold() { INSTANCE = this; @@ -59,6 +48,24 @@ public class Scaffold extends Module { return INSTANCE.isEnabled(); } + private enum Mode { + NEITHER, LEGIT + } + + @EventHandler + private Listener eventListener = new Listener<>(event -> { + if (modeSetting.getValue().equals(Mode.LEGIT) && shouldSlow) { + if (randomDelay.getValue()) { + event.getMovementInput().moveStrafe *= 0.2f + getRandomInRange(); + event.getMovementInput().moveForward *= 0.2f + getRandomInRange(); + } + else { + event.getMovementInput().moveStrafe *= 0.2f; + event.getMovementInput().moveForward *= 0.2f; + } + } + }); + @Override public void onUpdate() { if (mc.player == null || MODULE_MANAGER.isModuleEnabled(Freecam.class)) return; @@ -129,9 +136,5 @@ public class Scaffold extends Module { /* reset slot back to the original one */ Wrapper.getPlayer().inventory.currentItem = oldSlot; } - - private enum Mode { - NEITHER, LEGIT - } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/player/Timer.java b/src/main/java/me/zeroeightsix/kami/module/modules/player/Timer.java index 78dd02f82..f73f27d54 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/player/Timer.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/player/Timer.java @@ -24,7 +24,8 @@ public class Timer extends Module { public void onUpdate() { if (!slow.getValue()) { mc.timer.tickLength = 50.0f / tickNormal.getValue(); - } else { + } + else { mc.timer.tickLength = 50.0f / (tickSlow.getValue() / 10.0f); } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/ArmourHUD.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/ArmourHUD.java index f1d25e9b1..ea02d5027 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/ArmourHUD.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/ArmourHUD.java @@ -18,14 +18,15 @@ import net.minecraft.world.GameType; @Module.Info(name = "ArmourHUD", category = Module.Category.RENDER, showOnArray = Module.ShowOnArray.OFF, description = "Displays your armour and it's durability on screen") public class ArmourHUD extends Module { - private static final RenderItem itemRender = Minecraft.getMinecraft().getRenderItem(); + private static RenderItem itemRender = Minecraft.getMinecraft().getRenderItem(); private Setting damage = register(Settings.b("Damage", false)); private NonNullList getArmour() { if (mc.playerController.getCurrentGameType().equals(GameType.CREATIVE) || mc.playerController.getCurrentGameType().equals(GameType.SPECTATOR)) { return NonNullList.withSize(4, ItemStack.EMPTY); - } else { + } + else { return mc.player.inventory.armorInventory; } } @@ -64,7 +65,7 @@ public class ArmourHUD extends Module { mc.fontRenderer.drawStringWithShadow(dmg + "", x + 8 - mc.fontRenderer.getStringWidth(dmg + "") / 2, y - 11, ColourHolder.toHex((int) (red * 255), (int) (green * 255), 0)); } } - GlStateManager.enableDepth(); - GlStateManager.disableLighting(); + GlStateManager.enableDepth(); + GlStateManager.disableLighting(); } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/ArmourHide.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/ArmourHide.java index a9c4d9ac2..3b48be862 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/ArmourHide.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/ArmourHide.java @@ -10,15 +10,17 @@ import net.minecraft.inventory.EntityEquipmentSlot; */ @Module.Info(name = "ArmourHide", category = Module.Category.RENDER, description = "Hides the armour on selected entities", showOnArray = Module.ShowOnArray.OFF) public class ArmourHide extends Module { - public static ArmourHide INSTANCE; public Setting player = register(Settings.b("Players", false)); public Setting armourstand = register(Settings.b("Armour Stands", true)); public Setting mobs = register(Settings.b("Mobs", true)); + public Setting helmet = register(Settings.b("Helmet", false)); public Setting chestplate = register(Settings.b("Chestplate", false)); public Setting leggins = register(Settings.b("Leggings", false)); public Setting boots = register(Settings.b("Boots", false)); + public static ArmourHide INSTANCE; + public ArmourHide() { ArmourHide.INSTANCE = this; } @@ -30,6 +32,10 @@ public class ArmourHide extends Module { return true; } else if (slotIn == EntityEquipmentSlot.LEGS && ArmourHide.INSTANCE.leggins.getValue()) { return true; - } else return slotIn == EntityEquipmentSlot.FEET && ArmourHide.INSTANCE.boots.getValue(); + } else if (slotIn == EntityEquipmentSlot.FEET && ArmourHide.INSTANCE.boots.getValue()) { + return true; + } else { + return false; + } } } \ No newline at end of file diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/BossStack.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/BossStack.java index 97a0ebf69..563ab35ca 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/BossStack.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/BossStack.java @@ -22,10 +22,11 @@ import java.util.UUID; @Module.Info(name = "BossStack", description = "Modify the boss health GUI to take up less space", category = Module.Category.MISC) public class BossStack extends Module { - private static final ResourceLocation GUI_BARS_TEXTURES = new ResourceLocation("textures/gui/bars.png"); private static Setting mode = Settings.e("Mode", BossStackMode.STACK); private static Setting scale = Settings.doubleBuilder().withName("Scale").withMinimum(0.1d).withValue(0.5d).build(); + private static final ResourceLocation GUI_BARS_TEXTURES = new ResourceLocation("textures/gui/bars.png"); + public BossStack() { registerAll(mode, scale); } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/BoxESP.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/BoxESP.java index 533900fbb..b1cf160a5 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/BoxESP.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/BoxESP.java @@ -36,7 +36,7 @@ public class BoxESP extends Module { @Override public void onWorldRender(RenderEvent event) { List entities = mc.world.loadedEntityList.stream().filter(this::getEntity).collect(Collectors.toList()); - for (Entity e : entities) { + for (Entity e: entities) { KamiTessellator.prepare(GL11.GL_QUADS); int colour = rgbToInt(red.getValue(), green.getValue(), blue.getValue(), alpha.getValue()); KamiTessellator.drawBoxSmall((float) e.getPositionVector().x - 0.25f, (float) e.getPositionVector().y, (float) e.getPositionVector().z - 0.25f, colour, GeometryMasks.Quad.ALL); diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/Brightness.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/Brightness.java index 0119604d3..5d5beae35 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/Brightness.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/Brightness.java @@ -15,24 +15,14 @@ import java.util.function.Function; @Module.Info(name = "FullBright", description = "Makes everything brighter!", category = Module.Category.RENDER) public class Brightness extends Module { - private static float currentBrightness = 0; - private static boolean inTransition = false; private Setting transition = register(Settings.b("Transition", true)); private Setting seconds = register(Settings.floatBuilder("Seconds").withMinimum(0f).withMaximum(10f).withValue(5f).withVisibility(o -> transition.getValue()).build()); private Setting mode = register(Settings.enumBuilder(Transition.class).withName("Mode").withValue(Transition.SINE).withVisibility(o -> transition.getValue()).build()); - private final Stack transitionStack = new Stack<>(); - public static float getCurrentBrightness() { - return currentBrightness; - } + private Stack transitionStack = new Stack<>(); - public static boolean isInTransition() { - return inTransition; - } - - public static boolean shouldBeActive() { - return isInTransition() || currentBrightness == 1; // if in transition or enabled - } + private static float currentBrightness = 0; + private static boolean inTransition = false; private void addTransition(boolean isUpwards) { if (transition.getValue()) { @@ -105,8 +95,20 @@ public class Brightness extends Module { return createTransition(length, polarity, this::sine); } + public static float getCurrentBrightness() { + return currentBrightness; + } + + public static boolean isInTransition() { + return inTransition; + } + + public static boolean shouldBeActive() { + return isInTransition() || currentBrightness == 1; // if in transition or enabled + } + public enum Transition { - LINEAR, SINE + LINEAR, SINE; } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/ChunkFinder.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/ChunkFinder.java index 1fc74a4ab..160dd82b2 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/ChunkFinder.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/ChunkFinder.java @@ -28,8 +28,6 @@ import static org.lwjgl.opengl.GL11.*; */ @Module.Info(name = "ChunkFinder", description = "Highlights newly generated chunks", category = Module.Category.RENDER) public class ChunkFinder extends Module { - static ArrayList chunks = new ArrayList<>(); - private static boolean dirty = true; private Setting yOffset = register(Settings.i("Y Offset", 0)); private Setting relative = register(Settings.b("Relative", true)); private Setting saveNewChunks = register(Settings.b("Save New Chunks", false)); @@ -37,21 +35,14 @@ public class ChunkFinder extends Module { private Setting saveInRegionFolder = register(Settings.booleanBuilder("In Region").withValue(false).withVisibility(aBoolean -> saveNewChunks.getValue()).build()); private Setting alsoSaveNormalCoords = register(Settings.booleanBuilder("Save Normal Coords").withValue(false).withVisibility(aBoolean -> saveNewChunks.getValue()).build()); private Setting closeFile = register(Settings.booleanBuilder("Close File").withValue(false).withVisibility(aBoolean -> saveNewChunks.getValue()).build()); + private LastSetting lastSetting = new LastSetting(); private PrintWriter logWriter; - @EventHandler - public Listener listener = new Listener<>(event -> { - if (!event.getPacket().isFullChunk()) { - chunks.add(event.getChunk()); - dirty = true; - if (saveNewChunks.getValue()) { - saveNewChunk(event.getChunk()); - } - } - }); - private final int list = GL11.glGenLists(1); - @EventHandler - private final Listener unloadListener = new Listener<>(event -> dirty = chunks.remove(event.getChunk())); + + static ArrayList chunks = new ArrayList<>(); + + private static boolean dirty = true; + private int list = GL11.glGenLists(1); @Override public void onWorldRender(RenderEvent event) { @@ -117,6 +108,17 @@ public class ChunkFinder extends Module { chunks.clear(); } + @EventHandler + public Listener listener = new Listener<>(event -> { + if (!event.getPacket().isFullChunk()) { + chunks.add(event.getChunk()); + dirty = true; + if (saveNewChunks.getValue()) { + saveNewChunk(event.getChunk()); + } + } + }); + // needs to be synchronized so no data gets lost public void saveNewChunk(Chunk chunk) { saveNewChunk(testAndGetLogWriter(), getNewChunkInfo(chunk)); @@ -138,6 +140,7 @@ public class ChunkFinder extends Module { return logWriter; } + private void logWriterClose() { if (logWriter != null) { logWriter.close(); @@ -274,8 +277,10 @@ public class ChunkFinder extends Module { String[] sp = ip.split("_"); String ending = sp[sp.length - 1]; - // if it is numeric it means it might be a port... - return !isInteger(ending); + if (!isInteger(ending)) { // if it is numeric it means it might be a port... + return true; + } + return false; } private boolean isInteger(String s) { @@ -291,6 +296,10 @@ public class ChunkFinder extends Module { log.println(data); } + + @EventHandler + private Listener unloadListener = new Listener<>(event -> dirty = chunks.remove(event.getChunk())); + @Override public void destroy() { GL11.glDeleteLists(1, 1); @@ -331,8 +340,10 @@ public class ChunkFinder extends Module { if (dimension != mc.player.dimension) { return true; } - // strings need equals + this way because could be null - return !mc.getCurrentServerData().serverIP.equals(ip); + if (!mc.getCurrentServerData().serverIP.equals(ip)) { // strings need equals + this way because could be null + return true; + } + return false; } private void update() { diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/CleanGUI.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/CleanGUI.java index 25fb2ddd4..32ca870e3 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/CleanGUI.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/CleanGUI.java @@ -10,9 +10,10 @@ import me.zeroeightsix.kami.setting.Settings; */ @Module.Info(name = "CleanGUI", category = Module.Category.RENDER, showOnArray = Module.ShowOnArray.OFF, description = "Modifies parts of the GUI to be transparent") public class CleanGUI extends Module { - public static Setting chatGlobal = Settings.b("Chat", false); - private static CleanGUI INSTANCE = new CleanGUI(); public Setting inventoryGlobal = register(Settings.b("Inventory", true)); + public static Setting chatGlobal = Settings.b("Chat", false); + + private static CleanGUI INSTANCE = new CleanGUI(); public CleanGUI() { INSTANCE = this; diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/ESP.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/ESP.java index ebb957c24..7475fb876 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/ESP.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/ESP.java @@ -29,6 +29,10 @@ public class ESP extends Module { private Setting mobs = register(Settings.b("Mobs", false)); private Setting renderInvis = register(Settings.b("Invisible", false)); + public enum ESPMode { + RECTANGLE, GLOW + } + @Override public void onWorldRender(RenderEvent event) { @@ -134,8 +138,4 @@ public class ESP extends Module { mc.player.setGlowing(false); } } - - public enum ESPMode { - RECTANGLE, GLOW - } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/ExtraTab.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/ExtraTab.java index 24abf0687..71346c87b 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/ExtraTab.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/ExtraTab.java @@ -10,9 +10,10 @@ import me.zeroeightsix.kami.setting.Settings; @Module.Info(name = "ExtraTab", description = "Expands the player tab menu", category = Module.Category.RENDER) public class ExtraTab extends Module { - public static ExtraTab INSTANCE; public Setting tabSize = register(Settings.integerBuilder("Players").withMinimum(1).withValue(80).build()); + public static ExtraTab INSTANCE; + public ExtraTab() { ExtraTab.INSTANCE = this; } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/HoleESP.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/HoleESP.java index 497bfecb9..b60468fe4 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/HoleESP.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/HoleESP.java @@ -37,16 +37,25 @@ public class HoleESP extends Module { private Setting renderDistance = register(Settings.d("Render Distance", 8.0d)); private Setting a0 = register(Settings.integerBuilder("Transparency").withMinimum(0).withValue(32).withMaximum(255).build()); + private Setting r1 = register(Settings.integerBuilder("Red (Obby)").withMinimum(0).withValue(208).withMaximum(255).withVisibility(v-> obbySettings()).build()); + private Setting g1 = register(Settings.integerBuilder("Green (Obby)").withMinimum(0).withValue(144).withMaximum(255).withVisibility(v-> obbySettings()).build()); + private Setting b1 = register(Settings.integerBuilder("Blue (Obby)").withMinimum(0).withValue(255).withMaximum(255).withVisibility(v-> obbySettings()).build()); + private Setting r2 = register(Settings.integerBuilder("Red (Bedrock)").withMinimum(0).withValue(144).withMaximum(255).withVisibility(v-> bedrockSettings()).build()); // 208 + private Setting g2 = register(Settings.integerBuilder("Green (Bedrock)").withMinimum(0).withValue(144).withMaximum(255).withVisibility(v-> bedrockSettings()).build()); + private Setting b2 = register(Settings.integerBuilder("Blue (Bedrock)").withMinimum(0).withValue(255).withMaximum(255).withVisibility(v-> bedrockSettings()).build()); private Setting renderModeSetting = register(Settings.e("Render Mode", RenderMode.BLOCK)); private Setting renderBlocksSetting = register(Settings.e("Render", RenderBlocks.BOTH)); - private Setting r1 = register(Settings.integerBuilder("Red (Obby)").withMinimum(0).withValue(208).withMaximum(255).withVisibility(v -> obbySettings()).build()); - private Setting g1 = register(Settings.integerBuilder("Green (Obby)").withMinimum(0).withValue(144).withMaximum(255).withVisibility(v -> obbySettings()).build()); - private Setting b1 = register(Settings.integerBuilder("Blue (Obby)").withMinimum(0).withValue(255).withMaximum(255).withVisibility(v -> obbySettings()).build()); - private Setting r2 = register(Settings.integerBuilder("Red (Bedrock)").withMinimum(0).withValue(144).withMaximum(255).withVisibility(v -> bedrockSettings()).build()); // 208 - private Setting g2 = register(Settings.integerBuilder("Green (Bedrock)").withMinimum(0).withValue(144).withMaximum(255).withVisibility(v -> bedrockSettings()).build()); - private Setting b2 = register(Settings.integerBuilder("Blue (Bedrock)").withMinimum(0).withValue(255).withMaximum(255).withVisibility(v -> bedrockSettings()).build()); + private ConcurrentHashMap safeHoles; + private enum RenderMode { + DOWN, BLOCK + } + + private enum RenderBlocks { + OBBY, BEDROCK, BOTH + } + private boolean obbySettings() { return renderBlocksSetting.getValue().equals(RenderBlocks.OBBY) || renderBlocksSetting.getValue().equals(RenderBlocks.BOTH); } @@ -55,6 +64,7 @@ public class HoleESP extends Module { return renderBlocksSetting.getValue().equals(RenderBlocks.BEDROCK) || renderBlocksSetting.getValue().equals(RenderBlocks.BOTH); } + @Override public void onUpdate() { @@ -120,27 +130,28 @@ public class HoleESP extends Module { } KamiTessellator.prepare(GL11.GL_QUADS); - safeHoles.forEach((blockPos, isBedrock) -> { - switch (renderBlocksSetting.getValue()) { - case BOTH: - if (isBedrock) { - drawBox(blockPos, r2.getValue(), g2.getValue(), b2.getValue()); - } else { - drawBox(blockPos, r1.getValue(), g1.getValue(), b1.getValue()); - } - break; - case OBBY: - if (!isBedrock) { - drawBox(blockPos, r1.getValue(), g1.getValue(), b1.getValue()); - } - break; - case BEDROCK: - if (isBedrock) { - drawBox(blockPos, r2.getValue(), g2.getValue(), b2.getValue()); - } - break; - } - }); + safeHoles.forEach((blockPos, isBedrock) -> { + switch (renderBlocksSetting.getValue()) { + case BOTH: + if (isBedrock) { + drawBox(blockPos, r2.getValue(), g2.getValue(), b2.getValue()); + } + else { + drawBox(blockPos, r1.getValue(), g1.getValue(), b1.getValue()); + } + break; + case OBBY: + if (!isBedrock) { + drawBox(blockPos, r1.getValue(), g1.getValue(), b1.getValue()); + } + break; + case BEDROCK: + if (isBedrock) { + drawBox(blockPos, r2.getValue(), g2.getValue(), b2.getValue()); + } + break; + } + }); KamiTessellator.release(); } @@ -153,12 +164,4 @@ public class HoleESP extends Module { } } - private enum RenderMode { - DOWN, BLOCK - } - - private enum RenderBlocks { - OBBY, BEDROCK, BOTH - } - } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/MobOwner.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/MobOwner.java index 91375bfac..b312ceade 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/MobOwner.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/MobOwner.java @@ -16,26 +16,21 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendChatMessage; /** * I see you also watch FitMC :eyes: - * * @author cookiedragon234 * Taken from Backdoored 1.8.2 source - *

+ * * UUID to username method and caching methods added by S-B99 */ @Module.Info(name = "MobOwner", description = "Displays the owner of tamed mobs", category = Module.Category.RENDER) public class MobOwner extends Module { - /* Periodically try to re-request invalid UUIDs */ - private static long startTime = 0; - /* Super safe method to limit requests to the Mojang API in case you load more then 10 different UUIDs */ - private static long startTime1 = 0; private Setting requestTime = register(Settings.integerBuilder("Cache Reset").withMinimum(10).withValue(20).build()); private Setting debug = register(Settings.b("Debug", true)); + /* First String is your key / uuid, second String is the value / username */ - private final Map cachedUUIDs = new HashMap() {{ - }}; + private Map cachedUUIDs = new HashMap(){{ }}; private int apiRequests = 0; - private final String invalidText = "Offline or invalid UUID!"; + private String invalidText = "Offline or invalid UUID!"; /** * @author S-B99 @@ -64,6 +59,8 @@ public class MobOwner extends Module { return invalidText; } + /* Periodically try to re-request invalid UUIDs */ + private static long startTime = 0; private void resetCache() { if (startTime == 0) startTime = System.currentTimeMillis(); if (startTime + (requestTime.getValue() * 1000) <= System.currentTimeMillis()) { // 1 requestTime = 1 second = 1000 ms @@ -78,6 +75,8 @@ public class MobOwner extends Module { } } + /* Super safe method to limit requests to the Mojang API in case you load more then 10 different UUIDs */ + private static long startTime1 = 0; private void resetRequests() { if (startTime1 == 0) startTime1 = System.currentTimeMillis(); if (startTime1 + (10 * 1000) <= System.currentTimeMillis()) { // 10 seconds @@ -122,8 +121,8 @@ public class MobOwner extends Module { } try { entity.setAlwaysRenderNameTag(false); - } catch (Exception ignored) { } + catch (Exception ignored) {} } } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/Nametags.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/Nametags.java index 35e680e7b..8017729ee 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/Nametags.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/Nametags.java @@ -37,8 +37,6 @@ import static org.lwjgl.opengl.GL11.*; @Module.Info(name = "Nametags", description = "Draws descriptive nametags above entities", category = Module.Category.RENDER) public class Nametags extends Module { - static final Minecraft mc = Minecraft.getMinecraft(); - RenderItem itemRenderer = mc.getRenderItem(); private Setting players = register(Settings.b("Players", true)); private Setting animals = register(Settings.b("Animals", false)); private Setting mobs = register(Settings.b("Mobs", false)); @@ -47,6 +45,9 @@ public class Nametags extends Module { private Setting health = register(Settings.b("Health", true)); private Setting armor = register(Settings.b("Armor", true)); + RenderItem itemRenderer = mc.getRenderItem(); + static final Minecraft mc = Minecraft.getMinecraft(); + @Override public void onWorldRender(RenderEvent event) { if (mc.getRenderManager().options == null) return; @@ -118,11 +119,9 @@ public class Nametags extends Module { GlStateManager.enableTexture2D(); GlStateManager.glNormal3f(0.0F, 1.0F, 0.0F); - if (!entityIn.isSneaking()) - fontRendererIn.drawString(str, -i, 10, entityIn instanceof EntityPlayer ? Friends.isFriend(entityIn.getName()) ? 0x00bfff : 0xffffff : 0xffffff); + if (!entityIn.isSneaking()) fontRendererIn.drawString(str, -i, 10, entityIn instanceof EntityPlayer ? Friends.isFriend(entityIn.getName()) ? 0x00bfff : 0xffffff : 0xffffff); else fontRendererIn.drawString(str, -i, 10, 0xffaa00); - if (entityIn instanceof EntityPlayer && armor.getValue()) - renderArmor((EntityPlayer) entityIn, 0, -(fontRendererIn.FONT_HEIGHT + 1) - 20); + if (entityIn instanceof EntityPlayer && armor.getValue()) renderArmor((EntityPlayer)entityIn, 0, -(fontRendererIn.FONT_HEIGHT + 1) - 20); GlStateManager.glNormal3f(0.0F, 0.0F, 0.0F); glTranslatef(0, 20, 0); @@ -130,7 +129,6 @@ public class Nametags extends Module { GlStateManager.enableDepth(); GlStateManager.popMatrix(); } - public void renderArmor(EntityPlayer player, int x, int y) { InventoryPlayer items = player.inventory; ItemStack inHand = player.getHeldItemMainhand(); @@ -141,17 +139,19 @@ public class Nametags extends Module { ItemStack offHand = player.getHeldItemOffhand(); ItemStack[] stuff = null; if (inHand != null && offHand != null) { - stuff = new ItemStack[]{inHand, helm, body, leggings, boots, offHand}; - } else if (inHand != null && offHand == null) stuff = new ItemStack[]{inHand, helm, body, leggings, boots}; - else if (inHand == null && offHand != null) stuff = new ItemStack[]{helm, body, leggings, boots, offHand}; + stuff = new ItemStack[] { inHand, helm, body, leggings, boots, offHand }; + } + else if (inHand != null && offHand == null) stuff = new ItemStack[] { inHand, helm, body, leggings, boots }; + else if (inHand == null && offHand != null) stuff = new ItemStack[] { helm, body, leggings, boots, offHand }; else { - stuff = new ItemStack[]{helm, body, leggings, boots}; + stuff = new ItemStack[] { helm, body, leggings, boots }; } List stacks = new ArrayList(); ItemStack[] array; int length = (array = stuff).length; - for (int j = 0; j < length; j++) { + for (int j = 0; j < length; j++) + { ItemStack i = array[j]; if ((i != null) && (i.getItem() != null)) { stacks.add(i); @@ -160,7 +160,8 @@ public class Nametags extends Module { int width = 16 * stacks.size() / 2; x -= width; GlStateManager.disableDepth(); - for (ItemStack stack : stacks) { + for (ItemStack stack : stacks) + { renderItem(stack, x, y); x += 16; } @@ -218,8 +219,7 @@ public class Nametags extends Module { if (stack.isItemStackDamageable()) drawDamage(stack, x, y); GlStateManager.scale(1.33F, 1.33F, 1.33F); EnchantEntry[] array; - int length = (array = enchants).length; - for (int i = 0; i < length; i++) { + int length = (array = enchants).length; for (int i = 0; i < length; i++) { EnchantEntry enchant = array[i]; int level = EnchantmentHelper.getEnchantmentLevel(enchant.getEnchant(), stack); String levelDisplay = "" + level; @@ -228,7 +228,7 @@ public class Nametags extends Module { } if (level > 0) { float scale2 = 0.32F; - GlStateManager.translate(x - 1, y + 2, 0.0F); + GlStateManager.translate(x-1, y + 2, 0.0F); GlStateManager.scale(0.42F, 0.42F, 0.42F); GlStateManager.disableDepth(); GlStateManager.disableLighting(); @@ -239,8 +239,8 @@ public class Nametags extends Module { GlStateManager.enableLighting(); GlStateManager.enableDepth(); GlStateManager.scale(2.42F, 2.42F, 2.42F); - GlStateManager.translate(-x + 1, -y, 0.0F); - y += (int) ((fontRenderer.FONT_HEIGHT + 3) * 0.28F); + GlStateManager.translate(-x+1, -y, 0.0F); + y += (int)((fontRenderer.FONT_HEIGHT + 3) * 0.28F); } } renderItem.zLevel = 0.0F; @@ -256,24 +256,27 @@ public class Nametags extends Module { float red = 1 - green; int dmg = 100 - (int) (red * 100); GlStateManager.disableDepth(); - mc.fontRenderer.drawStringWithShadow(dmg + "", x + 8 - mc.fontRenderer.getStringWidth(dmg + "") / 2f, y - 11, ColourHolder.toHex((int) (red * 255), (int) (green * 255), 0)); + mc.fontRenderer.drawStringWithShadow(dmg + "", x + 8 - mc.fontRenderer.getStringWidth(dmg + "") / 2f, y-11, ColourHolder.toHex((int) (red * 255), (int) (green * 255), 0)); GlStateManager.enableDepth(); } public static class EnchantEntry { - private final Enchantment enchant; - private final String name; + private Enchantment enchant; + private String name; - public EnchantEntry(Enchantment enchant, String name) { + public EnchantEntry(Enchantment enchant, String name) + { this.enchant = enchant; this.name = name; } - public Enchantment getEnchant() { + public Enchantment getEnchant() + { return this.enchant; } - public String getName() { + public String getName() + { return this.name; } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/NoRender.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/NoRender.java index dae5e8021..a0e482fdd 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/NoRender.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/NoRender.java @@ -16,13 +16,12 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; /** * Created by 086 on 4/02/2018. * Updated by S-B99 on 14/04/20 - *

+ * * Skylight Updates taken from https://github.com/fr1kin/ForgeHax/blob/1a4f98d/src/main/java/com/matt/forgehax/mods/NoSkylightUpdates.java */ @Module.Info(name = "NoRender", category = Module.Category.RENDER, description = "Ignore entity spawn packets") public class NoRender extends Module { - public Setting beacon = register(Settings.b("Beacon Beams", false)); private Setting mob = register(Settings.b("Mob", false)); private Setting sand = register(Settings.b("Sand", false)); private Setting gentity = register(Settings.b("GEntity", false)); @@ -30,12 +29,10 @@ public class NoRender extends Module { private Setting xp = register(Settings.b("XP", false)); private Setting paint = register(Settings.b("Paintings", false)); private Setting fire = register(Settings.b("Fire", true)); - @EventHandler - public Listener blockOverlayEventListener = new Listener<>(event -> { - if (fire.getValue() && event.getOverlayType() == RenderBlockOverlayEvent.OverlayType.FIRE) - event.setCanceled(true); - }); private Setting explosion = register(Settings.b("Explosions", true)); + public Setting beacon = register(Settings.b("Beacon Beams", false)); + private Setting skylight = register(Settings.b("Skylight Updates", false)); + @EventHandler public Listener receiveListener = new Listener<>(event -> { Packet packet = event.getPacket(); @@ -48,7 +45,12 @@ public class NoRender extends Module { (packet instanceof SPacketSpawnPainting && paint.getValue())) event.cancel(); }); - private Setting skylight = register(Settings.b("Skylight Updates", false)); + + @EventHandler + public Listener blockOverlayEventListener = new Listener<>(event -> { + if (fire.getValue() && event.getOverlayType() == RenderBlockOverlayEvent.OverlayType.FIRE) + event.setCanceled(true); + }); @SubscribeEvent public void onLightingUpdate(WorldCheckLightForEvent event) { diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/Pathfind.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/Pathfind.java index dfd9b7cdc..f0f1f9154 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/Pathfind.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/Pathfind.java @@ -92,7 +92,7 @@ public class Pathfind extends Module { if ((points.size() <= 1) && to != null) { boolean b = createPath(to); boolean flag = points.size() <= 4; - if (flag) { // The only points present are the starting and end point (or <=2 points in between). We've arrived! + if ((b && flag) || flag) { // The only points present are the starting and end point (or <=2 points in between). We've arrived! // Might also return true if we've hit a dead end points.clear(); to = null; diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/StorageESP.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/StorageESP.java index fa0cf01bc..f58d108c5 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/StorageESP.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/StorageESP.java @@ -83,7 +83,7 @@ public class StorageESP extends Module { } if ((tileEntity instanceof TileEntityChest && chest.getValue()) || (tileEntity instanceof TileEntityDispenser && dispenser.getValue()) || (tileEntity instanceof TileEntityShulkerBox && shulker.getValue()) || (tileEntity instanceof TileEntityEnderChest && echest.getValue()) || (tileEntity instanceof TileEntityFurnace && furnace.getValue()) || (tileEntity instanceof TileEntityHopper && hopper.getValue())) if (color != -1) - a.add(new Triplet<>(pos, color, side)); //GeometryTessellator.drawCuboid(event.getBuffer(), pos, GeometryMasks.Line.ALL, color); + a.add(new Triplet<>(pos, color, side)); //GeometryTessellator.drawCuboid(event.getBuffer(), pos, GeometryMasks.Line.ALL, color); } for (Entity entity : Wrapper.getWorld().loadedEntityList) { diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/Tracers.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/Tracers.java index 349a93b17..8f70ca476 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/Tracers.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/Tracers.java @@ -25,7 +25,6 @@ import static me.zeroeightsix.kami.util.ColourConverter.rgbToInt; @Module.Info(name = "Tracers", description = "Draws lines to other living entities", category = Module.Category.RENDER) public class Tracers extends Module { - HueCycler cycler = new HueCycler(3600); private Setting players = register(Settings.b("Players", true)); private Setting friends = register(Settings.b("Friends", true)); private Setting animals = register(Settings.b("Animals", false)); @@ -38,58 +37,7 @@ public class Tracers extends Module { private Setting g = register(Settings.integerBuilder("Green").withMinimum(0).withValue(144).withMaximum(255).withVisibility(v -> customColours.getValue()).build()); private Setting b = register(Settings.integerBuilder("Blue").withMinimum(0).withValue(255).withMaximum(255).withVisibility(v -> customColours.getValue()).build()); - public static double interpolate(double now, double then) { - return then + (now - then) * mc.getRenderPartialTicks(); - } - - public static double[] interpolate(Entity entity) { - double posX = interpolate(entity.posX, entity.lastTickPosX) - mc.getRenderManager().renderPosX; - double posY = interpolate(entity.posY, entity.lastTickPosY) - mc.getRenderManager().renderPosY; - double posZ = interpolate(entity.posZ, entity.lastTickPosZ) - mc.getRenderManager().renderPosZ; - return new double[]{posX, posY, posZ}; - } - - public static void drawLineToEntity(Entity e, float red, float green, float blue, float opacity) { - double[] xyz = interpolate(e); - drawLine(xyz[0], xyz[1], xyz[2], e.height, red, green, blue, opacity); - } - - public static void drawLine(double posx, double posy, double posz, double up, float red, float green, float blue, float opacity) { - Vec3d eyes = new Vec3d(0, 0, 1) - .rotatePitch(-(float) Math - .toRadians(Minecraft.getMinecraft().player.rotationPitch)) - .rotateYaw(-(float) Math - .toRadians(Minecraft.getMinecraft().player.rotationYaw)); - - drawLineFromPosToPos(eyes.x, eyes.y + mc.player.getEyeHeight(), eyes.z, posx, posy, posz, up, red, green, blue, opacity); - } - - public static void drawLineFromPosToPos(double posx, double posy, double posz, double posx2, double posy2, double posz2, double up, float red, float green, float blue, float opacity) { - GL11.glBlendFunc(770, 771); - GL11.glLineWidth(1.5f); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_DEPTH_TEST); - GL11.glDepthMask(false); - GL11.glColor4f(red, green, blue, opacity); - GlStateManager.disableLighting(); - GL11.glLoadIdentity(); - mc.entityRenderer.orientCamera(mc.getRenderPartialTicks()); - - GL11.glBegin(GL11.GL_LINES); - { - GL11.glVertex3d(posx, posy, posz); - GL11.glVertex3d(posx2, posy2, posz2); - GL11.glVertex3d(posx2, posy2, posz2); - GL11.glVertex3d(posx2, posy2 + up, posz2); - } - - GL11.glEnd(); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glEnable(GL11.GL_DEPTH_TEST); - GL11.glDepthMask(true); - GL11.glColor3d(1d, 1d, 1d); - GlStateManager.enableLighting(); - } + HueCycler cycler = new HueCycler(3600); @Override public void onWorldRender(RenderEvent event) { @@ -183,4 +131,57 @@ public class Tracers extends Module { return ColourUtils.Colors.RED; } } + + public static double interpolate(double now, double then) { + return then + (now - then) * mc.getRenderPartialTicks(); + } + + public static double[] interpolate(Entity entity) { + double posX = interpolate(entity.posX, entity.lastTickPosX) - mc.getRenderManager().renderPosX; + double posY = interpolate(entity.posY, entity.lastTickPosY) - mc.getRenderManager().renderPosY; + double posZ = interpolate(entity.posZ, entity.lastTickPosZ) - mc.getRenderManager().renderPosZ; + return new double[]{posX, posY, posZ}; + } + + public static void drawLineToEntity(Entity e, float red, float green, float blue, float opacity) { + double[] xyz = interpolate(e); + drawLine(xyz[0], xyz[1], xyz[2], e.height, red, green, blue, opacity); + } + + public static void drawLine(double posx, double posy, double posz, double up, float red, float green, float blue, float opacity) { + Vec3d eyes = new Vec3d(0, 0, 1) + .rotatePitch(-(float) Math + .toRadians(Minecraft.getMinecraft().player.rotationPitch)) + .rotateYaw(-(float) Math + .toRadians(Minecraft.getMinecraft().player.rotationYaw)); + + drawLineFromPosToPos(eyes.x, eyes.y + mc.player.getEyeHeight(), eyes.z, posx, posy, posz, up, red, green, blue, opacity); + } + + public static void drawLineFromPosToPos(double posx, double posy, double posz, double posx2, double posy2, double posz2, double up, float red, float green, float blue, float opacity) { + GL11.glBlendFunc(770, 771); + GL11.glLineWidth(1.5f); + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_DEPTH_TEST); + GL11.glDepthMask(false); + GL11.glColor4f(red, green, blue, opacity); + GlStateManager.disableLighting(); + GL11.glLoadIdentity(); + mc.entityRenderer.orientCamera(mc.getRenderPartialTicks()); + + GL11.glBegin(GL11.GL_LINES); + { + GL11.glVertex3d(posx, posy, posz); + GL11.glVertex3d(posx2, posy2, posz2); + GL11.glVertex3d(posx2, posy2, posz2); + GL11.glVertex3d(posx2, posy2 + up, posz2); + } + + GL11.glEnd(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glEnable(GL11.GL_DEPTH_TEST); + GL11.glDepthMask(true); + GL11.glColor3d(1d, 1d, 1d); + GlStateManager.enableLighting(); + } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/XRay.java b/src/main/java/me/zeroeightsix/kami/module/modules/render/XRay.java index 4463f6d07..3a18d1820 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/XRay.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/XRay.java @@ -32,38 +32,85 @@ import java.util.Set; public class XRay extends Module { // A default reasonable configuration for the XRay. Most people will want to use it like this. private static final String DEFAULT_XRAY_CONFIG = "minecraft:grass,minecraft:dirt,minecraft:netherrack,minecraft:gravel,minecraft:sand,minecraft:stone"; - // This is used as part of a mechanism to make the Minecraft renderer play along with the XRay. - // Essentially, the XRay primitive is just a block state transformer. - // Then this implements a custom block that the block state transformer can use for hidden blocks. - public static Block transparentBlock; - // A static mirror of the state. - private static Set hiddenBlocks = Collections.synchronizedSet(new HashSet<>()); - private static boolean invertStatic, outlinesStatic = true; - // This is the state used for hidden blocks. - private static IBlockState transparentState; - public Setting invert = register(Settings.booleanBuilder("Invert").withValue(false).withConsumer((old, value) -> { - invertStatic = value; - if (isEnabled()) - mc.renderGlobal.loadRenderers(); - }).build()); // Split by ',' & each element trimmed (this is a bit weird but it works for now?) private Setting hiddenBlockNames = register(Settings.stringBuilder("HiddenBlocks").withValue(DEFAULT_XRAY_CONFIG).withConsumer((old, value) -> { refreshHiddenBlocksSet(value); if (isEnabled()) mc.renderGlobal.loadRenderers(); }).build()); + public Setting invert = register(Settings.booleanBuilder("Invert").withValue(false).withConsumer((old, value) -> { + invertStatic = value; + if (isEnabled()) + mc.renderGlobal.loadRenderers(); + }).build()); private Setting outlines = register(Settings.booleanBuilder("Outlines").withValue(true).withConsumer((old, value) -> { outlinesStatic = value; if (isEnabled()) mc.renderGlobal.loadRenderers(); }).build()); + // A static mirror of the state. + private static Set hiddenBlocks = Collections.synchronizedSet(new HashSet<>()); + private static boolean invertStatic, outlinesStatic = true; + + // This is the state used for hidden blocks. + private static IBlockState transparentState; + // This is used as part of a mechanism to make the Minecraft renderer play along with the XRay. + // Essentially, the XRay primitive is just a block state transformer. + // Then this implements a custom block that the block state transformer can use for hidden blocks. + public static Block transparentBlock; + public XRay() { invertStatic = invert.getValue(); outlinesStatic = outlines.getValue(); refreshHiddenBlocksSet(hiddenBlockNames.getValue()); } + // Get hidden block list for command display + public String extGet() { + return extGetInternal(null); + } + // Add entry by arbitrary user-provided string + public void extAdd(String s) { + hiddenBlockNames.setValue(extGetInternal(null) + ", " + s); + } + // Remove entry by arbitrary user-provided string + public void extRemove(String s) { + hiddenBlockNames.setValue(extGetInternal(Block.getBlockFromName(s))); + } + // Clears the list. + public void extClear() { + hiddenBlockNames.setValue(""); + } + // Resets the list to default + public void extDefaults() { extClear(); extAdd(DEFAULT_XRAY_CONFIG); } + // Set the list to 1 value + public void extSet(String s) { extClear(); extAdd(s); } + + private String extGetInternal(Block filter) { + StringBuilder sb = new StringBuilder(); + boolean notFirst = false; + for (Block b : hiddenBlocks) { + if (b == filter) + continue; + if (notFirst) + sb.append(", "); + notFirst = true; + sb.append(Block.REGISTRY.getNameForObject(b)); + } + return sb.toString(); + } + + private void refreshHiddenBlocksSet(String v) { + hiddenBlocks.clear(); + for (String s : v.split(",")) { + String s2 = s.trim(); + Block block = Block.getBlockFromName(s2); + if (block != null) + hiddenBlocks.add(block); + } + } + @SubscribeEvent public static void registerBlocks(RegistryEvent.Register event) { transparentBlock = new Block(Material.GLASS) { @@ -72,13 +119,11 @@ public class XRay extends Module { public BlockRenderLayer getRenderLayer() { return BlockRenderLayer.CUTOUT; } - // Not opaque so other materials (such as, of course, ores) will render @Override public boolean isOpaqueCube(IBlockState blah) { return false; } - // Essentially, the hidden-block world should be a projected grid-like thing...? @Override public boolean shouldSideBeRendered(IBlockState blah, IBlockAccess w, BlockPos pos, EnumFacing side) { @@ -116,62 +161,6 @@ public class XRay extends Module { return input; } - // Get hidden block list for command display - public String extGet() { - return extGetInternal(null); - } - - // Add entry by arbitrary user-provided string - public void extAdd(String s) { - hiddenBlockNames.setValue(extGetInternal(null) + ", " + s); - } - - // Remove entry by arbitrary user-provided string - public void extRemove(String s) { - hiddenBlockNames.setValue(extGetInternal(Block.getBlockFromName(s))); - } - - // Clears the list. - public void extClear() { - hiddenBlockNames.setValue(""); - } - - // Resets the list to default - public void extDefaults() { - extClear(); - extAdd(DEFAULT_XRAY_CONFIG); - } - - // Set the list to 1 value - public void extSet(String s) { - extClear(); - extAdd(s); - } - - private String extGetInternal(Block filter) { - StringBuilder sb = new StringBuilder(); - boolean notFirst = false; - for (Block b : hiddenBlocks) { - if (b == filter) - continue; - if (notFirst) - sb.append(", "); - notFirst = true; - sb.append(Block.REGISTRY.getNameForObject(b)); - } - return sb.toString(); - } - - private void refreshHiddenBlocksSet(String v) { - hiddenBlocks.clear(); - for (String s : v.split(",")) { - String s2 = s.trim(); - Block block = Block.getBlockFromName(s2); - if (block != null) - hiddenBlocks.add(block); - } - } - @Override protected void onEnable() { // This is important because otherwise the changes in ChunkCache behavior won't propagate. diff --git a/src/main/java/me/zeroeightsix/kami/setting/Setting.java b/src/main/java/me/zeroeightsix/kami/setting/Setting.java index 0d04993e8..e500ba2c2 100644 --- a/src/main/java/me/zeroeightsix/kami/setting/Setting.java +++ b/src/main/java/me/zeroeightsix/kami/setting/Setting.java @@ -11,15 +11,20 @@ import java.util.function.Predicate; */ public abstract class Setting implements ISettingUnknown, Convertable { - private final Class valueType; String name; + T value; + /** * Returns false if the value is "out of bounds" */ - private final Predicate restriction; - private final Predicate visibilityPredicate; - private final BiConsumer consumer; + private Predicate restriction; + + private Predicate visibilityPredicate; + + private BiConsumer consumer; + + private final Class valueType; public Setting(T value, Predicate restriction, BiConsumer consumer, String name, Predicate visibilityPredicate) { this.value = value; diff --git a/src/main/java/me/zeroeightsix/kami/setting/SettingsRegister.java b/src/main/java/me/zeroeightsix/kami/setting/SettingsRegister.java index fbcb83429..f5a68e208 100644 --- a/src/main/java/me/zeroeightsix/kami/setting/SettingsRegister.java +++ b/src/main/java/me/zeroeightsix/kami/setting/SettingsRegister.java @@ -10,16 +10,31 @@ import java.util.StringTokenizer; */ public class SettingsRegister { - public static SettingsRegister ROOT = new SettingsRegister(); + public static final SettingsRegister ROOT = new SettingsRegister(); public HashMap registerHashMap = new HashMap<>(); public HashMap settingHashMap = new HashMap<>(); + public SettingsRegister subregister(String name) { + if (registerHashMap.containsKey(name)) return registerHashMap.get(name); + SettingsRegister register = new SettingsRegister(); + registerHashMap.put(name, register); + return register; + } + + private void put(String name, Setting setting) { + settingHashMap.put(name, setting); + } + public static void register(String name, Setting setting) { Pair pair = dig(name); pair.getValue().put(pair.getKey(), setting); } + public Setting getSetting(String group) { + return settingHashMap.get(group); + } + public static Setting get(String group) { Pair pair = dig(group); return pair.getValue().getSetting(pair.getKey()); @@ -41,19 +56,4 @@ public class SettingsRegister { return new Pair<>(previousToken == null ? "" : previousToken, current); } - public SettingsRegister subregister(String name) { - if (registerHashMap.containsKey(name)) return registerHashMap.get(name); - SettingsRegister register = new SettingsRegister(); - registerHashMap.put(name, register); - return register; - } - - private void put(String name, Setting setting) { - settingHashMap.put(name, setting); - } - - public Setting getSetting(String group) { - return settingHashMap.get(group); - } - } diff --git a/src/main/java/me/zeroeightsix/kami/setting/builder/SettingBuilder.java b/src/main/java/me/zeroeightsix/kami/setting/builder/SettingBuilder.java index dd6e718be..514faa023 100644 --- a/src/main/java/me/zeroeightsix/kami/setting/builder/SettingBuilder.java +++ b/src/main/java/me/zeroeightsix/kami/setting/builder/SettingBuilder.java @@ -20,13 +20,6 @@ public abstract class SettingBuilder { protected List> predicateList = new ArrayList<>(); private Predicate visibilityPredicate; - public static Setting register(Setting setting, String group) { - String name = setting.getName(); - if (name == null || name.isEmpty()) throw new RuntimeException("Can't register nameless setting"); - SettingsRegister.register(group + "." + name, setting); - return setting; - } - public SettingBuilder withValue(T value) { this.initialValue = value; return this; @@ -67,8 +60,15 @@ public abstract class SettingBuilder { public abstract Setting build(); - public Setting buildAndRegister(String group) { + public final Setting buildAndRegister(String group) { return register(build(), group); } + public static Setting register(Setting setting, String group) { + String name = setting.getName(); + if (name == null || name.isEmpty()) throw new RuntimeException("Can't register nameless setting"); + SettingsRegister.register(group + "." + name, setting); + return setting; + } + } diff --git a/src/main/java/me/zeroeightsix/kami/setting/builder/numerical/IntegerSettingBuilder.java b/src/main/java/me/zeroeightsix/kami/setting/builder/numerical/IntegerSettingBuilder.java index 902b4cf4c..123febf43 100644 --- a/src/main/java/me/zeroeightsix/kami/setting/builder/numerical/IntegerSettingBuilder.java +++ b/src/main/java/me/zeroeightsix/kami/setting/builder/numerical/IntegerSettingBuilder.java @@ -22,7 +22,7 @@ public class IntegerSettingBuilder extends NumericalSettingBuilder { @Override public NumericalSettingBuilder withName(String name) { - return super.withName(name); + return (IntegerSettingBuilder) super.withName(name); } @Override diff --git a/src/main/java/me/zeroeightsix/kami/setting/config/Configuration.java b/src/main/java/me/zeroeightsix/kami/setting/config/Configuration.java index a431ef260..40016a5cf 100644 --- a/src/main/java/me/zeroeightsix/kami/setting/config/Configuration.java +++ b/src/main/java/me/zeroeightsix/kami/setting/config/Configuration.java @@ -28,7 +28,7 @@ public class Configuration { for (Map.Entry entry : register.settingHashMap.entrySet()) { Setting setting = entry.getValue(); if (!(setting instanceof Convertable)) continue; - object.add(entry.getKey(), (JsonElement) setting.converter().convert(setting.getValue())); + object.add(entry.getKey(), (JsonElement) ((Convertable) setting).converter().convert(setting.getValue())); } return object; } @@ -73,7 +73,7 @@ public class Configuration { } else { Setting setting = register.getSetting(key); if (setting == null) continue; - setting.setValue(setting.converter().reverse().convert(element)); + setting.setValue(((Convertable) setting).converter().reverse().convert(element)); } } } diff --git a/src/main/java/me/zeroeightsix/kami/setting/converter/EnumConverter.java b/src/main/java/me/zeroeightsix/kami/setting/converter/EnumConverter.java index 1a6ea2ac3..baf209fb3 100644 --- a/src/main/java/me/zeroeightsix/kami/setting/converter/EnumConverter.java +++ b/src/main/java/me/zeroeightsix/kami/setting/converter/EnumConverter.java @@ -35,7 +35,8 @@ public class EnumConverter extends Converter { } return Enum.valueOf(clazz, "null"); } - } else { + } + else { try { return Enum.valueOf(clazz, value.toString()); } catch (IllegalArgumentException e) { diff --git a/src/main/java/me/zeroeightsix/kami/setting/impl/EnumSetting.java b/src/main/java/me/zeroeightsix/kami/setting/impl/EnumSetting.java index 86f0f0d6d..bf7d77b66 100644 --- a/src/main/java/me/zeroeightsix/kami/setting/impl/EnumSetting.java +++ b/src/main/java/me/zeroeightsix/kami/setting/impl/EnumSetting.java @@ -12,8 +12,8 @@ import java.util.function.Predicate; */ public class EnumSetting extends Setting { + private EnumConverter converter; public final Class clazz; - private final EnumConverter converter; public EnumSetting(T value, Predicate restriction, BiConsumer consumer, String name, Predicate visibilityPredicate, Class clazz) { super(value, restriction, consumer, name, visibilityPredicate); diff --git a/src/main/java/me/zeroeightsix/kami/util/BeaconGui.java b/src/main/java/me/zeroeightsix/kami/util/BeaconGui.java index 8ba71027a..b0e16f0e8 100644 --- a/src/main/java/me/zeroeightsix/kami/util/BeaconGui.java +++ b/src/main/java/me/zeroeightsix/kami/util/BeaconGui.java @@ -21,14 +21,15 @@ import java.io.IOException; * @author TBM */ public class BeaconGui extends GuiBeacon { - public static final Potion[][] EFFECTS_LIST = new Potion[][]{{MobEffects.SPEED, MobEffects.HASTE}, {MobEffects.RESISTANCE, MobEffects.JUMP_BOOST}, {MobEffects.STRENGTH}}; private static final ResourceLocation BEACON_GUI_TEXTURES = new ResourceLocation("textures/gui/container/beacon.png"); - boolean doRenderButtons; + public static final Potion[][] EFFECTS_LIST = new Potion[][] {{MobEffects.SPEED, MobEffects.HASTE}, {MobEffects.RESISTANCE, MobEffects.JUMP_BOOST}, {MobEffects.STRENGTH}}; public BeaconGui(InventoryPlayer playerInventory, IInventory tileBeaconIn) { super(playerInventory, tileBeaconIn); } + boolean doRenderButtons; + @Override public void initGui() { super.initGui(); @@ -61,7 +62,7 @@ public class BeaconGui extends GuiBeacon { super.actionPerformed(button); if (button instanceof BeaconGui.PowerButtonCustom) { - BeaconGui.PowerButtonCustom guibeacon$powerbutton = (BeaconGui.PowerButtonCustom) button; + BeaconGui.PowerButtonCustom guibeacon$powerbutton = (BeaconGui.PowerButtonCustom)button; if (guibeacon$powerbutton.isSelected()) return; @@ -78,6 +79,27 @@ public class BeaconGui extends GuiBeacon { } + class PowerButtonCustom extends BeaconGui.Button { + private final Potion effect; + private final int tier; + + public PowerButtonCustom(int buttonId, int x, int y, Potion effectIn, int tierIn) { + super(buttonId, x, y, GuiContainer.INVENTORY_BACKGROUND, effectIn.getStatusIconIndex() % 8 * 18, 198 + effectIn.getStatusIconIndex() / 8 * 18); + this.effect = effectIn; + this.tier = tierIn; + } + + public void drawButtonForegroundLayer(int mouseX, int mouseY) { + String s = I18n.format(this.effect.getName()); + + if (this.tier >= 3 && this.effect != MobEffects.REGENERATION) { + s = s + " II"; + } + + BeaconGui.this.drawHoveringText(s, mouseX, mouseY); + } + } + @SideOnly(Side.CLIENT) static class Button extends GuiButton { private final ResourceLocation iconTexture; @@ -104,9 +126,11 @@ public class BeaconGui extends GuiBeacon { if (!this.enabled) { j += this.width * 2; - } else if (this.selected) { + } + else if (this.selected) { j += this.width * 1; - } else if (this.hovered) { + } + else if (this.hovered) { j += this.width * 3; } @@ -120,33 +144,14 @@ public class BeaconGui extends GuiBeacon { } } - public boolean isSelected() { + public boolean isSelected() + { return this.selected; } - public void setSelected(boolean selectedIn) { + public void setSelected(boolean selectedIn) + { this.selected = selectedIn; } } - - class PowerButtonCustom extends BeaconGui.Button { - private final Potion effect; - private final int tier; - - public PowerButtonCustom(int buttonId, int x, int y, Potion effectIn, int tierIn) { - super(buttonId, x, y, GuiContainer.INVENTORY_BACKGROUND, effectIn.getStatusIconIndex() % 8 * 18, 198 + effectIn.getStatusIconIndex() / 8 * 18); - this.effect = effectIn; - this.tier = tierIn; - } - - public void drawButtonForegroundLayer(int mouseX, int mouseY) { - String s = I18n.format(this.effect.getName()); - - if (this.tier >= 3 && this.effect != MobEffects.REGENERATION) { - s = s + " II"; - } - - BeaconGui.this.drawHoveringText(s, mouseX, mouseY); - } - } } diff --git a/src/main/java/me/zeroeightsix/kami/util/Bind.java b/src/main/java/me/zeroeightsix/kami/util/Bind.java index 9b4f21398..0ad58ac94 100644 --- a/src/main/java/me/zeroeightsix/kami/util/Bind.java +++ b/src/main/java/me/zeroeightsix/kami/util/Bind.java @@ -20,6 +20,51 @@ public class Bind { this.key = key; } + public int getKey() { + return key; + } + + public boolean isCtrl() { + return ctrl; + } + + public boolean isAlt() { + return alt; + } + + public boolean isShift() { + return shift; + } + + public boolean isEmpty() { + return !ctrl && !shift && !alt && key < 0; + } + + public void setAlt(boolean alt) { + this.alt = alt; + } + + public void setCtrl(boolean ctrl) { + this.ctrl = ctrl; + } + + public void setKey(int key) { + this.key = key; + } + + public void setShift(boolean shift) { + this.shift = shift; + } + + @Override + public String toString() { + return isEmpty() ? "None" : (isCtrl() ? "Ctrl+" : "") + (isAlt() ? "Alt+" : "") + (isShift() ? "Shift+" : "") + (key < 0 ? "None" : capitalise(Keyboard.getKeyName(key))); + } + + public boolean isDown(int eventKey) { + return !isEmpty() && (!BindCommand.modifiersEnabled.getValue() || (isShift() == isShiftDown()) && (isCtrl() == isCtrlDown()) && (isAlt() == isAltDown())) && eventKey == getKey(); + } + public static boolean isShiftDown() { return Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT); } @@ -32,58 +77,13 @@ public class Bind { return Keyboard.isKeyDown(Keyboard.KEY_LMENU) || Keyboard.isKeyDown(Keyboard.KEY_RMENU); } - public static Bind none() { - return new Bind(false, false, false, -1); - } - - public int getKey() { - return key; - } - - public void setKey(int key) { - this.key = key; - } - - public boolean isCtrl() { - return ctrl; - } - - public void setCtrl(boolean ctrl) { - this.ctrl = ctrl; - } - - public boolean isAlt() { - return alt; - } - - public void setAlt(boolean alt) { - this.alt = alt; - } - - public boolean isShift() { - return shift; - } - - public void setShift(boolean shift) { - this.shift = shift; - } - - public boolean isEmpty() { - return !ctrl && !shift && !alt && key < 0; - } - - @Override - public String toString() { - return isEmpty() ? "None" : (isCtrl() ? "Ctrl+" : "") + (isAlt() ? "Alt+" : "") + (isShift() ? "Shift+" : "") + (key < 0 ? "None" : capitalise(Keyboard.getKeyName(key))); - } - - public boolean isDown(int eventKey) { - return !isEmpty() && (!BindCommand.modifiersEnabled.getValue() || (isShift() == isShiftDown()) && (isCtrl() == isCtrlDown()) && (isAlt() == isAltDown())) && eventKey == getKey(); - } - public String capitalise(String str) { if (str.isEmpty()) return ""; return Character.toUpperCase(str.charAt(0)) + (str.length() != 1 ? str.substring(1).toLowerCase() : ""); } + public static Bind none() { + return new Bind(false, false, false, -1); + } + } diff --git a/src/main/java/me/zeroeightsix/kami/util/ColourConverter.java b/src/main/java/me/zeroeightsix/kami/util/ColourConverter.java index f58bf720d..5096b36de 100644 --- a/src/main/java/me/zeroeightsix/kami/util/ColourConverter.java +++ b/src/main/java/me/zeroeightsix/kami/util/ColourConverter.java @@ -5,21 +5,13 @@ package me.zeroeightsix.kami.util; * Updated by S-B99 on 04/03/20 */ public class ColourConverter { - public static float toF(int i) { - return i / 255f; - } + public static float toF(int i) { return i / 255f; } - public static float toF(double d) { - return (float) (d / 255f); - } + public static float toF(double d) { return (float) (d / 255f); } - public static int rgbToInt(int r, int g, int b, int a) { - return (r << 16) | (g << 8) | (b) | (a << 24); - } + public static int rgbToInt(int r, int g, int b, int a) { return (r << 16) | (g << 8) | (b) | (a << 24); } - public static int rgbToInt(int r, int g, int b) { - return (r << 16) | (g << 8) | (b); - } + public static int rgbToInt(int r, int g, int b) { return (r << 16) | (g << 8) | (b); } // settingsToInt(r.getValue(), g.getValue(), b.getValue(), aBlock.getValue() } diff --git a/src/main/java/me/zeroeightsix/kami/util/ColourHolder.java b/src/main/java/me/zeroeightsix/kami/util/ColourHolder.java index a068638a6..0b2a73aaf 100644 --- a/src/main/java/me/zeroeightsix/kami/util/ColourHolder.java +++ b/src/main/java/me/zeroeightsix/kami/util/ColourHolder.java @@ -28,16 +28,6 @@ public class ColourHolder { this.a = a; } - public static ColourHolder fromHex(int hex) { - ColourHolder n = new ColourHolder(0, 0, 0); - n.becomeHex(hex); - return n; - } - - public static int toHex(int r, int g, int b) { - return (0xff << 24) | ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff); - } - public ColourHolder brighter() { return new ColourHolder(Math.min(r + 10, 255), Math.min(g + 10, 255), Math.min(b + 10, 255), getA()); } @@ -67,6 +57,16 @@ public class ColourHolder { setA(255); } + public static ColourHolder fromHex(int hex) { + ColourHolder n = new ColourHolder(0, 0, 0); + n.becomeHex(hex); + return n; + } + + public static int toHex(int r, int g, int b) { + return (0xff << 24) | ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff); + } + public int toHex() { return toHex(r, g, b); } @@ -75,31 +75,31 @@ public class ColourHolder { return b; } - public ColourHolder setB(int b) { - this.b = b; - return this; - } - public int getG() { return g; } - public ColourHolder setG(int g) { - this.g = g; - return this; - } - public int getR() { return r; } + public int getA() { + return a; + } + public ColourHolder setR(int r) { this.r = r; return this; } - public int getA() { - return a; + public ColourHolder setB(int b) { + this.b = b; + return this; + } + + public ColourHolder setG(int g) { + this.g = g; + return this; } public ColourHolder setA(int a) { diff --git a/src/main/java/me/zeroeightsix/kami/util/ColourTextFormatting.java b/src/main/java/me/zeroeightsix/kami/util/ColourTextFormatting.java index e5171d4cf..e5f38d313 100644 --- a/src/main/java/me/zeroeightsix/kami/util/ColourTextFormatting.java +++ b/src/main/java/me/zeroeightsix/kami/util/ColourTextFormatting.java @@ -11,45 +11,8 @@ import java.util.Map; * Updated by S-B99 on 25/03/20 */ public class ColourTextFormatting { - public static Map colourEnumMap = new HashMap() {{ - put(TextFormatting.BLACK, ColourEnum.BLACK); - put(TextFormatting.DARK_BLUE, ColourEnum.DARK_BLUE); - put(TextFormatting.DARK_GREEN, ColourEnum.DARK_GREEN); - put(TextFormatting.DARK_AQUA, ColourEnum.DARK_AQUA); - put(TextFormatting.DARK_RED, ColourEnum.DARK_RED); - put(TextFormatting.DARK_PURPLE, ColourEnum.DARK_PURPLE); - put(TextFormatting.GOLD, ColourEnum.GOLD); - put(TextFormatting.GRAY, ColourEnum.GRAY); - put(TextFormatting.DARK_GRAY, ColourEnum.DARK_GRAY); - put(TextFormatting.BLUE, ColourEnum.BLUE); - put(TextFormatting.GREEN, ColourEnum.GREEN); - put(TextFormatting.AQUA, ColourEnum.AQUA); - put(TextFormatting.RED, ColourEnum.RED); - put(TextFormatting.LIGHT_PURPLE, ColourEnum.LIGHT_PURPLE); - put(TextFormatting.YELLOW, ColourEnum.YELLOW); - put(TextFormatting.WHITE, ColourEnum.WHITE); - }}; - public static Map toTextMap = new HashMap() {{ - put(ColourCode.BLACK, TextFormatting.BLACK); - put(ColourCode.DARK_BLUE, TextFormatting.DARK_BLUE); - put(ColourCode.DARK_GREEN, TextFormatting.DARK_GREEN); - put(ColourCode.DARK_AQUA, TextFormatting.DARK_AQUA); - put(ColourCode.DARK_RED, TextFormatting.DARK_RED); - put(ColourCode.DARK_PURPLE, TextFormatting.DARK_PURPLE); - put(ColourCode.GOLD, TextFormatting.GOLD); - put(ColourCode.GRAY, TextFormatting.GRAY); - put(ColourCode.DARK_GRAY, TextFormatting.DARK_GRAY); - put(ColourCode.BLUE, TextFormatting.BLUE); - put(ColourCode.GREEN, TextFormatting.GREEN); - put(ColourCode.AQUA, TextFormatting.AQUA); - put(ColourCode.RED, TextFormatting.RED); - put(ColourCode.LIGHT_PURPLE, TextFormatting.LIGHT_PURPLE); - put(ColourCode.YELLOW, TextFormatting.YELLOW); - put(ColourCode.WHITE, TextFormatting.WHITE); - }}; - public enum ColourEnum { - BLACK(new Color(0, 0, 0)), + BLACK(new Color(0,0, 0)), DARK_BLUE(new Color(0, 0, 170)), DARK_GREEN(new Color(0, 170, 0)), DARK_AQUA(new Color(0, 170, 170)), @@ -68,13 +31,49 @@ public class ColourTextFormatting { public Color colorLocal; - ColourEnum(Color colorLocal) { - this.colorLocal = colorLocal; - } + ColourEnum(Color colorLocal) { this.colorLocal = colorLocal; } } + public static Map colourEnumMap = new HashMap(){{ + put(TextFormatting.BLACK, ColourEnum.BLACK); + put(TextFormatting.DARK_BLUE, ColourEnum.DARK_BLUE); + put(TextFormatting.DARK_GREEN, ColourEnum.DARK_GREEN); + put(TextFormatting.DARK_AQUA, ColourEnum.DARK_AQUA); + put(TextFormatting.DARK_RED, ColourEnum.DARK_RED); + put(TextFormatting.DARK_PURPLE, ColourEnum.DARK_PURPLE); + put(TextFormatting.GOLD, ColourEnum.GOLD); + put(TextFormatting.GRAY, ColourEnum.GRAY); + put(TextFormatting.DARK_GRAY, ColourEnum.DARK_GRAY); + put(TextFormatting.BLUE, ColourEnum.BLUE); + put(TextFormatting.GREEN, ColourEnum.GREEN); + put(TextFormatting.AQUA, ColourEnum.AQUA); + put(TextFormatting.RED, ColourEnum.RED); + put(TextFormatting.LIGHT_PURPLE, ColourEnum.LIGHT_PURPLE); + put(TextFormatting.YELLOW, ColourEnum.YELLOW); + put(TextFormatting.WHITE, ColourEnum.WHITE); + }}; + public enum ColourCode { BLACK, DARK_BLUE, DARK_GREEN, DARK_AQUA, DARK_RED, DARK_PURPLE, GOLD, GRAY, DARK_GRAY, BLUE, GREEN, AQUA, RED, LIGHT_PURPLE, YELLOW, WHITE } + public static Map toTextMap = new HashMap(){{ + put(ColourCode.BLACK, TextFormatting.BLACK); + put(ColourCode.DARK_BLUE, TextFormatting.DARK_BLUE); + put(ColourCode.DARK_GREEN, TextFormatting.DARK_GREEN); + put(ColourCode.DARK_AQUA, TextFormatting.DARK_AQUA); + put(ColourCode.DARK_RED, TextFormatting.DARK_RED); + put(ColourCode.DARK_PURPLE, TextFormatting.DARK_PURPLE); + put(ColourCode.GOLD, TextFormatting.GOLD); + put(ColourCode.GRAY, TextFormatting.GRAY); + put(ColourCode.DARK_GRAY, TextFormatting.DARK_GRAY); + put(ColourCode.BLUE, TextFormatting.BLUE); + put(ColourCode.GREEN, TextFormatting.GREEN); + put(ColourCode.AQUA, TextFormatting.AQUA); + put(ColourCode.RED, TextFormatting.RED); + put(ColourCode.LIGHT_PURPLE, TextFormatting.LIGHT_PURPLE); + put(ColourCode.YELLOW, TextFormatting.YELLOW); + put(ColourCode.WHITE, TextFormatting.WHITE); + }}; + } diff --git a/src/main/java/me/zeroeightsix/kami/util/ColourUtils.java b/src/main/java/me/zeroeightsix/kami/util/ColourUtils.java index bbb89293e..0560952ec 100644 --- a/src/main/java/me/zeroeightsix/kami/util/ColourUtils.java +++ b/src/main/java/me/zeroeightsix/kami/util/ColourUtils.java @@ -13,47 +13,6 @@ import java.util.ArrayList; */ public class ColourUtils { - /** - * SubClass of ColorUtils. In order to lookup colour name - * - * @author Xiaoxiao Li - */ - public static int toRGBA(double r, double g, double b, double a) { - return toRGBA((float) r, (float) g, (float) b, (float) a); - } - - public static int toRGBA(int r, int g, int b, int a) { - return (r << 16) + (g << 8) + (b << 0) + (a << 24); - } - - public static int toRGBA(float r, float g, float b, float a) { - return toRGBA((int) (r * 255.f), (int) (g * 255.f), (int) (b * 255.f), (int) (a * 255.f)); - } - - public static int toRGBA(float[] colors) { - if (colors.length != 4) throw new IllegalArgumentException("colors[] must have a length of 4!"); - return toRGBA(colors[0], colors[1], colors[2], colors[3]); - } - - public static int toRGBA(double[] colors) { - if (colors.length != 4) throw new IllegalArgumentException("colors[] must have a length of 4!"); - return toRGBA((float) colors[0], (float) colors[1], (float) colors[2], (float) colors[3]); - } - - public static int[] toRGBAArray(int colorBuffer) { - return new int[]{ - (colorBuffer >> 16 & 255), - (colorBuffer >> 8 & 255), - (colorBuffer & 255), - (colorBuffer >> 24 & 255) - }; - } - - public static final int changeAlpha(int origColor, int userInputedAlpha) { - origColor = origColor & 0x00ffffff; // drop the previous alpha value - return (userInputedAlpha << 24) | origColor; // add the one the user inputted - } - /** * Initialize the colour list that we have. */ @@ -202,6 +161,15 @@ public class ColourUtils { return colorList; } + /** + * SubClass of ColorUtils. In order to lookup colour name + * + * @author Xiaoxiao Li + */ + public static int toRGBA(double r, double g, double b, double a) { + return toRGBA((float) r, (float) g, (float) b, (float) a); + } + /** * Get the closest colour name from our list * @@ -253,20 +221,6 @@ public class ColourUtils { color.getBlue()); } - public static class Colors { - public final static int WHITE = toRGBA(255, 255, 255, 255); - public final static int BLACK = toRGBA(0, 0, 0, 255); - public final static int RED = toRGBA(255, 0, 0, 255); - public final static int GREEN = toRGBA(0, 255, 0, 255); - public final static int BLUE = toRGBA(0, 0, 255, 255); - public final static int ORANGE = toRGBA(255, 128, 0, 255); - public final static int PURPLE = toRGBA(163, 73, 163, 255); - public final static int GRAY = toRGBA(127, 127, 127, 255); - public final static int DARK_RED = toRGBA(64, 0, 0, 255); - public final static int YELLOW = toRGBA(255, 255, 0, 255); - public final static int RAINBOW = Integer.MIN_VALUE; - } - public class ColorName { public int r, g, b; @@ -280,8 +234,8 @@ public class ColourUtils { } public int computeMSE(int pixR, int pixG, int pixB) { - return ((pixR - r) * (pixR - r) + (pixG - g) * (pixG - g) + (pixB - b) - * (pixB - b)) / 3; + return (int) (((pixR - r) * (pixR - r) + (pixG - g) * (pixG - g) + (pixB - b) + * (pixB - b)) / 3); } public int getR() { @@ -301,4 +255,50 @@ public class ColourUtils { } } + public static int toRGBA(int r, int g, int b, int a) { + return (r << 16) + (g << 8) + (b << 0) + (a << 24); + } + + public static int toRGBA(float r, float g, float b, float a) { + return toRGBA((int) (r * 255.f), (int) (g * 255.f), (int) (b * 255.f), (int) (a * 255.f)); + } + + public static int toRGBA(float[] colors) { + if (colors.length != 4) throw new IllegalArgumentException("colors[] must have a length of 4!"); + return toRGBA(colors[0], colors[1], colors[2], colors[3]); + } + + public static int toRGBA(double[] colors) { + if (colors.length != 4) throw new IllegalArgumentException("colors[] must have a length of 4!"); + return toRGBA((float) colors[0], (float) colors[1], (float) colors[2], (float) colors[3]); + } + + public static int[] toRGBAArray(int colorBuffer) { + return new int[]{ + (colorBuffer >> 16 & 255), + (colorBuffer >> 8 & 255), + (colorBuffer & 255), + (colorBuffer >> 24 & 255) + }; + } + + public static class Colors { + public final static int WHITE = toRGBA(255, 255, 255, 255); + public final static int BLACK = toRGBA(0, 0, 0, 255); + public final static int RED = toRGBA(255, 0, 0, 255); + public final static int GREEN = toRGBA(0, 255, 0, 255); + public final static int BLUE = toRGBA(0, 0, 255, 255); + public final static int ORANGE = toRGBA(255, 128, 0, 255); + public final static int PURPLE = toRGBA(163, 73, 163, 255); + public final static int GRAY = toRGBA(127, 127, 127, 255); + public final static int DARK_RED = toRGBA(64, 0, 0, 255); + public final static int YELLOW = toRGBA(255, 255, 0, 255); + public final static int RAINBOW = Integer.MIN_VALUE; + } + + public static final int changeAlpha(int origColor, int userInputedAlpha) { + origColor = origColor & 0x00ffffff; // drop the previous alpha value + return (userInputedAlpha << 24) | origColor; // add the one the user inputted + } + } \ No newline at end of file diff --git a/src/main/java/me/zeroeightsix/kami/util/EntityUtil.java b/src/main/java/me/zeroeightsix/kami/util/EntityUtil.java index 588f6fc39..d1066a545 100644 --- a/src/main/java/me/zeroeightsix/kami/util/EntityUtil.java +++ b/src/main/java/me/zeroeightsix/kami/util/EntityUtil.java @@ -26,7 +26,8 @@ public class EntityUtil { if (e instanceof EntityWolf && ((EntityWolf) e).isAngry()) return false; if (e instanceof EntityAnimal || e instanceof EntityAgeable || e instanceof EntityTameable || e instanceof EntityAmbientCreature || e instanceof EntitySquid) return true; - return e instanceof EntityIronGolem && ((EntityIronGolem) e).getRevengeTarget() == null; + if (e instanceof EntityIronGolem && ((EntityIronGolem) e).getRevengeTarget() == null) return true; + return false; } public static boolean isLiving(Entity e) { @@ -175,11 +176,11 @@ public class EntityUtil { } public static double getRelativeX(float yaw) { - return MathHelper.sin(-yaw * 0.017453292F); + return (double) (MathHelper.sin(-yaw * 0.017453292F)); } public static double getRelativeZ(float yaw) { - return MathHelper.cos(yaw * 0.017453292F); + return (double) (MathHelper.cos(yaw * 0.017453292F)); } /** diff --git a/src/main/java/me/zeroeightsix/kami/util/Friends.java b/src/main/java/me/zeroeightsix/kami/util/Friends.java index e9d50368e..66dd622d7 100644 --- a/src/main/java/me/zeroeightsix/kami/util/Friends.java +++ b/src/main/java/me/zeroeightsix/kami/util/Friends.java @@ -52,23 +52,6 @@ public class Friends { public FriendListConverter() { } - private static String getSource(String link) { - try { - URL u = new URL(link); - URLConnection con = u.openConnection(); - BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); - StringBuilder buffer = new StringBuilder(); - String inputLine; - while ((inputLine = in.readLine()) != null) - buffer.append(inputLine); - in.close(); - - return buffer.toString(); - } catch (Exception e) { - return null; - } - } - @Override protected JsonElement doForward(ArrayList list) { StringBuilder present = new StringBuilder(); @@ -106,6 +89,23 @@ public class Friends { return saved; } } + + private static String getSource(String link) { + try { + URL u = new URL(link); + URLConnection con = u.openConnection(); + BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); + StringBuilder buffer = new StringBuilder(); + String inputLine; + while ((inputLine = in.readLine()) != null) + buffer.append(inputLine); + in.close(); + + return buffer.toString(); + } catch (Exception e) { + return null; + } + } } } diff --git a/src/main/java/me/zeroeightsix/kami/util/InfoCalculator.java b/src/main/java/me/zeroeightsix/kami/util/InfoCalculator.java index 08993805f..e748be1c1 100644 --- a/src/main/java/me/zeroeightsix/kami/util/InfoCalculator.java +++ b/src/main/java/me/zeroeightsix/kami/util/InfoCalculator.java @@ -10,26 +10,22 @@ import java.text.DecimalFormat; * @author S-B99 * Created by S-B99 on 18/01/20 * Updated by S-B99 on 06/02/20 - *

+ * * Speed: * @author S-B99 * Created by S-B99 on 18/01/20 * Credit to Seppuku for the following calculation I made more efficient and got inspiration from * final String bps = "BPS: " + df.format((MathHelper.sqrt(deltaX * deltaX + deltaZ * deltaZ) / tickRate)); - *

+ * * Durability: * @author TBM * Created by TBM on 8/12/19 - *

+ * * TPS: * @author 086 */ public class InfoCalculator { - // Speed { - private static final DecimalFormat formatter = new DecimalFormat("#.#"); - // } - // Ping { public static int ping(Minecraft mc) { if (mc.getConnection() == null) { // tested, this is not null in mp @@ -44,6 +40,10 @@ public class InfoCalculator { return -1; } } + // } + + // Speed { + private static DecimalFormat formatter = new DecimalFormat("#.#"); public static String speed(boolean useUnitKmH, Minecraft mc) { float currentTps = mc.timer.tickLength / 1000.0f; @@ -54,12 +54,9 @@ public class InfoCalculator { private static double coordsDiff(char s, Minecraft mc) { switch (s) { - case 'x': - return mc.player.posX - mc.player.prevPosX; - case 'z': - return mc.player.posZ - mc.player.prevPosZ; - default: - return 0.0; + case 'x': return mc.player.posX - mc.player.prevPosX; + case 'z': return mc.player.posZ - mc.player.prevPosZ; + default: return 0.0; } } // } @@ -91,15 +88,11 @@ public class InfoCalculator { // } // Is Even { - public static boolean isNumberEven(int i) { - return (i & 1) == 0; - } + public static boolean isNumberEven(int i) { return (i & 1) == 0; } // } // Reverse Number { - public static int reverseNumber(int num, int min, int max) { - return (max + min) - num; - } + public static int reverseNumber(int num, int min, int max) { return (max + min) - num; } // } // Cardinal to Axis { @@ -130,7 +123,7 @@ public class InfoCalculator { case 1: return "End"; default: - return "No Dimension"; + return "No Dimension"; } } } diff --git a/src/main/java/me/zeroeightsix/kami/util/LogUtil.java b/src/main/java/me/zeroeightsix/kami/util/LogUtil.java index 16c1a9bd8..320ef3f01 100644 --- a/src/main/java/me/zeroeightsix/kami/util/LogUtil.java +++ b/src/main/java/me/zeroeightsix/kami/util/LogUtil.java @@ -15,7 +15,7 @@ public class LogUtil { Minecraft mc = Minecraft.getMinecraft(); int[] currentCoords = {(int) mc.player.posX, (int) mc.player.posY, (int) mc.player.posZ}; if (chunk == true) { - int[] chunkCoords = {currentCoords[0] / 16, currentCoords[1] / 16, currentCoords[2] / 16}; + int[] chunkCoords = {currentCoords[0]/16, currentCoords[1]/16, currentCoords[2]/16}; return chunkCoords; } else { return currentCoords; diff --git a/src/main/java/me/zeroeightsix/kami/util/MessageDetectionHelper.java b/src/main/java/me/zeroeightsix/kami/util/MessageDetectionHelper.java index f793f10a9..6c8b53b94 100644 --- a/src/main/java/me/zeroeightsix/kami/util/MessageDetectionHelper.java +++ b/src/main/java/me/zeroeightsix/kami/util/MessageDetectionHelper.java @@ -5,8 +5,8 @@ import java.util.regex.Pattern; /** * A helper to detect certain messages and return a boolean or message * - * @author S-B99 * @see me.zeroeightsix.kami.module.modules.chat.DiscordNotifs + * @author S-B99 */ public class MessageDetectionHelper { public static String getMessageType(boolean direct, boolean directSent, String message, String server) { @@ -43,8 +43,7 @@ public class MessageDetectionHelper { public static boolean shouldSend(boolean all, boolean restart, boolean direct, boolean directSent, boolean queue, boolean importantPings, String message) { if (all) return true; - else - return isRestart(restart, message) || isDirect(direct, message) || isDirectOther(directSent, message) || isQueue(queue, message) || isImportantQueue(importantPings, message); + else return isRestart(restart, message) || isDirect(direct, message) || isDirectOther(directSent, message) || isQueue(queue, message) || isImportantQueue(importantPings, message); } } diff --git a/src/main/java/me/zeroeightsix/kami/util/Pair.java b/src/main/java/me/zeroeightsix/kami/util/Pair.java index 576c6d2a0..d59f7b28a 100644 --- a/src/main/java/me/zeroeightsix/kami/util/Pair.java +++ b/src/main/java/me/zeroeightsix/kami/util/Pair.java @@ -16,14 +16,14 @@ public class Pair { return key; } - public void setKey(T key) { - this.key = key; - } - public S getValue() { return value; } + public void setKey(T key) { + this.key = key; + } + public void setValue(S value) { this.value = value; } diff --git a/src/main/java/me/zeroeightsix/kami/util/RichPresence.java b/src/main/java/me/zeroeightsix/kami/util/RichPresence.java index e86a6d75e..632df9810 100644 --- a/src/main/java/me/zeroeightsix/kami/util/RichPresence.java +++ b/src/main/java/me/zeroeightsix/kami/util/RichPresence.java @@ -15,6 +15,11 @@ public class RichPresence { public static RichPresence INSTANCE; public CustomUser[] customUsers; + public static class CustomUser { + public String uuid; + public String type; + } + public RichPresence() { INSTANCE = this; try { @@ -27,9 +32,4 @@ public class RichPresence { e.printStackTrace(); } } - - public static class CustomUser { - public String uuid; - public String type; - } } diff --git a/src/main/java/me/zeroeightsix/kami/util/TimeUtil.java b/src/main/java/me/zeroeightsix/kami/util/TimeUtil.java index 371766544..0c0a75eb0 100644 --- a/src/main/java/me/zeroeightsix/kami/util/TimeUtil.java +++ b/src/main/java/me/zeroeightsix/kami/util/TimeUtil.java @@ -21,14 +21,19 @@ public class TimeUtil { return format.format(date); } + public enum TimeType { + HHMM, HHMMSS, HH + } + + public enum TimeUnit { + H24, H12 + } + private static String formatTimeString(TimeType timeType) { switch (timeType) { - case HHMM: - return ":mm"; - case HHMMSS: - return ":mm:ss"; - default: - return ""; + case HHMM: return ":mm"; + case HHMMSS: return ":mm:ss"; + default: return ""; } } @@ -36,11 +41,9 @@ public class TimeUtil { SimpleDateFormat formatter; switch (timeUnit) { case H12: - formatter = new SimpleDateFormat("hh" + formatTimeString(timeType), Locale.UK); - break; + formatter = new SimpleDateFormat("hh" + formatTimeString(timeType), Locale.UK); break; case H24: - formatter = new SimpleDateFormat("HH" + formatTimeString(timeType), Locale.UK); - break; + formatter = new SimpleDateFormat("HH" + formatTimeString(timeType), Locale.UK); break; default: throw new IllegalStateException("Unexpected value: " + timeUnit); } @@ -72,12 +75,4 @@ public class TimeUtil { } return time(dateFormatter(timeUnit, timeType)) + locale; } - - public enum TimeType { - HHMM, HHMMSS, HH - } - - public enum TimeUnit { - H24, H12 - } } diff --git a/src/main/java/me/zeroeightsix/kami/util/TrajectoryCalculator.java b/src/main/java/me/zeroeightsix/kami/util/TrajectoryCalculator.java index 4a33aa95e..393a7b758 100644 --- a/src/main/java/me/zeroeightsix/kami/util/TrajectoryCalculator.java +++ b/src/main/java/me/zeroeightsix/kami/util/TrajectoryCalculator.java @@ -49,25 +49,6 @@ public class TrajectoryCalculator { return ThrowingType.NONE; } - public static double[] interpolate(Entity entity) { - double posX = interpolate(entity.posX, entity.lastTickPosX) - Wrapper.getMinecraft().renderManager.renderPosX; - double posY = interpolate(entity.posY, entity.lastTickPosY) - Wrapper.getMinecraft().renderManager.renderPosY; - double posZ = interpolate(entity.posZ, entity.lastTickPosZ) - Wrapper.getMinecraft().renderManager.renderPosZ; - return new double[]{posX, posY, posZ}; - } - - public static double interpolate(double now, double then) { - return then + (now - then) * Wrapper.getMinecraft().getRenderPartialTicks(); - } - - public static Vec3d mult(Vec3d factor, float multiplier) { - return new Vec3d(factor.x * multiplier, factor.y * multiplier, factor.z * multiplier); - } - - public static Vec3d div(Vec3d factor, float divisor) { - return new Vec3d(factor.x / divisor, factor.y / divisor, factor.z / divisor); - } - public enum ThrowingType { NONE, BOW, EXPERIENCE, POTION, NORMAL } @@ -78,15 +59,15 @@ public class TrajectoryCalculator { * of them is {@link net.minecraft.entity.projectile.EntityThrowable} */ public static final class FlightPath { + private EntityLivingBase shooter; public Vec3d position; - private final EntityLivingBase shooter; private Vec3d motion; private float yaw; private float pitch; private AxisAlignedBB boundingBox; private boolean collided; private RayTraceResult target; - private final ThrowingType throwingType; + private ThrowingType throwingType; public FlightPath(EntityLivingBase entityLivingBase, ThrowingType throwingType) { this.shooter = entityLivingBase; @@ -168,6 +149,7 @@ public class TrajectoryCalculator { double currentDistance = 0.0d; // Get all possible collision entities disregarding the local thePlayer List collisionEntities = this.shooter.world.getEntitiesWithinAABBExcludingEntity(this.shooter, this.boundingBox.expand(this.motion.x, this.motion.y, this.motion.z).expand(1.0D, 1.0D, 1.0D)); + ; // Loop through every loaded entity in the world for (Entity entity : collisionEntities) { @@ -321,4 +303,23 @@ public class TrajectoryCalculator { return target; } } + + public static double[] interpolate(Entity entity) { + double posX = interpolate(entity.posX, entity.lastTickPosX) - Wrapper.getMinecraft().renderManager.renderPosX; + double posY = interpolate(entity.posY, entity.lastTickPosY) - Wrapper.getMinecraft().renderManager.renderPosY; + double posZ = interpolate(entity.posZ, entity.lastTickPosZ) - Wrapper.getMinecraft().renderManager.renderPosZ; + return new double[]{posX, posY, posZ}; + } + + public static double interpolate(double now, double then) { + return then + (now - then) * Wrapper.getMinecraft().getRenderPartialTicks(); + } + + public static Vec3d mult(Vec3d factor, float multiplier) { + return new Vec3d(factor.x * multiplier, factor.y * multiplier, factor.z * multiplier); + } + + public static Vec3d div(Vec3d factor, float divisor) { + return new Vec3d(factor.x / divisor, factor.y / divisor, factor.z / divisor); + } } diff --git a/src/main/java/me/zeroeightsix/kami/util/VectorUtil.java b/src/main/java/me/zeroeightsix/kami/util/VectorUtil.java index 861892d07..aa3dea222 100644 --- a/src/main/java/me/zeroeightsix/kami/util/VectorUtil.java +++ b/src/main/java/me/zeroeightsix/kami/util/VectorUtil.java @@ -28,9 +28,9 @@ public class VectorUtil { /** * Gets vectors between two given vectors (startVec and destinationVec) every (distance between the given vectors) / steps * - * @param startVec Beginning vector + * @param startVec Beginning vector * @param destinationVec Ending vector - * @param steps distance between given vectors + * @param steps distance between given vectors * @return all vectors between startVec and destinationVec divided by steps */ public static ArrayList extendVec(Vec3d startVec, Vec3d destinationVec, int steps) { @@ -49,9 +49,9 @@ public class VectorUtil { /** * Moves a vector towards a destination based on distance * - * @param startVec Starting vector + * @param startVec Starting vector * @param destinationVec returned vector - * @param distance distance to move startVec by + * @param distance distance to move startVec by * @return vector based on startVec that is moved towards destinationVec by distance */ public static Vec3d advanceVec(Vec3d startVec, Vec3d destinationVec, double distance) { @@ -105,9 +105,7 @@ public class VectorUtil { for (int x = minX; x < maxX; x++) { for (int y = minY; y < maxY; y++) { - for (int z = minZ; z < maxZ; z++) { - returnList.add(new BlockPos(x, y, z)); - } + for (int z = minZ; z < maxZ; z++) { returnList.add(new BlockPos(x, y, z)); } } } diff --git a/src/main/java/me/zeroeightsix/kami/util/WebUtils.java b/src/main/java/me/zeroeightsix/kami/util/WebUtils.java index e962df69d..e6b274d89 100644 --- a/src/main/java/me/zeroeightsix/kami/util/WebUtils.java +++ b/src/main/java/me/zeroeightsix/kami/util/WebUtils.java @@ -60,40 +60,40 @@ public class WebUtils { } public static java.util.List getContributors(java.util.List exceptions) { - // log attempt - KamiMod.log.info("Attempting to get contributors from github api..."); + // log attempt + KamiMod.log.info("Attempting to get contributors from github api..."); - //initialize list - java.util.List contributorsAsList = new LinkedList<>(Collections.emptyList()); + //initialize list + java.util.List contributorsAsList = new LinkedList<>(Collections.emptyList()); - new Thread(() -> { - try { - // connect to https://api.github.com/repos/kami-blue/client/contributors - HttpsURLConnection connection = (HttpsURLConnection) new URL("https://api.github.com/repos/kami-blue/client/contributors").openConnection(); - connection.connect(); + new Thread(() -> { + try { + // connect to https://api.github.com/repos/kami-blue/client/contributors + HttpsURLConnection connection = (HttpsURLConnection) new URL("https://api.github.com/repos/kami-blue/client/contributors").openConnection(); + connection.connect(); - // then parse it - GithubUser[] contributors = new Gson().fromJson(new InputStreamReader(connection.getInputStream()), GithubUser[].class); + // then parse it + GithubUser[] contributors = new Gson().fromJson(new InputStreamReader(connection.getInputStream()), GithubUser[].class); - // disconnect from api - connection.disconnect(); + // disconnect from api + connection.disconnect(); - // add contributors to the list - for (GithubUser githubUser : contributors) { - contributorsAsList.add(githubUser); - for (int exception : exceptions) { - if (githubUser.id == exception) { - contributorsAsList.remove(githubUser); + // add contributors to the list + for (GithubUser githubUser : contributors) { + contributorsAsList.add(githubUser); + for (int exception : exceptions) { + if (githubUser.id == exception) { + contributorsAsList.remove(githubUser); + } } } - } - } catch (Throwable t) { - // throw error - KamiMod.log.error("Attempt to get contributors from github api failed.\nError:\n\n" + t.toString()); - MessageSendHelper.sendErrorMessage("Attempt to get contributors from github api failed.\nError:\n\n" + t.toString()); - } - }).start(); + } catch (Throwable t) { + // throw error + KamiMod.log.error("Attempt to get contributors from github api failed.\nError:\n\n" + t.toString()); + MessageSendHelper.sendErrorMessage("Attempt to get contributors from github api failed.\nError:\n\n" + t.toString()); + } + }).start(); return contributorsAsList; } From c8ed989d5f4e0e49b0e7f037b4934b7d176d7ef0 Mon Sep 17 00:00:00 2001 From: Bella Date: Thu, 16 Apr 2020 21:18:31 -0400 Subject: [PATCH 07/11] fix spammed use of nametags in autonametag --- .../kami/module/modules/misc/AutoNametag.java | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoNametag.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoNametag.java index e24a56e1e..08152636d 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoNametag.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoNametag.java @@ -1,5 +1,6 @@ package me.zeroeightsix.kami.module.modules.misc; +import me.zeroeightsix.kami.command.Command; import me.zeroeightsix.kami.module.Module; import me.zeroeightsix.kami.setting.Setting; import me.zeroeightsix.kami.setting.Settings; @@ -23,15 +24,16 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.sendErrorMessage; */ @Module.Info(name = "AutoNametag", description = "Automatically nametags entities", category = Module.Category.MISC) public class AutoNametag extends Module { - private Setting modeSetting = register(Settings.e("Mode", Mode.WITHER)); + private Setting modeSetting = register(Settings.e("Mode", Mode.ANY)); private Setting range = register(Settings.floatBuilder("Range").withMinimum(2.0f).withValue(3.5f).withMaximum(10.0f).build()); private Setting debug = register(Settings.b("Debug", false)); private String currentName = ""; + private int currentSlot = -1; public void onUpdate() { - useNameTag(); findNameTags(); + useNameTag(); } private void useNameTag() { @@ -39,18 +41,22 @@ public class AutoNametag extends Module { for (Entity w : mc.world.getLoadedEntityList()) { switch (modeSetting.getValue()) { case WITHER: - if (w instanceof EntityWither && !w.getDisplayName().getUnformattedText().equals(currentName)) { +// sendChatMessage("a"); + if (w instanceof EntityMob) { +// sendChatMessage("mob"); final EntityWither wither = (EntityWither) w; +// sendChatMessage("wither"); if (mc.player.getDistance(wither) <= range.getValue()) { +// sendChatMessage("a"); if (debug.getValue()) - sendChatMessage("Found unnamed Wither"); + sendChatMessage("Found unnamed " + w.getDisplayName().getUnformattedText()); selectNameTags(); mc.playerController.interactWithEntity(mc.player, wither, EnumHand.MAIN_HAND); } } return; case ANY: - if (w instanceof EntityMob || w instanceof EntityAnimal && !w.getDisplayName().getUnformattedText().equals(currentName)) { + if ((w instanceof EntityMob || w instanceof EntityAnimal) && !w.getDisplayName().getUnformattedText().equals(currentName)) { if (mc.player.getDistance(w) <= range.getValue()) { if (debug.getValue()) sendChatMessage("Found unnamed " + w.getDisplayName().getUnformattedText()); @@ -69,7 +75,7 @@ public class AutoNametag extends Module { ItemStack stack = mc.player.inventory.getStackInSlot(i); if (stack == ItemStack.EMPTY || stack.getItem() instanceof ItemBlock) continue; Item tag = stack.getItem(); - if (tag instanceof ItemNameTag) { + if (tag instanceof ItemNameTag && !stack.getDisplayName().equals("Name Tag")) { tagSlot = i; currentName = stack.getDisplayName(); } @@ -89,8 +95,9 @@ public class AutoNametag extends Module { ItemStack stack = mc.player.inventory.getStackInSlot(i); if (stack == ItemStack.EMPTY || stack.getItem() instanceof ItemBlock) continue; Item tag = stack.getItem(); - if (tag instanceof ItemNameTag) { + if (tag instanceof ItemNameTag && !stack.getDisplayName().equals("Name Tag")) { currentName = stack.getDisplayName(); + currentSlot = i; } } } From 8a340ff2b868f3f67e39f3d51ba53c95953ee9e8 Mon Sep 17 00:00:00 2001 From: Qther Date: Fri, 17 Apr 2020 17:00:38 +0800 Subject: [PATCH 08/11] I'm literally stupid --- src/main/java/me/zeroeightsix/kami/util/WebUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/me/zeroeightsix/kami/util/WebUtils.java b/src/main/java/me/zeroeightsix/kami/util/WebUtils.java index e6b274d89..991f712cd 100644 --- a/src/main/java/me/zeroeightsix/kami/util/WebUtils.java +++ b/src/main/java/me/zeroeightsix/kami/util/WebUtils.java @@ -37,7 +37,7 @@ public class WebUtils { new Thread(() -> { try { // connect to https://api.github.com/repos/kami-blue/client/contributors - HttpsURLConnection connection = (HttpsURLConnection) new URL(KamiMod.CAPES_JSON).openConnection(); + HttpsURLConnection connection = (HttpsURLConnection) new URL("https://api.github.com/repos/kami-blue/client/contributors").openConnection(); connection.connect(); // then parse it From c0122d014cdbb3bb2ea76482e54e8dad99b7dc3b Mon Sep 17 00:00:00 2001 From: Bella Date: Fri, 17 Apr 2020 08:26:28 -0400 Subject: [PATCH 09/11] make tooltips even more reliable --- .../kami/gui/kami/theme/kami/RootCheckButtonUI.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/RootCheckButtonUI.java b/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/RootCheckButtonUI.java index 72910470c..d5c2ef69d 100644 --- a/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/RootCheckButtonUI.java +++ b/src/main/java/me/zeroeightsix/kami/gui/kami/theme/kami/RootCheckButtonUI.java @@ -50,6 +50,8 @@ public class RootCheckButtonUI extends AbstractComponentU Component componentAt = KamiMod.getInstance().guiManager.getComponentAt(DisplayGuiScreen.mouseX, DisplayGuiScreen.mouseY); if (componentAt.getHeight() != 11) return; // PREVENT DRAWING WHEN OUTSIDE THE CONTAINER // 11 is height of the regular module + if (componentAt.getWidth() != component.getWidth()) return; // prevent drawing 2 different categories when overlapped + glDisable(GL_SCISSOR_TEST); // let it draw outside of the container glDepthRange(0, 0.01); // set render priority to the top From 7381ce1b25e49283c630bd62d79de2db748a3e4e Mon Sep 17 00:00:00 2001 From: Bella Date: Fri, 17 Apr 2020 08:35:37 -0400 Subject: [PATCH 10/11] fix wither mode and close #715 --- .../kami/module/modules/misc/AutoNametag.java | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoNametag.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoNametag.java index 08152636d..22ce4d95d 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoNametag.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoNametag.java @@ -41,20 +41,15 @@ public class AutoNametag extends Module { for (Entity w : mc.world.getLoadedEntityList()) { switch (modeSetting.getValue()) { case WITHER: -// sendChatMessage("a"); - if (w instanceof EntityMob) { -// sendChatMessage("mob"); - final EntityWither wither = (EntityWither) w; -// sendChatMessage("wither"); - if (mc.player.getDistance(wither) <= range.getValue()) { -// sendChatMessage("a"); + if (w instanceof EntityWither && !w.getDisplayName().getUnformattedText().equals(currentName)) { + if (mc.player.getDistance(w) <= range.getValue()) { if (debug.getValue()) sendChatMessage("Found unnamed " + w.getDisplayName().getUnformattedText()); selectNameTags(); - mc.playerController.interactWithEntity(mc.player, wither, EnumHand.MAIN_HAND); + mc.playerController.interactWithEntity(mc.player, w, EnumHand.MAIN_HAND); } } - return; + break; case ANY: if ((w instanceof EntityMob || w instanceof EntityAnimal) && !w.getDisplayName().getUnformattedText().equals(currentName)) { if (mc.player.getDistance(w) <= range.getValue()) { @@ -64,6 +59,7 @@ public class AutoNametag extends Module { mc.playerController.interactWithEntity(mc.player, w, EnumHand.MAIN_HAND); } } + break; } } mc.player.inventory.currentItem = originalSlot; From c2c6aac8cdadefdf68f12ac4fbb7b0578179e272 Mon Sep 17 00:00:00 2001 From: Bella Date: Fri, 17 Apr 2020 08:52:36 -0400 Subject: [PATCH 11/11] autonametag code cleanup --- .../kami/module/modules/misc/AutoNametag.java | 28 ++++++++----------- .../kami/module/modules/misc/AutoSpawner.java | 2 +- 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoNametag.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoNametag.java index 22ce4d95d..2e4093949 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoNametag.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoNametag.java @@ -1,6 +1,5 @@ package me.zeroeightsix.kami.module.modules.misc; -import me.zeroeightsix.kami.command.Command; import me.zeroeightsix.kami.module.Module; import me.zeroeightsix.kami.setting.Setting; import me.zeroeightsix.kami.setting.Settings; @@ -66,37 +65,32 @@ public class AutoNametag extends Module { } private void selectNameTags() { - int tagSlot = -1; - for (int i = 0; i < 9; i++) { - ItemStack stack = mc.player.inventory.getStackInSlot(i); - if (stack == ItemStack.EMPTY || stack.getItem() instanceof ItemBlock) continue; - Item tag = stack.getItem(); - if (tag instanceof ItemNameTag && !stack.getDisplayName().equals("Name Tag")) { - tagSlot = i; - currentName = stack.getDisplayName(); - } - } - - if (tagSlot == -1) { - if (debug.getValue()) sendErrorMessage(getChatName() + "Error: No nametags in hotbar"); + if (currentSlot == -1 || !isNametag(currentSlot)) { + sendErrorMessage(getChatName() + "Error: No nametags in hotbar"); disable(); return; } - mc.player.inventory.currentItem = tagSlot; + mc.player.inventory.currentItem = currentSlot; } private void findNameTags() { for (int i = 0; i < 9; i++) { ItemStack stack = mc.player.inventory.getStackInSlot(i); if (stack == ItemStack.EMPTY || stack.getItem() instanceof ItemBlock) continue; - Item tag = stack.getItem(); - if (tag instanceof ItemNameTag && !stack.getDisplayName().equals("Name Tag")) { + if (isNametag(i)) { currentName = stack.getDisplayName(); currentSlot = i; } } } + /* In case they run out of nametags, check again */ + private boolean isNametag(int i) { + ItemStack stack = mc.player.inventory.getStackInSlot(i); + Item tag = stack.getItem(); + return tag instanceof ItemNameTag && !stack.getDisplayName().equals("Name Tag"); + } + private enum Mode { WITHER, ANY } } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoSpawner.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoSpawner.java index 8f10de95f..cbadaa992 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoSpawner.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/AutoSpawner.java @@ -42,7 +42,7 @@ public class AutoSpawner extends Module { private Setting partyWithers = register(Settings.booleanBuilder("Withers").withValue(false).withVisibility(v -> party.getValue()).build()); private Setting entityMode = register(Settings.enumBuilder(EntityMode.class).withName("Entity Mode").withValue(EntityMode.SNOW).withVisibility(v -> !party.getValue()).build()); private Setting placeRange = register(Settings.floatBuilder("Place Range").withMinimum(2.0f).withValue(3.5f).withMaximum(10.0f).build()); - private Setting delay = register(Settings.integerBuilder("Delay").withMinimum(12).withValue(20).withMaximum(100).build()); + private Setting delay = register(Settings.integerBuilder("Delay").withMinimum(12).withValue(20).withMaximum(100).withVisibility(v -> useMode.getValue().equals(UseMode.SPAM)).build()); private Setting rotate = register(Settings.b("Rotate", true)); private Setting debug = register(Settings.b("Debug", false));