67 lines
2.4 KiB
Diff
67 lines
2.4 KiB
Diff
--- ../src-base/minecraft/net/minecraft/world/WorldServerMulti.java
|
|
+++ ../src-work/minecraft/net/minecraft/world/WorldServerMulti.java
|
|
@@ -11,12 +11,13 @@
|
|
public class WorldServerMulti extends WorldServer
|
|
{
|
|
private final WorldServer field_175743_a;
|
|
+ private IBorderListener borderListener;
|
|
|
|
public WorldServerMulti(MinecraftServer p_i45923_1_, ISaveHandler p_i45923_2_, int p_i45923_3_, WorldServer p_i45923_4_, Profiler p_i45923_5_)
|
|
{
|
|
super(p_i45923_1_, p_i45923_2_, new DerivedWorldInfo(p_i45923_4_.func_72912_H()), p_i45923_3_, p_i45923_5_);
|
|
this.field_175743_a = p_i45923_4_;
|
|
- p_i45923_4_.func_175723_af().func_177737_a(new IBorderListener()
|
|
+ this.borderListener = new IBorderListener()
|
|
{
|
|
public void func_177694_a(WorldBorder p_177694_1_, double p_177694_2_)
|
|
{
|
|
@@ -46,11 +47,13 @@
|
|
{
|
|
WorldServerMulti.this.func_175723_af().func_177724_b(p_177695_2_);
|
|
}
|
|
- });
|
|
+ };
|
|
+ this.field_175743_a.func_175723_af().func_177737_a(this.borderListener);
|
|
}
|
|
|
|
protected void func_73042_a() throws MinecraftException
|
|
{
|
|
+ this.perWorldStorage.func_75744_a();
|
|
}
|
|
|
|
public World func_175643_b()
|
|
@@ -60,12 +63,12 @@
|
|
this.field_184151_B = this.field_175743_a.func_184146_ak();
|
|
this.field_191951_C = this.field_175743_a.func_191952_z();
|
|
String s = VillageCollection.func_176062_a(this.field_73011_w);
|
|
- VillageCollection villagecollection = (VillageCollection)this.field_72988_C.func_75742_a(VillageCollection.class, s);
|
|
+ VillageCollection villagecollection = (VillageCollection)this.perWorldStorage.func_75742_a(VillageCollection.class, s);
|
|
|
|
if (villagecollection == null)
|
|
{
|
|
this.field_72982_D = new VillageCollection(this);
|
|
- this.field_72988_C.func_75745_a(s, this.field_72982_D);
|
|
+ this.perWorldStorage.func_75745_a(s, this.field_72982_D);
|
|
}
|
|
else
|
|
{
|
|
@@ -73,9 +76,18 @@
|
|
this.field_72982_D.func_82566_a(this);
|
|
}
|
|
|
|
+ this.initCapabilities();
|
|
return this;
|
|
}
|
|
|
|
+
|
|
+ @Override
|
|
+ public void func_73041_k()
|
|
+ {
|
|
+ super.func_73041_k();
|
|
+ this.field_175743_a.func_175723_af().removeListener(this.borderListener); // Unlink ourselves, to prevent world leak.
|
|
+ }
|
|
+
|
|
public void func_184166_c()
|
|
{
|
|
this.field_73011_w.func_186057_q();
|