Skip to content

Commit

Permalink
1.2.5 Added BoatKill exploit, make MaceKill work w/ flight
Browse files Browse the repository at this point in the history
**Added BoatKill Module**
- Enabling this while in a boat instakills it's passengers. Thank you to [filepile](https://github.com/not-filepile) for writing this! This has been patched in the latest 1.21.2 snapshots.
 
**Macekill module**
- Fixed MaceKill not working while flying with NoFall enabled.

**Chunk Tracing Updates**
- Fixed false positives of chunks showing up as Old Generation in the overworld with NewerNewChunks. That's rare now.
- Fixed lag when you have lots of chunk positions in memory and your character is dead in BaseFinder and NewerNewChunks
- Removed Exposed and Weathered Copper blocks from the default detection list for basefinder because they can occur naturally from copper oxidizing in trial chambers in Trouser for Minecraft 1.21+.
- Added the Weathered Copper to the default list #2 though so it can still be detected if there is alot of them in a chunk in Trouser for Minecraft 1.21+.
- Fixed the Delete data button not working for the nearest detected base chunk with BaseFinder.
- Removed pumpkin stem from the default un-natural blocks list in BaseFinder because it does actually spawn naturally in some villages.

**OnlinePlayerActivityDetector Update**
- Added Cactus to the default list of Overworld false positive blocks to prevent false positives in deserts.
  • Loading branch information
