Skip to content

Commit

Permalink
0.6.1 Newer-NewerNewchunks Exploit (again)
Browse files Browse the repository at this point in the history
**Newer-NewerNewChunks Exploit**
- The TickExploit option does essentially what the Lighting Exploit did. (it might even be the same thing)
- The new detection exploit is based on the hasRandomTicks() tag associated with blocks.
- The TickExploit option estimates possible newchunks based on the fact that when blocks generate in newchunks, they are not immediately being ticked.
- When using Advanced mode if the TickExploit chunks appear infrequently and are combined with Old Chunks, then the chunks you are in are OLD. If there is alot of TickExploit chunks appearing and/or they are mixed with newchunks then the chunks are NEW.
- The TickExploit option works best if you move fast, because if you hang out in an area you will recieve block tick updates that occur naturally in old chunks.
- LightingExploit option has been replaced with the TickExploit option in 1.19.4. It does the same thing.
- ***NOTE FOR 1.19.4 USERS*** -> finish any tracing you are doing now with the LightingExploit before updating, this new version cannot read the saved data from the LightingExploit.

**Another smol BaseFinder Update**
- Made Spawner Finder feature in BaseFinder dimension-specific. For example if you are in the nether and a spawner has mossy cobblestone near it but no nether brick fence or chain then it is modified.
- Moved Brown Stained Glass from list1 to list3 to avoid a false positive with trail ruins. (Press the reset button on your lists to get the new default)
  • Loading branch information
etianl authored Jul 6, 2023
1 parent 1c2f871 commit 81f1d1e
Show file tree
Hide file tree
Showing 5 changed files with 147 additions and 21 deletions.
15 changes: 6 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,10 +75,8 @@ This will return the lowest block placed with AutoMountain until AutoLavacast is
- **LecternCrash:** Crash 1.18.X vanilla servers and possibly below. (Credits to Coderx-Gamer)
- **NewerNewChunks:** NewChunks module with new newchunk estimation exploits, and the ability to save chunk data for later! Also with special options for tracing servers that have been updated from a version before the build limit updates, which throw false positives normally. (Credits to Meteor Rejects, and BleachHack from where it was ported, and etianl for updating :D.)
- *NewerNewChunks Notes:*
- ***LIGHTING EXPLOIT STUFF IS ONLY AVAILABLE FOR TROUSER 1.19.4 and prior!!!***
- Trouser-Streak for 1.20 and up does not contain the LightingExploit as part of NewerNewChunks because Mojang patched it. :P
- The LightingExploit option estimates possible newchunks based on lighting update packets. SOME OF THESE CHUNKS MAY BE OLD. Advanced Mode is needed to filter any false positives out. See Special Options notes for usage.
- The LightingExploit option works best if you move fast, because if you hang out in an area you will recieve lighting updates that occur naturally in old chunks.
- The **TickExploit** option estimates possible newchunks based on block ticking packets. SOME OF THESE CHUNKS MAY BE OLD. Advanced Mode is needed to filter any false positives out. See Special Options notes for usage.
- The **TickExploit** option can produce false positives if you are hanging around in the same location for a while. It's best to keep moving fast for it to work best.
- NewerNewChunks stores your NewChunks data as text files seperately per server and per dimension in the NewChunks folder in your Minecraft folder.
- Save and Load ChunkData options are for the stored files.
- This enables you to chunk trace multiple different servers and dimensions without mixing NewChunks data.
Expand All @@ -88,11 +86,10 @@ This will return the lowest block placed with AutoMountain until AutoLavacast is
- The .newchunkcount command can tell you how many chunks have been saved in data in the dimension you are in.
-------------------------------------------------------------------------------------
- ***NewerNewChunks Special Options:***
- These are to be used when the server has two distinct diamond layers, and two distinct lava pool layers underground at spawn.
-------------------------------------------------------------------------------------
- The **"AdvancedMode"** highlights chunks that have flow only below Y0 as well as chunks that have been detected with the LightingExploit option.
- If there is nothing but FlowBelowY0 chunks and OldChunks as well as a few LightingExploit chunks**(If MC Version<=1.19.4)**, then you are updating Old Chunks to the new build limits and those are OLDCHUNKS. If the FlowIsBelowY0 are mixed with NewChunks and LightingExploit **(If MC Version<=1.19.4)** coloured chunks they are NEWCHUNKS.
- **(If MC Version<=1.19.4** When using Advanced mode if the LightingExploit chunks appear infrequently and are combined with Old Chunks, then the chunks you are in are OLD. If there is alot of LightingExploit chunks appearing and/or they are mixed with NewChunks then the chunks are NEW.
(These are to be used when the server has two distinct diamond layers, and two distinct lava pool layers underground at spawn.)
- The **"AdvancedMode"** highlights chunks that have flow only below Y0 as well as chunks that have been detected with the TickExploit option.
- If there is nothing but FlowBelowY0 chunks and OldChunks as well as a few TickExploit chunks, then you are updating Old Chunks to the new build limits and those are OLDCHUNKS. If the FlowIsBelowY0 are mixed with NewChunks and Tick Exploit coloured chunks they are NEWCHUNKS.
- When using Advanced mode if the Tick Exploit chunks appear infrequently and are combined with Old Chunks, then the chunks you are in are OLD. If there is alot of Tick Exploit chunks appearing and/or they are mixed with NewChunks then the chunks are NEW.
- AdvancedMode can be confusing, do not use if you can't interpret the chunk data.
-------------------------------------------------------------------------------------
- The **"IgnoreFlowBelow0"** will render as an oldchunk if liquid flow is only below Y zero, and will show as a newchunk if flow is above Y zero, or both above AND below Y zero.
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.20.1+build.9
loader_version=0.14.21

# Mod Properties
mod_version=0.6.0-1.20.1
mod_version=0.6.1-1.20.1
maven_group=pwn.noobs
archives_base_name=1trouser-streak

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,21 @@ public void build(LiteralArgumentBuilder<CommandSource> builder) {
ChatUtils.sendMsg(Text.of(chunks+" FlowBelowY0Chunk locations have been saved by NewerNewChunks in this dimension."));
return SINGLE_SUCCESS;
}));
builder.then(literal("LightingExploitChunks").executes(ctx -> {
n.chunkcounterticks=0;
n.chunkcounter=true;
int chunks = n.tickexploitchunksfound;
ChatUtils.sendMsg(Text.of(chunks+" Lighting/TickExploitChunk locations have been saved by NewerNewChunks in this dimension."));
return SINGLE_SUCCESS;
}));
builder.executes(ctx -> {
n.chunkcounterticks=0;
n.chunkcounter=true;
int chunks1 = n.newchunksfound;
int chunks2 = n.olderoldchunksfound;
int chunks4 = n.tickexploitchunksfound;
int chunks3 = n.oldchunksfound;
ChatUtils.sendMsg(Text.of("New: "+chunks1+" | FlowBelowY=0: "+chunks2+" | Old: "+chunks3+" | Chunk locations have been saved by NewerNewChunks in this dimension."));
ChatUtils.sendMsg(Text.of("New: "+chunks1+" | FlowBelowY=0: "+chunks2+" | TickExploitChunk: "+chunks4+" | Old: "+chunks3+" | Chunk locations have been saved by NewerNewChunks in this dimension."));
return SINGLE_SUCCESS;
});
}
Expand Down
8 changes: 5 additions & 3 deletions src/main/java/pwn/noobs/trouserstreak/modules/BaseFinder.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Box;
import net.minecraft.util.math.ChunkPos;
import net.minecraft.world.World;
import net.minecraft.world.chunk.WorldChunk;
import pwn.noobs.trouserstreak.Trouser;

