diff options
5 files changed, 55 insertions, 8 deletions
diff --git a/src/main/java/ftbsc/bscv/commands/BlockSearch.java b/src/main/java/ftbsc/bscv/commands/BlockSearch.java index dd5f663..17d1fb0 100644 --- a/src/main/java/ftbsc/bscv/commands/BlockSearch.java +++ b/src/main/java/ftbsc/bscv/commands/BlockSearch.java @@ -9,6 +9,8 @@ import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.command.CommandSource; import net.minecraft.command.Commands; +import net.minecraft.command.arguments.BlockStateArgument; +import net.minecraft.command.arguments.BlockStateInput; import static ftbsc.bscv.Boscovicino.log; @@ -48,6 +50,19 @@ public class BlockSearch extends AbstractCommand { ) ) ) + .then( + Commands.literal("id") + .then( + Commands.argument("name", BlockStateArgument.block()) + .executes( ctx -> { + BlockStateInput arg = ctx.getArgument("name", BlockStateInput.class); + BlockState state = arg.getState(); + int block_id = Block.getId(state); + log("block #[%d:%d] >> %s", block_id >> 4, block_id & 0xF, state.toString()); + return 1; + }) + ) + ) .executes(ctx -> { log("no block specified"); return 0; diff --git a/src/main/java/ftbsc/bscv/commands/ItemCommand.java b/src/main/java/ftbsc/bscv/commands/ItemCommand.java index e1e1b80..c380609 100644 --- a/src/main/java/ftbsc/bscv/commands/ItemCommand.java +++ b/src/main/java/ftbsc/bscv/commands/ItemCommand.java @@ -8,6 +8,8 @@ import ftbsc.bscv.api.ILoadable; import ftbsc.bscv.tools.Inventory; import net.minecraft.command.CommandSource; import net.minecraft.command.Commands; +import net.minecraft.command.arguments.ItemArgument; +import net.minecraft.command.arguments.ItemInput; import net.minecraft.inventory.container.Slot; import net.minecraft.item.Item; @@ -48,6 +50,18 @@ public class ItemCommand extends AbstractCommand { }) ) ) + .then( + Commands.literal("id") + .then( + Commands.argument("name", ItemArgument.item()) + .executes( ctx -> { + ItemInput arg = ctx.getArgument("name", ItemInput.class); + Item item = arg.getItem(); + log("item #[%d] >> %s", Item.getId(item), item.toString()); + return 1; + }) + ) + ) .executes(ctx -> { Slot slot = Inventory.hotbar(MC.player).get(MC.player.inventory.selected); if (!slot.hasItem()) return 0; diff --git a/src/main/java/ftbsc/bscv/modules/hud/InfoDisplay.java b/src/main/java/ftbsc/bscv/modules/hud/InfoDisplay.java index 2df6b10..6553e94 100644 --- a/src/main/java/ftbsc/bscv/modules/hud/InfoDisplay.java +++ b/src/main/java/ftbsc/bscv/modules/hud/InfoDisplay.java @@ -175,10 +175,13 @@ public class InfoDisplay extends HudModule { @SubscribeEvent public void onRenderOverlay(RenderGameOverlayEvent event) { - if (event.getType() == ElementType.POTION_ICONS) { - if (this.hide_effects.get() && event.isCancelable()) { - event.setCanceled(true); - } + if ( + event.getType() == ElementType.POTION_ICONS + && MC.screen == null + && this.hide_effects.get() + && event.isCancelable() + ) { + event.setCanceled(true); } if (event.getType() != ElementType.TEXT) return; diff --git a/src/main/java/ftbsc/bscv/modules/self/AutoFish.java b/src/main/java/ftbsc/bscv/modules/self/AutoFish.java index 9394233..bed4e9e 100644 --- a/src/main/java/ftbsc/bscv/modules/self/AutoFish.java +++ b/src/main/java/ftbsc/bscv/modules/self/AutoFish.java @@ -9,6 +9,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.network.play.server.SPlaySoundEffectPacket; import net.minecraft.util.Hand; import net.minecraft.util.SoundEvents; +import net.minecraft.util.math.vector.Vector3d; import net.minecraftforge.common.ForgeConfigSpec; import net.minecraftforge.eventbus.api.SubscribeEvent; @@ -17,6 +18,7 @@ public class AutoFish extends AbstractModule { public final ForgeConfigSpec.ConfigValue<Boolean> recast; public final ForgeConfigSpec.ConfigValue<Integer> delay; + public final ForgeConfigSpec.ConfigValue<Double> distance; // public final ForgeConfigSpec.ConfigValue<Long> reaction; public AutoFish() { @@ -33,13 +35,23 @@ public class AutoFish extends AbstractModule { .name("delay") .comment("how long in ms to wait before recasting hook") .build(this); + + this.distance = Setting.Decimal.builder() + .fallback(0.) + .name("distance") + .comment("ignore splashes further than X blocks, set to 0 to disable") + .build(this); } @SubscribeEvent public void onPacket(PacketEvent.Incoming event) { if (event.packet instanceof SPlaySoundEffectPacket) { SPlaySoundEffectPacket packet = (SPlaySoundEffectPacket) event.packet; - if (packet.getSound().equals(SoundEvents.FISHING_BOBBER_SPLASH)) { + Vector3d location = new Vector3d(packet.getX(), packet.getY(), packet.getZ()); + if ( + packet.getSound().equals(SoundEvents.FISHING_BOBBER_SPLASH) + && (this.distance.get() == 0 || MC.player.position().distanceTo(location) < this.distance.get()) + ) { MC.gameMode.useItem(MC.player, MC.level, Hand.MAIN_HAND); if (this.recast.get()) { new RecastThread(MC, this.delay.get()).start(); @@ -48,6 +60,7 @@ public class AutoFish extends AbstractModule { } } + // TODO don't spawn a thread, minecraft has a way to schedule actions for later private class RecastThread extends Thread { private long delay; private Minecraft mc; diff --git a/src/main/java/ftbsc/bscv/modules/vision/UpdateESP.java b/src/main/java/ftbsc/bscv/modules/vision/UpdateESP.java index d541183..7abf4ff 100644 --- a/src/main/java/ftbsc/bscv/modules/vision/UpdateESP.java +++ b/src/main/java/ftbsc/bscv/modules/vision/UpdateESP.java @@ -9,7 +9,7 @@ import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; import ftbsc.bscv.api.ILoadable; -import ftbsc.bscv.modules.QuickModule; +import ftbsc.bscv.modules.AbstractModule; import ftbsc.bscv.patches.PacketPatch.PacketEvent; import ftbsc.bscv.tools.Setting; import net.minecraft.client.renderer.BufferBuilder; @@ -18,8 +18,10 @@ import net.minecraft.client.renderer.WorldRenderer; import net.minecraft.client.renderer.WorldVertexBufferUploader; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.network.play.server.SChangeBlockPacket; +import net.minecraft.network.play.server.SChunkDataPacket; import net.minecraft.network.play.server.SMultiBlockChangePacket; import net.minecraft.util.Tuple; +import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.vector.Vector3d; import net.minecraft.util.math.vector.Vector3i; import net.minecraftforge.client.event.RenderWorldLastEvent; @@ -29,7 +31,7 @@ import net.minecraftforge.event.TickEvent.Phase; import net.minecraftforge.eventbus.api.SubscribeEvent; @AutoService(ILoadable.class) -public class UpdateESP extends QuickModule { +public class UpdateESP extends AbstractModule { public final ForgeConfigSpec.ConfigValue<Integer> duration; public final ForgeConfigSpec.ConfigValue<Double> alpha; @@ -142,7 +144,7 @@ public class UpdateESP extends QuickModule { if (event.packet instanceof SMultiBlockChangePacket) { SMultiBlockChangePacket packet = (SMultiBlockChangePacket) event.packet; - packet.runUpdates( (pos, state) -> this.updates.add(new Tuple<>(pos, System.currentTimeMillis())) ); + packet.runUpdates( (pos, state) -> this.updates.add(new Tuple<>(new BlockPos(pos), System.currentTimeMillis())) ); } } } |