mirror of
https://github.com/Wurst-Imperium/Wurst7.git
synced 2024-09-20 01:12:13 +02:00
Merge #1054 (AutoFish Bite mode) into v7.46
This commit is contained in:
commit
c7fec44b16
@ -9,7 +9,9 @@ package net.wurstclient.hacks;
|
||||
|
||||
import net.minecraft.client.network.ClientPlayerEntity;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.entity.projectile.FishingBobberEntity;
|
||||
import net.minecraft.item.Items;
|
||||
import net.minecraft.network.packet.s2c.play.EntityTrackerUpdateS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.PlaySoundS2CPacket;
|
||||
import net.minecraft.sound.SoundEvents;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
@ -23,6 +25,7 @@ import net.wurstclient.hacks.autofish.AutoFishDebugDraw;
|
||||
import net.wurstclient.hacks.autofish.AutoFishRodSelector;
|
||||
import net.wurstclient.hacks.autofish.FishingSpotManager;
|
||||
import net.wurstclient.hacks.autofish.ShallowWaterWarningCheckbox;
|
||||
import net.wurstclient.settings.EnumSetting;
|
||||
import net.wurstclient.settings.SliderSetting;
|
||||
import net.wurstclient.settings.SliderSetting.ValueDisplay;
|
||||
|
||||
@ -32,10 +35,20 @@ import net.wurstclient.settings.SliderSetting.ValueDisplay;
|
||||
public final class AutoFishHack extends Hack
|
||||
implements UpdateListener, PacketInputListener, RenderListener
|
||||
{
|
||||
private final EnumSetting<AutoFishHack.Mode> biteMode = new EnumSetting<>(
|
||||
"Bite mode",
|
||||
"\u00a7lSound\u00a7r mode detects bites by listening for the bite sound.\n"
|
||||
+ "This method is less accurate, but is more resilient against anti-cheats.\n"
|
||||
+ "See the \"Valid range\" setting.\n\n"
|
||||
+ "\u00a7lEntity\u00a7r mode detects bites by listening for fishing hook's entity update packet.\n"
|
||||
+ "It's more accurate than the sound method, but is less resilient against anti-cheats.",
|
||||
AutoFishHack.Mode.values(), AutoFishHack.Mode.SOUND);
|
||||
|
||||
private final SliderSetting validRange = new SliderSetting("Valid range",
|
||||
"Any bites that occur outside of this range will be ignored.\n\n"
|
||||
+ "Increase your range if bites are not being detected, decrease it"
|
||||
+ " if other people's bites are being detected as yours.",
|
||||
+ " if other people's bites are being detected as yours.\n\n"
|
||||
+ "This setting has effect only when \"Mode\" is set to \"Sound\".",
|
||||
1.5, 0.25, 8, 0.25, ValueDisplay.DECIMAL);
|
||||
|
||||
private final SliderSetting catchDelay = new SliderSetting("Catch delay",
|
||||
@ -69,6 +82,7 @@ public final class AutoFishHack extends Hack
|
||||
{
|
||||
super("AutoFish");
|
||||
setCategory(Category.OTHER);
|
||||
addSetting(biteMode);
|
||||
addSetting(validRange);
|
||||
addSetting(catchDelay);
|
||||
addSetting(retryDelay);
|
||||
@ -166,6 +180,15 @@ public final class AutoFishHack extends Hack
|
||||
|
||||
@Override
|
||||
public void onReceivedPacket(PacketInputEvent event)
|
||||
{
|
||||
switch(biteMode.getSelected())
|
||||
{
|
||||
case SOUND -> processSoundUpdate(event);
|
||||
case ENTITY -> processEntityUpdate(event);
|
||||
}
|
||||
}
|
||||
|
||||
private void processSoundUpdate(PacketInputEvent event)
|
||||
{
|
||||
// check packet type
|
||||
if(!(event.getPacket() instanceof PlaySoundS2CPacket sound))
|
||||
@ -193,6 +216,28 @@ public final class AutoFishHack extends Hack
|
||||
biteDetected = true;
|
||||
}
|
||||
|
||||
private void processEntityUpdate(PacketInputEvent event)
|
||||
{
|
||||
// check packet type
|
||||
if(!(event.getPacket() instanceof EntityTrackerUpdateS2CPacket update))
|
||||
return;
|
||||
|
||||
// check if the entity is a bobber
|
||||
if(!(MC.world
|
||||
.getEntityById(update.id()) instanceof FishingBobberEntity bobber))
|
||||
return;
|
||||
|
||||
// check if it's our bobber
|
||||
if(bobber != MC.player.fishHook)
|
||||
return;
|
||||
|
||||
// check if player is fishing
|
||||
if(!isFishing())
|
||||
return;
|
||||
|
||||
biteDetected = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRender(MatrixStack matrixStack, float partialTicks)
|
||||
{
|
||||
@ -206,4 +251,23 @@ public final class AutoFishHack extends Hack
|
||||
&& !player.fishHook.isRemoved()
|
||||
&& player.getMainHandStack().isOf(Items.FISHING_ROD);
|
||||
}
|
||||
|
||||
private enum Mode
|
||||
{
|
||||
SOUND("Sound"),
|
||||
ENTITY("Entity");
|
||||
|
||||
private final String name;
|
||||
|
||||
private Mode(String name)
|
||||
{
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user