Remove stale POIs
This commit is contained in:
parent
7cbd4ca191
commit
6b3a6aefae
1 changed files with 49 additions and 0 deletions
49
Spigot-Server-Patches/0648-Remove-stale-POIs.patch
Normal file
49
Spigot-Server-Patches/0648-Remove-stale-POIs.patch
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
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/VillagePlace.java b/src/main/java/net/minecraft/server/VillagePlace.java
|
||||||
|
index b926cebd053bef829517c9d9bbf1c609c23ca04a..6a0f07b13eef5560dfc7c7b39618c0b825533aec 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/VillagePlace.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/VillagePlace.java
|
||||||
|
@@ -41,6 +41,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);
|
||||||
|
}
|
||||||
|
@@ -125,6 +126,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);
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
||||||
|
index 5b0b6edfa790918e56399ff6c83f3feb6e5aca49..9b6dbadcbae284e089e38b21b596d78624d48ddd 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
||||||
|
@@ -1942,6 +1942,10 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||||
|
Optional<VillagePlaceType> optional = VillagePlaceType.b(iblockdata);
|
||||||
|
Optional<VillagePlaceType> optional1 = VillagePlaceType.b(iblockdata1);
|
||||||
|
|
||||||
|
+ // Paper start
|
||||||
|
+ if (!optional.isPresent() && this.getPoiStorage().test(blockposition, com.google.common.base.Predicates.alwaysTrue()))
|
||||||
|
+ this.getPoiStorage().remove(blockposition);
|
||||||
|
+ // Paper end
|
||||||
|
if (!Objects.equals(optional, optional1)) {
|
||||||
|
BlockPosition blockposition1 = blockposition.immutableCopy();
|
||||||
|
|
||||||
|
@@ -1960,6 +1964,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ public final VillagePlace getPoiStorage() { return this.y(); } // Paper - OBFHELPER
|
||||||
|
public VillagePlace y() {
|
||||||
|
return this.getChunkProvider().j();
|
||||||
|
}
|
Loading…
Reference in a new issue