Skip to content

Commit

Permalink
1.3.5 Activated Trial Spawner Detection and much more!
Browse files Browse the repository at this point in the history
**Fixed my silly maths**
- Fixed a bug with ActivatedSpawnerDetector, BaseFinder, HoleAndTunnelAndStairsESP, NewerNewChunks, OnlinePlayerActivityDetector, and PotESP where the rendered things would disappear if you were flying really high up.

**Merged Pull Requests to Fix things!**
- Accepted a Pull Request from [nokernelspace](https://github.com/nokernelspace) that fixes the Book And Quill Dupe module for Minecraft 1.21.3
- Accepted a PR from [DedicateDev](https://github.com/DedicateDev) that implements a tick delay between commands for AutoDisplays, AutoScoreBoard, and AutoTitles. This solve this issue #51
- Accepted a PR from [DedicateDev](https://github.com/DedicateDev) that implements StarScript for commands for the AutoCommand module. This solve this issue #61

**New AutoNames Module Added!**
- Automatically change player name colors, prefix, suffix in tab and chat. Credits to [DedicateDev](https://github.com/DedicateDev) for this module!
- This module requires OP status!

**NewerNewChunks Upgrades!**
- Cleaned up code just a little again in NewerNewChunks.
- Removed the NewChunkCounter command because it's not that useful for anything other than some debugging. This is also to clean up code in NewerNewChunks
- The above changes appear to have increased performance when using NewerNewChunks maybe (I could be mistaken) 

**New ActivatedSpawnerDetector Features!**
- TrialSpawnerDetector added, which tells you about the Trial Spawner blocks people have walked within 14 blocks of if they have not completed the trial.
- Made the ActivatedSpawnerDetector tell you what structure the spawner is in, based on the natural places different mob spawners spawn (ex: zombie spawner is a dungeon).
- Added an option **enabled by default** which makes no rendering happen if there are no chests within a 16 block radius of the spawner.

**Other Changes**
- Deleted TrouserBlockESP module because Meteor Client's default one is a little more performant, does the same thing, and I do not feel like maintaining the one in Trouser-Streak.
  • Loading branch information
etianl authored Dec 25, 2024
1 parent 969da9e commit 1bc9228
Show file tree
Hide file tree
Showing 17 changed files with 734 additions and 664 deletions.
7 changes: 3 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,13 @@ In no particular order
</p>

## Features:
- **ActivatedSpawnerDetector** Detects if a player was ever near a spawner block. The intended use for this module would be on anarchy servers where people try to hide their items within chests in dungeons and mineshafts. (Credits to etianl :D)
- **ActivatedSpawnerDetector** Detects if a player was ever near a spawner or trial spawner block. The intended use for this module would be on anarchy servers where people try to hide their items within chests in dungeons, mineshafts, and trial chambers. (Credits to etianl :D)
- **Airstrike+:** Rains down whatever entities you desire. It used to only rain fireballs, and I also changed the positioning of the spawning. (Credits to Allah-Hack for the original)
- **AnHero:** Become An Hero! (A quick way back to spawn.) (Credits to etianl :D)
- **AutoCommand:** Automates a list of commands you set in it's options at the push of a button! Credits to [aaaasdfghjkllll](https://github.com/aaaasdfghjkllll). I only added a full auto option because who doesn't love full auto?
- **AutoDisplays:** Automatically spams block displays around all player's heads to blind them or text displays around them for trolling and advertising. Requires operator access. (Credits to etianl :D)
- **AutoDrop:** Drops the stack in your selected slot automatically, or you can choose a slot to dump. You can shift click your inventory items to dump your trash easily. (Credits to etianl :D)
- **AutoLavaCaster** Simple timer based bot for lavacasting. Aim at the top of the block you want to cast on and activate the module. It places lava, then after an amount of time removes the lava, places the water after a specified delay, removes it after a specified delay, it will build the mountain upward, tower you up and repeat. Position yourself on a block above and diagonally, mostly perpendicular from the targeted block for best results. (Credits to etianl :D)
- **AutoLavaCaster:** Simple timer based bot for lavacasting. Aim at the top of the block you want to cast on and activate the module. It places lava, then after an amount of time removes the lava, places the water after a specified delay, removes it after a specified delay, it will build the mountain upward, tower you up and repeat. Position yourself on a block above and diagonally, mostly perpendicular from the targeted block for best results. (Credits to etianl :D)
- *AutoLavaCaster Notes:*
- If not choosing the amount of time lava flows for, there are lava timing estimation modes.
- The UseLastMountain timing mode uses your last Mountain to predict the LavaTimer and calculates the flow rate if the top of the mountain is a 45 degree angle and the rest is going straight down to the ground.
Expand Down Expand Up @@ -65,6 +65,7 @@ In no particular order
- ForwardKey Turns mountain up, Back Key turns mountain down.
- JumpKey adjusts spacing of stairs according to the OnDemandSpacing value.
- Start building, then hold SneakKey and also hold Left or RightKey as well to build stairs diagonally. Release left or right key first to continue building in the direction you were prior.
- **AutoNames** Automatically change player name colors, prefix, suffix in tab and chat. Requires OP status. Credits to [DedicateDev](https://github.com/DedicateDev)
- **AutoScoreboard:** Automates the creation of a custom scoreboard. Useful for advertising on griefed servers. Requires OP status. Credits to [aaaasdfghjkllll](https://github.com/aaaasdfghjkllll)
- **AutoStaircase:** Builds stairs upward in the direction you are facing by running forward and jumping. (Credits to etianl for bringing it to life! As well as Credits to [majorsopa](https://github.com/majorsopa) for writing the original. <3) I just had to fix up some stuff for this one but Frostburn Client had the base code there. I believe this is the first publicly available automatic staircase builder in a Meteor addon, correct me if I'm wrong maybe I didn't have to learn some Java to do this.
- **AutoTitles:** Displays text (such as advertisements) across the screen of all the individuals who are online on a server at the time. Requires OP status. Credits to [ogmur](https://www.youtube.com/@Ogmur) for figuring out these commands, and to etianl for writing a module for it.
Expand Down Expand Up @@ -112,7 +113,6 @@ In no particular order
- If the game crashes, chunk data is saved! No loss in tracing progress.
- Save and Load ChunkData options are for the stored files.
- There is also an option for deleting chunk data in that particular dimension on the server.
- The .newchunkcount command can tell you how many chunks have been saved in data in the dimension you are in.
- You can even send chunk data to your friends! Just copy the TrouserStreak/NewChunks folder and send it.

***l33t new 3xpl0its:***
Expand Down Expand Up @@ -159,7 +159,6 @@ In no particular order
- **Teleport:** Sets your position ontop of targeted block, within a possible reach of 64 blocks. Rarely can cause damage, be careful. ***EXPERIMENTAL*** (Credits to etianl :D)
- **TPFly:** It is a purely setPos based flight. PointAndFly mode is based off the ClickTP and AirPlace code, credits to Meteor for that. ***EXPERIMENTAL, movement is a little weird lol.*** (Credits to etianl :D)
- **TrailMaker:** Leaves blocks behind you in a trail. Has a place delay option to spread placement further apart. Select the blocks you want to use in the block list setting for it to work. (Credits to etianl :D)
- **TrouserBlockESP:** A block esp module that uses chunk sections for block scanning. (Credits to etianl. :D)
- **TrouserBuild:** It can build either horizontally or vertically according to a 5x5 grid centered on the block you are aiming at. Right click to build at the targeted location. (Credits to etianl, and to Banana for the checkboxes and idea. :D)
- **ViewNbtCommand:** Returns the nbt data for the item in your hand in the chat box. There is also a Save option for the command that saves the data to a text file in your .minecraft folder in the "SavedNBT" folder.
- **Voider+:** Replaces the world from the top down. (Credits to Allah-Hack) I added a 3x3 voiding script, a TP foward option for deleting strips, as well as options to set max and minimum height for voiding, and instead of just air it can do whatever block you want now too.
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.3+build.2
loader_version=0.16.9

# Mod Properties
mod_version=1.3.4-1.21.3
mod_version=1.3.5-1.21.3
maven_group=pwn.noobs
archives_base_name=1trouser-streak

Expand Down
1 change: 0 additions & 1 deletion src/main/java/pwn/noobs/trouserstreak/Trouser.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ public void onInitialize() {
Modules.get().add(new PotESP());
Modules.get().add(new OnlinePlayerActivityDetector());
Modules.get().add(new HoleAndTunnelAndStairsESP());
Modules.get().add(new TrouserBlockESP());
Modules.get().add(new StorageLooter());
Modules.get().add(new LavaAura());
Modules.get().add(new MaceKill());
Expand Down
36 changes: 18 additions & 18 deletions src/main/java/pwn/noobs/trouserstreak/mixin/PacketCodecsMixin.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
package pwn.noobs.trouserstreak.mixin;

import io.netty.buffer.ByteBuf;
import net.minecraft.network.codec.PacketCodecs;
import net.minecraft.network.encoding.VarInts;
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;

@Mixin(PacketCodecs.class)
public interface PacketCodecsMixin {
@Inject(method = "Lnet/minecraft/network/codec/PacketCodecs;writeCollectionSize(Lio/netty/buffer/ByteBuf;II)V", at = @At("HEAD"), cancellable = true)
private static void writeCollectionsSize(ByteBuf buf, int size, int maxSize, CallbackInfo ci){
VarInts.write(buf, size);
ci.cancel();
}
}
package pwn.noobs.trouserstreak.mixin;

import io.netty.buffer.ByteBuf;
import net.minecraft.network.codec.PacketCodecs;
import net.minecraft.network.encoding.VarInts;
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;

@Mixin(PacketCodecs.class)
public interface PacketCodecsMixin {
@Inject(method = "Lnet/minecraft/network/codec/PacketCodecs;writeCollectionSize(Lio/netty/buffer/ByteBuf;II)V", at = @At("HEAD"), cancellable = true)
private static void writeCollectionsSize(ByteBuf buf, int size, int maxSize, CallbackInfo ci){
VarInts.write(buf, size);
ci.cancel();
}
}
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
package pwn.noobs.trouserstreak.mixin;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufUtil;
import net.minecraft.network.encoding.StringEncoding;
import net.minecraft.network.encoding.VarInts;
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;

@Mixin(StringEncoding.class)
public class StringEncodingMixin {
@Inject(method ="Lnet/minecraft/network/encoding/StringEncoding;encode(Lio/netty/buffer/ByteBuf;Ljava/lang/CharSequence;I)V" , at = @At("HEAD"), cancellable = true)
private static void writeCollectionsSize(ByteBuf buf, CharSequence string, int maxLength, CallbackInfo ci){
int i = ByteBufUtil.utf8MaxBytes(string);
ByteBuf byteBuf = buf.alloc().buffer(i);

try {
int j = ByteBufUtil.writeUtf8(byteBuf, string);
int k = ByteBufUtil.utf8MaxBytes(maxLength);
VarInts.write(buf, j);
buf.writeBytes(byteBuf);
} finally {
byteBuf.release();
}
ci.cancel();
}
}
package pwn.noobs.trouserstreak.mixin;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufUtil;
import net.minecraft.network.encoding.StringEncoding;
import net.minecraft.network.encoding.VarInts;
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;

@Mixin(StringEncoding.class)
public class StringEncodingMixin {
@Inject(method ="Lnet/minecraft/network/encoding/StringEncoding;encode(Lio/netty/buffer/ByteBuf;Ljava/lang/CharSequence;I)V" , at = @At("HEAD"), cancellable = true)
private static void writeCollectionsSize(ByteBuf buf, CharSequence string, int maxLength, CallbackInfo ci){
int i = ByteBufUtil.utf8MaxBytes(string);
ByteBuf byteBuf = buf.alloc().buffer(i);

try {
int j = ByteBufUtil.writeUtf8(byteBuf, string);
int k = ByteBufUtil.utf8MaxBytes(maxLength);
VarInts.write(buf, j);
buf.writeBytes(byteBuf);
} finally {
byteBuf.release();
}
ci.cancel();
}
}
Loading

0 comments on commit 1bc9228

Please sign in to comment.