44import me .shedaniel .autoconfig .AutoConfig ;
55import net .fabricmc .fabric .api .client .event .lifecycle .v1 .ClientTickEvents ;
66
7+ import static java .lang .System .nanoTime ;
78import static com .thevoidblock .syncac .util .GetCarpetLoggerInfo .getTPS ;
89
910public class AutoClicker {
@@ -13,24 +14,27 @@ public static void registerAutoClickers() {
1314 AutoClicker .registerAutoClicker (new UseAutoClicker ());
1415 }
1516
17+ private static final long TICK_TO_NANO = 50_000_000 ;
18+
1619 public static void registerAutoClicker (AutoClickerConfig clicker ) {
1720
21+ clicker .startTime = nanoTime ();
22+
1823 ClientTickEvents .END_CLIENT_TICK .register (
1924 client -> {
2025
21- clicker . syncInterval = clicker . getInterval ();
26+ ModConfig config = AutoConfig . getConfigHolder ( ModConfig . class ). getConfig ();
2227
23- if (clicker . isEnabled () && AutoConfig . getConfigHolder ( ModConfig . class ). getConfig (). MOD_ENABLED ) {
28+ if (config . MOD_ENABLED && clicker . isEnabled () ) {
2429
25- if (clicker .isSync ()) clicker . syncInterval = ( int ) Math . max ( clicker . getInterval () *( 20 / getTPS ()), clicker . syncInterval );
26-
27- if ( clicker .timeElapsed >= clicker .syncInterval ) {
30+ if (clicker .isSync ())
31+ if ( getTPS () <= 20 ) clicker . syncInterval = ( int ) Math . max ( clicker . getInterval () *( 20 / getTPS ()), clicker . syncInterval );
32+ else clicker .syncInterval = ( int ) Math . min ( clicker .getInterval () *( 20 / getTPS ()), clicker . syncInterval );
2833
34+ if ((nanoTime () - clicker .startTime ) >= clicker .syncInterval * TICK_TO_NANO ) {
2935 clicker .run ();
30- clicker .timeElapsed = 0 ;
31-
32- } else {
33- clicker .timeElapsed ++;
36+ clicker .syncInterval = clicker .getInterval ();
37+ clicker .startTime = nanoTime ();
3438 }
3539 }
3640
0 commit comments