Fix lag from villager lobotomize check

This commit is contained in:
BillyGalbreath
2020-12-18 11:09:45 -06:00
parent 2ec0dbab59
commit 844337c595
33 changed files with 95 additions and 71 deletions

View File

@@ -102,7 +102,7 @@ index 59abca0fd2330e1cdeda603d4146e4bb1afc3090..ca4d260e8faf852b0986c4cd8645e513
this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
new file mode 100644
index 0000000000000000000000000000000000000000..b807f8aa83325abfecc618cd9687d3e6e0ebf671
index 0000000000000000000000000000000000000000..025f8bc757bc3f04380d8f4239daef1da092bba1
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -0,0 +1,130 @@
@@ -161,8 +161,8 @@ index 0000000000000000000000000000000000000000..b807f8aa83325abfecc618cd9687d3e6
+ commands = new HashMap<>();
+ commands.put("purpur", new PurpurCommand("purpur"));
+
+ version = getInt("config-version", 8);
+ set("config-version", 8);
+ version = getInt("config-version", 9);
+ set("config-version", 9);
+
+ readConfig(PurpurConfig.class, null);
+ }

View File

@@ -107,7 +107,7 @@ index a1c3942cbf9a6c0adc4943b05a1c3859c5f0aed6..953741c1cfd9b5c1e0eac80d1e4c7890
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index b807f8aa83325abfecc618cd9687d3e6e0ebf671..a25e505e0f778500a400362b23af62dc663ebff6 100644
index 025f8bc757bc3f04380d8f4239daef1da092bba1..c270af482c466d534870b76193c3fd849f416aa7 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -7,6 +7,7 @@ import org.bukkit.Bukkit;

View File

