Skip to content

Commit ef67f57

Browse files
committed
Added UI-Utils, Towny Hack - Updated HandNoClip, TrialSpawnerESP + More
1 parent aebc913 commit ef67f57

22 files changed

+1959
-500
lines changed

README.md

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ I'm pleased to note that many of the features and improvements below are complet
8282
- PacketRate
8383
- Outreach
8484
- LivestreamDetector
85+
- WardenESP
8586
- Redstone, Bed, Sign & Workstation ESP
8687
- PearlESP (Not a simple trajectory hack)
8788
- SignFramePassThrough (I didn't know something like this existed as a mod already)
@@ -347,6 +348,7 @@ Reports number of waypoints changed.
347348
- Able to record opened Ominous Vaults to avoid re-trying the same ones in the future
348349
- Congifurable with toggles for all of the above
349350
- Toggle to alert in chat when Ominous Key was dispensed
351+
- Toggle to only display vaults
350352

351353
![Trial](https://i.imgur.com/xOL9U3G.png)
352354

@@ -551,6 +553,32 @@ Credits to [Trouser-Streak](https://github.com/etianl/Trouser-Streak/blob/main/s
551553
- Silent switching and returning to previous item upon consumption
552554
- This hack is mostly designed for a specific datapack that allows a much greater range/distance of teleportation with these fruits
553555

556+
### UI-Utils
557+
- Plugin debugging mod/hack.
558+
- Integrated into Wurst as a hack with an in-game, draggable Fabricate Packets overlay (remembers position; optional translucent background).
559+
- An alternative to and reworked version of my 1.21.11 fork of [UI-Utils v2.4.0](https://github.com/cev-api/UI-Utils-CevAPI).
560+
- Started as a mojmap port of the original [UI-Utils v2.4.0](https://github.com/Coderx-Gamer/ui-utils) by MrBreakNFix and Coderx-Gamer.
561+
- Vanilla-compatible packet simulation (minimal slot diffs, post-click revision, single-send) to avoid server resyncs.
562+
- Auto-filled Sync ID and Revision in Fabricate Packets.
563+
- Extra diagnostics and Wurst toggles (send/delay) wired into Wurst’s packet pipeline.
564+
- Toggleable chat logs.
565+
- Added customisable slot number overlay for containers.
566+
- Published with permission from MrBreakNFix.
567+
568+
#### Log Example
569+
```
570+
[12:52:54]: Fabricate ClickSlot: syncId=6, revision=1, slot=2, button=0, action=PICKUP, times=1, diffSlots=1, carriedBefore=<empty>, carriedAfter=class_10939[item=Reference{ResourceKey[minecraft:item / minecraft:oak_slab]=minecraft:oak_slab}, count=11, components=class_10936[addedComponents={}, removedComponents=[]]]
571+
[12:52:54]: Fabricate ClickSlot: menu.containerId=6, syncIdMatch=true, diffDetail=[2: minecraft:oak_slabx11 -> empty]
572+
[12:52:54]: UiUtilsConnectionMixin: attempting to send UI packet class_2813 (sendUiPackets=true, delayUiPackets=false)
573+
```
574+
575+
![UI](https://i.imgur.com/pyHBl9T.png)
576+
577+
### Towny
578+
- A very petty hack that simply enables/disables Towny PVP whilst you're attacking
579+
- Customisable command and tick delay
580+
- Only visible in the Navigator
581+
554582
## What's changed or improved in this fork?
555583

556584
### ChestESP
@@ -616,6 +644,7 @@ Examples:
616644
- Replaced full-sort approach to bounded max-heap (PriorityQueue) that keeps the closest N matches. This avoids sorting entire result and keeps search as fast as X-Ray.
617645
- Safer rescans and better crash handling.
618646
- Improved search speed.
647+
- Added highlight corners (lines) and fill settings (Same as X-Ray)
619648

620649
![Search](https://i.imgur.com/jxcn89u.png)
621650

@@ -732,7 +761,6 @@ Examples:
732761

733762
### HandNoClip Improved
734763
- Now shows a red X over your crosshair to remind you that you cannot place or interact with blocks (in front of you) while the hack is enabled
735-
- X is removed when using any combat weapon as they still function normally
736764

737765
### Keybind Manager Improved
738766
- Can now clear the entire keybinds instead of just resetting.

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ fabric_api_version=0.140.2+1.21.11
1616

1717
# Mod Properties
1818
mod_version=v7.51.4-CevAPI-MC1.21.11
19-
fork_release_version=0.42
19+
fork_release_version=0.43
2020
maven_group=net.wurstclient
2121
archives_base_name=Wurst-Client
2222
mod_loader=Fabric

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,7 @@ public final class HackList implements UpdateListener
248248
public final net.wurstclient.hacks.LootSearchHack lootSearchHack =
249249
new net.wurstclient.hacks.LootSearchHack();
250250
public final CoordLoggerHack coordLoggerHack = new CoordLoggerHack();
251+
public final TownyHack townyHack = new TownyHack();
251252

252253
private final TreeMap<String, Hack> hax =
253254
new TreeMap<>(String::compareToIgnoreCase);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public boolean isBlockInList(BlockPos pos)
7575
@Override
7676
public void onRenderGUI(GuiGraphics context, float partialTicks)
7777
{
78-
if(MC.player == null || isHoldingCombatWeapon())
78+
if(MC.player == null)
7979
return;
8080

8181
drawWarningCrosshair(context);

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

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import net.minecraft.resources.Identifier;
2424
import net.minecraft.world.level.ChunkPos;
2525
import net.minecraft.world.level.block.Block;
26+
import net.minecraft.world.phys.AABB;
2627
import net.wurstclient.Category;
2728
import net.wurstclient.SearchTags;
2829
import net.wurstclient.WurstRenderLayers;
@@ -32,6 +33,7 @@
3233
import net.wurstclient.events.CameraTransformViewBobbingListener;
3334
import net.wurstclient.hack.Hack;
3435
import net.wurstclient.settings.BlockSetting;
36+
import net.wurstclient.settings.CheckboxSetting;
3537
import net.wurstclient.settings.TextFieldSetting;
3638
import net.wurstclient.settings.ChunkAreaSetting;
3739
import net.wurstclient.settings.SliderSetting;
@@ -73,6 +75,16 @@ private enum SearchMode
7375
// New: style setting for boxes/lines like ChestESP
7476
private final net.wurstclient.settings.EspStyleSetting style =
7577
new net.wurstclient.settings.EspStyleSetting();
78+
private final CheckboxSetting highlightCorners = new CheckboxSetting(
79+
"Highlight corners",
80+
"Partial ESP for blocks, will cause lag if there are too many!", false);
81+
private final CheckboxSetting highlightFill = new CheckboxSetting(
82+
"Fill blocks (outline + fill)",
83+
"Adds filled boxes for matched blocks. Will cause lag if there are too many!",
84+
false);
85+
private final SliderSetting highlightAlpha =
86+
new SliderSetting("Highlight transparency", 80, 1, 100, 1,
87+
ValueDisplay.INTEGER.withSuffix("%"));
7688
private final net.wurstclient.settings.CheckboxSetting stickyArea =
7789
new net.wurstclient.settings.CheckboxSetting("Sticky area",
7890
"Off: Re-centers the scan every chunk to match ESP drop-off.\n"
@@ -124,6 +136,7 @@ private enum SearchMode
124136

125137
// Keep a copy of matching positions for tracers
126138
private HashSet<BlockPos> lastMatchingBlocks;
139+
private java.util.List<AABB> highlightBoxes;
127140

128141
private EasyVertexBuffer vertexBuffer;
129142
private RegionPos bufferRegion;
@@ -150,6 +163,9 @@ public SearchHack()
150163
addSetting(query);
151164
addSetting(block);
152165
addSetting(style);
166+
addSetting(highlightCorners);
167+
addSetting(highlightFill);
168+
addSetting(highlightAlpha);
153169
addSetting(stickyArea);
154170
addSetting(useFixedColor);
155171
addSetting(fixedColor);
@@ -231,6 +247,7 @@ protected void onDisable()
231247
vertexBuffer = null;
232248
bufferRegion = null;
233249
lastMatchingBlocks = null;
250+
highlightBoxes = null;
234251
tracerEnds = null;
235252
lastPlayerChunk = null;
236253
foundCount = 0; // reset count
@@ -367,7 +384,7 @@ public void onRender(PoseStack matrixStack, float partialTicks)
367384
float[] rgb = useFixedColor.isChecked() ? fixedColor.getColorF()
368385
: RenderUtils.getRainbowColor();
369386

370-
if(drawBoxes)
387+
if(drawBoxes && highlightFill.isChecked())
371388
{
372389
matrixStack.pushPose();
373390
RenderUtils.applyRegionalRenderOffset(matrixStack, bufferRegion);
@@ -382,6 +399,22 @@ public void onRender(PoseStack matrixStack, float partialTicks)
382399
RenderUtils.drawTracers(matrixStack, partialTicks, tracerEnds,
383400
tracerColor, false);
384401
}
402+
403+
if(highlightBoxes != null && !highlightBoxes.isEmpty())
404+
{
405+
float alpha = getHighlightAlphaFloat();
406+
int color = RenderUtils.toIntColor(rgb, alpha);
407+
if(highlightFill.isChecked() && !drawBoxes)
408+
{
409+
float halfAlpha = Math.max(1F / 255F, alpha / 2F);
410+
int solidColor = RenderUtils.toIntColor(rgb, halfAlpha);
411+
RenderUtils.drawSolidBoxes(matrixStack, highlightBoxes,
412+
solidColor, false);
413+
}
414+
if(highlightCorners.isChecked())
415+
RenderUtils.drawOutlinedBoxes(matrixStack, highlightBoxes,
416+
color, false);
417+
}
385418
}
386419

387420
private String normalizeQuery(String rawQuery)
@@ -641,6 +674,8 @@ private void setBufferFromVertices(ArrayList<int[]> vertices,
641674
// build tracer endpoints now that we have matching blocks
642675
if(matchingBlocks != null)
643676
{
677+
highlightBoxes = matchingBlocks.stream().map(AABB::new)
678+
.collect(java.util.stream.Collectors.toList());
644679
tracerEnds = matchingBlocks.stream().map(pos -> {
645680
if(net.wurstclient.util.BlockUtils.canBeClicked(pos))
646681
return net.wurstclient.util.BlockUtils.getBoundingBox(pos)
@@ -651,6 +686,7 @@ private void setBufferFromVertices(ArrayList<int[]> vertices,
651686
foundCount = Math.min(matchingBlocks.size(), 999);
652687
}else
653688
{
689+
highlightBoxes = null;
654690
foundCount = 0;
655691
}
656692
}
@@ -669,6 +705,7 @@ private void stopBuildingBuffer(boolean discardCurrent)
669705
{
670706
tracerEnds = null;
671707
lastMatchingBlocks = null;
708+
highlightBoxes = null;
672709
foundCount = 0;
673710
if(vertexBuffer != null)
674711
{
@@ -678,4 +715,11 @@ private void stopBuildingBuffer(boolean discardCurrent)
678715
bufferRegion = null;
679716
}
680717
}
718+
719+
private float getHighlightAlphaFloat()
720+
{
721+
int v = (int)Math.round(highlightAlpha.getValue());
722+
v = Math.max(1, Math.min(100, v));
723+
return v / 100F;
724+
}
681725
}

0 commit comments

Comments
 (0)