Skip to content

Commit 6375079

Browse files
committed
Added WebhookAlert & OppStats
1 parent c3034b9 commit 6375079

9 files changed

Lines changed: 2082 additions & 12 deletions

File tree

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,8 @@ public final class HackList implements UpdateListener
285285
public final XRayHack xRayHack = new XRayHack();
286286
public final WaypointsHack waypointsHack = new WaypointsHack();
287287
public final ViewmodelHack viewmodelHack = new ViewmodelHack();
288+
public final WebhookAlertHack webhookAlertHack = new WebhookAlertHack();
289+
public final OppStatsHack oppStatsHack = new OppStatsHack();
288290
public final BreadcrumbsHack breadcrumbsHack = new BreadcrumbsHack();
289291
public final LogoutSpotsHack logoutSpotsHack = new LogoutSpotsHack();
290292
public final TridentEspHack tridentEspHack = new TridentEspHack();

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

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1161,8 +1161,10 @@ private boolean checkStopOnPlayers()
11611161
continue;
11621162

11631163
String name = safeString(p.getName().getString());
1164-
ChatUtils.message("Disabled: Player detected"
1165-
+ (name.isBlank() ? "" : " (" + name + ")"));
1164+
String message = "Disabled: Player detected"
1165+
+ (name.isBlank() ? "" : " (" + name + ")");
1166+
ChatUtils.message(message);
1167+
WURST.getHax().webhookAlertHack.onAutoFlyStopped(message);
11661168
setEnabled(false);
11671169
return true;
11681170
}
@@ -1178,7 +1180,9 @@ private boolean checkDisableOnDamage()
11781180
if(MC.player.hurtTime <= 0)
11791181
return false;
11801182

1181-
ChatUtils.message("Disabled: You took damage.");
1183+
String message = "Disabled: You took damage.";
1184+
ChatUtils.message(message);
1185+
WURST.getHax().webhookAlertHack.onAutoFlyStopped(message);
11821186
setEnabled(false);
11831187
return true;
11841188
}
@@ -1303,11 +1307,15 @@ private void stopAutoFly(String message)
13031307
if(disableAutoFlyOnStop.isChecked())
13041308
{
13051309
ChatUtils.message(message + " (AutoFly disabled)");
1310+
WURST.getHax().webhookAlertHack
1311+
.onAutoFlyStopped(message + " (AutoFly disabled)");
13061312
setEnabled(false);
13071313
return;
13081314
}
13091315

13101316
ChatUtils.message(message + " (use Next waypoint to continue)");
1317+
WURST.getHax().webhookAlertHack
1318+
.onAutoFlyStopped(message + " (use Next waypoint to continue)");
13111319
stopHold = true;
13121320
stopIgnoreTicks = 0;
13131321
}

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

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,27 +7,34 @@
77
*/
88
package net.wurstclient.hacks;
99

10+
import com.mojang.blaze3d.vertex.PoseStack;
1011
import java.util.ArrayList;
12+
import java.util.List;
1113
import java.util.stream.Collectors;
1214
import java.util.stream.Stream;
1315
import net.minecraft.world.InteractionHand;
1416
import net.minecraft.world.entity.Entity;
1517
import net.wurstclient.Category;
1618
import net.wurstclient.SearchTags;
19+
import net.wurstclient.events.RenderListener;
1720
import net.wurstclient.events.UpdateListener;
1821
import net.wurstclient.hack.Hack;
1922
import net.wurstclient.settings.AttackSpeedSliderSetting;
23+
import net.wurstclient.settings.CheckboxSetting;
2024
import net.wurstclient.settings.PauseAttackOnContainersSetting;
2125
import net.wurstclient.settings.SliderSetting;
2226
import net.wurstclient.settings.SliderSetting.ValueDisplay;
2327
import net.wurstclient.settings.SwingHandSetting;
2428
import net.wurstclient.settings.SwingHandSetting.SwingHand;
2529
import net.wurstclient.settings.filterlists.EntityFilterList;
2630
import net.wurstclient.util.EntityUtils;
31+
import net.wurstclient.util.NpcUtils;
32+
import net.wurstclient.util.RenderUtils;
2733
import net.wurstclient.util.RotationUtils;
2834