@@ -215,7 +215,7 @@ index 800471d450ddcb8d291dc72e93c3d8251cc63248..04578acc532849ef7c93a3515841aa05
} else if (entityplayer.isSleeping()) {
++j;
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index a25e505e0f778500a400362b23af62dc663ebff6..e3b263347a1e23046aadb1625fdb8a954131d3df 100644
index c270af482c466d534870b76193c3fd849f416aa7..f96e8c3175aaeaa63a9b4164b4b047e7053c8581 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -1,6 +1,7 @@

View File

@@ -18,7 +18,7 @@ index a8a90679687d680bb26b4fa7c1044f614585c867..5e0f06a254d62acd491ba56371f33914
public CrashReport b(CrashReport crashreport) {
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index e3b263347a1e23046aadb1625fdb8a954131d3df..8b57cff58c1c87e3494d63d7a08487b3b5450836 100644
index f96e8c3175aaeaa63a9b4164b4b047e7053c8581..c81f1c1b0abc76f932125480db20cf1ff115e3b2 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -139,6 +139,11 @@ public class PurpurConfig {

View File

@@ -25,7 +25,7 @@ index 5e0f06a254d62acd491ba56371f3391423eb64fd..5d8cf545acf231f8f9c037db26f4d29b
}
// Tuinity - replace logic
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 8b57cff58c1c87e3494d63d7a08487b3b5450836..0f39db0d35fae1d2c1b0dffc9aab715ab0ebadfd 100644
index c81f1c1b0abc76f932125480db20cf1ff115e3b2..b0a3ab2aa679e0bba7efe42044c49880da7ffa19 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -149,6 +149,11 @@ public class PurpurConfig {

View File

@@ -68,7 +68,7 @@ index b59e82d8ca3132f448aba892741585406cdc023e..c154c95ebba389290c7e2512e377b1c7
if (this.awaitingKeepAlive && packetplayinkeepalive.b() == this.h) {
int i = (int) (SystemUtils.getMonotonicMillis() - this.lastKeepAlive);
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 0f39db0d35fae1d2c1b0dffc9aab715ab0ebadfd..0a14d60703073e6476020c43f8349996f381400a 100644
index b0a3ab2aa679e0bba7efe42044c49880da7ffa19..5a0d3403365b06943f5d6bcc517d15c27fb344f1 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -154,6 +154,11 @@ public class PurpurConfig {

View File

@@ -17,7 +17,7 @@ index c680319e4040be2b60795b22a5e65d6444cc67ed..eaa1063ff2bc5621e93043c4de41ca62
}
// CraftBukkit end
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 0a14d60703073e6476020c43f8349996f381400a..55f174c1160420f084adaf70fbe4270ad96e6c38 100644
index 5a0d3403365b06943f5d6bcc517d15c27fb344f1..dafc1ec1c35ea3946aec821b511199a38c072138 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -177,4 +177,11 @@ public class PurpurConfig {

View File

@@ -61,7 +61,7 @@ index 8e48407fd405ac4c3eece7762b8155c5d0f00fa0..91c4e658230bb8bbce9d0f56db0768a7
protected boolean h;
protected boolean i;
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 55f174c1160420f084adaf70fbe4270ad96e6c38..01dbf8e8e5dc1d42414f0b7229a95b2255243154 100644
index dafc1ec1c35ea3946aec821b511199a38c072138..6816a42242bc452a6a233aeb0e56808c9204feee 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -178,6 +178,11 @@ public class PurpurConfig {

View File

@@ -24,7 +24,7 @@ index fe3b76e4ed11f0183731a0dcc39a323ccee3fd2e..2d01bc9c5f95e7bd950a8c9137d1a1ab
this.methodProfiler.exit();
this.methodProfiler.b();
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 01dbf8e8e5dc1d42414f0b7229a95b2255243154..c627368c1dbfb526ff6c913130f908c67a794d1c 100644
index 6816a42242bc452a6a233aeb0e56808c9204feee..96bb85cbf621a8a17464042b2b6844eb3b7de78e 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -189,4 +189,9 @@ public class PurpurConfig {

View File

@@ -67,7 +67,7 @@ index 86f1cfe454ea0a989775b49a6b88375c766ef647..da53af61d1171db3c167c6e007adf953
if (!(this.k instanceof EntityPlayer)) {
throw CommandListenerWrapper.a.create();
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index c627368c1dbfb526ff6c913130f908c67a794d1c..57bba3c0f8352a7137e54a3a279cb5e02dc8463a 100644
index 96bb85cbf621a8a17464042b2b6844eb3b7de78e..7cf0a74141d01a4ad40e40a14e26a844fc116e90 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -133,10 +133,12 @@ public class PurpurConfig {

View File

@@ -68,7 +68,7 @@ index a8571dae8daefb557a8e3ee39c80ebc3b1b5aad9..7a82a894bb3f737cc80f0b4b8d7a1b25
+ // Purpur end
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 57bba3c0f8352a7137e54a3a279cb5e02dc8463a..f1e17dabe91a539332080ebb96a54833011441f2 100644
index 7cf0a74141d01a4ad40e40a14e26a844fc116e90..469bc46bd9dc0a0b40232402ef4a8430ec0b2ea0 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -1,7 +1,6 @@

View File

@@ -25,7 +25,7 @@ index 00a1707209b21fc0163960c957864f798da15554..5eb9b3d35e12c2d3dc5f158cbed0b0a0
List<WorldGenEnder.Spike> list = worldgenfeatureendspikeconfiguration.c();
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index f1e17dabe91a539332080ebb96a54833011441f2..bd6e173fe9daae2db5bec5fd8085565d702a3dff 100644
index 469bc46bd9dc0a0b40232402ef4a8430ec0b2ea0..a557476905bea929d67a4490ca32a1df4396dcad 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -1,5 +1,6 @@

View File

@@ -31,7 +31,7 @@ index 07f7b69fefe66ec4f26ca7b4fb3b752e80aeed07..6aa1626f38df0cd8ae8a417dc4fca213
int i = random.nextInt(2) + 2;
int j = -i - 1;
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index bd6e173fe9daae2db5bec5fd8085565d702a3dff..b3f21efe94bd2765919c069ba49667f23780cd7f 100644
index a557476905bea929d67a4490ca32a1df4396dcad..5e9fdafc3bf292f93fe652f0eb7175d65b915703 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -141,10 +141,13 @@ public class PurpurConfig {

View File

@@ -73,7 +73,7 @@ index e8f340b9f2a1e5de9cf7e8cf595de8a806cb528a..3490af6fe0cf2eccac9753778cf4085f
@Override
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index b3f21efe94bd2765919c069ba49667f23780cd7f..ec7bac5b7576df2e50be56471384fe6374dc9a30 100644
index 5e9fdafc3bf292f93fe652f0eb7175d65b915703..70e105e765163a78786e67c51b1bd13124087b7a 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -200,6 +200,11 @@ public class PurpurConfig {

View File

@@ -30,7 +30,7 @@ index 37b984a5b6c1c6e146e1c4b0947d1e39a051cfbb..7a35a367a5840fd5df72b0bd64e63019
public static final EntityTypes<EntityEvoker> EVOKER = a("evoker", EntityTypes.Builder.a(EntityEvoker::new, EnumCreatureType.MONSTER).a(0.6F, 1.95F).trackingRange(8));
public static final EntityTypes<EntityEvokerFangs> EVOKER_FANGS = a("evoker_fangs", EntityTypes.Builder.a(EntityEvokerFangs::new, EnumCreatureType.MISC).a(0.5F, 0.8F).trackingRange(6).updateInterval(2));
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index ec7bac5b7576df2e50be56471384fe6374dc9a30..ef423e986d25e089d6063b17bf7b2f8d6430297b 100644
index 70e105e765163a78786e67c51b1bd13124087b7a..02b4a920d1eabd10bd4668e346ff8c93aa178e98 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -190,6 +190,11 @@ public class PurpurConfig {

View File

@@ -5053,7 +5053,7 @@ index 9d93a8c86b675cf55210724a0b695f960b009d69..bed00077205d3c2d7b2eb67db5af86dd
return new Throwable(entity + " Added to world at " + new java.util.Date());
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index ef423e986d25e089d6063b17bf7b2f8d6430297b..1a14a3f05ef42fb5161f8df2d96f4236633d641e 100644
index 02b4a920d1eabd10bd4668e346ff8c93aa178e98..0c55d2921efd897b575cc5ebbbf0092a078be85d 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -134,11 +134,13 @@ public class PurpurConfig {

View File

@@ -42,7 +42,7 @@ index 6ef81aeb4c63bc6c23163796dbd977602ca2f540..9ea3c30b679da4e77b86d96d0cc47673
private final GeneratorAccess b;
private final EnumDirection.EnumAxis c;
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 1a14a3f05ef42fb5161f8df2d96f4236633d641e..3311a78781739f5b7ea8a490366788b961104660 100644
index 0c55d2921efd897b575cc5ebbbf0092a078be85d..c9eb69c15cf413bfecd4517be8890de1f3987855 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -176,6 +176,7 @@ public class PurpurConfig {

View File

@@ -63,7 +63,7 @@ index 685deaa0e5d1ddc13e3a7c0471b1cfcf1710c869..2a0ada490b15b0c4939dd4304f86e016
+ }
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 3311a78781739f5b7ea8a490366788b961104660..c14f5325ac69fb09f47264e2e424527dafc0f249 100644
index c9eb69c15cf413bfecd4517be8890de1f3987855..fbee90f10f046f94d44fab9f44de2144651d8180 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -216,9 +216,11 @@ public class PurpurConfig {

View File

@@ -17,7 +17,7 @@ index 408cfa460920f74e0394ab27101ecb12cceb9c43..3d4e34f7070a48c436284ba7744a94ae
}
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index c14f5325ac69fb09f47264e2e424527dafc0f249..25b3dc8f745611ed75f618ef5760b45b3811b218 100644
index fbee90f10f046f94d44fab9f44de2144651d8180..cf09d235d68e738042f9e8d1ff44a0e19cac310d 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -194,6 +194,16 @@ public class PurpurConfig {

View File

@@ -22,7 +22,7 @@ index a1abdd06478da22bd9c7ea4555afb36efde826c7..e98b5a1caf14f8480d1dd558e7dbe15f
((WorldServer) world).everyoneSleeping();
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 25b3dc8f745611ed75f618ef5760b45b3811b218..bb434bafc9ffd660096e53b5245adef9201117d2 100644
index cf09d235d68e738042f9e8d1ff44a0e19cac310d..71de8604bf1a977a42c8e13975293163f3c909be 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -133,12 +133,14 @@ public class PurpurConfig {

View File

@@ -30,7 +30,7 @@ index 08cbc787e2bf6587878bdeffa7248e5d23cdcf98..57d39ed441ec7be933f4fce48225f527
public static final PacketPlayOutGameStateChange.a h = new PacketPlayOutGameStateChange.a(7);
public static final PacketPlayOutGameStateChange.a i = new PacketPlayOutGameStateChange.a(8);
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index bb434bafc9ffd660096e53b5245adef9201117d2..64a8b4375b48417c2e34f0089bcf0f676faab055 100644
index 71de8604bf1a977a42c8e13975293163f3c909be..d3def33b8b166f4e7b50c957b1c02f2a97cf94c2 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -134,6 +134,7 @@ public class PurpurConfig {

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Config migration: disable saving projectiles to disk ->
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 64a8b4375b48417c2e34f0089bcf0f676faab055..7e2a79763d857517db8ea73b276f6f6814c770ae 100644
index d3def33b8b166f4e7b50c957b1c02f2a97cf94c2..b4eccbfe17ff8dc95f861d4e627fcac9646a7690 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -1,6 +1,7 @@

View File

@@ -20,7 +20,7 @@ index 1d22c45af884a917e77e02c272fcbae74794200c..7bf90f27fdc48440ef229cca0e100d2c
itemstack.setCount(1);
entityitem = entityplayer.drop(itemstack, false);
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 7e2a79763d857517db8ea73b276f6f6814c770ae..4ece8e25b66d4eea627f4d17e74e9605ad6e8ae4 100644
index b4eccbfe17ff8dc95f861d4e627fcac9646a7690..c7ceb4f1add767c2f534f0b8a228f8408d88e28c 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -188,6 +188,11 @@ public class PurpurConfig {

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Config migration: climbing should not bypass cramming
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 4ece8e25b66d4eea627f4d17e74e9605ad6e8ae4..669b427459a070088ce641004a4074504f7202f7 100644
index c7ceb4f1add767c2f534f0b8a228f8408d88e28c..7e0078e9c989fa0abf0eafc822eb3b81e9388c07 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -142,6 +142,17 @@ public class PurpurConfig {

View File

@@ -18,14 +18,23 @@ index 28c502b5721bd150d9b9d2d84cb07c55af8373f1..98e8f8d7751ca7489c7cb4d41e4f628d
public float yaw;
public float pitch;
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index 166a8f9a7fe9320f54276445fbfb04059ce18b8c..96cfc0c5c36c6080758b52286afd834257fc5bd7 100644
index 166a8f9a7fe9320f54276445fbfb04059ce18b8c..70d9cd5c251402bdbfb70b2c90dfe24151d3149a 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -187,15 +187,28 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@@ -187,15 +187,37 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
}
// Spigot End
+ // Purpur start
+ boolean lobotomized = false;
+
+ private boolean isLobotomized() {
+ if ((world.getTime() + brainTickOffset) % world.purpurConfig.villagerLobotomizeCheck == 0) {
+ this.lobotomized = !canTravelFrom(getBlockLocation().up());
+ }
+ return this.lobotomized;
+ }
+
+ private boolean canTravelFrom(BlockPosition pos) {
+ return canTravelTo(pos.east()) || canTravelTo(pos.west()) || canTravelTo(pos.north()) || canTravelTo(pos.south());
+ }
@@ -41,20 +50,28 @@ index 166a8f9a7fe9320f54276445fbfb04059ce18b8c..96cfc0c5c36c6080758b52286afd8342
protected void mobTick(boolean inactive) {
this.world.getMethodProfiler().enter("villagerBrain");
// Purpur start
+ if (world.purpurConfig.villagerLobotomize1x1) inactive = inactive || !canTravelFrom(getBlockLocation().up());
+ if (world.purpurConfig.villagerLobotomizeEnabled) inactive = inactive || isLobotomized();
boolean tick = (world.getTime() + brainTickOffset) % world.purpurConfig.villagerBrainTicks == 0;
if (((WorldServer) world).getMinecraftServer().lagging ? tick : world.purpurConfig.villagerUseBrainTicksOnlyWhenLagging || tick)
// Purpur end
if (!inactive) this.getBehaviorController().a((WorldServer) this.world, this); // CraftBukkit - decompile error // Paper
+ else checkRestock(); // Purpur
+ else if (shouldRestock()) doRestock(); // Purpur
this.world.getMethodProfiler().exit();
if (this.bF) {
this.bF = false;
@@ -361,6 +374,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@@ -327,6 +349,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
return true;
}
+ public void doRestock() { fb(); } // Purpur - OBFHELPER
public void fb() {
this.fp();
Iterator iterator = this.getOffers().iterator();
@@ -361,6 +384,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
return this.bD == 0 || this.bD < 2 && this.world.getTime() > this.bC + 2400L;
}
+ public boolean checkRestock() { return fc(); } // Purpur - OBFHELPER
+ public boolean shouldRestock() { return fc(); } // Purpur - OBFHELPER
public boolean fc() {
long i = this.bC + 12000L;
long j = this.world.getTime();
@@ -71,22 +88,29 @@ index b92ca4a6de01f3f86367fb8dfe3591b08a3e9218..1208464fba96daf276c9cc0c1c9b18db
// Paper start - add target parameter
return this.a(blockposition, null, i);
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index f57d0e48fbf8ff54f1a033ccb2302c29038c3a09..bd7123842ac52e4bf185b12c03226ed50751f2d2 100644
index f57d0e48fbf8ff54f1a033ccb2302c29038c3a09..71ce16f714ed903ae7a466f815d59dcb1757ea86 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1064,6 +1064,7 @@ public class PurpurWorldConfig {
@@ -1064,6 +1064,8 @@ public class PurpurWorldConfig {
public int villagerSpawnIronGolemRadius = 0;
public int villagerSpawnIronGolemLimit = 0;
public boolean villagerCanBreed = true;
+ public boolean villagerLobotomize1x1 = false;
+ public boolean villagerLobotomizeEnabled = false;
+ public int villagerLobotomizeCheck = 60;
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1075,6 +1076,7 @@ public class PurpurWorldConfig {
@@ -1075,6 +1077,13 @@ public class PurpurWorldConfig {
villagerSpawnIronGolemRadius = getInt("mobs.villager.spawn-iron-golem.radius", villagerSpawnIronGolemRadius);
villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit);
villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed);
+ villagerLobotomize1x1 = getBoolean("mobs.villager.lobotomize-1x1", villagerLobotomize1x1);
+ if (PurpurConfig.version < 9) {
+ boolean oldValue = getBoolean("mobs.villager.lobotomize-1x1", villagerLobotomizeEnabled);
+ set("mobs.villager.lobotomize.enabled", oldValue);
+ set("mobs.villager.lobotomize-1x1", null);
+ }
+ villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled);
+ villagerLobotomizeCheck = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheck);
}
public boolean villagerTraderRidable = false;

View File

@@ -133,7 +133,7 @@ index 2d91869660c36b4cd7bfe887956a26802cce7f8a..e376306bc2555620d1a61af2296f3dd8
} else {
object = new BehaviorWork();
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index 96cfc0c5c36c6080758b52286afd834257fc5bd7..f0a5708f01e49b0cb85230904098d01eaf73a81c 100644
index 70d9cd5c251402bdbfb70b2c90dfe24151d3149a..ddfbc18722a18f534eb6e3a1a1bf5035102b0d94 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -131,7 +131,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@@ -145,7 +145,7 @@ index 96cfc0c5c36c6080758b52286afd834257fc5bd7..f0a5708f01e49b0cb85230904098d01e
}
behaviorcontroller.a(Activity.CORE, Behaviors.a(villagerprofession, 0.5F));
@@ -835,6 +835,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@@ -845,6 +845,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@Override
public boolean i(ItemStack itemstack) {
Item item = itemstack.getItem();
@@ -157,7 +157,7 @@ index 96cfc0c5c36c6080758b52286afd834257fc5bd7..f0a5708f01e49b0cb85230904098d01e
return (EntityVillager.bs.contains(item) || this.getVillagerData().getProfession().c().contains(item)) && this.getInventory().b(itemstack);
}
@@ -856,6 +861,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@@ -866,6 +871,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
}
public boolean canPlant() {
@@ -234,22 +234,22 @@ index 3c60da7ac6faebe9d964e893974e42613c59b4c1..6493f220a0cf627e82e5f3f3c85e9934
public static final VillagerProfession FISHERMAN = a("fisherman", VillagePlaceType.i, SoundEffects.ENTITY_VILLAGER_WORK_FISHERMAN);
public static final VillagerProfession FLETCHER = a("fletcher", VillagePlaceType.j, SoundEffects.ENTITY_VILLAGER_WORK_FLETCHER);
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index bd7123842ac52e4bf185b12c03226ed50751f2d2..7c740f643c3c7459b0071c9d303528aef800334f 100644
index 71ce16f714ed903ae7a466f815d59dcb1757ea86..591d2eabb922d4ecda0acaf00e7dc82a00501d1b 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1065,6 +1065,8 @@ public class PurpurWorldConfig {
public int villagerSpawnIronGolemLimit = 0;
@@ -1066,6 +1066,8 @@ public class PurpurWorldConfig {
public boolean villagerCanBreed = true;
public boolean villagerLobotomize1x1 = false;
public boolean villagerLobotomizeEnabled = false;
public int villagerLobotomizeCheck = 60;
+ public boolean villagerClericsFarmWarts = false;
+ public boolean villagerClericFarmersThrowWarts = true;
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1077,6 +1079,8 @@ public class PurpurWorldConfig {
villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit);
villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed);
villagerLobotomize1x1 = getBoolean("mobs.villager.lobotomize-1x1", villagerLobotomize1x1);
@@ -1084,6 +1086,8 @@ public class PurpurWorldConfig {
}
villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled);
villagerLobotomizeCheck = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheck);
+ villagerClericsFarmWarts = getBoolean("mobs.villager.clerics-farm-warts", villagerClericsFarmWarts);
+ villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts);
}

View File

@@ -35,10 +35,10 @@ index 3327dbbf87d8f43cbc7cd728df2f4c6a33dae40d..57f3358b8dfd53f5b1d2e976d64b809f
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 7c740f643c3c7459b0071c9d303528aef800334f..f24e1271878d6bfcccd11fbadfb4578ae62cb722 100644
index 591d2eabb922d4ecda0acaf00e7dc82a00501d1b..ed39dad5707add6392042073998e8ce08a887d1e 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1190,12 +1190,14 @@ public class PurpurWorldConfig {
@@ -1197,12 +1197,14 @@ public class PurpurWorldConfig {
public boolean zombifiedPiglinJockeyOnlyBaby = true;
public double zombifiedPiglinJockeyChance = 0.05D;
public boolean zombifiedPiglinJockeyTryExistingChickens = true;

View File

@@ -201,10 +201,10 @@ index 9a4819815c7a4bf2fd4a92c4169ace35f2261704..da29898574d30d5fecc5a44ad7b36556
public PathfinderGoalAvoidTarget(EntityCreature entitycreature, Class<T> oclass, Predicate<EntityLiving> predicate, float f, double d0, double d1, Predicate<EntityLiving> predicate1) {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index f24e1271878d6bfcccd11fbadfb4578ae62cb722..417a4b3645713afa165a917416efa7478c9082a0 100644
index ed39dad5707add6392042073998e8ce08a887d1e..fb936cfac0155f800036685ba7cc3615b1474a44 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1141,10 +1141,14 @@ public class PurpurWorldConfig {
@@ -1148,10 +1148,14 @@ public class PurpurWorldConfig {
public boolean wolfRidable = false;
public boolean wolfRidableInWater = false;

View File

@@ -24,7 +24,7 @@ index 5fe2e9f4bfbdc08690eacd6196e59529dc7953e8..fd62dc51258876275adbe02f750fd881
@Override
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 417a4b3645713afa165a917416efa7478c9082a0..26ce1e69a9529aa1741d2ec6aa5dc13c21f58218 100644
index fb936cfac0155f800036685ba7cc3615b1474a44..513aa507aaea6fac108dbf1dc3c3d51259b16df6 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -3,6 +3,7 @@ package net.pl3x.purpur;
@@ -35,7 +35,7 @@ index 417a4b3645713afa165a917416efa7478c9082a0..26ce1e69a9529aa1741d2ec6aa5dc13c
import net.minecraft.server.EnumDifficulty;
import net.minecraft.server.Explosion;
import net.minecraft.server.IRegistry;
@@ -1141,12 +1142,18 @@ public class PurpurWorldConfig {
@@ -1148,12 +1149,18 @@ public class PurpurWorldConfig {
public boolean wolfRidable = false;
public boolean wolfRidableInWater = false;

View File

@@ -1183,7 +1183,7 @@ index ac75ed3e2e0e0cd8f91de9ff188e173591443b72..6870d175c714d7870072cd1e9825d8e9
@Override
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index f0a5708f01e49b0cb85230904098d01eaf73a81c..00504af85276f504b5334c881ad6df0702adc959 100644
index ddfbc18722a18f534eb6e3a1a1bf5035102b0d94..387a95a70a68f570af0ae8eab6c3f6bbc9078110 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -95,6 +95,14 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@@ -1354,7 +1354,7 @@ index 0c47477b416980d2e932321730525bf5a8feda4f..d6352539a5639db84f5654ba808f74ba
@Override
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 26ce1e69a9529aa1741d2ec6aa5dc13c21f58218..7e3c97347b44549059890b611a79c3ede6cf947d 100644
index 513aa507aaea6fac108dbf1dc3c3d51259b16df6..3384a55fd77386961c1a63cd5e3359ea8ca5986d 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -473,30 +473,36 @@ public class PurpurWorldConfig {
@@ -1990,16 +1990,16 @@ index 26ce1e69a9529aa1741d2ec6aa5dc13c21f58218..7e3c97347b44549059890b611a79c3ed
}
public boolean villagerRidable = false;
@@ -1068,6 +1195,7 @@ public class PurpurWorldConfig {
public boolean villagerLobotomize1x1 = false;
@@ -1069,6 +1196,7 @@ public class PurpurWorldConfig {
public int villagerLobotomizeCheck = 60;
public boolean villagerClericsFarmWarts = false;
public boolean villagerClericFarmersThrowWarts = true;
+ public double villagerMaxHealth = 20.0D;
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1082,33 +1210,40 @@ public class PurpurWorldConfig {
villagerLobotomize1x1 = getBoolean("mobs.villager.lobotomize-1x1", villagerLobotomize1x1);
@@ -1089,33 +1217,40 @@ public class PurpurWorldConfig {
villagerLobotomizeCheck = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheck);
villagerClericsFarmWarts = getBoolean("mobs.villager.clerics-farm-warts", villagerClericsFarmWarts);
villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts);
+ villagerMaxHealth = getDouble("mobs.villager.attributes.max-health", villagerMaxHealth);
@@ -2039,7 +2039,7 @@ index 26ce1e69a9529aa1741d2ec6aa5dc13c21f58218..7e3c97347b44549059890b611a79c3ed
}
public boolean witherRidable = false;
@@ -1134,10 +1269,12 @@ public class PurpurWorldConfig {
@@ -1141,10 +1276,12 @@ public class PurpurWorldConfig {
public boolean witherSkeletonRidable = false;
public boolean witherSkeletonRidableInWater = false;
public boolean witherSkeletonTakesWitherDamage = false;
@@ -2052,7 +2052,7 @@ index 26ce1e69a9529aa1741d2ec6aa5dc13c21f58218..7e3c97347b44549059890b611a79c3ed
}
public boolean wolfRidable = false;
@@ -1146,6 +1283,7 @@ public class PurpurWorldConfig {
@@ -1153,6 +1290,7 @@ public class PurpurWorldConfig {
public boolean wolfMilkCuresRabies = true;
public double wolfNaturalRabid = 0.0D;
public int wolfBreedingTicks = 6000;
@@ -2060,7 +2060,7 @@ index 26ce1e69a9529aa1741d2ec6aa5dc13c21f58218..7e3c97347b44549059890b611a79c3ed
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater);
@@ -1157,13 +1295,16 @@ public class PurpurWorldConfig {
@@ -1164,13 +1302,16 @@ public class PurpurWorldConfig {
wolfMilkCuresRabies = getBoolean("mobs.wolf.milk-cures-rabid-wolves", wolfMilkCuresRabies);
wolfNaturalRabid = getDouble("mobs.wolf.spawn-rabid-chance", wolfNaturalRabid);
wolfBreedingTicks = getInt("mobs.wolf.breeding-delay-ticks", wolfBreedingTicks);
@@ -2077,7 +2077,7 @@ index 26ce1e69a9529aa1741d2ec6aa5dc13c21f58218..7e3c97347b44549059890b611a79c3ed
}
public boolean zombieRidable = false;
@@ -1173,6 +1314,7 @@ public class PurpurWorldConfig {
@@ -1180,6 +1321,7 @@ public class PurpurWorldConfig {
public boolean zombieJockeyTryExistingChickens = true;
public boolean zombieAggressiveTowardsVillagerWhenLagging = true;
public EnumDifficulty zombieBreakDoorMinDifficulty = EnumDifficulty.HARD;
@@ -2085,7 +2085,7 @@ index 26ce1e69a9529aa1741d2ec6aa5dc13c21f58218..7e3c97347b44549059890b611a79c3ed
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -1185,15 +1327,18 @@ public class PurpurWorldConfig {
@@ -1192,15 +1334,18 @@ public class PurpurWorldConfig {
} catch (IllegalArgumentException ignore) {
zombieBreakDoorMinDifficulty = EnumDifficulty.HARD;
}
@@ -2104,7 +2104,7 @@ index 26ce1e69a9529aa1741d2ec6aa5dc13c21f58218..7e3c97347b44549059890b611a79c3ed
}
public boolean zombifiedPiglinRidable = false;
@@ -1202,6 +1347,7 @@ public class PurpurWorldConfig {
@@ -1209,6 +1354,7 @@ public class PurpurWorldConfig {
public double zombifiedPiglinJockeyChance = 0.05D;
public boolean zombifiedPiglinJockeyTryExistingChickens = true;
public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true;
@@ -2112,7 +2112,7 @@ index 26ce1e69a9529aa1741d2ec6aa5dc13c21f58218..7e3c97347b44549059890b611a79c3ed
private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -1209,6 +1355,7 @@ public class PurpurWorldConfig {
@@ -1216,6 +1362,7 @@ public class PurpurWorldConfig {
zombifiedPiglinJockeyChance = getDouble("mobs.zombified_piglin.jockey.chance", zombifiedPiglinJockeyChance);
zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens);
zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry);
@@ -2120,7 +2120,7 @@ index 26ce1e69a9529aa1741d2ec6aa5dc13c21f58218..7e3c97347b44549059890b611a79c3ed
}
public boolean zombieVillagerRidable = false;
@@ -1216,11 +1363,13 @@ public class PurpurWorldConfig {
@@ -1223,11 +1370,13 @@ public class PurpurWorldConfig {
public boolean zombieVillagerJockeyOnlyBaby = true;
public double zombieVillagerJockeyChance = 0.05D;
public boolean zombieVillagerJockeyTryExistingChickens = true;

View File

@@ -17,7 +17,7 @@ index 889e388cf13ba0a385ee88a3acd0b813c0776dee..d6509eef1dc26beafc752c8518eabfec
@Override
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 7e3c97347b44549059890b611a79c3ede6cf947d..8664315deb60468d946857f1b70afd8b9bcb56b0 100644
index 3384a55fd77386961c1a63cd5e3359ea8ca5986d..7842a904730999484334cd391a0ce623c184a0bb 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -910,6 +910,7 @@ public class PurpurWorldConfig {

View File

@@ -17,7 +17,7 @@ index 9e5e6de52efabe9126f6c47acb35fa1dc461ff4f..487b281cf53d3482853d56ee1e90a329
return iblockaccess.getType(blockposition1).isOccluding(iblockaccess, blockposition1);
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 8664315deb60468d946857f1b70afd8b9bcb56b0..22d1eae897baf8988807eb6b72e3d8a324c173f7 100644
index 7842a904730999484334cd391a0ce623c184a0bb..ac742813f49496923d40a70dd46aada0b904d89a 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -370,6 +370,11 @@ public class PurpurWorldConfig {

View File

@@ -28,7 +28,7 @@ index 1bb33c4169902cf6eb323f79a5d98a1df5726d96..96485d6f4db6b618413abc23199bdb9c
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 22d1eae897baf8988807eb6b72e3d8a324c173f7..784024dac311e17f657bd3fc6d431a2f944c9989 100644
index ac742813f49496923d40a70dd46aada0b904d89a..c875127f0bcc7c40a670419b7a41a75f7721d58c 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1153,11 +1153,13 @@ public class PurpurWorldConfig {