aboutsummaryrefslogtreecommitdiffhomepage
path: root/Spigot-Server-Patches/0645-Remove-stale-POIs.patch
blob: 05bd91ba67c44eae60441083833d0b086e381e19 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Shane Freeder <theboyetronic@gmail.com>
Date: Sat, 9 Jan 2021 14:17:07 +0100
Subject: [PATCH] Remove stale POIs


diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java
index 4a87b9ebc2a584d8a2fca874342057e81fbbc1c6..c38ef337f9a662d689994a0d530e8e655b843177 100644
--- a/src/main/java/net/minecraft/server/level/WorldServer.java
+++ b/src/main/java/net/minecraft/server/level/WorldServer.java
@@ -2078,6 +2078,11 @@ public class WorldServer extends World implements GeneratorAccessSeed {
             });
             optional1.ifPresent((villageplacetype) -> {
                 this.getMinecraftServer().execute(() -> {
+                    // Paper start
+                    if (!optional.isPresent() && this.getPoiStorage().test(blockposition1, com.google.common.base.Predicates.alwaysTrue())) {
+                        this.getPoiStorage().remove(blockposition1);
+                    }
+                    // Paper end
                     this.y().a(blockposition1, villageplacetype);
                     PacketDebug.a(this, blockposition1);
                 });
@@ -2085,6 +2090,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
         }
     }
 
+    public final VillagePlace getPoiStorage() { return this.y(); } // Paper - OBFHELPER
     public VillagePlace y() {
         return this.getChunkProvider().j();
     }
diff --git a/src/main/java/net/minecraft/world/entity/ai/village/poi/VillagePlace.java b/src/main/java/net/minecraft/world/entity/ai/village/poi/VillagePlace.java
index 04b01cb841dc4f34ded5aaa4ea7a8e6d4b470183..ce165233739c7b92a76031b949f269bd0a11149c 100644
--- a/src/main/java/net/minecraft/world/entity/ai/village/poi/VillagePlace.java
+++ b/src/main/java/net/minecraft/world/entity/ai/village/poi/VillagePlace.java
@@ -54,6 +54,7 @@ public class VillagePlace extends RegionFileSection<VillagePlaceSection> {
         ((VillagePlaceSection) this.e(SectionPosition.a(blockposition).s())).a(blockposition, villageplacetype);
     }
 
+    public void remove(BlockPosition blockposition) { this.a(blockposition); } // Paper - OBFHELPER
     public void a(BlockPosition blockposition) {
         ((VillagePlaceSection) this.e(SectionPosition.a(blockposition).s())).a(blockposition);
     }
@@ -138,6 +139,7 @@ public class VillagePlace extends RegionFileSection<VillagePlaceSection> {
         return ((VillagePlaceSection) this.e(SectionPosition.a(blockposition).s())).c(blockposition);
     }
 
+    public final boolean test(BlockPosition blockposition, Predicate<VillagePlaceType> predicate) { return this.a(blockposition, predicate); } // Paper - OBFHELPER
     public boolean a(BlockPosition blockposition, Predicate<VillagePlaceType> predicate) {
         return (Boolean) this.d(SectionPosition.a(blockposition).s()).map((villageplacesection) -> {
             return villageplacesection.a(blockposition, predicate);