Skip to content

Commit 2d5a274

Browse files
committed
Support extra instances of LevelTicks (Fix LeavesBeGone compatibility)
1 parent 0a7b83c commit 2d5a274

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

src/mixins/java/org/spongepowered/common/mixin/core/world/ticks/LevelTicksMixin.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@
4242
import org.spongepowered.common.bridge.world.ticks.LevelChunkTicksBridge;
4343
import org.spongepowered.common.bridge.world.ticks.LevelTicksBridge;
4444
import org.spongepowered.common.bridge.world.ticks.TickNextTickDataBridge;
45+
import org.spongepowered.common.event.tracking.PhaseTracker;
4546

47+
import java.util.Optional;
4648
import java.util.function.BiConsumer;
4749

4850
@Mixin(LevelTicks.class)
@@ -96,6 +98,10 @@ public abstract class LevelTicksMixin<T> implements LevelTicksBridge<T> {
9698

9799
@Override
98100
public ServerLevel bridge$level() {
101+
if (this.impl$level == null) {
102+
final Optional<ServerLevel> trackedLevel = PhaseTracker.getInstance().currentCause().first(ServerLevel.class);
103+
this.impl$level = trackedLevel.orElseThrow(() -> new IllegalStateException("Cannot find level of LevelTicks"));
104+
}
99105
return this.impl$level;
100106
}
101107
}

0 commit comments

Comments
 (0)