Skip to content

Commit

Permalink
v1.1.3 Hole/TunnelFinder module added, other improvements
Browse files Browse the repository at this point in the history
- Added the **HoleAndTunnelFinder** module which can detect 1x1 holes going straight down, and horizontal tunnels of any height. It by default ignores passable blocks such as torches or water but there is an option to have it only detect Air for holes and tunnels.
- Added more blocks for the Nether and Overworld old generation detectors to consider in **NewerNewChunks**. This will improve detection and reduce false positives in relation to their detections.
- Reduced the amount of blocks the old generation detectors for Nether and Overworld are detecting just a little to improve performance slightly in **NewerNewChunks**.
- Added a detector for **BaseFinder** for detecting Nether roof builds. If there is anything other than a red or brown mushroom at or above Y 128 in the nether it will be flagged.
- Reverted the taskExecutor for loading chunkdata for **BaseFinder** and **NewerNewChunks** back to just being single threaded because multithreading it did not actually provide any benefit.
- Added falling_block entity support for **Boom+**, this allows you to throw any blocks when in Creative mode at things.
  • Loading branch information
etianl authored Jul 28, 2024
1 parent 687f529 commit 86d62a3
Show file tree
Hide file tree
Showing 8 changed files with 419 additions and 25 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ In no particular order
- **FlightAntikick:** Moves you down on a tick-based timer. Added in to substitute the lack of a "Normal" mode antikick for velocity flight in MeteorClient (not a great antikick it's just something). Bind it to the same key as Flight. (Credits to etianl :D)
- **GarbageCleanerCommand:** Accessable by typing ".cleanram". It cleans the RAM of useless junk and may be very handy for improving performance after chunk tracing for a while and can be used to clear other lag. (credits to [ogmur](https://www.youtube.com/@Ogmur) for writing this)
- **HandOfGod:** Runs the "/fill" command on the world around you or around everyone else in different ways as you move around, and as you click. Destroy and modify the world with ease! Operator status required. (Credits to etianl :D)
- **HoleAndTunnelFinder:** Detects 1x1 holes going straight down, and horizontal tunnels of any height. It by default ignores passable blocks such as torches or water but there is an option to have it only detect Air for holes and tunnels. (Thank you to Meteor Client for some code from TunnelESP, and credits to etianl for this version of it)
- **Inventory Dupe (1.17):** Duplicates things in your crafting slots when the module is enabled and the Dupe button is pressed in your inventory. Only works on Minecraft servers on the version 1.17, not any version before or after.(Credit to ItsVen and Da0neDatGotAway for original creation of the dupe, and to B2H990 for making the fabric mod. Credits to etianl for porting to Meteor.)
- **InstaKill:** Shoots arrows and tridents with incredible power and velocity. Enabling multiple buttons causes the amount of packets to add up. (Credits to Saturn5Vfive)
- **InstaMineNuker:** Sends packets to instantly mine the blocks around you until they are gone. There is an option in it to make it only target instamineable blocks such as crops, grass, slimeblocks, and more.. (Credits to etianl and to Meteor Client, as well as Meteor Rejects for some borrowed code)
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ yarn_mappings=1.21+build.2
loader_version=0.15.11

# Mod Properties
mod_version=1.1.2-1.21
mod_version=1.1.3-1.21
maven_group=pwn.noobs
archives_base_name=1trouser-streak

Expand Down
1 change: 1 addition & 0 deletions src/main/java/pwn/noobs/trouserstreak/Trouser.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ public void onInitialize() {
//Modules.get().add(new -----> Find and Grief noobs! <-----());
Modules.get().add(new NewerNewChunks());
Modules.get().add(new BaseFinder());
Modules.get().add(new HoleAndTunnelFinder());
Modules.get().add(new StorageLooter());
Modules.get().add(new LavaAura());
Modules.get().add(new MaceKill());
Expand Down
30 changes: 24 additions & 6 deletions src/main/java/pwn/noobs/trouserstreak/modules/BaseFinder.java
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;

/*
Expand Down Expand Up @@ -108,6 +108,11 @@ public class BaseFinder extends Module {
.description("If a spawner doesn't have the proper natural companion blocks with it in the chunk, flag as possible build.")
.defaultValue(true)
.build());
private final Setting<Boolean> roofDetector = sgDetectors.add(new BoolSetting.Builder()
.name("Nether Roof Build Finder")
.description("If anything but mushrooms on the nether roof, flag as possible build.")
.defaultValue(true)
.build());
private final Setting<Integer> bsefndtickdelay = sgGeneral.add(new IntSetting.Builder()
.name("Base Found Message Tick Delay")
.description("Delays the allowance of Base Found messages to reduce spam.")
Expand Down Expand Up @@ -432,7 +437,7 @@ public WWidget getWidget(GuiTheme theme) {
.visible(() -> trcr.get())
.build()
);
private final ExecutorService taskExecutor = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
private final Executor taskExecutor = Executors.newSingleThreadExecutor();
private int basefoundspamTicks=0;
private boolean basefound=false;
private int deletewarningTicks=666;
Expand Down Expand Up @@ -677,8 +682,8 @@ private void onReadPacket(PacketEvent.Receive event) {
if (mc.world.getChunkManager().getChunk(packet.getChunkX(), packet.getChunkZ()) == null) {
WorldChunk chunk = new WorldChunk(mc.world, basepos);
try {
taskExecutor.execute(() -> chunk.loadFromPacket(packet.getChunkData().getSectionsDataBuf(), new NbtCompound(), packet.getChunkData().getBlockEntities(packet.getChunkX(), packet.getChunkZ())));
} catch (ArrayIndexOutOfBoundsException e) {
taskExecutor.execute(() -> chunk.loadFromPacket(packet.getChunkData().getSectionsDataBuf(), new NbtCompound(), packet.getChunkData().getBlockEntities(packet.getChunkX(), packet.getChunkZ())));
} catch (ArrayIndexOutOfBoundsException e) {
return;
}

Expand All @@ -689,7 +694,7 @@ private void onReadPacket(PacketEvent.Receive event) {
for (int z = 0; z < 16; z++) {
BlockState blerks = chunk.getBlockState(new BlockPos(x, y, z));
blockposi=new BlockPos(x, y, z);
if (!(blerks.getBlock()==Blocks.AIR)){
if (blerks.getBlock()!=Blocks.AIR){
if (skybuildfind.get() && y>skybuildint.get()) {
if (!baseChunks.contains(basepos)){
baseChunks.add(basepos);
Expand All @@ -716,6 +721,19 @@ private void onReadPacket(PacketEvent.Receive event) {
}
}
}
if (roofDetector.get() && blerks.getBlock()!=Blocks.AIR && blerks.getBlock()!=Blocks.RED_MUSHROOM && blerks.getBlock()!=Blocks.BROWN_MUSHROOM && y>=128 && mc.world.getRegistryKey() == World.NETHER){
if (!baseChunks.contains(basepos)){
baseChunks.add(basepos);
if (save.get()) {
saveBaseChunkData();
}
if (basefoundspamTicks==0){
ChatUtils.sendMsg(Text.of("(Nether Roof)Possible build located near X"+basepos.getCenterX()+", Y"+y+", Z"+basepos.getCenterZ()));
LastBaseFound= new ChunkPos(basepos.x, basepos.z);
basefound=true;
}
}
}
if (!(blerks.getBlock()==Blocks.STONE)){
if (!(blerks.getBlock()==Blocks.DEEPSLATE) && !(blerks.getBlock()==Blocks.DIRT) && !(blerks.getBlock()==Blocks.GRASS_BLOCK) && !(blerks.getBlock()==Blocks.WATER) && !(blerks.getBlock()==Blocks.SAND) && !(blerks.getBlock()==Blocks.GRAVEL) && !(blerks.getBlock()==Blocks.BEDROCK)&& !(blerks.getBlock()==Blocks.NETHERRACK) && !(blerks.getBlock()==Blocks.LAVA)){
if (spawner.get()){
Expand Down Expand Up @@ -1025,4 +1043,4 @@ private boolean isNaturalLagCausingBlock(Block block) {
!(block ==Blocks.NETHERRACK) &&
!(block ==Blocks.LAVA);
}
}
}
14 changes: 14 additions & 0 deletions src/main/java/pwn/noobs/trouserstreak/modules/BoomPlus.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import meteordevelopment.meteorclient.settings.*;
import meteordevelopment.meteorclient.systems.modules.Module;
import meteordevelopment.orbit.EventHandler;
import net.minecraft.block.Block;
import net.minecraft.block.Blocks;
import net.minecraft.component.ComponentChanges;
import net.minecraft.component.DataComponentTypes;
import net.minecraft.component.type.NbtComponent;
Expand Down Expand Up @@ -141,6 +143,11 @@ public class BoomPlus extends Module {
.min(0)
.sliderRange(0, 100)
.build());
private final Setting<Block> blockstate = sgOptions.add(new BlockSetting.Builder()
.name("falling_block entity block")
.description("What is created when specifying falling_block as the entity.")
.defaultValue(Blocks.BEDROCK)
.build());
public final Setting<Boolean> target = sgGeneral.add(new BoolSetting.Builder()
.name("OnTarget")
.description("spawns on target")
Expand Down Expand Up @@ -228,6 +235,10 @@ private void onMouseButton(MouseButtonEvent event) {
}
}
private NbtComponent createEntityData() {
String fullString = blockstate.get().toString();
String[] parts = fullString.split(":");
String block = parts[1];
String blockName = block.replace("}", "");
NbtList motion = new NbtList();
NbtList Pos = new NbtList();
HitResult hr = mc.cameraEntity.raycast(900, 0, true);
Expand All @@ -254,6 +265,9 @@ private NbtComponent createEntityData() {
entityTag.putInt("Age", age.get());
entityTag.putInt("ExplosionPower", exppower.get());
entityTag.putInt("ExplosionRadius", exppower.get());
NbtCompound blockState = new NbtCompound();
blockState.putString("Name", "minecraft:" + blockName);
entityTag.put("BlockState", blockState);
if (invincible.get())entityTag.putBoolean("Invulnerable", invincible.get());
if (silence.get())entityTag.putBoolean("Silent", silence.get());
if (glow.get())entityTag.putBoolean("Glowing", glow.get());
Expand Down
Loading

0 comments on commit 86d62a3

Please sign in to comment.