Skip to content

Commit c5656e1

Browse files
committed
Failsafe update
Rotations: = It will stop rotating after receiving rotation packets if the rotation was already started Pests Destroyer, Visitors Macro, Auto Pest Exchange: = Added early checks to prevent macro execution (including rotations) during failsafe
1 parent a247aab commit c5656e1

File tree

5 files changed

+27
-1
lines changed

5 files changed

+27
-1
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@ baseGroup=com.jelly.farmhelperv2
44
mcVersion=1.8.9
55
modid=farmhelperv2
66
modName=FarmHelper
7-
version=2.8.13-pre2
7+
version=2.8.13
88
shouldRelease=true

src/main/java/com/jelly/farmhelperv2/failsafe/impl/RotationFailsafe.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@ private void evaluateRotation() {
133133
}
134134
if (shouldTriggerCheck(rotationBeforeReacting.getYaw(), rotationBeforeReacting.getPitch())) {
135135
FailsafeManager.getInstance().possibleDetection(this);
136+
if (RotationHandler.getInstance().isRotating())
137+
RotationHandler.getInstance().reset();
136138
} else {
137139
FailsafeManager.getInstance().emergencyQueue.remove(this);
138140
if (FailsafeManager.getInstance().emergencyQueue.isEmpty()) {

src/main/java/com/jelly/farmhelperv2/feature/impl/AutoPestExchange.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.jelly.farmhelperv2.feature.impl;
22

33
import com.jelly.farmhelperv2.config.FarmHelperConfig;
4+
import com.jelly.farmhelperv2.failsafe.FailsafeManager;
45
import com.jelly.farmhelperv2.feature.FeatureManager;
56
import com.jelly.farmhelperv2.feature.IFeature;
67
import com.jelly.farmhelperv2.handler.BaritoneHandler;
@@ -158,6 +159,7 @@ public boolean canEnableMacro(boolean manual) {
158159
if (mc.thePlayer == null || mc.theWorld == null) return false;
159160
if (!MacroHandler.getInstance().isMacroToggled() && !manual) return false;
160161
if (FeatureManager.getInstance().isAnyOtherFeatureEnabled(this, VisitorsMacro.getInstance())) return false;
162+
if (!FailsafeManager.getInstance().getEmergencyQueue().isEmpty()) return false;
161163
if (GameStateHandler.getInstance().getServerClosingSeconds().isPresent()) {
162164
LogUtils.sendError("[Auto Pest Exchange] Server is closing in " + GameStateHandler.getInstance().getServerClosingSeconds().get() + " seconds!");
163165
return false;
@@ -216,6 +218,11 @@ public void onTickExecutionNew(TickEvent.ClientTickEvent event) {
216218
if (mc.thePlayer == null || mc.theWorld == null) return;
217219
if (!isToggled()) return;
218220
if (event.phase != TickEvent.Phase.START) return;
221+
if (!FailsafeManager.getInstance().getEmergencyQueue().isEmpty()) return;
222+
if (FailsafeManager.getInstance().triggeredFailsafe.isPresent()) {
223+
stop();
224+
return;
225+
}
219226
if (!GameStateHandler.getInstance().inGarden()) return;
220227

221228
if (stuckClock.isScheduled() && stuckClock.passed()) {

src/main/java/com/jelly/farmhelperv2/feature/impl/PestsDestroyer.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.jelly.farmhelperv2.event.DrawScreenAfterEvent;
66
import com.jelly.farmhelperv2.event.SpawnObjectEvent;
77
import com.jelly.farmhelperv2.event.SpawnParticleEvent;
8+
import com.jelly.farmhelperv2.failsafe.FailsafeManager;
89
import com.jelly.farmhelperv2.feature.IFeature;
910
import com.jelly.farmhelperv2.handler.GameStateHandler;
1011
import com.jelly.farmhelperv2.handler.MacroHandler;
@@ -250,6 +251,8 @@ public boolean canEnableMacro(boolean manually) {
250251
if (isRunning()) return false;
251252
if (!GameStateHandler.getInstance().inGarden()) return false;
252253
if (!MacroHandler.getInstance().isMacroToggled() && !manually) return false;
254+
if (!FailsafeManager.getInstance().getEmergencyQueue().isEmpty()) return false;
255+
if (FailsafeManager.getInstance().triggeredFailsafe.isPresent()) return false;
253256
if (enabled || preparing) return false;
254257
if (GameStateHandler.getInstance().getPestsCount() < FarmHelperConfig.startKillingPestsAt && !manually || (manually && GameStateHandler.getInstance().getPestsCount() == 0))
255258
return false;
@@ -292,6 +295,11 @@ public void onTickExecute(TickEvent.ClientTickEvent event) {
292295
if (event.phase != TickEvent.Phase.START) return;
293296
if (!GameStateHandler.getInstance().inGarden() && escapeState == EscapeState.NONE) return;
294297
if (!enabled) return;
298+
if (!FailsafeManager.getInstance().getEmergencyQueue().isEmpty()) return;
299+
if (FailsafeManager.getInstance().triggeredFailsafe.isPresent()) {
300+
stop();
301+
return;
302+
}
295303

296304

297305
if (stuckClock.isScheduled() && stuckClock.passed()) {

src/main/java/com/jelly/farmhelperv2/feature/impl/VisitorsMacro.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import cc.polyfrost.oneconfig.utils.Multithreading;
44
import com.jelly.farmhelperv2.config.FarmHelperConfig;
5+
import com.jelly.farmhelperv2.failsafe.FailsafeManager;
56
import com.jelly.farmhelperv2.feature.FeatureManager;
67
import com.jelly.farmhelperv2.feature.IFeature;
78
import com.jelly.farmhelperv2.handler.BaritoneHandler;
@@ -221,6 +222,8 @@ public void onTickAFKMode(TickEvent.ClientTickEvent event) {
221222
return;
222223
}
223224
if (MacroHandler.getInstance().isMacroToggled()) return;
225+
if (FailsafeManager.getInstance().triggeredFailsafe.isPresent()) return;
226+
if (!FailsafeManager.getInstance().getEmergencyQueue().isEmpty()) return;
224227
if (!PlayerUtils.isInBarn()) return;
225228
if (isRunning()) return;
226229
if (!afkDelay.passed()) return;
@@ -237,6 +240,7 @@ public boolean canEnableMacro(boolean manual, boolean withError) {
237240
if (!GameStateHandler.getInstance().inGarden()) return false;
238241
if (mc.thePlayer == null || mc.theWorld == null) return false;
239242
if (FeatureManager.getInstance().isAnyOtherFeatureEnabled()) return false;
243+
if (FailsafeManager.getInstance().triggeredFailsafe.isPresent()) return false;
240244

241245
if (GameStateHandler.getInstance().getServerClosingSeconds().isPresent()) {
242246
LogUtils.sendError("[Visitors Macro] Server is closing in " + GameStateHandler.getInstance().getServerClosingSeconds().get() + " seconds!");
@@ -331,11 +335,16 @@ public void onTick(TickEvent.ClientTickEvent event) {
331335
if (mc.thePlayer == null || mc.theWorld == null) return;
332336
if (!GameStateHandler.getInstance().inGarden()) return;
333337
if (delayClock.isScheduled() && !delayClock.passed()) return;
338+
if (!FailsafeManager.getInstance().getEmergencyQueue().isEmpty()) return;
334339
if (GameStateHandler.getInstance().getServerClosingSeconds().isPresent()) {
335340
LogUtils.sendError("[Visitors Macro] Server is closing in " + GameStateHandler.getInstance().getServerClosingSeconds().get() + " seconds!");
336341
stop();
337342
return;
338343
}
344+
if (FailsafeManager.getInstance().triggeredFailsafe.isPresent()) {
345+
stop();
346+
return;
347+
}
339348

340349
if (stuckClock.isScheduled() && stuckClock.passed()) {
341350
if (visitors.isEmpty()) {

0 commit comments

Comments
 (0)