etianl authored Sep 15, 2024
1 parent 9a21138 commit 64dd2bc
Show file tree
Hide file tree
Showing 10 changed files with 123 additions and 48 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ In no particular order
- **BetterAutoSign:** Automatically writes signs with the text you specify, and can also apply glow ink or dye. Includes a "Sign Aura" option which rewrites all the signs around to the text of your choosing. Credits to Meteor-Tweaks for BetterAutoSign, and to [stever9487](https://github.com/stever9487) for the Sign Aura based off of Meteor Rejects' Chest Aura
- **BetterScaffold:** Give you more options for scaffolding, bigger range and others. (Credits to Meteor-Tweaks)
- **BlockListMineCommand:** Adds a custom #mine command to your message history containing all the blocks in the custom blocklist that are near you. Press T then up arrow, then ENTER key to execute the command. BETTER CHAT module is recommended for infinitely long commands. (Credits to etianl :D)
- **BoatKill:** Kills all players in a boat using funny packets. Is patched in Minecraft 1.21.2. Credits to [filepile](https://github.com/not-filepile) for writing this!
- **Book And Quill Dupe:** Overflows data in a book's title to cause dupes and chunk bans. Credits to [Thorioum](https://github.com/Thorioum)!
- **Boom+:** Throws entities or spawns them on the targeted block when you click (Credits to Allah-Hack for the original) I just added more fun things you might want to throw as well as included the option for height based on player Y level.
- **BungeeSpoofer:** Allows you to join servers with an exposed bungeecord backend. (Credits to DAMcraft of ServerSeeker!)
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.9
loader_version=0.15.11

# Mod Properties
mod_version=1.2.4-1.21
mod_version=1.2.5-1.21
maven_group=pwn.noobs
archives_base_name=2trouser-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 @@ -61,6 +61,7 @@ public void onInitialize() {
//Modules.get().add(new -----> Exploits for old versions! <-----());
Modules.get().add(new ShulkerDupe());
Modules.get().add(new InvDupeModule());
Modules.get().add(new BoatKill());
Modules.get().add(new InstantKill());
Modules.get().add(new LecternCrash());

Expand Down
35 changes: 17 additions & 18 deletions src/main/java/pwn/noobs/trouserstreak/modules/BaseFinder.java
Original file line number Diff line number Diff line change
Expand Up @@ -220,15 +220,15 @@ private Set<EntityType<?>> getDefaultCreatures() {
.description("If the total amount of any of these found is greater than the Number specified, throw a base location.")
.defaultValue(
Blocks.CRAFTER, Blocks.BLACK_BED, Blocks.GRAY_BED, Blocks.LIGHT_BLUE_BED, Blocks.LIGHT_GRAY_BED, Blocks.PINK_BED,
Blocks.SPRUCE_SAPLING, Blocks.OAK_SAPLING, Blocks.BIRCH_SAPLING, Blocks.JUNGLE_SAPLING, Blocks.CHERRY_SAPLING, Blocks.BAMBOO_SAPLING, Blocks.PUMPKIN_STEM, Blocks.ATTACHED_PUMPKIN_STEM,
Blocks.SPRUCE_SAPLING, Blocks.OAK_SAPLING, Blocks.BIRCH_SAPLING, Blocks.JUNGLE_SAPLING, Blocks.CHERRY_SAPLING, Blocks.BAMBOO_SAPLING,
Blocks.CHERRY_BUTTON, Blocks.CHERRY_DOOR, Blocks.CHERRY_FENCE, Blocks.CHERRY_FENCE_GATE, Blocks.CHERRY_PLANKS, Blocks.CHERRY_PRESSURE_PLATE, Blocks.CHERRY_STAIRS, Blocks.CHERRY_WOOD, Blocks.CHERRY_TRAPDOOR, Blocks.CHERRY_SLAB,
Blocks.MANGROVE_PLANKS, Blocks.MANGROVE_BUTTON, Blocks.MANGROVE_DOOR, Blocks.MANGROVE_FENCE, Blocks.MANGROVE_FENCE_GATE, Blocks.MANGROVE_STAIRS, Blocks.MANGROVE_SLAB, Blocks.MANGROVE_TRAPDOOR,
Blocks.BIRCH_DOOR, Blocks.BIRCH_FENCE_GATE, Blocks.BIRCH_BUTTON, Blocks.ACACIA_BUTTON, Blocks.DARK_OAK_BUTTON, Blocks.POLISHED_BLACKSTONE_BUTTON, Blocks.SPRUCE_BUTTON,
Blocks.BAMBOO_BLOCK, Blocks.BAMBOO_BUTTON, Blocks.BAMBOO_DOOR, Blocks.BAMBOO_FENCE, Blocks.BAMBOO_FENCE_GATE, Blocks.BAMBOO_MOSAIC, Blocks.BAMBOO_MOSAIC_SLAB, Blocks.BAMBOO_MOSAIC_STAIRS, Blocks.BAMBOO_PLANKS, Blocks.BAMBOO_PRESSURE_PLATE, Blocks.BAMBOO_SLAB, Blocks.BAMBOO_STAIRS, Blocks.BAMBOO_TRAPDOOR, Blocks.CHISELED_BOOKSHELF,
Blocks.BLACK_CONCRETE, Blocks.BLUE_CONCRETE, Blocks.CYAN_CONCRETE, Blocks.BROWN_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.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.PURPLE_TERRACOTTA, Blocks.MAGENTA_TERRACOTTA, Blocks.PINK_TERRACOTTA, Blocks.MAGENTA_GLAZED_TERRACOTTA, Blocks.PINK_GLAZED_TERRACOTTA, Blocks.GRAY_GLAZED_TERRACOTTA, Blocks.BLUE_GLAZED_TERRACOTTA, Blocks.BROWN_GLAZED_TERRACOTTA, Blocks.GREEN_GLAZED_TERRACOTTA,
Blocks.EXPOSED_COPPER, Blocks.WEATHERED_COPPER, Blocks.OXIDIZED_COPPER, Blocks.CUT_COPPER, Blocks.EXPOSED_CUT_COPPER, Blocks.WEATHERED_CUT_COPPER, Blocks.CUT_COPPER_SLAB, Blocks.CUT_COPPER_STAIRS, Blocks.EXPOSED_CUT_COPPER_SLAB, Blocks.EXPOSED_CUT_COPPER_STAIRS, Blocks.WEATHERED_CUT_COPPER_SLAB, Blocks.WEATHERED_CUT_COPPER_STAIRS, Blocks.OXIDIZED_CUT_COPPER_SLAB, Blocks.OXIDIZED_CUT_COPPER_STAIRS, Blocks.COPPER_BULB, Blocks.EXPOSED_COPPER_BULB, Blocks.WEATHERED_COPPER_BULB, Blocks.OXIDIZED_COPPER_BULB, Blocks.CHISELED_COPPER, Blocks.EXPOSED_CHISELED_COPPER, Blocks.WEATHERED_CHISELED_COPPER, Blocks.OXIDIZED_CHISELED_COPPER, Blocks.COPPER_DOOR, Blocks.EXPOSED_COPPER_DOOR, Blocks.WEATHERED_COPPER_DOOR, Blocks.OXIDIZED_COPPER_DOOR, Blocks.COPPER_GRATE, Blocks.EXPOSED_COPPER_GRATE, Blocks.WEATHERED_COPPER_GRATE, Blocks.OXIDIZED_COPPER_GRATE, Blocks.COPPER_TRAPDOOR, Blocks.EXPOSED_COPPER_TRAPDOOR, Blocks.WEATHERED_COPPER_TRAPDOOR,
Blocks.OXIDIZED_COPPER, Blocks.CUT_COPPER, Blocks.EXPOSED_CUT_COPPER, Blocks.WEATHERED_CUT_COPPER, Blocks.CUT_COPPER_SLAB, Blocks.CUT_COPPER_STAIRS, Blocks.EXPOSED_CUT_COPPER_SLAB, Blocks.EXPOSED_CUT_COPPER_STAIRS, Blocks.WEATHERED_CUT_COPPER_SLAB, Blocks.WEATHERED_CUT_COPPER_STAIRS, Blocks.OXIDIZED_CUT_COPPER_SLAB, Blocks.OXIDIZED_CUT_COPPER_STAIRS, Blocks.COPPER_BULB, Blocks.EXPOSED_COPPER_BULB, Blocks.WEATHERED_COPPER_BULB, Blocks.OXIDIZED_COPPER_BULB, Blocks.CHISELED_COPPER, Blocks.EXPOSED_CHISELED_COPPER, Blocks.WEATHERED_CHISELED_COPPER, Blocks.OXIDIZED_CHISELED_COPPER, Blocks.COPPER_DOOR, Blocks.EXPOSED_COPPER_DOOR, Blocks.WEATHERED_COPPER_DOOR, Blocks.OXIDIZED_COPPER_DOOR, Blocks.COPPER_GRATE, Blocks.EXPOSED_COPPER_GRATE, Blocks.WEATHERED_COPPER_GRATE, Blocks.OXIDIZED_COPPER_GRATE, Blocks.COPPER_TRAPDOOR, Blocks.EXPOSED_COPPER_TRAPDOOR, Blocks.WEATHERED_COPPER_TRAPDOOR,
Blocks.WAXED_EXPOSED_COPPER, Blocks.WAXED_WEATHERED_COPPER, Blocks.WAXED_EXPOSED_CUT_COPPER, Blocks.WAXED_WEATHERED_CUT_COPPER, Blocks.WAXED_EXPOSED_CUT_COPPER_SLAB, Blocks.WAXED_EXPOSED_CUT_COPPER_STAIRS, Blocks.WAXED_WEATHERED_CUT_COPPER_SLAB, Blocks.WAXED_WEATHERED_CUT_COPPER_STAIRS, Blocks.WAXED_EXPOSED_CHISELED_COPPER, Blocks.WAXED_WEATHERED_CHISELED_COPPER, Blocks.WAXED_EXPOSED_COPPER_DOOR, Blocks.WAXED_WEATHERED_COPPER_DOOR, Blocks.WAXED_EXPOSED_COPPER_GRATE, Blocks.WAXED_WEATHERED_COPPER_GRATE, Blocks.WAXED_COPPER_TRAPDOOR, Blocks.WAXED_EXPOSED_COPPER_TRAPDOOR, Blocks.WAXED_WEATHERED_COPPER_TRAPDOOR,
Blocks.SOUL_TORCH, Blocks.SOUL_WALL_TORCH, Blocks.POTTED_MANGROVE_PROPAGULE, Blocks.POTTED_AZALEA_BUSH, Blocks.POTTED_CHERRY_SAPLING, Blocks.POTTED_FERN, Blocks.POTTED_ACACIA_SAPLING, Blocks.POTTED_WARPED_FUNGUS, Blocks.POTTED_WARPED_ROOTS, Blocks.POTTED_CRIMSON_FUNGUS, Blocks.POTTED_CRIMSON_ROOTS, Blocks.POTTED_OAK_SAPLING, Blocks.POTTED_WITHER_ROSE, Blocks.WITHER_ROSE,
Blocks.CAKE, Blocks.CANDLE_CAKE, Blocks.BLUE_CANDLE_CAKE, Blocks.BLACK_CANDLE_CAKE, Blocks.BROWN_CANDLE_CAKE, Blocks.CYAN_CANDLE_CAKE, Blocks.GRAY_CANDLE_CAKE, Blocks.GREEN_CANDLE_CAKE, Blocks.LIGHT_BLUE_CANDLE_CAKE, Blocks.LIGHT_GRAY_CANDLE_CAKE, Blocks.LIME_CANDLE_CAKE, Blocks.MAGENTA_CANDLE_CAKE, Blocks.ORANGE_CANDLE_CAKE, Blocks.PINK_CANDLE_CAKE, Blocks.PURPLE_CANDLE_CAKE, Blocks.RED_CANDLE_CAKE, Blocks.WHITE_CANDLE_CAKE, Blocks.YELLOW_CANDLE_CAKE,
Expand All @@ -255,7 +255,7 @@ private Set<EntityType<?>> getDefaultCreatures() {
private final Setting<List<Block>> Blawcks2 = sglists.add(new BlockListSetting.Builder()
.name("Block List #2 (Default)")
.description("If the total amount of any of these found is greater than the Number specified, throw a base location.")
.defaultValue(Blocks.SPRUCE_WALL_SIGN, Blocks.POLISHED_DIORITE, Blocks.NOTE_BLOCK, Blocks.MANGROVE_WOOD)
.defaultValue(Blocks.SPRUCE_WALL_SIGN, Blocks.POLISHED_DIORITE, Blocks.NOTE_BLOCK, Blocks.MANGROVE_WOOD, Blocks.WEATHERED_COPPER)
.filter(this::filterBlocks)
.build()
);
Expand Down Expand Up @@ -598,13 +598,20 @@ public WWidget getWidget(GuiTheme theme) {
public BaseFinder() {
super(Trouser.Main,"BaseFinder", "Estimates if a build or base may be in the chunk based on the blocks it contains.");
}
private void clearChunkData() {
baseChunks.clear();
closestbaseX=2000000000;
closestbaseZ=2000000000;
basedistance=2000000000;
LastBaseFound= new ChunkPos(2000000000, 2000000000);
}
@Override
public void onActivate() {
isBaseFinderModuleOn=1;
if (save.get())saveDataWasOn = true;
else if (!save.get())saveDataWasOn = false;
if (autoreload.get()) {
baseChunks.clear();
clearChunkData();
}
if (save.get() || load.get()) {
if (mc.isInSingleplayer()==true){
Expand Down Expand Up @@ -639,19 +646,15 @@ public void onDeactivate() {
worldchange=false;
justenabledsavedata = 0;
if (remove.get()|autoreload.get()) {
baseChunks.clear();
closestbaseX=2000000000;
closestbaseZ=2000000000;
basedistance=2000000000;
LastBaseFound= new ChunkPos(2000000000, 2000000000);
clearChunkData();
}
super.onDeactivate();
}
@EventHandler
private void onScreenOpen(OpenScreenEvent event) {
if (event.screen instanceof DisconnectedScreen) {
if (worldleaveremove.get()) {
baseChunks.clear();
clearChunkData();
}
}
if (event.screen instanceof DownloadingTerrainScreen) {
Expand All @@ -661,11 +664,7 @@ private void onScreenOpen(OpenScreenEvent event) {
@EventHandler
private void onGameLeft(GameLeftEvent event) {
if (worldleaveremove.get()) {
baseChunks.clear();
closestbaseX=2000000000;
closestbaseZ=2000000000;
basedistance=2000000000;
LastBaseFound= new ChunkPos(2000000000, 2000000000);
clearChunkData();
}
}
@EventHandler
Expand All @@ -688,7 +687,7 @@ else if (basefoundspamTicks >= bsefndtickdelay.get()) {
} else {
serverip = mc.getCurrentServerEntry().address.replace(':', '_');
}
baseChunks.clear();
clearChunkData();
try {
Files.deleteIfExists(Paths.get("TrouserStreak", "BaseChunks", serverip, world, "BaseChunkData.txt"));
} catch (IOException e) {
Expand Down Expand Up @@ -743,7 +742,7 @@ else if (basefoundspamTicks >= bsefndtickdelay.get()) {
if (autoreload.get()) {
autoreloadticks++;
if (autoreloadticks == removedelay.get() * 20) {
baseChunks.clear();
clearChunkData();
if (load.get()) {
loadData();
}
Expand All @@ -754,7 +753,7 @@ else if (basefoundspamTicks >= bsefndtickdelay.get()) {
//autoreload when entering different dimensions
if (load.get() && worldchange == true) {
if (worldleaveremove.get()) {
baseChunks.clear();
clearChunkData();
}
loadData();
worldchange = false;
Expand Down
67 changes: 67 additions & 0 deletions src/main/java/pwn/noobs/trouserstreak/modules/BoatKill.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
package pwn.noobs.trouserstreak.modules;

import meteordevelopment.meteorclient.settings.IntSetting;
import meteordevelopment.meteorclient.settings.Setting;
import meteordevelopment.meteorclient.settings.SettingGroup;
import meteordevelopment.meteorclient.systems.modules.Module;
import meteordevelopment.meteorclient.utils.player.ChatUtils;

import net.minecraft.text.Text;
import net.minecraft.entity.vehicle.BoatEntity;
import net.minecraft.network.packet.c2s.play.VehicleMoveC2SPacket;
import net.minecraft.util.math.Vec3d;
import pwn.noobs.trouserstreak.Trouser;

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class BoatKill extends Module {

public BoatKill() {
super(Trouser.Main, "BoatKill", "Kill everyone in a boat using funny packets.");
}

private final SettingGroup repeatGroup = settings.createGroup("Repeat");
private final SettingGroup delayGroup = settings.createGroup("Delay");
private final Setting<Integer> repeat = repeatGroup.add(new IntSetting.Builder()
.name("Repeat")
.description("Number of times to repeat the action")
.defaultValue(20)
.min(1)
.sliderRange(1,100)
.build()
);
private final Setting<Integer> delay = delayGroup.add(new IntSetting.Builder()
.name("Delay")
.description("Delay between each action in seconds")
.defaultValue(0)
.min(0)
.sliderRange(0,100)
.build()
);

private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);

@Override
public void onActivate() {
if (!(mc.player.getVehicle() instanceof BoatEntity boat)) {
ChatUtils.sendMsg(Text.of("you must be on the boat."));
toggle();
return;
}
Vec3d originalPos = boat.getPos();
boat.setPosition(originalPos.add(0, 0.05, 0));
VehicleMoveC2SPacket groundPacket = new VehicleMoveC2SPacket(boat);
boat.setPosition(originalPos.add(0, 20, 0));
VehicleMoveC2SPacket skyPacket = new VehicleMoveC2SPacket(boat);
boat.setPosition(originalPos);
for (int i = 0; i < repeat.get(); i++) { // 디폴트값:20
scheduler.schedule(() -> mc.player.networkHandler.sendPacket(skyPacket), delay.get(), TimeUnit.SECONDS);
scheduler.schedule(() -> mc.player.networkHandler.sendPacket(groundPacket), delay.get(), TimeUnit.SECONDS);
}
mc.player.networkHandler.sendPacket(new VehicleMoveC2SPacket(boat));
ChatUtils.sendMsg(Text.of("exploit executed successfully."));
toggle();
}
}
20 changes: 15 additions & 5 deletions src/main/java/pwn/noobs/trouserstreak/modules/MaceKill.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import meteordevelopment.meteorclient.events.packets.PacketEvent;
import meteordevelopment.meteorclient.mixininterface.IPlayerInteractEntityC2SPacket;
import meteordevelopment.meteorclient.mixininterface.IPlayerMoveC2SPacket;
import meteordevelopment.meteorclient.settings.*;
import meteordevelopment.meteorclient.systems.modules.Module;
import meteordevelopment.orbit.EventHandler;
Expand Down Expand Up @@ -80,11 +81,15 @@ private void onSendPacket(PacketEvent.Send event) {
mc.player.networkHandler.sendPacket(new VehicleMoveC2SPacket(mc.player.getVehicle()));
} else {
for (int i = 0; i < 4; i++) {
mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), mc.player.getY(), mc.player.getZ(), true));
mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.OnGroundOnly(false));
}
double maxHeight = Math.min(mc.player.getY() + 22, mc.player.getY() + blocks);
mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), maxHeight, mc.player.getZ(), false));
mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(previouspos.getX(), previouspos.getY(), previouspos.getZ(), false));
PlayerMoveC2SPacket movepacket = new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), maxHeight, mc.player.getZ(), false);
PlayerMoveC2SPacket homepacket = new PlayerMoveC2SPacket.PositionAndOnGround(previouspos.getX(), previouspos.getY(), previouspos.getZ(), false);
((IPlayerMoveC2SPacket) homepacket).setTag(1337);
((IPlayerMoveC2SPacket) movepacket).setTag(1337);
mc.player.networkHandler.sendPacket(movepacket);
mc.player.networkHandler.sendPacket(homepacket);
}
return;
}
Expand All @@ -100,6 +105,9 @@ private void onSendPacket(PacketEvent.Send event) {
mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.OnGroundOnly(false));
}
mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), mc.player.getY() + blocks, mc.player.getZ(), false));
PlayerMoveC2SPacket movepacket = new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), mc.player.getY() + blocks, mc.player.getZ(), false);
((IPlayerMoveC2SPacket) movepacket).setTag(1337);
mc.player.networkHandler.sendPacket(movepacket);
}

// Move back to original position
Expand All @@ -110,9 +118,11 @@ private void onSendPacket(PacketEvent.Send event) {
mc.player.getVehicle().setPosition(previouspos);
mc.player.networkHandler.sendPacket(new VehicleMoveC2SPacket(mc.player.getVehicle()));
} else {
mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(previouspos.getX(), previouspos.getY(), previouspos.getZ(), false));
PlayerMoveC2SPacket homepacket = new PlayerMoveC2SPacket.PositionAndOnGround(previouspos.getX(), previouspos.getY(), previouspos.getZ(), false);
((IPlayerMoveC2SPacket) homepacket).setTag(1337);
mc.player.networkHandler.sendPacket(homepacket);
// Do it again to be sure it happens
mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(previouspos.getX(), previouspos.getY(), previouspos.getZ(), false));
mc.player.networkHandler.sendPacket(homepacket);
}
}
}
Expand Down
Loading

0 comments on commit 64dd2bc

Please sign in to comment.