Skip to content

Commit

Permalink
= Auto Sprayonator - bug fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
onixiya1337 authored Jan 8, 2024
2 parents bf4107b + e1168a7 commit c0a918d
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 5 deletions.
4 changes: 2 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ baseGroup=com.jelly.farmhelperv2
mcVersion=1.8.9
modid=farmhelperv2
modName=FarmHelper
version=2.4.0-pre11
shouldRelease=false
version=2.4.0-pre12
shouldRelease=true
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.jelly.farmhelperv2.config.FarmHelperConfig;
import com.jelly.farmhelperv2.config.FarmHelperConfig.SPRAYONATOR_ITEM;
import com.jelly.farmhelperv2.event.DrawScreenAfterEvent;
import com.jelly.farmhelperv2.event.ReceivePacketEvent;
import com.jelly.farmhelperv2.feature.FeatureManager;
import com.jelly.farmhelperv2.feature.IFeature;
import com.jelly.farmhelperv2.handler.GameStateHandler;
Expand All @@ -23,6 +24,7 @@
import net.minecraft.client.gui.inventory.GuiInventory;
import net.minecraft.inventory.ContainerChest;
import net.minecraft.inventory.Slot;
import net.minecraft.network.play.server.S18PacketEntityTeleport;
import net.minecraft.util.StringUtils;
import net.minecraftforge.client.event.ClientChatReceivedEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
Expand All @@ -44,6 +46,13 @@ public class AutoSprayonator implements IFeature {
private final String skymartItemName = "Sprayonator";
@Getter
private final Clock sprayonatorDelay = new Clock();
@Getter
private final Clock enableDelay = new Clock();
private final long sprayonatorEnableDelayTime = 1200L;
private long sprayonatorEnableDelayTimeRand = 0L;
{
updateRandomDelay();
}
private boolean running;
@Getter
private SPRAYONATOR_ITEM sprayItem = SPRAYONATOR_ITEM.values()[FarmHelperConfig.sprayonatorType];
Expand Down Expand Up @@ -123,6 +132,7 @@ public void resetStatesAfterMacroDisabled() {
skymartPurchaseState = SKYMART_PURCHASE_STATE.NONE;
bazaarPurchaseState = BAZAAR_PURCHASE_STATE.NONE;
currentGuiState = CURRENT_GUI_STATE.NONE;
updateRandomDelay();
}

@Override
Expand Down Expand Up @@ -182,22 +192,31 @@ public void resetPlots() {
}
}

private void updateRandomDelay() {
sprayonatorEnableDelayTimeRand = (long) (Math.random() * 225);
}

@SubscribeEvent
public void onTickShouldEnable(TickEvent.ClientTickEvent event) {
if (mc.thePlayer == null || mc.theWorld == null) return;
if (running) return;
if (!isToggled()) return;
if (FeatureManager.getInstance().isAnyOtherFeatureEnabled(this)) {
updateRandomDelay();
enableDelay.schedule(sprayonatorEnableDelayTime + sprayonatorEnableDelayTimeRand);
return;
};
if (!MacroHandler.getInstance().isMacroToggled()) return;
if (GameStateHandler.getInstance().getServerClosingSeconds().isPresent()) return;
if (FeatureManager.getInstance().isAnyOtherFeatureEnabled(this)) return;
if (!GameStateHandler.getInstance().inGarden()) return;
if (sprayState != AUTO_SPRAYONATOR_STATE.WAITING_FOR_PLOT) return;
sprayItem = SPRAYONATOR_ITEM.values()[FarmHelperConfig.sprayonatorType];

if (!hasSprayonator() && GameStateHandler.getInstance().getCopper() < 25) {
if (!hasSprayonator()) {
LogUtils.sendError("[Auto Sprayonator] Disabling due to no sprayonator");
return;
}
if (!enableDelay.passed()) return;
PlotData data = sprayonatorPlotStates.get(GameStateHandler.getInstance().getCurrentPlot());
if (data == null)
return;
Expand Down Expand Up @@ -414,6 +433,20 @@ public void onClientTick(TickEvent.ClientTickEvent event) {
}
}

@SubscribeEvent
public void onTeleport(ReceivePacketEvent e) {
if (mc.thePlayer == null || mc.theWorld == null) return;
if (!running) return;
if (!isToggled()) return;
if (e.packet instanceof S18PacketEntityTeleport) {
S18PacketEntityTeleport packet = (S18PacketEntityTeleport) e.packet;
if (packet.getEntityId() == mc.thePlayer.getEntityId()) {
LogUtils.sendError("[Auto Sprayonator] Disabling due to teleport.");
stop();
}
}
}

@SubscribeEvent
public void onGuiOpen(DrawScreenAfterEvent event) {
if (mc.thePlayer == null || mc.theWorld == null) return;
Expand Down Expand Up @@ -552,7 +585,7 @@ public void onChatReceived(ClientChatReceivedEvent e) {
if (!running) return;
if (!isToggled()) return;
if (e.type != 0) return;
String message = StringUtils.stripControlCodes(e.message.getUnformattedText());
String message = StringUtils.stripControlCodes(e.message.getUnformattedTextForChat());
if (message.contains(":")) return;
if (message.contains("You sprayed Plot")) {
String plotNumber = e.message.getUnformattedText().split(" ")[5];
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/jelly/farmhelperv2/hud/DebugHUD.java
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ protected void getLines(List<String> lines, boolean example) {
if (AutoSprayonator.getInstance().isToggled()) {
lines.add("Auto Sprayonator");
lines.add(" Running: " + AutoSprayonator.getInstance().isRunning());
lines.add(" Enable Delay: " + AutoSprayonator.getInstance().getEnableDelay().getRemainingTime());
lines.add(" State: " + AutoSprayonator.getInstance().getSprayState());
lines.add(" Item: " + AutoSprayonator.getInstance().getSprayItem());
lines.add(" Clock: " + AutoSprayonator.getInstance().getSprayonatorDelay().getRemainingTime());
Expand Down

0 comments on commit c0a918d

Please sign in to comment.