diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoSign.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoSign.java index 169c168d58..a3d0713995 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoSign.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoSign.java @@ -6,8 +6,8 @@ package meteordevelopment.meteorclient.systems.modules.world; import meteordevelopment.meteorclient.events.game.OpenScreenEvent; -import meteordevelopment.meteorclient.events.packets.PacketEvent; import meteordevelopment.meteorclient.mixin.AbstractSignEditScreenAccessor; +import meteordevelopment.meteorclient.settings.*; import meteordevelopment.meteorclient.systems.modules.Categories; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.orbit.EventHandler; @@ -16,31 +16,54 @@ import net.minecraft.network.packet.c2s.play.UpdateSignC2SPacket; public class AutoSign extends Module { - private String[] text; + private final SettingGroup sgGeneral = settings.getDefaultGroup(); - public AutoSign() { - super(Categories.World, "auto-sign", "Automatically writes signs. The first sign's text will be used."); - } + private final Setting line1 = sgGeneral.add(new StringSetting.Builder() + .name("Line 1") + .description("Line 1") + .defaultValue("Meteor") + .build() + ); - @Override - public void onDeactivate() { - text = null; - } + private final Setting line2 = sgGeneral.add(new StringSetting.Builder() + .name("Line 2") + .description("Line 2") + .defaultValue("Client") + .build() + ); - @EventHandler - private void onSendPacket(PacketEvent.Send event) { - if (!(event.packet instanceof UpdateSignC2SPacket)) return; + private final Setting line3 = sgGeneral.add(new StringSetting.Builder() + .name("Line 3") + .description("Line 3") + .defaultValue("on") + .build() + ); - text = ((UpdateSignC2SPacket) event.packet).getText(); + private final Setting line4 = sgGeneral.add(new StringSetting.Builder() + .name("Line 4") + .description("Line 4") + .defaultValue("Crack!") + .build() + ); + + private final Setting front = sgGeneral.add(new BoolSetting.Builder() + .name("Front") + .description("Place text on front or back of sign") + .defaultValue(true) + .build() + ); + + public AutoSign() { + super(Categories.World, "auto-sign", "Automatically writes signs."); } @EventHandler private void onOpenScreen(OpenScreenEvent event) { - if (!(event.screen instanceof AbstractSignEditScreen) || text == null) return; + if (!(event.screen instanceof AbstractSignEditScreen)) return; SignBlockEntity sign = ((AbstractSignEditScreenAccessor) event.screen).getSign(); - mc.player.networkHandler.sendPacket(new UpdateSignC2SPacket(sign.getPos(), true, text[0], text[1], text[2], text[3])); + mc.player.networkHandler.sendPacket(new UpdateSignC2SPacket(sign.getPos(), front.get(), line1.get(), line2.get(), line3.get(), line4.get())); event.cancel(); }