Skip to content

Commit 009ed48

Browse files
committed
BundleDupe & BookBot + Autofly File Select
1 parent dedefad commit 009ed48

File tree

13 files changed

+1138
-79
lines changed

13 files changed

+1138
-79
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,6 @@ hs_err_pid*
3434
*.pyc
3535
*.py
3636

37+
Thumbs.db
3738
desktop.ini
3839
*.rar

README.md

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Wurst Client v7.51.4 (MC1.21.11) - Modified by CevAPI
1+
# Wurst Client v7.52 (MC1.21.11) - Modified by CevAPI
22

33
![CevAPI Logo](https://i.imgur.com/kBIn9Ab.png)
44

@@ -9,9 +9,9 @@
99
- Wiki: [https://wurst.wiki/](https://go.wimods.net/from/github.com/Wurst-Imperium/Wurst7?to=https%3A%2F%2Fwurst.wiki%2F%3Futm_source%3DGitHub%26utm_medium%3DWurst7%2Brepo)
1010

1111
## Supported Versions
12-
- [1.21.1 - New (Based on 1.21.8)](https://github.com/cev-api/Wurst7-CevAPI/tree/1.21.1)
13-
- [1.21.8](https://github.com/cev-api/Wurst7-CevAPI/tree/1.21.8)
14-
- [1.21.10](https://github.com/cev-api/Wurst7-CevAPI/tree/1.21.10)
12+
- [1.21.1 - Not Updated](https://github.com/cev-api/Wurst7-CevAPI/tree/1.21.1)
13+
- [1.21.8 - Not Updated](https://github.com/cev-api/Wurst7-CevAPI/tree/1.21.8)
14+
- [1.21.10 - Not Updated](https://github.com/cev-api/Wurst7-CevAPI/tree/1.21.10)
1515
- [1.21.11 - Latest/Recommended (Based on 1.21.10)](https://github.com/cev-api/Wurst7-CevAPI/tree/master)
1616

1717
### Download
@@ -696,6 +696,36 @@ This hack is still undergoing development and has only been tested in the end. A
696696
- `.autofly <x> <y> <z> [height] [speed]` or `.autofly <x> <z> [height] [speed]` to AutoFly to a given waypoint (relative `~` values are supported as well as comma separated entries). Omitting Y causes it to simply land at the waypoint.
697697
- `.autofly next`/`.autofly prev(ious)` cycles the SeedMapper export list, while `.autofly stop|off|disable` turns off AutoFly.
698698

699+
### BundleDupe
700+
701+
- One-click bundle dupe inspired by the work of Numbers/Autism Inc. Works on Paper 1.21.11 pre-[v111](https://github.com/PaperMC/Paper/commit/302c47c0dda6251fd5eb6bf7130345e9dcb988fc).
702+
- Prep: 100-page high-entropy book in inv + bundle with ~63 target items + 1 filler.
703+
- Modes
704+
- TIMEOUT: wait KeepAlive → block KAs → after Ns use bundle → lag → off
705+
- KICK: lag → use bundle → disconnect
706+
- Kick
707+
- HURT / QUIT / CHARS / CLIENTSETTINGS
708+
- MOVE_NAN / MOVE_INF / MOVE_OOB
709+
- CLICK_INVALID / UPDATESLOT / CUSTOM
710+
- Lag
711+
- CUSTOM / BOAT_NBT (chest boat/minecart) / CLICKSLOT (needs NBT book) / ENTITY_NBT (crosshair target)
712+
- Settings
713+
- TIMEOUT: seconds + interact delay (ms)
714+
- Lag: packet counts
715+
- Notes
716+
- Not all kicks suit all servers; BoatNBT needs riding; EntityNBT needs looking at entity.
717+
718+
### BookBot
719+
- Based on the hack of the same name in Meteor. Needed for BundleDupe.
720+
- Auto-writes (optional sign) writable Books for high-entropy NBT or spam purposes.
721+
- Modes
722+
- Random: random chars
723+
- File: from .txt (word-wrap)
724+
- Settings
725+
- Pages / ASCII-only / delay
726+
- Sign + title + append count
727+
- File + word-wrap
728+
699729
## What's changed or improved in this fork?
700730

701731
### ChestESP

src/main/java/net/wurstclient/hack/HackList.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ public final class HackList implements UpdateListener
111111
public final ClickAuraHack clickAuraHack = new ClickAuraHack();
112112
public final ClickGuiHack clickGuiHack = new ClickGuiHack();
113113
public final CrashChestHack crashChestHack = new CrashChestHack();
114+
public final BundleDupeHack bundleDupeHack = new BundleDupeHack();
114115
public final CreativeFlightHack creativeFlightHack =
115116
new CreativeFlightHack();
116117
public final CriticalsHack criticalsHack = new CriticalsHack();
@@ -153,6 +154,7 @@ public final class HackList implements UpdateListener
153154
public final JetpackHack jetpackHack = new JetpackHack();
154155
public final KaboomHack kaboomHack = new KaboomHack();
155156
public final KickForensicsHack kickForensicsHack = new KickForensicsHack();
157+
public final BookBotHack bookBotHack = new BookBotHack();
156158
public final KillauraLegitHack killauraLegitHack = new KillauraLegitHack();
157159
public final KillauraHack killauraHack = new KillauraHack();
158160
public final KillPotionHack killPotionHack = new KillPotionHack();

src/main/java/net/wurstclient/hacks/AutoFlyHack.java

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import net.wurstclient.hack.Hack;
3232
import net.wurstclient.settings.ButtonSetting;
3333
import net.wurstclient.settings.CheckboxSetting;
34+
import net.wurstclient.settings.FileSetting;
3435
import net.wurstclient.settings.SliderSetting;
3536
import net.wurstclient.settings.SliderSetting.ValueDisplay;
3637
import net.wurstclient.settings.TextFieldSetting;
@@ -49,6 +50,20 @@ public final class AutoFlyHack extends Hack
4950
"Import file",
5051
"SeedMapper export JSON filename. Leave empty to use the latest file in seedmapper/exports.",
5152
"");
53+
private final FileSetting exportJsonPicker =
54+
new FileSetting("Export JSON", "", "../seedmapper/exports", folder -> {
55+
try
56+
{
57+
java.nio.file.Files.createDirectories(folder);
58+
java.nio.file.Path p =
59+
folder.resolve("autofly-placeholder.json");
60+
if(!java.nio.file.Files.exists(p))
61+
java.nio.file.Files.writeString(p, "[]\n");
62+
}catch(java.io.IOException e)
63+
{
64+
throw new RuntimeException(e);
65+
}
66+
});
5267
private final ButtonSetting reloadJsonButton =
5368
new ButtonSetting("Reload JSON", this::reloadJsonTargets);
5469
private final ButtonSetting previousButton =
@@ -145,6 +160,7 @@ public AutoFlyHack()
145160
setCategory(Category.MOVEMENT);
146161
addSetting(waypointText);
147162
addSetting(importFile);
163+
addSetting(exportJsonPicker);
148164
addSetting(reloadJsonButton);
149165
addSetting(previousButton);
150166
addSetting(nextButton);
@@ -605,6 +621,24 @@ private File resolveJsonFile()
605621
return f.exists() ? f : null;
606622
}
607623

624+
// Prefer a file selected via the picker if it looks valid
625+
try
626+
{
627+
java.nio.file.Path selected = exportJsonPicker.getSelectedFile();
628+
if(selected != null)
629+
{
630+
File f = selected.toFile();
631+
String name = f.getName().toLowerCase(Locale.ROOT);
632+
if(f.exists() && name.endsWith(".json")
633+
&& !name.equals("autofly-placeholder.json"))
634+
return f;
635+
}
636+
}catch(Throwable ignored)
637+
{
638+
// Fall through to latest-file logic
639+
}
640+
641+
// Fallback: use the latest JSON in the exports folder
608642
File[] files = exportDir.listFiles(
609643
(d, name) -> name.toLowerCase(Locale.ROOT).endsWith(".json"));
610644
if(files == null || files.length == 0)

0 commit comments

Comments
 (0)