ForgePatch/patches/minecraft/net/minecraft/world/server/ChunkManager.java.patch

51 lines
2.6 KiB
Diff
Raw Normal View History

--- a/net/minecraft/world/server/ChunkManager.java
+++ b/net/minecraft/world/server/ChunkManager.java
2019-12-17 19:30:18 +00:00
@@ -368,6 +368,7 @@
iprofiler.func_219895_b("chunk_unload");
if (!this.field_219255_i.func_217402_u()) {
this.func_223155_b(p_219204_1_);
+ if (this.field_219251_e.isEmpty()) net.minecraftforge.common.DimensionManager.unloadWorld(this.field_219255_i);
2019-05-23 23:02:15 +00:00
}
iprofiler.func_76319_b();
2019-12-17 19:30:18 +00:00
@@ -404,6 +405,7 @@
2019-05-23 23:02:15 +00:00
if (this.field_219253_g.remove(p_219212_1_, p_219212_3_) && p_219185_5_ != null) {
if (p_219185_5_ instanceof Chunk) {
((Chunk)p_219185_5_).func_177417_c(false);
+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.ChunkEvent.Unload((Chunk)p_219185_5_));
}
this.func_219229_a(p_219185_5_);
2020-01-22 21:11:13 +00:00
@@ -482,6 +484,7 @@
2019-05-23 23:02:15 +00:00
if (flag) {
IChunk ichunk = ChunkSerializer.func_222656_a(this.field_219255_i, this.field_219269_w, this.field_219260_n, p_223172_1_, compoundnbt);
ichunk.func_177432_b(this.field_219255_i.func_82737_E());
+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.ChunkEvent.Load(ichunk));
return Either.left(ichunk);
}
2020-01-22 21:11:13 +00:00
@@ -594,6 +597,7 @@
2019-05-23 23:02:15 +00:00
if (list != null) {
list.forEach(chunk::func_76622_b);
}
+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.ChunkEvent.Load(chunk));
}
return chunk;
2020-01-22 21:11:13 +00:00
@@ -679,6 +683,7 @@
2019-05-23 23:02:15 +00:00
2020-01-22 21:11:13 +00:00
this.field_219255_i.func_217381_Z().func_230035_c_("chunkSave");
2019-05-23 23:02:15 +00:00
CompoundNBT compoundnbt1 = ChunkSerializer.func_222645_a(this.field_219255_i, p_219229_1_);
+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.ChunkDataEvent.Save(p_219229_1_, compoundnbt1));
this.func_219100_a(chunkpos, compoundnbt1);
return true;
} catch (Exception exception) {
2020-01-22 21:11:13 +00:00
@@ -815,6 +820,7 @@
2019-05-23 23:02:15 +00:00
for(int l = i - this.field_219247_A; l <= i + this.field_219247_A; ++l) {
for(int k = j - this.field_219247_A; k <= j + this.field_219247_A; ++k) {
ChunkPos chunkpos = new ChunkPos(l, k);
+ net.minecraftforge.event.ForgeEventFactory.fireChunkWatch(p_219234_2_, p_219234_1_, chunkpos, field_219255_i);
2019-06-25 02:01:03 +00:00
this.func_219199_a(p_219234_1_, chunkpos, new IPacket[2], !p_219234_2_, p_219234_2_);
2019-05-23 23:02:15 +00:00
}
}