ForgePatch/patches_old/minecraft/net/minecraft/world/server/ServerMultiWorld.java.patch

25 lines
1.2 KiB
Diff

--- a/net/minecraft/world/server/ServerMultiWorld.java
+++ b/net/minecraft/world/server/ServerMultiWorld.java
@@ -10,11 +10,19 @@
import net.minecraft.world.storage.SaveHandler;
public class ServerMultiWorld extends ServerWorld {
+ private final ServerWorld delegate;
+ private final IBorderListener borderListener;
+
public ServerMultiWorld(ServerWorld p_i50708_1_, MinecraftServer p_i50708_2_, Executor p_i50708_3_, SaveHandler p_i50708_4_, DimensionType p_i50708_5_, IProfiler p_i50708_6_, IChunkStatusListener p_i50708_7_) {
super(p_i50708_2_, p_i50708_3_, p_i50708_4_, new DerivedWorldInfo(p_i50708_1_.func_72912_H()), p_i50708_5_, p_i50708_6_, p_i50708_7_);
- p_i50708_1_.func_175723_af().func_177737_a(new IBorderListener.Impl(this.func_175723_af()));
+ this.delegate = p_i50708_1_;
+ this.borderListener = new IBorderListener.Impl(this.func_175723_af());
+ p_i50708_1_.func_175723_af().func_177737_a(this.borderListener);
}
- protected void func_217389_a() {
+ @Override
+ public void close() throws java.io.IOException {
+ super.close();
+ this.delegate.func_175723_af().removeListener(this.borderListener); // Unlink ourselves, to prevent world leak.
}
}