2935
@SearchTags({"multi aura", "ForceField", "force field"})
30-
public final class MultiAuraHack extends Hack implements UpdateListener
36+
public final class MultiAuraHack extends Hack
37+
implements UpdateListener, RenderListener
3138
{
3239
private final SliderSetting range =
3340
new SliderSetting("Range", 5, 1, 6, 0.05, ValueDisplay.DECIMAL);
@@ -47,6 +54,16 @@ public final class MultiAuraHack extends Hack implements UpdateListener
4754
private final EntityFilterList entityFilters =
4855
EntityFilterList.genericCombat();
4956

57+
private final CheckboxSetting ignoreNpcs = new CheckboxSetting(
58+
"Ignore NPCs", "Skips likely server-side NPC players.", true);
59+
60+
private final CheckboxSetting showAttackTracers =
61+
new CheckboxSetting("Show attack tracers",
62+
"Draw tracer lines to entities MultiAura is currently targeting.",
63+
false);
64+
65+
private final List<Entity> currentTargets = new ArrayList<>();
66+
5067
public MultiAuraHack()
5168
{
5269
super("MultiAura");
@@ -57,6 +74,8 @@ public MultiAuraHack()
5774
addSetting(fov);
5875
addSetting(swingHand);
5976
addSetting(pauseOnContainers);
77+
addSetting(ignoreNpcs);
78+
addSetting(showAttackTracers);
6079

6180
entityFilters.forEach(this::addSetting);
6281
}
@@ -77,17 +96,21 @@ protected void onEnable()
7796

7897
speed.resetTimer();
7998
EVENTS.add(UpdateListener.class, this);
99+
EVENTS.add(RenderListener.class, this);
80100
}
81101

82102
@Override
83103
protected void onDisable()
84104
{
85105
EVENTS.remove(UpdateListener.class, this);
106+
EVENTS.remove(RenderListener.class, this);
107+
currentTargets.clear();
86108
}
87109

88110
@Override
89111
public void onUpdate()
90112
{
113+
currentTargets.clear();
91114
speed.updateTimer();
92115
if(!speed.isTimeToAttack())
93116
return;
@@ -107,10 +130,16 @@ public void onUpdate()
107130

108131
stream = entityFilters.applyTo(stream);
109132

133+
if(ignoreNpcs.isChecked())
134+
stream = stream.filter(
135+
e -> !(e instanceof net.minecraft.world.entity.player.Player p)
136+
|| !NpcUtils.isLikelyNpcPlayer(p));
137+
110138
ArrayList<Entity> entities =
111139
stream.collect(Collectors.toCollection(ArrayList::new));
112140
if(entities.isEmpty())
113141
return;
142+
currentTargets.addAll(entities);
114143

115144
WURST.getHax().autoSwordHack.setSlot(entities.get(0));
116145

@@ -127,4 +156,26 @@ public void onUpdate()
127156
swingHand.swing(InteractionHand.MAIN_HAND);
128157
speed.resetTimer();
129158
}
159+
160+
@Override
161+
public void onRender(PoseStack matrixStack, float partialTicks)
162+
{
163+
if(!showAttackTracers.isChecked() || currentTargets.isEmpty())
164+
return;
165+
166+
ArrayList<RenderUtils.ColoredPoint> points = new ArrayList<>();
167+
for(Entity e : currentTargets)
168+
{
169+
if(e == null || e.isRemoved())
170+
continue;
171+
points.add(new RenderUtils.ColoredPoint(
172+
e.getBoundingBox().getCenter(), 0xFFFF4444));
173+
}
174+
175+
if(points.isEmpty())
176+
return;
177+
178+
RenderUtils.drawTracers("multiaura_debug", matrixStack, partialTicks,
179+
points, false, 2.0);
180+
}
130181
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1185,6 +1185,7 @@ private void markNew(ChunkPos chunkPos)
11851185
indexRemove(idxOldGen, chunkPos);
11861186
if(saveChunkData.isChecked())
11871187
saveChunk(Paths.NewChunkData, chunkPos);
1188+
WURST.getHax().webhookAlertHack.onChunkDetected("new chunk", chunkPos);
11881189
triggerAlarm(AlarmType.NEW);
11891190
}
11901191

@@ -1203,6 +1204,7 @@ private void markOld(ChunkPos chunkPos)
12031204
indexRemove(idxOldGen, chunkPos);
12041205
if(saveChunkData.isChecked())
12051206
saveChunk(Paths.OldChunkData, chunkPos);
1207+
WURST.getHax().webhookAlertHack.onChunkDetected("old chunk", chunkPos);
12061208
triggerAlarm(AlarmType.OLD);
12071209
}
12081210

0 commit comments

Comments
 (0)