diff --git a/README.md b/README.md index 8770e843..9f527bc1 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,14 @@ +[![Github All Releases](https://img.shields.io/github/downloads/etianl/Trouser-Streak/total.svg)]() +
-

Trouser-Streak

-

Official Griefing Utilities of Mountains of Lava Inc.

Trouser-Streak is a compilation of modules, updated to the latest version and optimized for maximum grief. I did not make all of these.

-

I frequently release updates, please check back here often! :)

+

Trouser-Streak

+

Official Griefing Utilities of Mountains of Lava Inc.

+

Trouser-Streak is a compilation of modules for Meteor Client. Updated to the latest version and optimized for maximum grief!

+

I frequently release updates, please check back here often :)

Trouser-Streak Logo -
- -Total Downloads: [![Github All Releases](https://img.shields.io/github/downloads/etianl/Trouser-Streak/total.svg)]() + +***A few of these modules were not made by me!*** ## Credits to the people I skidded from: In no particular order - [DAMcraft (ServerSeeker)](https://github.com/DAMcraft/MeteorServerSeeker) diff --git a/build.gradle b/build.gradle index 5ce1603b..3915d673 100644 --- a/build.gradle +++ b/build.gradle @@ -15,6 +15,10 @@ repositories { maven { url "https://maven.meteordev.org/snapshots" } } +loom { + accessWidenerPath = file("src/main/resources/streak-addon.accesswidener") +} + dependencies { // Fabric minecraft "com.mojang:minecraft:${project.minecraft_version}" diff --git a/gradle.properties b/gradle.properties index 5f8a85a4..7022a4bc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,11 +2,11 @@ org.gradle.jvmargs=-Xmx2G # Fabric (https://fabricmc.net/versions.html) minecraft_version=1.21 -yarn_mappings=1.21+build.2 +yarn_mappings=1.21+build.9 loader_version=0.15.11 # Mod Properties -mod_version=1.1.3-1.21 +mod_version=1.1.4-1.21 maven_group=pwn.noobs archives_base_name=1trouser-streak diff --git a/src/main/java/pwn/noobs/trouserstreak/Trouser.java b/src/main/java/pwn/noobs/trouserstreak/Trouser.java index 55dde961..3f18d40a 100644 --- a/src/main/java/pwn/noobs/trouserstreak/Trouser.java +++ b/src/main/java/pwn/noobs/trouserstreak/Trouser.java @@ -90,4 +90,4 @@ public String getPackage() { return "pwn.noobs.trouserstreak"; } -} +} \ No newline at end of file diff --git a/src/main/java/pwn/noobs/trouserstreak/modules/BaseFinder.java b/src/main/java/pwn/noobs/trouserstreak/modules/BaseFinder.java index 122a6b3a..8ff7559c 100644 --- a/src/main/java/pwn/noobs/trouserstreak/modules/BaseFinder.java +++ b/src/main/java/pwn/noobs/trouserstreak/modules/BaseFinder.java @@ -44,7 +44,7 @@ import java.util.HashSet; import java.util.List; import java.util.Set; -import java.util.concurrent.Executor; +import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /* @@ -64,18 +64,18 @@ public class BaseFinder extends Module { // general private final Setting minY = sgGeneral.add(new IntSetting.Builder() - .name("Detection Y Minimum") - .description("Scans blocks from this Y value and up.") - .min(-64) - .sliderRange(-64,319) - .defaultValue(-64) + .name("Detection Y Minimum OffSet") + .description("Scans blocks above or at this this many blocks from minimum build limit.") + .min(0) + .sliderRange(0,319) + .defaultValue(0) .build()); private final Setting maxY = sgGeneral.add(new IntSetting.Builder() - .name("Detection Y Maximum") - .description("Scans blocks below or at this Y value.") - .min(-64) - .sliderRange(-64,319) - .defaultValue(319) + .name("Detection Y Maximum OffSet") + .description("Scans blocks below or at this this many blocks from maximum build limit.") + .min(0) + .sliderRange(0,319) + .defaultValue(0) .build()); private final Setting skybuildfind = sgDetectors.add(new BoolSetting.Builder() .name("Sky Build Finder") @@ -437,7 +437,7 @@ public WWidget getWidget(GuiTheme theme) { .visible(() -> trcr.get()) .build() ); - private final Executor taskExecutor = Executors.newSingleThreadExecutor(); + private static final ExecutorService taskExecutor = Executors.newCachedThreadPool(); private int basefoundspamTicks=0; private boolean basefound=false; private int deletewarningTicks=666; @@ -456,7 +456,7 @@ public WWidget getWidget(GuiTheme theme) { private int found6 = 0; private boolean checkingchunk7=false; private int found7 = 0; - public ChunkPos LastBaseFound = new ChunkPos(2000000000, 2000000000); + private ChunkPos LastBaseFound = new ChunkPos(2000000000, 2000000000); private int closestbaseX=2000000000; private int closestbaseZ=2000000000; private double basedistance=2000000000; @@ -688,9 +688,11 @@ private void onReadPacket(PacketEvent.Receive event) { } if (Blawcks1.get().size()>0 || Blawcks2.get().size()>0 || Blawcks3.get().size()>0 || Blawcks4.get().size()>0 || Blawcks5.get().size()>0 || Blawcks6.get().size()>0 || Blawcks7.get().size()>0){ + int Ymin = mc.world.getBottomY()+minY.get(); + int Ymax = mc.world.getTopY()-maxY.get(); try { for (int x = 0; x < 16; x++) { - for (int y = minY.get()-1; y < maxY.get()+1; y++) { + for (int y = Ymin; y < Ymax; y++) { for (int z = 0; z < 16; z++) { BlockState blerks = chunk.getBlockState(new BlockPos(x, y, z)); blockposi=new BlockPos(x, y, z); diff --git a/src/main/java/pwn/noobs/trouserstreak/modules/NewerNewChunks.java b/src/main/java/pwn/noobs/trouserstreak/modules/NewerNewChunks.java index bc2eea85..405ed243 100644 --- a/src/main/java/pwn/noobs/trouserstreak/modules/NewerNewChunks.java +++ b/src/main/java/pwn/noobs/trouserstreak/modules/NewerNewChunks.java @@ -1,6 +1,5 @@ package pwn.noobs.trouserstreak.modules; -import io.netty.buffer.Unpooled; import meteordevelopment.meteorclient.events.game.GameLeftEvent; import meteordevelopment.meteorclient.events.game.OpenScreenEvent; import meteordevelopment.meteorclient.events.packets.PacketEvent; @@ -23,14 +22,17 @@ import net.minecraft.client.gui.screen.DownloadingTerrainScreen; import net.minecraft.fluid.FluidState; import net.minecraft.nbt.NbtCompound; -import net.minecraft.network.PacketByteBuf; import net.minecraft.network.packet.c2s.play.AcknowledgeChunksC2SPacket; import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; import net.minecraft.network.packet.s2c.play.*; +import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.util.WorldSavePath; import net.minecraft.util.math.*; import net.minecraft.world.World; +import net.minecraft.world.biome.Biome; +import net.minecraft.world.biome.BiomeKeys; import net.minecraft.world.chunk.ChunkSection; +import net.minecraft.world.chunk.Palette; import net.minecraft.world.chunk.PalettedContainer; import net.minecraft.world.chunk.WorldChunk; import pwn.noobs.trouserstreak.Trouser; @@ -41,8 +43,7 @@ import java.nio.file.Files; import java.nio.file.Paths; import java.util.*; -import java.util.concurrent.Executor; -import java.util.concurrent.Executors; +import java.util.concurrent.*; /* Ported from: https://github.com/BleachDrinker420/BleachHack/blob/master/BleachHack-Fabric-1.16/src/main/java/bleach/hack/module/mods/NewChunks.java @@ -259,7 +260,7 @@ public WWidget getWidget(GuiTheme theme) { .visible(() -> shapeMode.get() == ShapeMode.Lines || shapeMode.get() == ShapeMode.Both) .build() ); - private final Executor taskExecutor = Executors.newSingleThreadExecutor(); + private static final ExecutorService taskExecutor = Executors.newCachedThreadPool(); private int deletewarningTicks=666; private int deletewarning=0; private String serverip; @@ -423,7 +424,6 @@ public void onActivate() { loadingticks=0; reloadworld=0; } - @Override public void onDeactivate() { chunkcounterticks=0; @@ -707,11 +707,20 @@ else if (!(event.packet instanceof PlayerMoveC2SPacket) && event.packet instance if (mc.world.getChunkManager().getChunk(packet.getChunkX(), packet.getChunkZ()) == null) { WorldChunk chunk = new WorldChunk(mc.world, oldpos); + try { - taskExecutor.execute(() -> chunk.loadFromPacket(packet.getChunkData().getSectionsDataBuf(), new NbtCompound(), packet.getChunkData().getBlockEntities(packet.getChunkX(), packet.getChunkZ()))); + Future future = taskExecutor.submit(() -> { + chunk.loadFromPacket(packet.getChunkData().getSectionsDataBuf(), new NbtCompound(), packet.getChunkData().getBlockEntities(packet.getChunkX(), packet.getChunkZ())); + }); + try { + future.get(); // This will block until the task is complete + } catch (InterruptedException | ExecutionException e) { + e.printStackTrace(); + } } catch (ArrayIndexOutOfBoundsException e) { - return; + e.printStackTrace(); } + boolean isNewChunk = false; boolean isOldGeneration = false; boolean chunkIsBeingUpdated = false; @@ -733,6 +742,7 @@ else if (!(event.packet instanceof PlayerMoveC2SPacket) && event.packet instance } if (foundAnyOre && !isOldGeneration && !isNewOverworldGeneration) isOldGeneration = true; } + if (netherOldChunksDetector.get() && mc.world.getRegistryKey() == World.NETHER) { for (int x = 0; x < 16; x++) { for (int y = mc.world.getBottomY()+3; y < 128; y++) { @@ -746,119 +756,50 @@ else if (!(event.packet instanceof PlayerMoveC2SPacket) && event.packet instance } if (!isOldGeneration && !isNewNetherGeneration) isOldGeneration = true; } - PacketByteBuf buf = null; - if (PaletteExploit.get() || (endOldChunksDetector.get() && mc.world.getRegistryKey() == World.END)) { - buf = packet.getChunkData().getSectionsDataBuf(); - } - if (endOldChunksDetector.get() && mc.world.getRegistryKey() == World.END) { - PacketByteBuf bufferCopy = new PacketByteBuf(Unpooled.copiedBuffer(buf.nioBuffer())); //copy the packetByteBuf for later use - if (bufferCopy.readableBytes() < 3) return; - - try { - short blockCount = bufferCopy.readShort(); - if (bufferCopy.readableBytes() < 1) return; - int blockBitsPerEntry2 = bufferCopy.readUnsignedByte(); - if (blockBitsPerEntry2 == 0) { - int singleBlockValue = bufferCopy.readVarInt(); - bufferCopy.readVarInt(); // Data Array Length (should be 0) - } else if (blockBitsPerEntry2 >= 4 && blockBitsPerEntry2 <= 8) { - int blockPaletteLength = bufferCopy.readVarInt(); - for (int i = 0; i < blockPaletteLength; i++) { - int blockPaletteEntry = bufferCopy.readVarInt(); - } - int blockDataArrayLength = bufferCopy.readVarInt(); - if (bufferCopy.readableBytes() >= blockDataArrayLength * 8) { - bufferCopy.skipBytes(blockDataArrayLength * 8); - } else { - bufferCopy.skipBytes(bufferCopy.readableBytes()); - return; - } - } else if (blockBitsPerEntry2 == 15) { - int blockDataArrayLength = bufferCopy.readVarInt(); - if (bufferCopy.readableBytes() >= blockDataArrayLength * 8) { - bufferCopy.skipBytes(blockDataArrayLength * 8); - } else { - bufferCopy.skipBytes(bufferCopy.readableBytes()); - return; - } - } else { - return; - } - if (bufferCopy.readableBytes() < 1) { - return; - } - - int biomeBitsPerEntry = bufferCopy.readUnsignedByte(); - - if (biomeBitsPerEntry == 0) { - int singleBiomeValue = bufferCopy.readVarInt(); - if (singleBiomeValue == 55) { - isOldGeneration = true; - } - bufferCopy.readVarInt(); // Data Array Length (should be 0) - } else if (biomeBitsPerEntry >= 1 && biomeBitsPerEntry <= 3) { - int biomePaletteLength = bufferCopy.readVarInt(); - for (int i = 0; i < biomePaletteLength; i++) { - if (bufferCopy.readableBytes() < 1) { - break; - } - int biomePaletteEntry = bufferCopy.readVarInt(); - if (biomePaletteEntry == 55) { - isOldGeneration = true; - break; - } - } - } else { - //no need to read if other biomeBitsPerEntry values, we can just return here - return; + if (endOldChunksDetector.get() && mc.world.getRegistryKey() == World.END) { + ChunkSection section = chunk.getSection(0); + var biomesContainer = section.getBiomeContainer(); + if (biomesContainer instanceof PalettedContainer> biomesPaletteContainer) { + Palette> biomePalette = biomesPaletteContainer.data.palette(); + for (int i = 0; i < biomePalette.getSize(); i++) { + //System.out.println("Section: " +0+ " Palette entry :" + i + " Palette entry: " + biomePalette.get(i).getKey().get()); + if (biomePalette.get(i).getKey().get() == BiomeKeys.THE_END) { + isOldGeneration = true; + break; } - } catch (Exception e) { - //e.printStackTrace(); + } } } if (PaletteExploit.get()) { - if (buf.readableBytes() < 3) return; // Ensure we have at least 3 bytes (short + byte) - boolean firstchunkappearsnew = false; int loops = 0; int newChunkQuantifier = 0; int oldChunkQuantifier = 0; + ChunkSection[] sections = chunk.getSectionArray(); try { - while (buf.readableBytes() > 0 && loops<8) { - // Chunk Section structure - short blockCount = buf.readShort(); - //System.out.println("Section: " + loops + " | Block count: " + blockCount); + for (int i = 0; i < 8; i++) { + ChunkSection section = sections[i]; + if (section != null) { + //System.out.println("Processing Chunk Section: " + i); - // Block states Paletted Container - if (buf.readableBytes() < 1) break; - int blockBitsPerEntry2 = buf.readUnsignedByte(); - //System.out.println("Section: " + loops + " | Block Bits Per Entry: " + blockBitsPerEntry2); - - if (blockBitsPerEntry2 == 0) { - // Single valued palette - int singleBlockValue = buf.readVarInt(); - //BlockState blockState = Block.STATE_IDS.get(singleBlockValue); - //System.out.println("Section: " + loops + " | Single Block Value: " + singleBlockValue + " | Blockstate: " + blockState); - buf.readVarInt(); // Data Array Length (should be 0) - } else if (blockBitsPerEntry2 >= 4 && blockBitsPerEntry2 <= 8) { - ChunkSection section = chunk.getSectionArray()[loops]; - PalettedContainer palettedContainer = section.getBlockStateContainer(); + var blockStatesContainer = section.getBlockStateContainer(); Set bstates = new HashSet<>(); for (int x = 0; x < 16; x++){ for (int y = 0; y < 16; y++){ for (int z = 0; z < 16; z++){ - bstates.add(palettedContainer.get(x, y, z)); + bstates.add(blockStatesContainer.get(x, y, z)); } } } - // Indirect palette - int blockPaletteLength = buf.readVarInt(); - //System.out.println("Section: " + loops + " | Block palette length: " + blockPaletteLength); - //System.out.println("Section: " + loops + " | bstates.size() "+bstates.size()); - //System.out.println("Section: " + loops + " | blockPaletteLength"+blockPaletteLength); + //System.out.println("Unique BlockStates in Section " + i + ": " + bstates.size()); + + Palette blockStatePalette = blockStatesContainer.data.palette(); + int blockPaletteLength = blockStatePalette.getSize(); + //System.out.println("Block Palette Length for Section " + i + ": " + blockPaletteLength); + int isNewSection = 0; int isBeingUpdatedSection = 0; int bstatesSize = bstates.size(); @@ -868,142 +809,55 @@ else if (!(event.packet instanceof PlayerMoveC2SPacket) && event.packet instance //System.out.println("Section: " + loops + " | smaller bstates size!!!!!!!"); newChunkQuantifier++; //double the weight of this } - for (int i = 0; i < blockPaletteLength; i++) { - int blockPaletteEntry = buf.readVarInt(); - //BlockState blockState = Block.STATE_IDS.get(blockPaletteEntry); - //System.out.println("Section: " + loops + " | Block palette entry " + i + ": " + blockPaletteEntry + " | Blockstate: " + blockState); - if (i == 0 && loops == 0 && blockPaletteEntry == 0 && mc.world.getRegistryKey() != World.END) firstchunkappearsnew = true; - if (i == 0 && blockPaletteEntry == 0 && mc.world.getRegistryKey() != World.NETHER && mc.world.getRegistryKey() != World.END) isNewSection++; - if (i == 1 && (blockPaletteEntry == 80 || blockPaletteEntry == 1 || blockPaletteEntry == 9 || blockPaletteEntry == 5781) && mc.world.getRegistryKey() != World.NETHER && mc.world.getRegistryKey() != World.END) isNewSection++; - if (i == 2 && (blockPaletteEntry == 5781 || blockPaletteEntry == 10 || blockPaletteEntry == 22318) && mc.world.getRegistryKey() != World.NETHER && mc.world.getRegistryKey() != World.END) isNewSection++; - if (loops == 4 && blockPaletteEntry == 79 && mc.world.getRegistryKey() != World.NETHER && mc.world.getRegistryKey() != World.END) { - //System.out.println("CHUNK IS BEING UPDATED!!!!!!"); + for (int i2 = 0; i2 < blockPaletteLength; i2++) { + BlockState blockPaletteEntry = blockStatePalette.get(i2); + //System.out.println("Section " + i + ", Palette Entry " + i2 + ": " + blockPaletteEntry.getBlock()); + + if (i2 == 0 && loops == 0 && blockPaletteEntry.getBlock() == Blocks.AIR && mc.world.getRegistryKey() != World.END) firstchunkappearsnew = true; + if (i2 == 0 && blockPaletteEntry.getBlock() == Blocks.AIR && mc.world.getRegistryKey() != World.NETHER && mc.world.getRegistryKey() != World.END) isNewSection++; + if (i2 == 1 && (blockPaletteEntry.getBlock() == Blocks.WATER || blockPaletteEntry.getBlock() == Blocks.STONE || blockPaletteEntry.getBlock() == Blocks.GRASS_BLOCK || blockPaletteEntry.getBlock() == Blocks.SNOW_BLOCK) && mc.world.getRegistryKey() != World.NETHER && mc.world.getRegistryKey() != World.END) isNewSection++; + if (i2 == 2 && (blockPaletteEntry.getBlock() == Blocks.SNOW_BLOCK || blockPaletteEntry.getBlock() == Blocks.DIRT || blockPaletteEntry.getBlock() == Blocks.POWDER_SNOW) && mc.world.getRegistryKey() != World.NETHER && mc.world.getRegistryKey() != World.END) isNewSection++; + if (loops == 4 && blockPaletteEntry.getBlock() == Blocks.BEDROCK && mc.world.getRegistryKey() != World.NETHER && mc.world.getRegistryKey() != World.END) { if (!chunkIsBeingUpdated && beingUpdatedDetector.get()) chunkIsBeingUpdated = true; } - if (blockPaletteEntry == 0 && (mc.world.getRegistryKey() == World.NETHER || mc.world.getRegistryKey() == World.END)) isBeingUpdatedSection++; + if (blockPaletteEntry.getBlock() == Blocks.AIR && (mc.world.getRegistryKey() == World.NETHER || mc.world.getRegistryKey() == World.END)) isBeingUpdatedSection++; } if (isBeingUpdatedSection>=2) oldChunkQuantifier++; if (isNewSection >= 2) newChunkQuantifier++; - // Data Array - int blockDataArrayLength = buf.readVarInt(); - //System.out.println("Section: " + loops + " | Block Data Array Length: " + blockDataArrayLength); - if (buf.readableBytes() >= blockDataArrayLength * 8) { - buf.skipBytes(blockDataArrayLength * 8); - } else { - //System.out.println("Section: " + loops + " | Not enough data for block array, skipping remaining: " + buf.readableBytes()); - buf.skipBytes(buf.readableBytes()); - break; - } - } else if (blockBitsPerEntry2 == 15) { - // Direct palette (no palette sent) - int blockDataArrayLength = buf.readVarInt(); - //System.out.println("Section: " + loops + " | Block Data Array Length (Direct): " + blockDataArrayLength); - if (buf.readableBytes() >= blockDataArrayLength * 8) { - buf.skipBytes(blockDataArrayLength * 8); - } else { - //System.out.println("Section: " + loops + " | Not enough data for block array, skipping remaining: " + buf.readableBytes()); - buf.skipBytes(buf.readableBytes()); - break; - } - } else { - //System.out.println("Section: " + loops + " | Invalid block bits per entry: " + blockBitsPerEntry2); - break; - } - - // Biomes Paletted Container - if (buf.readableBytes() < 1) { - //System.out.println("Section: " + loops + " | No biome data available"); - break; - } - - int biomeBitsPerEntry = buf.readUnsignedByte(); - //System.out.println("Section: " + loops + " | Biome Bits Per Entry: " + biomeBitsPerEntry); + //System.out.println("Section " + i + " - isNewSection: " + isNewSection + ", isBeingUpdatedSection: " + isBeingUpdatedSection); - if (biomeBitsPerEntry == 0) { - // Single valued palette - int singleBiomeValue = buf.readVarInt(); - //Registry biomeRegistry = mc.world.getRegistryManager().get(RegistryKeys.BIOME); - //Biome biome = biomeRegistry.get(singleBiomeValue); - //Identifier biomeId = biomeRegistry.getId(biome); - //System.out.println("Section: " + loops + " | Single Biome Value: " + singleBiomeValue + " | Biome: " + biomeId.toString()); - if (singleBiomeValue == 39 && mc.world.getRegistryKey() == World.END) isNewChunk = true; - buf.readVarInt(); // Data Array Length (should be 0) - } else if (biomeBitsPerEntry >= 1 && biomeBitsPerEntry <= 3) { - // Indirect palette - int biomePaletteLength = buf.readVarInt(); - //System.out.println("Section: " + loops + " | Biome palette length: " + biomePaletteLength); - for (int i = 0; i < biomePaletteLength; i++) { - if (buf.readableBytes() < 1) { - //System.out.println("Section: " + loops + " | Incomplete biome palette data"); - break; + var biomesContainer = section.getBiomeContainer(); + if (biomesContainer instanceof PalettedContainer> biomesPaletteContainer) { + Palette> biomePalette = biomesPaletteContainer.data.palette(); + //System.out.println("Biome Palette Size for Section " + i + ": " + biomePalette.getSize()); + for (int i3 = 0; i3 < biomePalette.getSize(); i3++) { + //System.out.println("Section: " + i + " Biome Palette entry :" + i3 + " Biome: " + biomePalette.get(i3).getKey().get()); + if (i3 == 0 && biomePalette.get(i3).getKey().get() == BiomeKeys.PLAINS && mc.world.getRegistryKey() == World.END) isNewChunk = true; + if (!isNewChunk && i3 == 0 && biomePalette.get(i3).getKey().get() != BiomeKeys.THE_END && mc.world.getRegistryKey() == World.END) isNewChunk = false; } - int biomePaletteEntry = buf.readVarInt(); - //Registry biomeRegistry = mc.world.getRegistryManager().get(RegistryKeys.BIOME); - //Biome biome = biomeRegistry.get(biomePaletteEntry); - //Identifier biomeId = biomeRegistry.getId(biome); - //System.out.println("Section: " + loops + " | Biome palette entry " + i + ": " + biomePaletteEntry + " | Biome: " + biomeId.toString()); - if (i == 0 && biomePaletteEntry == 39 && mc.world.getRegistryKey() == World.END) isNewChunk = true; - if (!isNewChunk && i == 0 && biomePaletteEntry != 55 && mc.world.getRegistryKey() == World.END) isNewChunk = false; } - - // Data Array - if (buf.readableBytes() >= 1) { - int biomeDataArrayLength = buf.readVarInt(); - //System.out.println("Section: " + loops + " | Biome Data Array Length: " + biomeDataArrayLength); - if (buf.readableBytes() >= biomeDataArrayLength * 8) { - buf.skipBytes(biomeDataArrayLength * 8); - } else { - //System.out.println("Section: " + loops + " | Not enough data for biome array, skipping remaining: " + buf.readableBytes()); - buf.skipBytes(buf.readableBytes()); - break; - } - } else { - //System.out.println("Section: " + loops + " | Not enough data for biome array length"); - break; - } - } else if (biomeBitsPerEntry == 6) { - // Direct palette (no palette sent) - int biomeDataArrayLength = buf.readVarInt(); - //System.out.println("Section: " + loops + " | Biome Data Array Length (Direct): " + biomeDataArrayLength); - if (buf.readableBytes() >= biomeDataArrayLength * 8) { - buf.skipBytes(biomeDataArrayLength * 8); - } else { - //System.out.println("Section: " + loops + " | Not enough data for biome array, skipping remaining: " + buf.readableBytes()); - buf.skipBytes(buf.readableBytes()); - break; - } - } else { - //System.out.println("Section: " + loops + " | Invalid biome bits per entry: " + biomeBitsPerEntry); - break; } - loops++; } - //System.out.println("newChunkQuantifier: " + newChunkQuantifier + ", loops: " + loops); if (loops > 0) { if (beingUpdatedDetector.get() && (mc.world.getRegistryKey() == World.NETHER || mc.world.getRegistryKey() == World.END)){ double oldpercentage = ((double) oldChunkQuantifier / loops) * 100; - //System.out.println("Percentage: " + oldpercentage); if (oldpercentage >= 25) chunkIsBeingUpdated = true; } else if (mc.world.getRegistryKey() != World.NETHER && mc.world.getRegistryKey() != World.END){ double percentage = ((double) newChunkQuantifier / loops) * 100; - //System.out.println("Percentage: " + percentage); if (percentage >= 65) isNewChunk = true; } } } catch (Exception e) { - //e.printStackTrace(); if (beingUpdatedDetector.get() && (mc.world.getRegistryKey() == World.NETHER || mc.world.getRegistryKey() == World.END)){ double oldpercentage = ((double) oldChunkQuantifier / loops) * 100; - //System.out.println("Percentage: " + oldpercentage); if (oldpercentage >= 25) chunkIsBeingUpdated = true; } else if (mc.world.getRegistryKey() != World.NETHER && mc.world.getRegistryKey() != World.END){ double percentage = ((double) newChunkQuantifier / loops) * 100; - //System.out.println("Percentage: " + percentage); if (percentage >= 65) isNewChunk = true; } } @@ -1020,7 +874,6 @@ else if (mc.world.getRegistryKey() != World.NETHER && mc.world.getRegistryKey() return; } } catch (Exception e) { - //e.printStackTrace(); } } else if (!isNewChunk && !chunkIsBeingUpdated && isOldGeneration) { @@ -1032,7 +885,6 @@ else if (!isNewChunk && !chunkIsBeingUpdated && isOldGeneration) { } } } catch (Exception e) { - //e.printStackTrace(); } } else if (chunkIsBeingUpdated) { @@ -1044,7 +896,6 @@ else if (chunkIsBeingUpdated) { } } } catch (Exception e) { - //e.printStackTrace(); } } else if (!isNewChunk) { @@ -1057,7 +908,6 @@ else if (!isNewChunk) { return; } } catch (Exception e) { - //e.printStackTrace(); } } } @@ -1075,7 +925,6 @@ else if (!isNewChunk) { return; } } catch (Exception e) { - //e.printStackTrace(); } } } @@ -1110,7 +959,6 @@ private void loadChunkData(String savedDataLocation, Set chunkSet) { } } } catch (IOException e) { - //e.printStackTrace(); } } private void saveData(String savedDataLocation, ChunkPos chunkpos) { diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 54f31955..41a9e632 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -1,7 +1,7 @@ { "schemaVersion": 1, "id": "streak-addon", - "version": "1.1.3", + "version": "1.1.4", "name": "TrouserStreak", "description": "Trouser-Streak is a compilation of modules, updated to the latest version and optimized for maximum grief. I did not make all of these.", "authors": [ @@ -17,6 +17,7 @@ "pwn.noobs.trouserstreak.Trouser" ] }, + "accessWidener": "streak-addon.accesswidener", "mixins": [ "streak.mixins.json" ], diff --git a/src/main/resources/streak-addon.accesswidener b/src/main/resources/streak-addon.accesswidener new file mode 100644 index 00000000..b3726da7 --- /dev/null +++ b/src/main/resources/streak-addon.accesswidener @@ -0,0 +1,5 @@ +accessWidener v2 named + +accessible class net/minecraft/world/chunk/PalettedContainer$Data +accessible field net/minecraft/world/chunk/PalettedContainer data Lnet/minecraft/world/chunk/PalettedContainer$Data; +accessible method net/minecraft/world/chunk/PalettedContainer$Data palette ()Lnet/minecraft/world/chunk/Palette; \ No newline at end of file