Skip to content

Commit a43cd6c

Browse files
authored
Fix tickadvance not resetting to tr0 on the server side (#19)
2 parents 29dd8e4 + 63ec917 commit a43cd6c

File tree

2 files changed

+23
-9
lines changed

2 files changed

+23
-9
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ discombobulator_version=1.3-SNAPSHOT
99

1010
# mod
1111
mod_name=LoTAS-Light
12-
mod_version=1.1.0
12+
mod_version=1.1.1
1313
maven_group=com.mincecrafttas

src/main/java/com/minecrafttas/lotas_light/mixin/MixinTickRateManager.java

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,10 @@
2929
public abstract class MixinTickRateManager implements Tickratechanger {
3030
@Unique
3131
private static float tickrateSaved = 20;
32-
private boolean advanceTickrate;
32+
@Unique
33+
private boolean advanceTickrateServer;
34+
@Unique
35+
private boolean advanceTickrateClient;
3336
@Unique
3437
private boolean isDisconnecting;
3538

@@ -79,7 +82,8 @@ public float getTickrateSaved() {
7982

8083
@Override
8184
public void toggleTickrate0() {
82-
advanceTickrate = false;
85+
advanceTickrateServer = false;
86+
advanceTickrateClient = false;
8387
if (tickrate == 0) {
8488
setTickRate(tickrateSaved);
8589
} else {
@@ -89,28 +93,31 @@ public void toggleTickrate0() {
8993

9094
@Override
9195
public void enableTickrate0(boolean enable) {
92-
advanceTickrate = false;
96+
advanceTickrateServer = false;
97+
advanceTickrateClient = false;
9398
if (enable) {
9499
if (tickrate != 0)
95100
setTickRate(0f);
96101
} else {
97102
if (tickrate == 0)
98103
setTickRate(tickrateSaved);
99104
}
100-
101105
}
102106

103107
@Override
104108
public void advanceTick() {
105109
if (tickrate == 0) {
106110
setTickRate(tickrateSaved);
107-
this.advanceTickrate = true;
111+
if (isServer())
112+
this.advanceTickrateServer = true;
113+
else
114+
this.advanceTickrateClient = true;
108115
}
109116
}
110117

111118
@Override
112119
public boolean isAdvanceTick() {
113-
return advanceTickrate;
120+
return advanceTickrateServer || advanceTickrateClient;
114121
}
115122

116123
@Override
@@ -124,8 +131,11 @@ public void disconnect() {
124131

125132
@Inject(method = "tick", at = @At("RETURN"))
126133
public void inject_Tick(CallbackInfo ci) {
127-
if (advanceTickrate && !(((TickRateManager) (Object) this) instanceof ServerTickRateManager)) {
128-
this.advanceTickrate = false;
134+
if (advanceTickrateServer || advanceTickrateClient) {
135+
if (isServer())
136+
this.advanceTickrateServer = false;
137+
else
138+
this.advanceTickrateClient = false;
129139
setTickRate(0);
130140
}
131141
}
@@ -151,6 +161,10 @@ public long getAdjustedMilliseconds() {
151161
return (long) (fakeTimeSinceTC + time);
152162
}
153163

164+
private boolean isServer() {
165+
return ((TickRateManager) (Object) this) instanceof ServerTickRateManager;
166+
}
167+
154168
@Shadow
155169
protected abstract void setTickRate(float f);
156170

0 commit comments

Comments
 (0)