Expand Down Expand Up @@ -83,7 +84,7 @@ public class BaseFinder extends Module {
Blocks.BLACK_CONCRETE, Blocks.BLUE_CONCRETE, Blocks.CYAN_CONCRETE, Blocks.BROWN_CONCRETE, Blocks.WHITE_CONCRETE, Blocks.ORANGE_CONCRETE, Blocks.MAGENTA_CONCRETE, Blocks.LIGHT_BLUE_CONCRETE, Blocks.YELLOW_CONCRETE, Blocks.LIME_CONCRETE, Blocks.PINK_CONCRETE, Blocks.GRAY_CONCRETE, Blocks.LIGHT_GRAY_CONCRETE, Blocks.PURPLE_CONCRETE, Blocks.GREEN_CONCRETE, Blocks.RED_CONCRETE,
Blocks.BLACK_CONCRETE_POWDER, Blocks.BLUE_CONCRETE_POWDER, Blocks.CYAN_CONCRETE_POWDER, Blocks.BROWN_CONCRETE_POWDER, Blocks.WHITE_CONCRETE_POWDER, Blocks.ORANGE_CONCRETE_POWDER, Blocks.MAGENTA_CONCRETE_POWDER, Blocks.LIGHT_BLUE_CONCRETE_POWDER, Blocks.YELLOW_CONCRETE_POWDER, Blocks.LIME_CONCRETE_POWDER, Blocks.PINK_CONCRETE_POWDER, Blocks.GRAY_CONCRETE_POWDER, Blocks.LIGHT_GRAY_CONCRETE_POWDER, Blocks.PURPLE_CONCRETE_POWDER, Blocks.GREEN_CONCRETE_POWDER, Blocks.RED_CONCRETE_POWDER,
Blocks.COPPER_BLOCK, Blocks.EXPOSED_COPPER, Blocks.WEATHERED_COPPER, Blocks.OXIDIZED_COPPER, Blocks.SOUL_TORCH, Blocks.SOUL_WALL_TORCH,
Blocks.WHITE_STAINED_GLASS, Blocks.ORANGE_STAINED_GLASS, Blocks.LIGHT_BLUE_STAINED_GLASS, Blocks.YELLOW_STAINED_GLASS, Blocks.LIME_STAINED_GLASS, Blocks.PINK_STAINED_GLASS, Blocks.GRAY_STAINED_GLASS, Blocks.LIGHT_GRAY_STAINED_GLASS, Blocks.CYAN_STAINED_GLASS, Blocks.PURPLE_STAINED_GLASS, Blocks.BLUE_STAINED_GLASS, Blocks.BROWN_STAINED_GLASS, Blocks.GREEN_STAINED_GLASS, Blocks.RED_STAINED_GLASS, Blocks.BLACK_STAINED_GLASS,
Blocks.WHITE_STAINED_GLASS, Blocks.ORANGE_STAINED_GLASS, Blocks.LIGHT_BLUE_STAINED_GLASS, Blocks.YELLOW_STAINED_GLASS, Blocks.LIME_STAINED_GLASS, Blocks.PINK_STAINED_GLASS, Blocks.GRAY_STAINED_GLASS, Blocks.LIGHT_GRAY_STAINED_GLASS, Blocks.CYAN_STAINED_GLASS, Blocks.PURPLE_STAINED_GLASS, Blocks.BLUE_STAINED_GLASS, Blocks.GREEN_STAINED_GLASS, Blocks.RED_STAINED_GLASS, Blocks.BLACK_STAINED_GLASS,
Blocks.CRIMSON_PRESSURE_PLATE, Blocks.CRIMSON_BUTTON, Blocks.CRIMSON_DOOR, Blocks.CRIMSON_FENCE, Blocks.CRIMSON_FENCE_GATE, Blocks.CRIMSON_PLANKS, Blocks.CRIMSON_SIGN, Blocks.CRIMSON_WALL_SIGN, Blocks.CRIMSON_SLAB, Blocks.CRIMSON_STAIRS, Blocks.CRIMSON_TRAPDOOR,
Blocks.WARPED_PRESSURE_PLATE, Blocks.WARPED_BUTTON, Blocks.WARPED_DOOR, Blocks.WARPED_FENCE, Blocks.WARPED_FENCE_GATE, Blocks.WARPED_PLANKS, Blocks.WARPED_SIGN, Blocks.WARPED_WALL_SIGN, Blocks.WARPED_SLAB, Blocks.WARPED_STAIRS, Blocks.WARPED_TRAPDOOR,
Blocks.SCAFFOLDING, Blocks.CHERRY_SIGN, Blocks.CHERRY_WALL_SIGN, Blocks.OAK_SIGN, Blocks.SPRUCE_SIGN, Blocks.ACACIA_SIGN, Blocks.ACACIA_WALL_SIGN, Blocks.BIRCH_SIGN, Blocks.BIRCH_WALL_SIGN, Blocks.DARK_OAK_SIGN, Blocks.DARK_OAK_WALL_SIGN, Blocks.JUNGLE_SIGN, Blocks.JUNGLE_WALL_SIGN, Blocks.MANGROVE_SIGN, Blocks.MANGROVE_WALL_SIGN, Blocks.SLIME_BLOCK, Blocks.SPONGE, Blocks.TINTED_GLASS,
Expand All @@ -108,7 +109,7 @@ public class BaseFinder extends Module {
private final Setting<List<Block>> Blawcks3 = sglists.add(new BlockListSetting.Builder()
.name("Block List #3 (Default)")
.description("If the total amount of any of these found is greater than the Number specified, throw a base location.")
.defaultValue(Blocks.CRAFTING_TABLE, Blocks.BREWING_STAND, Blocks.ENDER_CHEST, Blocks.SMOOTH_QUARTZ, Blocks.REDSTONE_BLOCK)
.defaultValue(Blocks.CRAFTING_TABLE, Blocks.BREWING_STAND, Blocks.ENDER_CHEST, Blocks.SMOOTH_QUARTZ, Blocks.REDSTONE_BLOCK, Blocks.BROWN_STAINED_GLASS)
.filter(this::filterBlocks)
.build()
);
Expand Down Expand Up @@ -585,7 +586,8 @@ private void onReadPacket(PacketEvent.Receive event) {
if (spawner.get()){
if (blerks.getBlock()==Blocks.SPAWNER)spawnerfound=true;
//dungeon MOSSY_COBBLESTONE, mineshaft COBWEB, fortress NETHER_BRICK_FENCE, stronghold STONE_BRICK_STAIRS, bastion CHAIN
if (blerks.getBlock()==Blocks.MOSSY_COBBLESTONE || blerks.getBlock()==Blocks.COBWEB || blerks.getBlock()==Blocks.NETHER_BRICK_FENCE || blerks.getBlock()==Blocks.STONE_BRICK_STAIRS || blerks.getBlock()==Blocks.CHAIN)spawnernaturalblocks=true;
if (mc.world.getRegistryKey() == World.OVERWORLD && (blerks.getBlock()==Blocks.MOSSY_COBBLESTONE || blerks.getBlock()==Blocks.COBWEB || blerks.getBlock()==Blocks.STONE_BRICK_STAIRS))spawnernaturalblocks=true;
else if (mc.world.getRegistryKey() == World.NETHER && (blerks.getBlock()==Blocks.NETHER_BRICK_FENCE || blerks.getBlock()==Blocks.CHAIN))spawnernaturalblocks=true;
}
if (Blawcks1.get().size()>0){
if (Blawcks1.get().contains(blerks.getBlock())) {
Expand Down
Loading

0 comments on commit 81f1d1e

Please sign in to comment.