diff --git a/readme-assets/title.png b/readme-assets/title.png index df7b760..80a29bc 100644 Binary files a/readme-assets/title.png and b/readme-assets/title.png differ diff --git a/src/main/java/me/kawaiizenbo/moonlight/mixin/MultiplayerScreenMixin.java b/src/main/java/me/kawaiizenbo/moonlight/mixin/MultiplayerScreenMixin.java deleted file mode 100644 index 668ebf0..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/mixin/MultiplayerScreenMixin.java +++ /dev/null @@ -1,36 +0,0 @@ -package me.kawaiizenbo.moonlight.mixin; - -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import me.kawaiizenbo.moonlight.ui.altmanager.AltManagerScreen; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen; -import net.minecraft.client.gui.widget.ButtonWidget; -import net.minecraft.text.Text; - -@Mixin(MultiplayerScreen.class) -public class MultiplayerScreenMixin extends Screen -{ - protected MultiplayerScreenMixin(Text title) - { - super(title); - } - - @Inject(at = @At("TAIL"), method = "init") - private void altManagerButton(CallbackInfo callbackInfo) - { - this.addDrawableChild(ButtonWidget.builder(Text.literal("Alt Manager"), this::gotoAltManagerScreen) - .position(this.width - 102, 2) - .size(100, 20) - .build()); - } - - private void gotoAltManagerScreen(ButtonWidget button) - { - MinecraftClient.getInstance().setScreen(AltManagerScreen.INSTANCE); - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/mixin/TitleScreenMixin.java b/src/main/java/me/kawaiizenbo/moonlight/mixin/TitleScreenMixin.java index 7741338..d1bb458 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/mixin/TitleScreenMixin.java +++ b/src/main/java/me/kawaiizenbo/moonlight/mixin/TitleScreenMixin.java @@ -1,7 +1,6 @@ package me.kawaiizenbo.moonlight.mixin; import me.kawaiizenbo.moonlight.Moonlight; -import me.kawaiizenbo.moonlight.ui.altmanager.AltManagerScreen; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; @@ -10,12 +9,9 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.TitleScreen; -import net.minecraft.client.gui.widget.ButtonWidget; -import net.minecraft.text.Text; import net.minecraft.util.Util; import net.minecraft.util.math.MathHelper; @@ -44,18 +40,4 @@ public abstract class TitleScreenMixin extends Screen drawContext.drawTextWithShadow(this.textRenderer, Moonlight.clientTag + " " + Moonlight.versionTag, 2, 2, 16777215 | l); } - - @Inject(at = @At("TAIL"), method = "init") - private void altManagerButton(CallbackInfo callbackInfo) - { - this.addDrawableChild(ButtonWidget.builder(Text.literal("Alt Manager"), this::gotoAltManagerScreen) - .position(this.width - 102, 2) - .size(100, 20) - .build()); - } - - private void gotoAltManagerScreen(ButtonWidget button) - { - MinecraftClient.getInstance().setScreen(AltManagerScreen.INSTANCE); - } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/ModuleManager.java b/src/main/java/me/kawaiizenbo/moonlight/module/ModuleManager.java index 3b92a92..2ee5bf9 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/ModuleManager.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/ModuleManager.java @@ -19,7 +19,9 @@ public class ModuleManager new Fullbright(), new Speed(), new ModulesList(), - new TestModule() + new ChatSpammer(), + new Rotation(), + new AutoJump() ); } diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/AutoJump.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/AutoJump.java new file mode 100644 index 0000000..e2b187d --- /dev/null +++ b/src/main/java/me/kawaiizenbo/moonlight/module/modules/AutoJump.java @@ -0,0 +1,27 @@ +package me.kawaiizenbo.moonlight.module.modules; + +import me.kawaiizenbo.moonlight.module.Category; +import me.kawaiizenbo.moonlight.module.Module; +import me.kawaiizenbo.moonlight.module.settings.DoubleSetting; +import me.kawaiizenbo.moonlight.util.Timer; + +public class AutoJump extends Module +{ + public DoubleSetting delay = new DoubleSetting("Delay (Seconds)", 1, 0.1, 10, 1); + private Timer timer = new Timer(); + + public AutoJump() + { + super("Auto Jump", "Automatically jumps on a timer.", Category.MOVEMENT); + settings.add(delay); + } + + @Override + public void tick() + { + if (timer.hasTimeElapsed((long)delay.value * 1000, true) && mc.player.isOnGround() && mc.player.hasVehicle() == false) + { + mc.player.jump(); + } + } +} diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/ChatSpammer.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/ChatSpammer.java new file mode 100644 index 0000000..5c21e27 --- /dev/null +++ b/src/main/java/me/kawaiizenbo/moonlight/module/modules/ChatSpammer.java @@ -0,0 +1,30 @@ +package me.kawaiizenbo.moonlight.module.modules; + +import me.kawaiizenbo.moonlight.module.Category; +import me.kawaiizenbo.moonlight.module.Module; +import me.kawaiizenbo.moonlight.module.settings.DoubleSetting; +import me.kawaiizenbo.moonlight.module.settings.StringSetting; +import me.kawaiizenbo.moonlight.util.Timer; + +public class ChatSpammer extends Module +{ + public StringSetting message = new StringSetting("Message", "E4PE4J"); + public DoubleSetting delay = new DoubleSetting("Delay (Seconds)", 1, 0.1, 10, 1); + private Timer timer = new Timer(); + + public ChatSpammer() + { + super("Chat Spammer", "Spams a selected message in chat.", Category.CHAT); + settings.add(message); + settings.add(delay); + } + + @Override + public void tick() + { + if (timer.hasTimeElapsed((long)delay.value * 1000, true)) + { + mc.player.networkHandler.sendChatMessage(message.value); + } + } +} diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/Rotation.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/Rotation.java new file mode 100644 index 0000000..b6e974d --- /dev/null +++ b/src/main/java/me/kawaiizenbo/moonlight/module/modules/Rotation.java @@ -0,0 +1,25 @@ +package me.kawaiizenbo.moonlight.module.modules; + +import me.kawaiizenbo.moonlight.module.Category; +import me.kawaiizenbo.moonlight.module.Module; +import me.kawaiizenbo.moonlight.module.settings.DoubleSetting; + +public class Rotation extends Module +{ + DoubleSetting pitch = new DoubleSetting("Pitch", 0, 0, 360, 0); + DoubleSetting yaw = new DoubleSetting("Yaw", 0, 0, 360, 0); + + public Rotation() + { + super("Rotation", "Locks camera to specified pitch and yaw.", Category.PLAYER); + settings.add(pitch); + settings.add(yaw); + } + + @Override + public void tick() + { + mc.player.setPitch((float)pitch.value); + mc.player.setYaw((float)yaw.value); + } +} diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/ModulesListOverlay.java b/src/main/java/me/kawaiizenbo/moonlight/ui/ModulesListOverlay.java index a23ba6b..a0716aa 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/ModulesListOverlay.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/ModulesListOverlay.java @@ -25,7 +25,7 @@ public class ModulesListOverlay { if (!m.showInModulesList.value) continue; int nameWidth = mc.textRenderer.getWidth(m.name); - drawContext.fill(scaledWidth - nameWidth - 8, yOffset, scaledWidth, yOffset+12, 0x55222222); + drawContext.fill(scaledWidth - nameWidth - 8, yOffset, scaledWidth, yOffset+12, 0x77222222); drawContext.fill(scaledWidth - 2, yOffset, scaledWidth, yOffset+12, Moonlight.uiColorA); drawContext.drawText(mc.textRenderer, m.name, scaledWidth - nameWidth - 4, yOffset + 2, 0xFFFFFFFF, false); yOffset += 12; diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/altmanager/AltManagerScreen.java b/src/main/java/me/kawaiizenbo/moonlight/ui/altmanager/AltManagerScreen.java deleted file mode 100644 index b089726..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/altmanager/AltManagerScreen.java +++ /dev/null @@ -1,22 +0,0 @@ -package me.kawaiizenbo.moonlight.ui.altmanager; - -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.text.Text; - -public class AltManagerScreen extends Screen -{ - public static AltManagerScreen INSTANCE = new AltManagerScreen(); - - protected AltManagerScreen() - { - super(Text.literal("Alt Manager")); - } - - @Override - public void render(DrawContext drawContext, int mouseX, int mouseY, float delta) - { - renderBackgroundTexture(drawContext); - } - -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/SettingsScreen.java b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/SettingsScreen.java index da72c44..b29bb1d 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/SettingsScreen.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/SettingsScreen.java @@ -36,7 +36,7 @@ public class SettingsScreen extends Screen drawContext.fill(x, y, x+windowWidth, y+windowHeight, 0xFF222222); drawContext.fill(x, y, x+windowWidth, y+16, module.category.color); drawContext.fill(x+2, y+2, x+(windowWidth-2), y+14, 0xFF222222); - drawContext.drawCenteredTextWithShadow(textRenderer, "Module Settings: "+module.name, x+(windowWidth/2), y+4, 0xFFFFFF); + drawContext.drawCenteredTextWithShadow(textRenderer, module.name, x+(windowWidth/2), y+4, 0xFFFFFF); drawContext.drawText(textRenderer, module.description, x+8, y+24, 0xFFFFFF, true); backButton = new TextButton(ColorUtils.underline + "< Back", x+4, y+4, 0xFFFFFF); backButton.render(drawContext, textRenderer, mouseX, mouseY); diff --git a/src/main/java/me/kawaiizenbo/moonlight/util/ChatUtils.java b/src/main/java/me/kawaiizenbo/moonlight/util/ChatUtils.java index 1893b5c..4262b8a 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/util/ChatUtils.java +++ b/src/main/java/me/kawaiizenbo/moonlight/util/ChatUtils.java @@ -1,29 +1,15 @@ package me.kawaiizenbo.moonlight.util; -import org.jetbrains.annotations.Nullable; - import net.minecraft.client.MinecraftClient; import net.minecraft.text.Text; -import net.minecraft.util.Formatting; public class ChatUtils { private static MinecraftClient mc = MinecraftClient.getInstance(); public static void sendMsg(String message) - { - sendMsg(null, null, Text.literal(message)); - } - - public static void sendMsg(@Nullable String prefixTitle, @Nullable Formatting prefixColor, Text msg) { if (mc.world == null) return; - - //Text message = Text.literal(""); - //message.append(CommandManager.get().getPrefix()); - //if (prefixTitle != null) message.append(CommandManager.get().getPrefix()); - //message.append(msg); - - mc.inGameHud.getChatHud().addMessage(msg); + mc.inGameHud.getChatHud().addMessage(Text.literal(message)); } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/util/Timer.java b/src/main/java/me/kawaiizenbo/moonlight/util/Timer.java new file mode 100644 index 0000000..3043761 --- /dev/null +++ b/src/main/java/me/kawaiizenbo/moonlight/util/Timer.java @@ -0,0 +1,32 @@ +package me.kawaiizenbo.moonlight.util; + +public class Timer +{ + public long lastMS = System.currentTimeMillis(); + + public void reset() + { + lastMS = System.currentTimeMillis(); + } + + public boolean hasTimeElapsed(long time, boolean reset) + { + if (lastMS > System.currentTimeMillis()) + { + lastMS = System.currentTimeMillis(); + } + + if (System.currentTimeMillis()-lastMS > time) + { + if (reset) reset(); + + return true; + } + + else + { + return false; + } + + } +} diff --git a/src/main/resources/moonlight.mixins.json b/src/main/resources/moonlight.mixins.json index 07d4dc9..4644a14 100644 --- a/src/main/resources/moonlight.mixins.json +++ b/src/main/resources/moonlight.mixins.json @@ -7,7 +7,6 @@ ], "client": [ "TitleScreenMixin", - "MultiplayerScreenMixin", "InGameHudMixin", "ChatInputSuggestorMixin", "ClientConnectionMixin",