From 01efe24e23f6c15f54aab391f7cd5607c1361364 Mon Sep 17 00:00:00 2001 From: Alex Date: Thu, 23 Apr 2020 15:59:35 +0200 Subject: [PATCH] Better logic for elytrafly and change chestnotifier to storagenotifier --- build.gradle | 10 +-- .../impl/management/ModuleManager.java | 2 +- .../impl/module/misc/ChestAlertModule.java | 61 --------------- .../impl/module/misc/StorageAlertModule.java | 76 +++++++++++++++++++ .../impl/module/movement/ElytraFlyModule.java | 9 +-- 5 files changed, 80 insertions(+), 78 deletions(-) delete mode 100644 src/main/java/me/rigamortis/seppuku/impl/module/misc/ChestAlertModule.java create mode 100644 src/main/java/me/rigamortis/seppuku/impl/module/misc/StorageAlertModule.java diff --git a/build.gradle b/build.gradle index 916176c..42ede03 100644 --- a/build.gradle +++ b/build.gradle @@ -21,7 +21,7 @@ apply plugin: "com.github.johnrengelman.shadow" version = "3.0" group = "me.rigamortis" archivesBaseName = "seppuku" -def buildmode = "IDE" +def buildmode = "release" sourceCompatibility = targetCompatibility = '1.8' // Need this here so eclipse task generates correctly. compileJava { @@ -121,11 +121,3 @@ processResources { exclude 'mcmod.info' } } - -if (buildmode.equals("IDE")) { - sourceSets { - main { - output.resourcesDir = output.classesDir - } - } -} diff --git a/src/main/java/me/rigamortis/seppuku/impl/management/ModuleManager.java b/src/main/java/me/rigamortis/seppuku/impl/management/ModuleManager.java index e503a6a..ce36f08 100644 --- a/src/main/java/me/rigamortis/seppuku/impl/management/ModuleManager.java +++ b/src/main/java/me/rigamortis/seppuku/impl/management/ModuleManager.java @@ -134,7 +134,7 @@ public final class ModuleManager { add(new ObsidianReplaceModule()); add(new ChatTimeStampsModule()); add(new HudEditorModule()); - add(new ChestAlertModule()); + add(new StorageAlertModule()); add(new StrafeModule()); add(new MapBypassModule()); add(new NoBossHealthModule()); diff --git a/src/main/java/me/rigamortis/seppuku/impl/module/misc/ChestAlertModule.java b/src/main/java/me/rigamortis/seppuku/impl/module/misc/ChestAlertModule.java deleted file mode 100644 index 6a653ca..0000000 --- a/src/main/java/me/rigamortis/seppuku/impl/module/misc/ChestAlertModule.java +++ /dev/null @@ -1,61 +0,0 @@ -package me.rigamortis.seppuku.impl.module.misc; - -import me.rigamortis.seppuku.Seppuku; -import me.rigamortis.seppuku.api.event.EventStageable; -import me.rigamortis.seppuku.api.event.network.EventReceivePacket; -import me.rigamortis.seppuku.api.module.Module; -import me.rigamortis.seppuku.api.value.Value; -import net.minecraft.client.Minecraft; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.play.server.SPacketChunkData; -import team.stiff.pomelo.impl.annotated.handler.annotation.Listener; - -/** - * Author Seth - * 8/25/2019 @ 10:27 PM. - */ -public final class ChestAlertModule extends Module { - - public final Value mode = new Value("Mode", new String[]{"Mode", "M"}, "Change between alert modes.", Mode.CHAT); - - private enum Mode { - CHAT, NOTIFICATION, BOTH - } - - public ChestAlertModule() { - super("ChestAlert", new String[]{"ChestAlerts"}, "Alerts you how many chests are in a chunk when it's loaded", "NONE", -1, ModuleType.MISC); - } - - @Listener - public void recievePacket(EventReceivePacket event) { - if (event.getStage() == EventStageable.EventStage.POST) { - if (event.getPacket() instanceof SPacketChunkData) { - final SPacketChunkData packet = (SPacketChunkData) event.getPacket(); - - final Minecraft mc = Minecraft.getMinecraft(); - - int count = 0; - - for(NBTTagCompound tag : packet.getTileEntityTags()) { - final String id = tag.getString("id"); - - if(id.equals("minecraft:chest")) { - count++; - } - } - - if(count > 0) { - final String message = count + " Chests located at X: " + packet.getChunkX() * 16 + " Z: " + packet.getChunkZ() * 16; - if (this.mode.getValue() == Mode.CHAT || this.mode.getValue() == Mode.BOTH) { - Seppuku.INSTANCE.logChat(message); - } - if (this.mode.getValue() == Mode.NOTIFICATION || this.mode.getValue() == Mode.BOTH) { - Seppuku.INSTANCE.getNotificationManager().addNotification("", message); - } - } - - } - } - } - -} diff --git a/src/main/java/me/rigamortis/seppuku/impl/module/misc/StorageAlertModule.java b/src/main/java/me/rigamortis/seppuku/impl/module/misc/StorageAlertModule.java new file mode 100644 index 0000000..ec1d201 --- /dev/null +++ b/src/main/java/me/rigamortis/seppuku/impl/module/misc/StorageAlertModule.java @@ -0,0 +1,76 @@ +package me.rigamortis.seppuku.impl.module.misc; + +import me.rigamortis.seppuku.Seppuku; +import me.rigamortis.seppuku.api.event.EventStageable; +import me.rigamortis.seppuku.api.event.network.EventReceivePacket; +import me.rigamortis.seppuku.api.module.Module; +import me.rigamortis.seppuku.api.value.Value; +import net.minecraft.client.Minecraft; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.play.server.SPacketChunkData; +import team.stiff.pomelo.impl.annotated.handler.annotation.Listener; + +/** + * Author Seth + * 8/25/2019 @ 10:27 PM. + */ +public final class StorageAlertModule extends Module { + + public final Value mode = new Value("Mode", new String[]{"Mode", "M"}, "Change between alert modes.", Mode.CHAT); + public final Value chests = new Value("Chests", new String[]{"Chests", "chest"}, "Count chests.", true); + public final Value echests = new Value("EnderChests", new String[]{"EnderChests", "echest"}, "Count ender chests.", false); + public final Value shulkers = new Value("ShulkerBoxes", new String[]{"ShulkerBoxes", "shul"}, "Count shulkers.", false); + public final Value hoppers = new Value("Hoppers", new String[]{"Hoppers", "hopp"}, "Count hoppers.", false); + public final Value droppers = new Value("Droppers", new String[]{"Droppers", "drop"}, "Count droppers.", false); + public final Value dispensers = new Value("Dispensers", new String[]{"Dispensers", "disp"}, "Count dispensers.", false); + public final Value stands = new Value("BrewingStands", new String[]{"BrewingStands", "brew"}, "Count brewing stands.", false); + + private enum Mode { + CHAT, NOTIFICATION, BOTH + } + + public StorageAlertModule() { + super("StorageAlert", new String[]{"StorageAlerts"}, "Alerts you how many storage blocks are in a chunk when it's loaded", "NONE", -1, ModuleType.MISC); + } + + @Listener + public void recievePacket(EventReceivePacket event) { + if (event.getStage() == EventStageable.EventStage.POST) { + if (event.getPacket() instanceof SPacketChunkData) { + final SPacketChunkData packet = (SPacketChunkData) event.getPacket(); + + final Minecraft mc = Minecraft.getMinecraft(); + + int count = 0; + + for(NBTTagCompound tag : packet.getTileEntityTags()) { + final String id = tag.getString("id"); + + if( + (this.chests.getValue() && (id.equals("minecraft:chest") || id.equals("minecraft:trapped_chest"))) || + (this.echests.getValue() && id.equals("minecraft:ender_chest")) || + (this.shulkers.getValue() && id.endsWith("_shulker_box")) || + (this.hoppers.getValue() && id.equals("minecraft:hopper")) || + (this.droppers.getValue() && id.equals("minecraft:dropper")) || + (this.dispensers.getValue() && id.equals("minecraft:dispenser")) || + (this.stands.getValue() && id.equals("minecraft:brewing_stand")) + ) { + count++; + } + } + + if(count > 0) { + final String message = count + " storage blocks located at X: " + packet.getChunkX() * 16 + " Z: " + packet.getChunkZ() * 16; + if (this.mode.getValue() == Mode.CHAT || this.mode.getValue() == Mode.BOTH) { + Seppuku.INSTANCE.logChat(message); + } + if (this.mode.getValue() == Mode.NOTIFICATION || this.mode.getValue() == Mode.BOTH) { + Seppuku.INSTANCE.getNotificationManager().addNotification("", message); + } + } + + } + } + } + +} diff --git a/src/main/java/me/rigamortis/seppuku/impl/module/movement/ElytraFlyModule.java b/src/main/java/me/rigamortis/seppuku/impl/module/movement/ElytraFlyModule.java index 7e425be..481ef08 100644 --- a/src/main/java/me/rigamortis/seppuku/impl/module/movement/ElytraFlyModule.java +++ b/src/main/java/me/rigamortis/seppuku/impl/module/movement/ElytraFlyModule.java @@ -36,7 +36,7 @@ public final class ElytraFlyModule extends Module { public final Value infiniteDurability = new Value("InfiniteDurability", new String[]{"InfiniteDura", "dura", "inf", "infdura"}, "Enables an old exploit that sends the start elytra-flying packet each tick.", false); public final Value noKick = new Value("NoKick", new String[]{"AntiKick", "Kick"}, "Bypass the server kicking you for flying while in elytra flight (Only works for Packet mode!).", true); - public final Value fallStart = new Value("FallAuto", new String[]{"FallToStart","fallstart"}, "Only autostart if falling.", true); + public final Value fallStart = new Value("FallStart", new String[]{"FallToStart","fallstart"}, "Only autostart if falling.", true); private final Timer timer = new Timer(); @@ -78,12 +78,7 @@ public final class ElytraFlyModule extends Module { // automatic jump start if (this.autoStart.getValue()) { if (mc.gameSettings.keyBindJump.isKeyDown() && !mc.player.isElytraFlying()) { // jump is held, player is not elytra flying - if (this.fallStart.getValue() && mc.player.motionY < 0) { // player motion is falling - if (this.timer.passed(this.delay.getValue())) { - mc.getConnection().sendPacket(new CPacketEntityAction(mc.player, CPacketEntityAction.Action.START_FALL_FLYING)); - this.timer.reset(); - } - } else { + if ((this.fallStart.getValue() && mc.player.motionY < 0) || true) { // player motion is falling if (this.timer.passed(this.delay.getValue())) { mc.getConnection().sendPacket(new CPacketEntityAction(mc.player, CPacketEntityAction.Action.START_FALL_FLYING)); this.timer.reset();