mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-19 09:27:43 +01:00
Updated Upstream (Paper)
Upstream has released updates that appears to apply and compile correctly Paper Changes: 21faf822 Implement optional per player mobspawning (#2171) 88722ec8 Prevent consuming the wrong itemstack (#2477) 294e3046 Async chunk api/io/loading (#2308)
This commit is contained in:
2
Paper
2
Paper
Submodule Paper updated: eee1a019f9...21faf8227b
@@ -1 +1 @@
|
|||||||
1.14.4--b2e90788bff4a599b725842e53645df192494a41
|
1.14.4--f74e7e96d920686142e0d0b0b28cc5661c2502a6
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
From 99abe96927a7347e1f3ab5604567ba0f66fd9b01 Mon Sep 17 00:00:00 2001
|
From b67fd8714bdfb391a5b0c90e7d09e8526dd4e7b3 Mon Sep 17 00:00:00 2001
|
||||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||||
Date: Sat, 4 May 2019 01:02:11 -0500
|
Date: Sat, 4 May 2019 01:02:11 -0500
|
||||||
Subject: [PATCH] Rebrand
|
Subject: [PATCH] Rebrand
|
||||||
@@ -15,7 +15,7 @@ Subject: [PATCH] Rebrand
|
|||||||
create mode 100644 src/main/java/net/pl3x/purpur/PurpurVersionFetcher.java
|
create mode 100644 src/main/java/net/pl3x/purpur/PurpurVersionFetcher.java
|
||||||
|
|
||||||
diff --git a/pom.xml b/pom.xml
|
diff --git a/pom.xml b/pom.xml
|
||||||
index beda5dc8a2..a12fa0163c 100644
|
index beda5dc8a..a12fa0163 100644
|
||||||
--- a/pom.xml
|
--- a/pom.xml
|
||||||
+++ b/pom.xml
|
+++ b/pom.xml
|
||||||
@@ -1,11 +1,11 @@
|
@@ -1,11 +1,11 @@
|
||||||
@@ -73,7 +73,7 @@ index beda5dc8a2..a12fa0163c 100644
|
|||||||
</configuration>
|
</configuration>
|
||||||
<executions>
|
<executions>
|
||||||
diff --git a/src/main/java/com/destroystokyo/paper/console/PaperConsole.java b/src/main/java/com/destroystokyo/paper/console/PaperConsole.java
|
diff --git a/src/main/java/com/destroystokyo/paper/console/PaperConsole.java b/src/main/java/com/destroystokyo/paper/console/PaperConsole.java
|
||||||
index cd6e259239..bb227bc0fb 100644
|
index cd6e25923..bb227bc0f 100644
|
||||||
--- a/src/main/java/com/destroystokyo/paper/console/PaperConsole.java
|
--- a/src/main/java/com/destroystokyo/paper/console/PaperConsole.java
|
||||||
+++ b/src/main/java/com/destroystokyo/paper/console/PaperConsole.java
|
+++ b/src/main/java/com/destroystokyo/paper/console/PaperConsole.java
|
||||||
@@ -17,7 +17,7 @@ public final class PaperConsole extends SimpleTerminalConsole {
|
@@ -17,7 +17,7 @@ public final class PaperConsole extends SimpleTerminalConsole {
|
||||||
@@ -86,10 +86,10 @@ index cd6e259239..bb227bc0fb 100644
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
index 01b389d89f..81ed2dfd25 100644
|
index d2c029973..dcb783407 100644
|
||||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -1438,7 +1438,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
@@ -1439,7 +1439,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getServerModName() {
|
public String getServerModName() {
|
||||||
@@ -100,7 +100,7 @@ index 01b389d89f..81ed2dfd25 100644
|
|||||||
public CrashReport b(CrashReport crashreport) {
|
public CrashReport b(CrashReport crashreport) {
|
||||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurVersionFetcher.java b/src/main/java/net/pl3x/purpur/PurpurVersionFetcher.java
|
diff --git a/src/main/java/net/pl3x/purpur/PurpurVersionFetcher.java b/src/main/java/net/pl3x/purpur/PurpurVersionFetcher.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000..d8b408f061
|
index 000000000..d8b408f06
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/main/java/net/pl3x/purpur/PurpurVersionFetcher.java
|
+++ b/src/main/java/net/pl3x/purpur/PurpurVersionFetcher.java
|
||||||
@@ -0,0 +1,115 @@
|
@@ -0,0 +1,115 @@
|
||||||
@@ -220,7 +220,7 @@ index 0000000000..d8b408f061
|
|||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
index 0588641482..162546f224 100644
|
index 7a8ab7d40..18bce6fa3 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
@@ -200,7 +200,7 @@ import javax.annotation.Nullable; // Paper
|
@@ -200,7 +200,7 @@ import javax.annotation.Nullable; // Paper
|
||||||
@@ -233,7 +233,7 @@ index 0588641482..162546f224 100644
|
|||||||
private final String bukkitVersion = Versioning.getBukkitVersion();
|
private final String bukkitVersion = Versioning.getBukkitVersion();
|
||||||
private final Logger logger = Logger.getLogger("Minecraft");
|
private final Logger logger = Logger.getLogger("Minecraft");
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||||
index 921c16dffc..d1bb865f59 100644
|
index 921c16dff..d1bb865f5 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||||
@@ -296,7 +296,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
@@ -296,7 +296,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
||||||
@@ -246,7 +246,7 @@ index 921c16dffc..d1bb865f59 100644
|
|||||||
// Paper end
|
// Paper end
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
|
||||||
index 674096cab1..e9aee2d8a9 100644
|
index 674096cab..e9aee2d8a 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
|
--- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
|
||||||
@@ -11,7 +11,7 @@ public final class Versioning {
|
@@ -11,7 +11,7 @@ public final class Versioning {
|
||||||
@@ -259,5 +259,5 @@ index 674096cab1..e9aee2d8a9 100644
|
|||||||
|
|
||||||
if (stream != null) {
|
if (stream != null) {
|
||||||
--
|
--
|
||||||
2.20.1
|
2.23.0.rc1
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
From 49a2ddd3db52136a06a138548d81ad278dc8a29e Mon Sep 17 00:00:00 2001
|
From 3e64ca86030b5538037add9d226ae61e05c1c53d Mon Sep 17 00:00:00 2001
|
||||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||||
Date: Thu, 9 May 2019 18:09:43 -0500
|
Date: Thu, 9 May 2019 18:09:43 -0500
|
||||||
Subject: [PATCH] Purpur config files
|
Subject: [PATCH] Purpur config files
|
||||||
@@ -20,10 +20,10 @@ Subject: [PATCH] Purpur config files
|
|||||||
create mode 100644 src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
create mode 100644 src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||||
|
|
||||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||||
index 5942c3438..750ca9727 100644
|
index 61eeb6747..58e2a0707 100644
|
||||||
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||||
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||||
@@ -96,10 +96,12 @@ public class PaperConfig {
|
@@ -97,10 +97,12 @@ public class PaperConfig {
|
||||||
MinecraftServer.getServer().server.getCommandMap().register(entry.getKey(), "Paper", entry.getValue());
|
MinecraftServer.getServer().server.getCommandMap().register(entry.getKey(), "Paper", entry.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -57,7 +57,7 @@ index 5bc19cd08..c2870b054 100644
|
|||||||
// Paper end
|
// Paper end
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
||||||
index b81b37445..9f657b01f 100644
|
index d3a0ed52b..eb6929e2b 100644
|
||||||
--- a/src/main/java/net/minecraft/server/World.java
|
--- a/src/main/java/net/minecraft/server/World.java
|
||||||
+++ b/src/main/java/net/minecraft/server/World.java
|
+++ b/src/main/java/net/minecraft/server/World.java
|
||||||
@@ -97,6 +97,8 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
|
@@ -97,6 +97,8 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
|
||||||
@@ -990,7 +990,7 @@ index 18bce6fa3..4cd0bc64b 100644
|
|||||||
ignoreVanillaPermissions = commandsConfiguration.getBoolean("ignore-vanilla-permissions");
|
ignoreVanillaPermissions = commandsConfiguration.getBoolean("ignore-vanilla-permissions");
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||||
index 1fa81904d..2bc8773d4 100644
|
index 460c447de..6c7ccfe18 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||||
@@ -137,6 +137,14 @@ public class Main {
|
@@ -137,6 +137,14 @@ public class Main {
|
||||||
@@ -1009,5 +1009,5 @@ index 1fa81904d..2bc8773d4 100644
|
|||||||
acceptsAll(asList("server-name"), "Name of the server")
|
acceptsAll(asList("server-name"), "Name of the server")
|
||||||
.withRequiredArg()
|
.withRequiredArg()
|
||||||
--
|
--
|
||||||
2.20.1
|
2.23.0.rc1
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
From c246b29621a8e2c62825e2a9d00a27f03e1c20b9 Mon Sep 17 00:00:00 2001
|
From 8d144c45e81724e07c172eb3f7d06f6e4f105dfa Mon Sep 17 00:00:00 2001
|
||||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||||
Date: Thu, 9 May 2019 14:27:37 -0500
|
Date: Thu, 9 May 2019 14:27:37 -0500
|
||||||
Subject: [PATCH] Silk touch spawners
|
Subject: [PATCH] Silk touch spawners
|
||||||
@@ -78,7 +78,7 @@ index bb77d916a..974a5d281 100644
|
|||||||
|
|
||||||
return i;
|
return i;
|
||||||
diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java
|
diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java
|
||||||
index a7fc34f85..e4fdf01dc 100644
|
index 612b9b7e3..f8308c96b 100644
|
||||||
--- a/src/main/java/net/minecraft/server/EntityTypes.java
|
--- a/src/main/java/net/minecraft/server/EntityTypes.java
|
||||||
+++ b/src/main/java/net/minecraft/server/EntityTypes.java
|
+++ b/src/main/java/net/minecraft/server/EntityTypes.java
|
||||||
@@ -135,10 +135,17 @@ public class EntityTypes<T extends Entity> {
|
@@ -135,10 +135,17 @@ public class EntityTypes<T extends Entity> {
|
||||||
@@ -99,7 +99,7 @@ index a7fc34f85..e4fdf01dc 100644
|
|||||||
public static Optional<EntityTypes<?>> a(String s) {
|
public static Optional<EntityTypes<?>> a(String s) {
|
||||||
return IRegistry.ENTITY_TYPE.getOptional(MinecraftKey.a(s));
|
return IRegistry.ENTITY_TYPE.getOptional(MinecraftKey.a(s));
|
||||||
}
|
}
|
||||||
@@ -257,6 +264,12 @@ public class EntityTypes<T extends Entity> {
|
@@ -258,6 +265,12 @@ public class EntityTypes<T extends Entity> {
|
||||||
return this.ba;
|
return this.ba;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,7 +112,7 @@ index a7fc34f85..e4fdf01dc 100644
|
|||||||
public String f() {
|
public String f() {
|
||||||
if (this.bf == null) {
|
if (this.bf == null) {
|
||||||
this.bf = SystemUtils.a("entity", IRegistry.ENTITY_TYPE.getKey(this));
|
this.bf = SystemUtils.a("entity", IRegistry.ENTITY_TYPE.getKey(this));
|
||||||
@@ -265,6 +278,7 @@ public class EntityTypes<T extends Entity> {
|
@@ -266,6 +279,7 @@ public class EntityTypes<T extends Entity> {
|
||||||
return this.bf;
|
return this.bf;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -163,5 +163,5 @@ index 84646dbc2..987297634 100644
|
|||||||
public static final Item bZ = a(Blocks.CHEST, CreativeModeTab.c);
|
public static final Item bZ = a(Blocks.CHEST, CreativeModeTab.c);
|
||||||
public static final Item ca = a(Blocks.DIAMOND_ORE, CreativeModeTab.b);
|
public static final Item ca = a(Blocks.DIAMOND_ORE, CreativeModeTab.b);
|
||||||
--
|
--
|
||||||
2.20.1
|
2.23.0.rc1
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
From 022df48e1fb9475f3a6ff5f2baf2ab7e4ae8947c Mon Sep 17 00:00:00 2001
|
From 676acbfb7f8a5a1ca13643a7c5509e34309749b1 Mon Sep 17 00:00:00 2001
|
||||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||||
Date: Tue, 30 Apr 2019 19:17:21 -0500
|
Date: Tue, 30 Apr 2019 19:17:21 -0500
|
||||||
Subject: [PATCH] Integrate ridables
|
Subject: [PATCH] Integrate ridables
|
||||||
@@ -1253,7 +1253,7 @@ index 8e463111b..2c34ab337 100644
|
|||||||
this.goalSelector.a(2, new PathfinderGoalMoveTowardsTarget(this, 0.9D, 32.0F));
|
this.goalSelector.a(2, new PathfinderGoalMoveTowardsTarget(this, 0.9D, 32.0F));
|
||||||
this.goalSelector.a(2, new PathfinderGoalStrollVillage(this, 0.6D));
|
this.goalSelector.a(2, new PathfinderGoalStrollVillage(this, 0.6D));
|
||||||
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||||
index a661d109d..545283ed7 100644
|
index 4b59f6081..d71fb40cb 100644
|
||||||
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
||||||
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||||
@@ -87,10 +87,10 @@ public abstract class EntityLiving extends Entity {
|
@@ -87,10 +87,10 @@ public abstract class EntityLiving extends Entity {
|
||||||
@@ -2449,10 +2449,10 @@ index 0bd80e562..6bd2aeaad 100644
|
|||||||
if (this.h == ControllerMove.Operation.MOVE_TO && !this.i.getNavigation().n()) {
|
if (this.h == ControllerMove.Operation.MOVE_TO && !this.i.getNavigation().n()) {
|
||||||
double d0 = this.b - this.i.locX;
|
double d0 = this.b - this.i.locX;
|
||||||
diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java
|
diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java
|
||||||
index e4fdf01dc..84aa1db72 100644
|
index f8308c96b..f8600cc07 100644
|
||||||
--- a/src/main/java/net/minecraft/server/EntityTypes.java
|
--- a/src/main/java/net/minecraft/server/EntityTypes.java
|
||||||
+++ b/src/main/java/net/minecraft/server/EntityTypes.java
|
+++ b/src/main/java/net/minecraft/server/EntityTypes.java
|
||||||
@@ -265,6 +265,10 @@ public class EntityTypes<T extends Entity> {
|
@@ -266,6 +266,10 @@ public class EntityTypes<T extends Entity> {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Purpur start
|
// Purpur start
|
||||||
@@ -3215,5 +3215,5 @@ index 56c233872..b19970c88 100644
|
|||||||
+ // Purpur end
|
+ // Purpur end
|
||||||
}
|
}
|
||||||
--
|
--
|
||||||
2.20.1
|
2.23.0.rc1
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
From 16dc587c408f455255d4f5d1cbade8824e6cc24c Mon Sep 17 00:00:00 2001
|
From 609835c609d98c4315db23388bca76fc157630c9 Mon Sep 17 00:00:00 2001
|
||||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||||
Date: Sun, 12 May 2019 00:43:12 -0500
|
Date: Sun, 12 May 2019 00:43:12 -0500
|
||||||
Subject: [PATCH] Make giants naturally spawn and have AI
|
Subject: [PATCH] Make giants naturally spawn and have AI
|
||||||
@@ -103,10 +103,10 @@ index 29e7639ad..e69e7a456 100644
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
|
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
|
||||||
index 5e6559df0..2d4ea99f1 100644
|
index 9d4a96ae4..49d1b7898 100644
|
||||||
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
|
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
|
||||||
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
|
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
|
||||||
@@ -78,6 +78,14 @@ public final class SpawnerCreature {
|
@@ -77,6 +77,14 @@ public final class SpawnerCreature {
|
||||||
if (biomebase_biomemeta.b.e() != EnumCreatureType.MISC && (biomebase_biomemeta.b.d() || d0 <= 16384.0D)) {
|
if (biomebase_biomemeta.b.e() != EnumCreatureType.MISC && (biomebase_biomemeta.b.d() || d0 <= 16384.0D)) {
|
||||||
EntityTypes<?> entitytypes = biomebase_biomemeta.b;
|
EntityTypes<?> entitytypes = biomebase_biomemeta.b;
|
||||||
|
|
||||||
@@ -140,5 +140,5 @@ index 61adf7d63..7063c6329 100644
|
|||||||
public static float crystalsAttackPhantomDamage = 1.0F;
|
public static float crystalsAttackPhantomDamage = 1.0F;
|
||||||
public static double phantomsOrbitCrystalsRadius = 0.0D;
|
public static double phantomsOrbitCrystalsRadius = 0.0D;
|
||||||
--
|
--
|
||||||
2.20.1
|
2.23.0.rc1
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
From ff15aa3bed02c1d829c032ee6aa11b6b9f601d22 Mon Sep 17 00:00:00 2001
|
From 5ea636f8b88a6d8259fb3a9a5c77e5deb3ede4bb Mon Sep 17 00:00:00 2001
|
||||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||||
Date: Thu, 6 Jun 2019 17:40:30 -0500
|
Date: Thu, 6 Jun 2019 17:40:30 -0500
|
||||||
Subject: [PATCH] Allow color codes on signs
|
Subject: [PATCH] Allow color codes on signs
|
||||||
@@ -11,10 +11,10 @@ Subject: [PATCH] Allow color codes on signs
|
|||||||
4 files changed, 21 insertions(+)
|
4 files changed, 21 insertions(+)
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
|
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||||
index 18695d9b..8c59692b 100644
|
index 5c4a4be1b..af3c7e595 100644
|
||||||
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||||
@@ -1114,6 +1114,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
@@ -1120,6 +1120,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||||
@Override
|
@Override
|
||||||
public void openSign(TileEntitySign tileentitysign) {
|
public void openSign(TileEntitySign tileentitysign) {
|
||||||
tileentitysign.a((EntityHuman) this);
|
tileentitysign.a((EntityHuman) this);
|
||||||
@@ -23,7 +23,7 @@ index 18695d9b..8c59692b 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
index e7b8b2e9..520490d5 100644
|
index e7b8b2e99..520490d59 100644
|
||||||
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
@@ -2561,6 +2561,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
@@ -2561,6 +2561,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||||
@@ -35,7 +35,7 @@ index e7b8b2e9..520490d5 100644
|
|||||||
}
|
}
|
||||||
SignChangeEvent event = new SignChangeEvent((org.bukkit.craftbukkit.block.CraftBlock) player.getWorld().getBlockAt(x, y, z), this.server.getPlayer(this.player), lines);
|
SignChangeEvent event = new SignChangeEvent((org.bukkit.craftbukkit.block.CraftBlock) player.getWorld().getBlockAt(x, y, z), this.server.getPlayer(this.player), lines);
|
||||||
diff --git a/src/main/java/net/minecraft/server/TileEntitySign.java b/src/main/java/net/minecraft/server/TileEntitySign.java
|
diff --git a/src/main/java/net/minecraft/server/TileEntitySign.java b/src/main/java/net/minecraft/server/TileEntitySign.java
|
||||||
index 0a8d9b52..65771ed9 100644
|
index 0a8d9b52d..65771ed9e 100644
|
||||||
--- a/src/main/java/net/minecraft/server/TileEntitySign.java
|
--- a/src/main/java/net/minecraft/server/TileEntitySign.java
|
||||||
+++ b/src/main/java/net/minecraft/server/TileEntitySign.java
|
+++ b/src/main/java/net/minecraft/server/TileEntitySign.java
|
||||||
@@ -122,6 +122,20 @@ public class TileEntitySign extends TileEntity implements ICommandListener { //
|
@@ -122,6 +122,20 @@ public class TileEntitySign extends TileEntity implements ICommandListener { //
|
||||||
@@ -60,7 +60,7 @@ index 0a8d9b52..65771ed9 100644
|
|||||||
@Override
|
@Override
|
||||||
public PacketPlayOutTileEntityData getUpdatePacket() {
|
public PacketPlayOutTileEntityData getUpdatePacket() {
|
||||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||||
index b1d89450..82643156 100644
|
index 383e7d5d5..f455c5f67 100644
|
||||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||||
@@ -98,4 +98,9 @@ public class PurpurWorldConfig {
|
@@ -98,4 +98,9 @@ public class PurpurWorldConfig {
|
||||||
@@ -74,5 +74,5 @@ index b1d89450..82643156 100644
|
|||||||
+ }
|
+ }
|
||||||
}
|
}
|
||||||
--
|
--
|
||||||
2.20.1
|
2.23.0.rc1
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
From 309c1c6f884bf0fb66d5e7f6226fe0324314af41 Mon Sep 17 00:00:00 2001
|
From 66cc6181d6b8b5a3c2b962ba058a83cc64d54494 Mon Sep 17 00:00:00 2001
|
||||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||||
Date: Fri, 5 Jul 2019 11:09:25 -0500
|
Date: Fri, 5 Jul 2019 11:09:25 -0500
|
||||||
Subject: [PATCH] Make illusioners naturally spawn
|
Subject: [PATCH] Make illusioners naturally spawn
|
||||||
@@ -39,10 +39,10 @@ index b075ee4ec..48dcab2d9 100644
|
|||||||
|
|
||||||
private static void addSpawn(String biome, EnumCreatureType ct, EntityTypes et, int weight, int min_group, int max_group) {
|
private static void addSpawn(String biome, EnumCreatureType ct, EntityTypes et, int weight, int min_group, int max_group) {
|
||||||
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
|
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
|
||||||
index 2d4ea99f1..62fc61df2 100644
|
index 49d1b7898..a60ada26d 100644
|
||||||
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
|
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
|
||||||
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
|
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
|
||||||
@@ -83,6 +83,10 @@ public final class SpawnerCreature {
|
@@ -82,6 +82,10 @@ public final class SpawnerCreature {
|
||||||
if (!net.pl3x.purpur.PurpurConfig.giantsNaturallySpawn) {
|
if (!net.pl3x.purpur.PurpurConfig.giantsNaturallySpawn) {
|
||||||
return amountSpawned;
|
return amountSpawned;
|
||||||
}
|
}
|
||||||
@@ -70,5 +70,5 @@ index 412a120e2..76556e7ea 100644
|
|||||||
private static void ironGolemSettings() {
|
private static void ironGolemSettings() {
|
||||||
ironGolemSwims = getBoolean("settings.mobs.iron_golem.swims", ironGolemSwims);
|
ironGolemSwims = getBoolean("settings.mobs.iron_golem.swims", ironGolemSwims);
|
||||||
--
|
--
|
||||||
2.20.1
|
2.23.0.rc1
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
From 58bcc5ac517eaea08870e09e86ebe44e4e38f32e Mon Sep 17 00:00:00 2001
|
From 6671cfadc33e835c678b2b33c32b0c9cb80045c0 Mon Sep 17 00:00:00 2001
|
||||||
From: Phoenix616 <mail@moep.tv>
|
From: Phoenix616 <mail@moep.tv>
|
||||||
Date: Thu, 16 May 2019 01:33:46 +0100
|
Date: Thu, 16 May 2019 01:33:46 +0100
|
||||||
Subject: [PATCH] Fix MC-113809 Only grow cactus/reeds/bamboo/chorus fruit on
|
Subject: [PATCH] Fix MC-113809 Only grow cactus/reeds/bamboo/chorus fruit on
|
||||||
@@ -74,10 +74,10 @@ index ff674a9d5..4a13e248e 100644
|
|||||||
|
|
||||||
for (i = 1; world.getType(blockposition.down(i)).getBlock() == this; ++i) {
|
for (i = 1; world.getType(blockposition.down(i)).getBlock() == this; ++i) {
|
||||||
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
||||||
index 451ad4f32..a41d050cf 100644
|
index 5eff278e7..163d4fa85 100644
|
||||||
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
||||||
@@ -452,7 +452,9 @@ public class WorldServer extends World {
|
@@ -527,7 +527,9 @@ public class WorldServer extends World {
|
||||||
IBlockData iblockdata = chunksection.getType(blockposition2.getX() - j, blockposition2.getY() - j1, blockposition2.getZ() - k);
|
IBlockData iblockdata = chunksection.getType(blockposition2.getX() - j, blockposition2.getY() - j1, blockposition2.getZ() - k);
|
||||||
|
|
||||||
if (iblockdata.q()) {
|
if (iblockdata.q()) {
|
||||||
@@ -88,5 +88,5 @@ index 451ad4f32..a41d050cf 100644
|
|||||||
|
|
||||||
Fluid fluid = iblockdata.p();
|
Fluid fluid = iblockdata.p();
|
||||||
--
|
--
|
||||||
2.20.1
|
2.23.0.rc1
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
From dc4fde5a01f65b131eb2517455b3c0cd4c88c47c Mon Sep 17 00:00:00 2001
|
From d8364e2ffae55ab7981db722fffa74d00fd27122 Mon Sep 17 00:00:00 2001
|
||||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||||
Date: Sun, 7 Jul 2019 19:52:16 -0500
|
Date: Sun, 7 Jul 2019 19:52:16 -0500
|
||||||
Subject: [PATCH] Add chance for zombie horse natural spawns
|
Subject: [PATCH] Add chance for zombie horse natural spawns
|
||||||
@@ -9,10 +9,10 @@ Subject: [PATCH] Add chance for zombie horse natural spawns
|
|||||||
2 files changed, 17 insertions(+), 6 deletions(-)
|
2 files changed, 17 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
||||||
index a41d050cf..e73257f3f 100644
|
index 163d4fa85..f996c2c24 100644
|
||||||
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
||||||
@@ -402,12 +402,18 @@ public class WorldServer extends World {
|
@@ -477,12 +477,18 @@ public class WorldServer extends World {
|
||||||
boolean flag1 = this.getGameRules().getBoolean(GameRules.DO_MOB_SPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.b() * paperConfig.skeleHorseSpawnChance; // Paper
|
boolean flag1 = this.getGameRules().getBoolean(GameRules.DO_MOB_SPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.b() * paperConfig.skeleHorseSpawnChance; // Paper
|
||||||
|
|
||||||
if (flag1) {
|
if (flag1) {
|
||||||
@@ -54,5 +54,5 @@ index e515f4775..c7e634ecc 100644
|
|||||||
private static void largeEnderChests() {
|
private static void largeEnderChests() {
|
||||||
largeEnderChests = getBoolean("settings.large-ender-chests", largeEnderChests);
|
largeEnderChests = getBoolean("settings.large-ender-chests", largeEnderChests);
|
||||||
--
|
--
|
||||||
2.20.1
|
2.23.0.rc1
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
From 096f2f316f27ddf82c1575dc13fc1d80f3346541 Mon Sep 17 00:00:00 2001
|
From 263a96137b30b81c1887e968d3e224fe0bf450a0 Mon Sep 17 00:00:00 2001
|
||||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||||
Date: Sun, 21 Jul 2019 18:01:46 -0500
|
Date: Sun, 21 Jul 2019 18:01:46 -0500
|
||||||
Subject: [PATCH] Players should not cram to death
|
Subject: [PATCH] Players should not cram to death
|
||||||
@@ -8,10 +8,10 @@ Subject: [PATCH] Players should not cram to death
|
|||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
|
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||||
index 8c59692b2..d375069f3 100644
|
index af3c7e595..f9469e9e7 100644
|
||||||
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||||
@@ -1073,7 +1073,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
@@ -1079,7 +1079,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInvulnerable(DamageSource damagesource) {
|
public boolean isInvulnerable(DamageSource damagesource) {
|
||||||
@@ -21,5 +21,5 @@ index 8c59692b2..d375069f3 100644
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
--
|
--
|
||||||
2.20.1
|
2.23.0.rc1
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
From 875c115e2ca08999d98deb68770ab057795ebc5f Mon Sep 17 00:00:00 2001
|
From a2080753291fba978ee9dfaeb08d7d5d7f661ebd Mon Sep 17 00:00:00 2001
|
||||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||||
Date: Tue, 23 Jul 2019 10:07:16 -0500
|
Date: Tue, 23 Jul 2019 10:07:16 -0500
|
||||||
Subject: [PATCH] Implement lagging threshold
|
Subject: [PATCH] Implement lagging threshold
|
||||||
@@ -10,7 +10,7 @@ Subject: [PATCH] Implement lagging threshold
|
|||||||
3 files changed, 12 insertions(+)
|
3 files changed, 12 insertions(+)
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
index e9eb126a5..95b996443 100644
|
index dcb783407..427c1da00 100644
|
||||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -175,6 +175,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
@@ -175,6 +175,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
||||||
@@ -21,7 +21,7 @@ index e9eb126a5..95b996443 100644
|
|||||||
public final SlackActivityAccountant slackActivityAccountant = new SlackActivityAccountant();
|
public final SlackActivityAccountant slackActivityAccountant = new SlackActivityAccountant();
|
||||||
// Spigot end
|
// Spigot end
|
||||||
|
|
||||||
@@ -900,6 +901,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
@@ -901,6 +902,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
||||||
recentTps[0] = tps1.getAverage();
|
recentTps[0] = tps1.getAverage();
|
||||||
recentTps[1] = tps5.getAverage();
|
recentTps[1] = tps5.getAverage();
|
||||||
recentTps[2] = tps15.getAverage();
|
recentTps[2] = tps15.getAverage();
|
||||||
@@ -61,5 +61,5 @@ index c14ca997d..9f11583f0 100644
|
|||||||
// Purpur end
|
// Purpur end
|
||||||
}
|
}
|
||||||
--
|
--
|
||||||
2.20.1
|
2.23.0.rc1
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
From 40f4abacffd4ecc60352c26a17dd7dd218fb5af6 Mon Sep 17 00:00:00 2001
|
From 95fe8b962045f2eb4d58ec8d87dce9323403c5b5 Mon Sep 17 00:00:00 2001
|
||||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||||
Date: Thu, 25 Jul 2019 18:07:37 -0500
|
Date: Thu, 25 Jul 2019 18:07:37 -0500
|
||||||
Subject: [PATCH] Implement elytra settings
|
Subject: [PATCH] Implement elytra settings
|
||||||
@@ -13,7 +13,7 @@ Subject: [PATCH] Implement elytra settings
|
|||||||
6 files changed, 50 insertions(+), 4 deletions(-)
|
6 files changed, 50 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||||
index bc701552e..757b47b80 100644
|
index b4230fcc4..213683674 100644
|
||||||
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
||||||
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||||
@@ -2592,9 +2592,16 @@ public abstract class EntityLiving extends Entity {
|
@@ -2592,9 +2592,16 @@ public abstract class EntityLiving extends Entity {
|
||||||
@@ -36,7 +36,7 @@ index bc701552e..757b47b80 100644
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
flag = false;
|
flag = false;
|
||||||
@@ -3236,6 +3243,7 @@ public abstract class EntityLiving extends Entity {
|
@@ -3240,6 +3247,7 @@ public abstract class EntityLiving extends Entity {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -145,5 +145,5 @@ index 7ff20fe08..b1dcb5f8d 100644
|
|||||||
+ }
|
+ }
|
||||||
}
|
}
|
||||||
--
|
--
|
||||||
2.20.1
|
2.23.0.rc1
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
From fcca21ceed90f2d76e6fa826431205db2351d56b Mon Sep 17 00:00:00 2001
|
From e019732e0457b7a838f9c1934c9a1efb6529c8e7 Mon Sep 17 00:00:00 2001
|
||||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||||
Date: Sun, 28 Jul 2019 01:27:37 -0500
|
Date: Sun, 28 Jul 2019 01:27:37 -0500
|
||||||
Subject: [PATCH] Add 5 second tps average in /tps
|
Subject: [PATCH] Add 5 second tps average in /tps
|
||||||
@@ -10,7 +10,7 @@ Subject: [PATCH] Add 5 second tps average in /tps
|
|||||||
3 files changed, 11 insertions(+), 5 deletions(-)
|
3 files changed, 11 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
index 95b996443..443e0d627 100644
|
index 427c1da00..55aba2157 100644
|
||||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -174,7 +174,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
@@ -174,7 +174,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
||||||
@@ -22,7 +22,7 @@ index 95b996443..443e0d627 100644
|
|||||||
public boolean lagging = false; // Purpur
|
public boolean lagging = false; // Purpur
|
||||||
public final SlackActivityAccountant slackActivityAccountant = new SlackActivityAccountant();
|
public final SlackActivityAccountant slackActivityAccountant = new SlackActivityAccountant();
|
||||||
// Spigot end
|
// Spigot end
|
||||||
@@ -818,6 +818,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
@@ -819,6 +819,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
||||||
private static final long MAX_CATCHUP_BUFFER = TICK_TIME * TPS * 60L;
|
private static final long MAX_CATCHUP_BUFFER = TICK_TIME * TPS * 60L;
|
||||||
private long lastTick = 0;
|
private long lastTick = 0;
|
||||||
private long catchupTime = 0;
|
private long catchupTime = 0;
|
||||||
@@ -30,7 +30,7 @@ index 95b996443..443e0d627 100644
|
|||||||
public final RollingAverage tps1 = new RollingAverage(60);
|
public final RollingAverage tps1 = new RollingAverage(60);
|
||||||
public final RollingAverage tps5 = new RollingAverage(60 * 5);
|
public final RollingAverage tps5 = new RollingAverage(60 * 5);
|
||||||
public final RollingAverage tps15 = new RollingAverage(60 * 15);
|
public final RollingAverage tps15 = new RollingAverage(60 * 15);
|
||||||
@@ -894,13 +895,17 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
@@ -895,13 +896,17 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
||||||
{
|
{
|
||||||
final long diff = curTime - tickSection;
|
final long diff = curTime - tickSection;
|
||||||
java.math.BigDecimal currentTps = TPS_BASE.divide(new java.math.BigDecimal(diff), 30, java.math.RoundingMode.HALF_UP);
|
java.math.BigDecimal currentTps = TPS_BASE.divide(new java.math.BigDecimal(diff), 30, java.math.RoundingMode.HALF_UP);
|
||||||
@@ -77,5 +77,5 @@ index 6d21c3269..2eed9d0a4 100644
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
--
|
--
|
||||||
2.20.1
|
2.23.0.rc1
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
|||||||
From d43e7fe139fadc1dc7f30a87ca3ad9e3cc654351 Mon Sep 17 00:00:00 2001
|
From 1e007d01df31875d0e690aa5912d8015ba94a1bc Mon Sep 17 00:00:00 2001
|
||||||
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
|
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
|
||||||
Date: Mon, 11 Mar 2019 12:18:29 -0700
|
Date: Mon, 11 Mar 2019 12:18:29 -0700
|
||||||
Subject: [PATCH] Rate limit packets incoming from players
|
Subject: [PATCH] Rate limit packets incoming from players
|
||||||
@@ -12,7 +12,7 @@ Subject: [PATCH] Rate limit packets incoming from players
|
|||||||
create mode 100644 src/main/java/com/destroystokyo/paper/network/PacketLimiter.java
|
create mode 100644 src/main/java/com/destroystokyo/paper/network/PacketLimiter.java
|
||||||
|
|
||||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||||
index 58e2a070..4fcecf40 100644
|
index 58e2a0707..4fcecf409 100644
|
||||||
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||||
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||||
@@ -392,6 +392,18 @@ public class PaperConfig {
|
@@ -392,6 +392,18 @@ public class PaperConfig {
|
||||||
@@ -36,7 +36,7 @@ index 58e2a070..4fcecf40 100644
|
|||||||
//public static boolean asyncChunkGenThreadPerWorld = true; // Leave out for now until we can control this
|
//public static boolean asyncChunkGenThreadPerWorld = true; // Leave out for now until we can control this
|
||||||
diff --git a/src/main/java/com/destroystokyo/paper/network/PacketLimiter.java b/src/main/java/com/destroystokyo/paper/network/PacketLimiter.java
|
diff --git a/src/main/java/com/destroystokyo/paper/network/PacketLimiter.java b/src/main/java/com/destroystokyo/paper/network/PacketLimiter.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 00000000..91c8c5f5
|
index 000000000..91c8c5f53
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/main/java/com/destroystokyo/paper/network/PacketLimiter.java
|
+++ b/src/main/java/com/destroystokyo/paper/network/PacketLimiter.java
|
||||||
@@ -0,0 +1,135 @@
|
@@ -0,0 +1,135 @@
|
||||||
@@ -176,7 +176,7 @@ index 00000000..91c8c5f5
|
|||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java
|
diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java
|
||||||
index 96a785af..ff8b5e76 100644
|
index 96a785af2..ff8b5e76f 100644
|
||||||
--- a/src/main/java/net/minecraft/server/NetworkManager.java
|
--- a/src/main/java/net/minecraft/server/NetworkManager.java
|
||||||
+++ b/src/main/java/net/minecraft/server/NetworkManager.java
|
+++ b/src/main/java/net/minecraft/server/NetworkManager.java
|
||||||
@@ -150,6 +150,13 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
|
@@ -150,6 +150,13 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
|
||||||
@@ -194,7 +194,7 @@ index 96a785af..ff8b5e76 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
index 520490d5..8aa8a672 100644
|
index 520490d59..8aa8a672d 100644
|
||||||
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
@@ -140,6 +140,60 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
@@ -140,6 +140,60 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||||
@@ -259,5 +259,5 @@ index 520490d5..8aa8a672 100644
|
|||||||
public void tick() {
|
public void tick() {
|
||||||
this.syncPosition();
|
this.syncPosition();
|
||||||
--
|
--
|
||||||
2.20.1
|
2.23.0.rc1
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
From 95f61700633ff04a5734635b9a5299526728d2ee Mon Sep 17 00:00:00 2001
|
From 25499ab7fd33b9297aae7e93cb07fd9d7f844c89 Mon Sep 17 00:00:00 2001
|
||||||
From: Tom <cryptite@gmail.com>
|
From: Tom <cryptite@gmail.com>
|
||||||
Date: Fri, 12 Jul 2019 07:59:35 -0500
|
Date: Fri, 12 Jul 2019 07:59:35 -0500
|
||||||
Subject: [PATCH] Don't recalculate permissions for players on world change
|
Subject: [PATCH] Don't recalculate permissions for players on world change
|
||||||
@@ -1,322 +0,0 @@
|
|||||||
From 783182a5e6d0caabd8833f2ab4b61f86669c82a0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
|
|
||||||
Date: Fri, 19 Jul 2019 03:29:14 -0700
|
|
||||||
Subject: [PATCH] Reduce sync loads
|
|
||||||
|
|
||||||
This reduces calls to getChunkAt which would load chunks.
|
|
||||||
|
|
||||||
This patch also adds a tool to find calls which are doing this, however
|
|
||||||
it must be enabled by setting the startup flag -Dpaper.debug-sync-loads=true
|
|
||||||
|
|
||||||
To get a debug log for sync loads, the command is /paper syncloadinfo
|
|
||||||
---
|
|
||||||
.../com/destroystokyo/paper/PaperCommand.java | 44 +++++
|
|
||||||
.../paper/io/SyncLoadFinder.java | 172 ++++++++++++++++++
|
|
||||||
.../minecraft/server/ChunkProviderServer.java | 1 +
|
|
||||||
src/main/java/net/minecraft/server/World.java | 6 +-
|
|
||||||
4 files changed, 220 insertions(+), 3 deletions(-)
|
|
||||||
create mode 100644 src/main/java/com/destroystokyo/paper/io/SyncLoadFinder.java
|
|
||||||
|
|
||||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperCommand.java b/src/main/java/com/destroystokyo/paper/PaperCommand.java
|
|
||||||
index 8db92edc3..a37f11883 100644
|
|
||||||
--- a/src/main/java/com/destroystokyo/paper/PaperCommand.java
|
|
||||||
+++ b/src/main/java/com/destroystokyo/paper/PaperCommand.java
|
|
||||||
@@ -1,9 +1,13 @@
|
|
||||||
package com.destroystokyo.paper;
|
|
||||||
|
|
||||||
+import com.destroystokyo.paper.io.SyncLoadFinder;
|
|
||||||
import com.google.common.base.Functions;
|
|
||||||
import com.google.common.collect.Iterables;
|
|
||||||
import com.google.common.collect.Lists;
|
|
||||||
import com.google.common.collect.Maps;
|
|
||||||
+import com.google.gson.JsonObject;
|
|
||||||
+import com.google.gson.internal.Streams;
|
|
||||||
+import com.google.gson.stream.JsonWriter;
|
|
||||||
import net.minecraft.server.*;
|
|
||||||
import org.apache.commons.lang3.tuple.MutablePair;
|
|
||||||
import org.apache.commons.lang3.tuple.Pair;
|
|
||||||
@@ -18,6 +22,9 @@ import org.bukkit.craftbukkit.CraftWorld;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
+import java.io.FileOutputStream;
|
|
||||||
+import java.io.PrintStream;
|
|
||||||
+import java.io.StringWriter;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.time.format.DateTimeFormatter;
|
|
||||||
import java.util.*;
|
|
||||||
@@ -130,6 +137,9 @@ public class PaperCommand extends Command {
|
|
||||||
case "chunkinfo":
|
|
||||||
doChunkInfo(sender, args);
|
|
||||||
break;
|
|
||||||
+ case "syncloadinfo":
|
|
||||||
+ this.doSyncLoadInfo(sender, args);
|
|
||||||
+ break;
|
|
||||||
case "ver":
|
|
||||||
case "version":
|
|
||||||
Command ver = org.bukkit.Bukkit.getServer().getCommandMap().getCommand("version");
|
|
||||||
@@ -146,6 +156,40 @@ public class PaperCommand extends Command {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ private void doSyncLoadInfo(CommandSender sender, String[] args) {
|
|
||||||
+ if (!SyncLoadFinder.ENABLED) {
|
|
||||||
+ sender.sendMessage(ChatColor.RED + "This command requires the server startup flag '-Dpaper.debug-sync-loads=true' to be set.");
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+ File file = new File(new File(new File("."), "debug"),
|
|
||||||
+ "sync-load-info" + DateTimeFormatter.ofPattern("yyyy-MM-dd_HH.mm.ss").format(LocalDateTime.now()) + ".txt");
|
|
||||||
+ file.getParentFile().mkdirs();
|
|
||||||
+ sender.sendMessage(ChatColor.GREEN + "Writing sync load info to " + file.toString());
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ try {
|
|
||||||
+ final JsonObject data = SyncLoadFinder.serialize();
|
|
||||||
+
|
|
||||||
+ StringWriter stringWriter = new StringWriter();
|
|
||||||
+ JsonWriter jsonWriter = new JsonWriter(stringWriter);
|
|
||||||
+ jsonWriter.setIndent(" ");
|
|
||||||
+ jsonWriter.setLenient(false);
|
|
||||||
+ Streams.write(data, jsonWriter);
|
|
||||||
+
|
|
||||||
+ String fileData = stringWriter.toString();
|
|
||||||
+
|
|
||||||
+ try (
|
|
||||||
+ PrintStream out = new PrintStream(new FileOutputStream(file), false, "UTF-8")
|
|
||||||
+ ) {
|
|
||||||
+ out.print(fileData);
|
|
||||||
+ }
|
|
||||||
+ sender.sendMessage(ChatColor.GREEN + "Successfully written sync load information!");
|
|
||||||
+ } catch (Throwable thr) {
|
|
||||||
+ sender.sendMessage(ChatColor.RED + "Failed to write sync load information");
|
|
||||||
+ thr.printStackTrace();
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
private void doChunkInfo(CommandSender sender, String[] args) {
|
|
||||||
List<org.bukkit.World> worlds;
|
|
||||||
if (args.length < 2 || args[1].equals("*")) {
|
|
||||||
diff --git a/src/main/java/com/destroystokyo/paper/io/SyncLoadFinder.java b/src/main/java/com/destroystokyo/paper/io/SyncLoadFinder.java
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000..59aec1032
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/src/main/java/com/destroystokyo/paper/io/SyncLoadFinder.java
|
|
||||||
@@ -0,0 +1,172 @@
|
|
||||||
+package com.destroystokyo.paper.io;
|
|
||||||
+
|
|
||||||
+import com.google.gson.JsonArray;
|
|
||||||
+import com.google.gson.JsonObject;
|
|
||||||
+import com.mojang.datafixers.util.Pair;
|
|
||||||
+import it.unimi.dsi.fastutil.longs.Long2IntMap;
|
|
||||||
+import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap;
|
|
||||||
+import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
|
|
||||||
+import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
|
|
||||||
+import net.minecraft.server.World;
|
|
||||||
+
|
|
||||||
+import java.util.ArrayList;
|
|
||||||
+import java.util.List;
|
|
||||||
+import java.util.Map;
|
|
||||||
+import java.util.WeakHashMap;
|
|
||||||
+
|
|
||||||
+public class SyncLoadFinder {
|
|
||||||
+
|
|
||||||
+ public static final boolean ENABLED = Boolean.getBoolean("paper.debug-sync-loads");
|
|
||||||
+
|
|
||||||
+ private static final WeakHashMap<World, Object2ObjectOpenHashMap<ThrowableWithEquals, SyncLoadInformation>> SYNC_LOADS = new WeakHashMap<>();
|
|
||||||
+
|
|
||||||
+ private static final class SyncLoadInformation {
|
|
||||||
+
|
|
||||||
+ public int times;
|
|
||||||
+
|
|
||||||
+ public final Long2IntOpenHashMap coordinateTimes = new Long2IntOpenHashMap();
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ public static void logSyncLoad(final World world, final int chunkX, final int chunkZ) {
|
|
||||||
+ if (!ENABLED) {
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ final ThrowableWithEquals stacktrace = new ThrowableWithEquals(Thread.currentThread().getStackTrace());
|
|
||||||
+
|
|
||||||
+ SYNC_LOADS.compute(world, (final World keyInMap, Object2ObjectOpenHashMap<ThrowableWithEquals, SyncLoadInformation> map) -> {
|
|
||||||
+ if (map == null) {
|
|
||||||
+ map = new Object2ObjectOpenHashMap<>();
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ map.compute(stacktrace, (ThrowableWithEquals keyInMap0, SyncLoadInformation valueInMap) -> {
|
|
||||||
+ if (valueInMap == null) {
|
|
||||||
+ valueInMap = new SyncLoadInformation();
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ ++valueInMap.times;
|
|
||||||
+
|
|
||||||
+ valueInMap.coordinateTimes.compute(IOUtil.getCoordinateKey(chunkX, chunkZ), (Long keyInMap1, Integer valueInMap1) -> {
|
|
||||||
+ return valueInMap1 == null ? Integer.valueOf(1) : Integer.valueOf(valueInMap1.intValue() + 1);
|
|
||||||
+ });
|
|
||||||
+
|
|
||||||
+ return valueInMap;
|
|
||||||
+ });
|
|
||||||
+
|
|
||||||
+ return map;
|
|
||||||
+ });
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ public static JsonObject serialize() {
|
|
||||||
+ final JsonObject ret = new JsonObject();
|
|
||||||
+
|
|
||||||
+ final JsonArray worldsData = new JsonArray();
|
|
||||||
+
|
|
||||||
+ for (final Map.Entry<World, Object2ObjectOpenHashMap<ThrowableWithEquals, SyncLoadInformation>> entry : SYNC_LOADS.entrySet()) {
|
|
||||||
+ final World world = entry.getKey();
|
|
||||||
+
|
|
||||||
+ final JsonObject worldData = new JsonObject();
|
|
||||||
+
|
|
||||||
+ worldData.addProperty("name", world.getWorld().getName());
|
|
||||||
+
|
|
||||||
+ final List<Pair<ThrowableWithEquals, SyncLoadInformation>> data = new ArrayList<>();
|
|
||||||
+
|
|
||||||
+ entry.getValue().forEach((ThrowableWithEquals stacktrace, SyncLoadInformation times) -> {
|
|
||||||
+ data.add(new Pair<>(stacktrace, times));
|
|
||||||
+ });
|
|
||||||
+
|
|
||||||
+ data.sort((Pair<ThrowableWithEquals, SyncLoadInformation> pair1, Pair<ThrowableWithEquals, SyncLoadInformation> pair2) -> {
|
|
||||||
+ return Integer.compare(pair2.getSecond().times, pair1.getSecond().times); // reverse order
|
|
||||||
+ });
|
|
||||||
+
|
|
||||||
+ final JsonArray stacktraces = new JsonArray();
|
|
||||||
+
|
|
||||||
+ for (Pair<ThrowableWithEquals, SyncLoadInformation> pair : data) {
|
|
||||||
+ final JsonObject stacktrace = new JsonObject();
|
|
||||||
+
|
|
||||||
+ stacktrace.addProperty("times", pair.getSecond().times);
|
|
||||||
+
|
|
||||||
+ final JsonArray traces = new JsonArray();
|
|
||||||
+
|
|
||||||
+ for (StackTraceElement element : pair.getFirst().stacktrace) {
|
|
||||||
+ traces.add(String.valueOf(element));
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ stacktrace.add("stacktrace", traces);
|
|
||||||
+
|
|
||||||
+ final JsonArray coordinates = new JsonArray();
|
|
||||||
+
|
|
||||||
+ for (Long2IntMap.Entry coordinate : pair.getSecond().coordinateTimes.long2IntEntrySet()) {
|
|
||||||
+ final long key = coordinate.getLongKey();
|
|
||||||
+ final int times = coordinate.getIntValue();
|
|
||||||
+ coordinates.add("(" + IOUtil.getCoordinateX(key) + "," + IOUtil.getCoordinateZ(key) + "): " + times);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ stacktrace.add("coordinates", coordinates);
|
|
||||||
+
|
|
||||||
+ stacktraces.add(stacktrace);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ worldData.add("stacktraces", stacktraces);
|
|
||||||
+ worldsData.add(worldData);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ ret.add("worlds", worldsData);
|
|
||||||
+
|
|
||||||
+ return ret;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ static final class ThrowableWithEquals {
|
|
||||||
+
|
|
||||||
+ private final StackTraceElement[] stacktrace;
|
|
||||||
+ private final int hash;
|
|
||||||
+
|
|
||||||
+ public ThrowableWithEquals(final StackTraceElement[] stacktrace) {
|
|
||||||
+ this.stacktrace = stacktrace;
|
|
||||||
+ this.hash = ThrowableWithEquals.hash(stacktrace);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ public static int hash(final StackTraceElement[] stacktrace) {
|
|
||||||
+ int hash = 0;
|
|
||||||
+
|
|
||||||
+ for (int i = 0; i < stacktrace.length; ++i) {
|
|
||||||
+ hash *= 31;
|
|
||||||
+ hash += stacktrace[i].hashCode();
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return hash;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ @Override
|
|
||||||
+ public int hashCode() {
|
|
||||||
+ return this.hash;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ @Override
|
|
||||||
+ public boolean equals(final Object obj) {
|
|
||||||
+ if (obj == null || obj.getClass() != this.getClass()) {
|
|
||||||
+ return false;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ final ThrowableWithEquals other = (ThrowableWithEquals)obj;
|
|
||||||
+ final StackTraceElement[] otherStackTrace = other.stacktrace;
|
|
||||||
+
|
|
||||||
+ if (this.stacktrace.length != otherStackTrace.length) {
|
|
||||||
+ return false;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (this == obj) {
|
|
||||||
+ return true;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ for (int i = 0; i < this.stacktrace.length; ++i) {
|
|
||||||
+ if (!this.stacktrace[i].equals(otherStackTrace[i])) {
|
|
||||||
+ return false;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return true;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
|
||||||
index 64a899abc..b1bea8f90 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
|
||||||
@@ -279,6 +279,7 @@ public class ChunkProviderServer extends IChunkProvider {
|
|
||||||
// Paper start - async chunk io // Paper start - async chunk loading
|
|
||||||
this.world.asyncChunkTaskManager.raisePriority(x, z, com.destroystokyo.paper.io.PrioritizedTaskQueue.HIGHEST_PRIORITY);
|
|
||||||
// Paper end
|
|
||||||
+ com.destroystokyo.paper.io.SyncLoadFinder.logSyncLoad(this.world, x, z); // Paper - sync load info
|
|
||||||
this.world.timings.chunkAwait.startTiming(); // Paper
|
|
||||||
this.serverThreadQueue.awaitTasks(completablefuture::isDone);
|
|
||||||
this.world.timings.chunkAwait.stopTiming(); // Paper
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
|
||||||
index 9f657b01f..eb6929e2b 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/World.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/World.java
|
|
||||||
@@ -1252,7 +1252,7 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
|
|
||||||
|
|
||||||
for (int i1 = i; i1 <= j; ++i1) {
|
|
||||||
for (int j1 = k; j1 <= l; ++j1) {
|
|
||||||
- Chunk chunk = this.getChunkProvider().getChunkAt(i1, j1, false);
|
|
||||||
+ Chunk chunk = (Chunk)this.getChunkIfLoadedImmediately(i1, j1); // Paper
|
|
||||||
|
|
||||||
if (chunk != null) {
|
|
||||||
chunk.a(entity, axisalignedbb, list, predicate);
|
|
||||||
@@ -1272,7 +1272,7 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
|
|
||||||
|
|
||||||
for (int i1 = i; i1 < j; ++i1) {
|
|
||||||
for (int j1 = k; j1 < l; ++j1) {
|
|
||||||
- Chunk chunk = this.getChunkProvider().getChunkAt(i1, j1, false);
|
|
||||||
+ Chunk chunk = (Chunk)this.getChunkIfLoadedImmediately(i1, j1); // Paper
|
|
||||||
|
|
||||||
if (chunk != null) {
|
|
||||||
chunk.a(entitytypes, axisalignedbb, list, predicate);
|
|
||||||
@@ -1294,7 +1294,7 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
|
|
||||||
|
|
||||||
for (int i1 = i; i1 < j; ++i1) {
|
|
||||||
for (int j1 = k; j1 < l; ++j1) {
|
|
||||||
- Chunk chunk = ichunkprovider.getChunkAt(i1, j1, false);
|
|
||||||
+ Chunk chunk = (Chunk)this.getChunkIfLoadedImmediately(i1, j1); // Paper
|
|
||||||
|
|
||||||
if (chunk != null) {
|
|
||||||
chunk.a(oclass, axisalignedbb, list, predicate);
|
|
||||||
--
|
|
||||||
2.20.1
|
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
From 7f40cc38f5f6150023d2fddfe85838a04ae17059 Mon Sep 17 00:00:00 2001
|
From 030ba500b2c8fa0f513540507b027038ed8a6860 Mon Sep 17 00:00:00 2001
|
||||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||||
Date: Thu, 1 Aug 2019 19:15:12 -0500
|
Date: Thu, 1 Aug 2019 19:15:12 -0500
|
||||||
Subject: [PATCH] Add blacklist option for grindstone
|
Subject: [PATCH] Add blacklist option for grindstone
|
||||||
@@ -10,7 +10,7 @@ Subject: [PATCH] Add blacklist option for grindstone
|
|||||||
3 files changed, 35 insertions(+)
|
3 files changed, 35 insertions(+)
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/ContainerGrindstone.java b/src/main/java/net/minecraft/server/ContainerGrindstone.java
|
diff --git a/src/main/java/net/minecraft/server/ContainerGrindstone.java b/src/main/java/net/minecraft/server/ContainerGrindstone.java
|
||||||
index ed88e208..0a5abd2e 100644
|
index ed88e208d..0a5abd2e1 100644
|
||||||
--- a/src/main/java/net/minecraft/server/ContainerGrindstone.java
|
--- a/src/main/java/net/minecraft/server/ContainerGrindstone.java
|
||||||
+++ b/src/main/java/net/minecraft/server/ContainerGrindstone.java
|
+++ b/src/main/java/net/minecraft/server/ContainerGrindstone.java
|
||||||
@@ -57,12 +57,24 @@ public class ContainerGrindstone extends Container {
|
@@ -57,12 +57,24 @@ public class ContainerGrindstone extends Container {
|
||||||
@@ -51,7 +51,7 @@ index ed88e208..0a5abd2e 100644
|
|||||||
Map<Enchantment, Integer> map = EnchantmentManager.a(itemstack);
|
Map<Enchantment, Integer> map = EnchantmentManager.a(itemstack);
|
||||||
Iterator iterator = map.entrySet().iterator();
|
Iterator iterator = map.entrySet().iterator();
|
||||||
diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
|
diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
|
||||||
index 43e89b99..e538ba39 100644
|
index 43e89b99b..e538ba399 100644
|
||||||
--- a/src/main/java/net/minecraft/server/ItemStack.java
|
--- a/src/main/java/net/minecraft/server/ItemStack.java
|
||||||
+++ b/src/main/java/net/minecraft/server/ItemStack.java
|
+++ b/src/main/java/net/minecraft/server/ItemStack.java
|
||||||
@@ -538,6 +538,12 @@ public final class ItemStack {
|
@@ -538,6 +538,12 @@ public final class ItemStack {
|
||||||
@@ -68,7 +68,7 @@ index 43e89b99..e538ba39 100644
|
|||||||
return this.getItem().f(this);
|
return this.getItem().f(this);
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
||||||
index 20231143..ee83df5c 100644
|
index 20231143e..ee83df5cc 100644
|
||||||
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
||||||
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
||||||
@@ -1,6 +1,7 @@
|
@@ -1,6 +1,7 @@
|
||||||
@@ -98,5 +98,5 @@ index 20231143..ee83df5c 100644
|
|||||||
private static void requireShiftToMount() {
|
private static void requireShiftToMount() {
|
||||||
requireShiftToMount = getBoolean("settings.mobs.require-shift-to-mount", requireShiftToMount);
|
requireShiftToMount = getBoolean("settings.mobs.require-shift-to-mount", requireShiftToMount);
|
||||||
--
|
--
|
||||||
2.20.1
|
2.23.0.rc1
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
From d794df93ec583f24d4add8501c0d5afc8e2b276e Mon Sep 17 00:00:00 2001
|
From 8abe41f131c0e11e484fa4d87bbbddd051e8510a Mon Sep 17 00:00:00 2001
|
||||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||||
Date: Thu, 8 Aug 2019 15:29:15 -0500
|
Date: Thu, 8 Aug 2019 15:29:15 -0500
|
||||||
Subject: [PATCH] Implement AFK API
|
Subject: [PATCH] Implement AFK API
|
||||||
@@ -49,10 +49,10 @@ index 2a943f316..8ee2e6c7f 100644
|
|||||||
super(EntityTypes.PLAYER, world);
|
super(EntityTypes.PLAYER, world);
|
||||||
this.bY = ItemStack.a;
|
this.bY = ItemStack.a;
|
||||||
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
|
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||||
index 622899d8f..1c4dd7b09 100644
|
index f9469e9e7..9f495027e 100644
|
||||||
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||||
@@ -1593,8 +1593,51 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
@@ -1598,8 +1598,51 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||||
|
|
||||||
public void resetIdleTimer() {
|
public void resetIdleTimer() {
|
||||||
this.cm = SystemUtils.getMonotonicMillis();
|
this.cm = SystemUtils.getMonotonicMillis();
|
||||||
@@ -205,10 +205,10 @@ index 8aa8a672d..1ecadcebe 100644
|
|||||||
if (from.getX() != Double.MAX_VALUE) {
|
if (from.getX() != Double.MAX_VALUE) {
|
||||||
Location oldTo = to.clone();
|
Location oldTo = to.clone();
|
||||||
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
||||||
index 0bbd28ed8..0cdb4f26a 100644
|
index f996c2c24..a03b2395c 100644
|
||||||
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
||||||
@@ -319,7 +319,7 @@ public class WorldServer extends World {
|
@@ -318,7 +318,7 @@ public class WorldServer extends World {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.C && this.players.stream().noneMatch((entityplayer) -> {
|
if (this.C && this.players.stream().noneMatch((entityplayer) -> {
|
||||||
@@ -217,7 +217,7 @@ index 0bbd28ed8..0cdb4f26a 100644
|
|||||||
})) {
|
})) {
|
||||||
this.C = false;
|
this.C = false;
|
||||||
if (this.getGameRules().getBoolean(GameRules.DO_DAYLIGHT_CYCLE)) {
|
if (this.getGameRules().getBoolean(GameRules.DO_DAYLIGHT_CYCLE)) {
|
||||||
@@ -586,7 +586,7 @@ public class WorldServer extends World {
|
@@ -585,7 +585,7 @@ public class WorldServer extends World {
|
||||||
while (iterator.hasNext()) {
|
while (iterator.hasNext()) {
|
||||||
EntityPlayer entityplayer = (EntityPlayer) iterator.next();
|
EntityPlayer entityplayer = (EntityPlayer) iterator.next();
|
||||||
|
|
||||||
@@ -1,287 +0,0 @@
|
|||||||
From a588cde615cc358ee14a68296bd46ff6d278deed Mon Sep 17 00:00:00 2001
|
|
||||||
From: kickash32 <kickash32@gmail.com>
|
|
||||||
Date: Tue, 11 Jun 2019 22:22:16 -0400
|
|
||||||
Subject: [PATCH] implement optional per player mob spawns
|
|
||||||
|
|
||||||
---
|
|
||||||
.../destroystokyo/paper/PaperWorldConfig.java | 5 ++++
|
|
||||||
.../minecraft/server/ChunkProviderServer.java | 17 +++++++++--
|
|
||||||
.../net/minecraft/server/EntityPlayer.java | 1 +
|
|
||||||
.../net/minecraft/server/EntityTypes.java | 1 +
|
|
||||||
.../net/minecraft/server/PlayerChunkMap.java | 14 +++++++--
|
|
||||||
.../java/net/minecraft/server/PlayerMap.java | 1 +
|
|
||||||
.../net/minecraft/server/SpawnerCreature.java | 29 ++++++++-----------
|
|
||||||
.../net/minecraft/server/WorldServer.java | 26 +++++++++++++++++
|
|
||||||
8 files changed, 73 insertions(+), 21 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
||||||
index e7bbeef74..ac9883a4b 100644
|
|
||||||
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
||||||
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
||||||
@@ -514,6 +514,11 @@ public class PaperWorldConfig {
|
|
||||||
maxAutoSaveChunksPerTick = getInt("max-auto-save-chunks-per-tick", 24);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ public boolean perPlayerMobSpawns = false;
|
|
||||||
+ private void perPlayerMobSpawns() {
|
|
||||||
+ perPlayerMobSpawns = getBoolean("per-player-mob-spawns", false);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
public boolean countAllMobsForSpawning = false;
|
|
||||||
private void countAllMobsForSpawning() {
|
|
||||||
countAllMobsForSpawning = getBoolean("count-all-mobs-for-spawning", false);
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
|
||||||
index 46d38b924..4acc3c4c3 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
|
||||||
@@ -609,9 +609,22 @@ public class ChunkProviderServer extends IChunkProvider {
|
|
||||||
// Paper start - only allow spawns upto the limit per chunk and update count afterwards
|
|
||||||
int currEntityCount = object2intmap.getInt(enumcreaturetype);
|
|
||||||
int difference = k1 - currEntityCount;
|
|
||||||
+
|
|
||||||
+ if (this.world.paperConfig.perPlayerMobSpawns) {
|
|
||||||
+ int minDiff = Integer.MAX_VALUE;
|
|
||||||
+ for(EntityPlayer entityplayer : playerChunkMap.getPlayersNear(chunk.getPos())) {
|
|
||||||
+ if (entityplayer.isSpectator() || !entityplayer.affectsSpawning) { continue; }
|
|
||||||
+ minDiff = Math.min(limit - this.world.getMobCountNear(entityplayer, enumcreaturetype), minDiff);
|
|
||||||
+ }
|
|
||||||
+ difference = (minDiff == Integer.MAX_VALUE) ? 0 : minDiff;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (difference > 0) {
|
|
||||||
- object2intmap.put(enumcreaturetype, currEntityCount + SpawnerCreature.spawnMobs(enumcreaturetype, world, chunk, blockposition, difference));
|
|
||||||
- // Paper end
|
|
||||||
+ SpawnerCreature.spawnMobs(enumcreaturetype, this.world, chunk, blockposition, difference, entity -> {
|
|
||||||
+ this.world.updatePlayerMobCounts(entity);
|
|
||||||
+ object2intmap.put(enumcreaturetype, currEntityCount + 1);
|
|
||||||
+ });
|
|
||||||
+ // Paper end
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
|
|
||||||
index d375069f3..622899d8f 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
|
||||||
@@ -80,6 +80,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
|
||||||
public boolean queueHealthUpdatePacket = false;
|
|
||||||
public net.minecraft.server.PacketPlayOutUpdateHealth queuedHealthUpdatePacket;
|
|
||||||
// Paper end
|
|
||||||
+ public int[] mobCounts = new int[EnumCreatureType.values().length]; // Paper
|
|
||||||
|
|
||||||
// CraftBukkit start
|
|
||||||
public String displayName;
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java
|
|
||||||
index 84aa1db72..7405d78c2 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/EntityTypes.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/EntityTypes.java
|
|
||||||
@@ -260,6 +260,7 @@ public class EntityTypes<T extends Entity> {
|
|
||||||
return this.be;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ public EnumCreatureType getEnumCreatureType(){ return this.e(); } // Paper - OBFHELPER
|
|
||||||
public EnumCreatureType e() {
|
|
||||||
return this.ba;
|
|
||||||
}
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
|
||||||
index 4c774e31d..e069c2f32 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
|
||||||
@@ -137,6 +137,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
|
||||||
this.setViewDistance(i);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ private static double squareDist(ChunkCoordIntPair chunkcoord, Entity entity) { return a(chunkcoord, entity); } // Paper - OBFHELPER
|
|
||||||
private static double a(ChunkCoordIntPair chunkcoordintpair, Entity entity) {
|
|
||||||
double d0 = (double) (chunkcoordintpair.x * 16 + 8);
|
|
||||||
double d1 = (double) (chunkcoordintpair.z * 16 + 8);
|
|
||||||
@@ -146,6 +147,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
|
||||||
return d2 * d2 + d3 * d3;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ private static int distanceBetween(ChunkCoordIntPair chunkcoordintpair, EntityPlayer entityplayer) { return b(chunkcoordintpair, entityplayer, true); } // Paper - OBFHELPER
|
|
||||||
private static int b(ChunkCoordIntPair chunkcoordintpair, EntityPlayer entityplayer, boolean flag) {
|
|
||||||
int i;
|
|
||||||
int j;
|
|
||||||
@@ -1340,8 +1342,16 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
- @Override
|
|
||||||
- public Stream<EntityPlayer> a(ChunkCoordIntPair chunkcoordintpair, boolean flag) {
|
|
||||||
+ // Paper start
|
|
||||||
+ public List<EntityPlayer> getPlayersNear(ChunkCoordIntPair chunkcoordintpair) {
|
|
||||||
+ List<EntityPlayer> players = this.playerMap.getPlayers();
|
|
||||||
+ players.removeIf(
|
|
||||||
+ entityplayer -> distanceBetween(chunkcoordintpair, entityplayer) > this.viewDistance);
|
|
||||||
+ return players;
|
|
||||||
+ }
|
|
||||||
+ // Paper end
|
|
||||||
+
|
|
||||||
+ @Override public Stream<EntityPlayer> a(ChunkCoordIntPair chunkcoordintpair, boolean flag) {
|
|
||||||
return this.playerMap.a(chunkcoordintpair.pair()).filter((entityplayer) -> {
|
|
||||||
int i = b(chunkcoordintpair, entityplayer, true);
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/PlayerMap.java b/src/main/java/net/minecraft/server/PlayerMap.java
|
|
||||||
index f386c4e99..f8f35b0e0 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/PlayerMap.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/PlayerMap.java
|
|
||||||
@@ -10,6 +10,7 @@ public final class PlayerMap {
|
|
||||||
|
|
||||||
public PlayerMap() {}
|
|
||||||
|
|
||||||
+ public java.util.List<EntityPlayer> getPlayers() { return new java.util.ArrayList<>(this.a.keySet()); } // Paper - Based on method below without streams
|
|
||||||
public Stream<EntityPlayer> a(long i) {
|
|
||||||
return this.a.keySet().stream();
|
|
||||||
}
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
|
|
||||||
index 62fc61df2..b2a1999bb 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
|
|
||||||
@@ -18,18 +18,16 @@ public final class SpawnerCreature {
|
|
||||||
|
|
||||||
// Paper start - add maxSpawns parameter and update counts
|
|
||||||
public static void a(EnumCreatureType enumcreaturetype, World world, Chunk chunk, BlockPosition blockposition) {
|
|
||||||
- spawnMobs(enumcreaturetype, world, chunk, blockposition, Integer.MAX_VALUE);
|
|
||||||
+ spawnMobs(enumcreaturetype, world, chunk, blockposition, Integer.MAX_VALUE, entity -> {});
|
|
||||||
}
|
|
||||||
-
|
|
||||||
- public static int spawnMobs(EnumCreatureType enumcreaturetype, World world, Chunk chunk, BlockPosition blockposition, int maxSpawns) {
|
|
||||||
- // Paper end
|
|
||||||
+ public static void spawnMobs(EnumCreatureType enumcreaturetype, World world, Chunk chunk, BlockPosition blockposition, int maxSpawns, java.util.function.Consumer<Entity> trackEntity) {
|
|
||||||
+ // Paper end
|
|
||||||
ChunkGenerator<?> chunkgenerator = world.getChunkProvider().getChunkGenerator();
|
|
||||||
- int i = 0;
|
|
||||||
+ int i = 0; // Paper - force diff on name change
|
|
||||||
BlockPosition blockposition1 = getRandomPosition(world, chunk);
|
|
||||||
int j = blockposition1.getX();
|
|
||||||
int k = blockposition1.getY();
|
|
||||||
int l = blockposition1.getZ();
|
|
||||||
- int amountSpawned = 0; // Paper - keep track of mobs spawned
|
|
||||||
|
|
||||||
if (k >= 1) {
|
|
||||||
IBlockData iblockdata = world.getTypeIfLoadedAndInBounds(blockposition1); // Paper - don't load chunks for mob spawn
|
|
||||||
@@ -81,11 +79,11 @@ public final class SpawnerCreature {
|
|
||||||
// Purpur start
|
|
||||||
if (entitytypes == EntityTypes.GIANT) {
|
|
||||||
if (!net.pl3x.purpur.PurpurConfig.giantsNaturallySpawn) {
|
|
||||||
- return amountSpawned;
|
|
||||||
+ return;
|
|
||||||
}
|
|
||||||
} else if (entitytypes == EntityTypes.ILLUSIONER) {
|
|
||||||
if (!net.pl3x.purpur.PurpurConfig.illusionersNaturallySpawn) {
|
|
||||||
- return amountSpawned;
|
|
||||||
+ return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Purpur end
|
|
||||||
@@ -107,7 +105,7 @@ public final class SpawnerCreature {
|
|
||||||
);
|
|
||||||
if (!event.callEvent()) {
|
|
||||||
if (event.shouldAbortSpawn()) {
|
|
||||||
- return amountSpawned; // Paper
|
|
||||||
+ return;
|
|
||||||
}
|
|
||||||
++i2;
|
|
||||||
continue;
|
|
||||||
@@ -126,7 +124,7 @@ public final class SpawnerCreature {
|
|
||||||
} catch (Exception exception) {
|
|
||||||
SpawnerCreature.LOGGER.warn("Failed to create mob", exception);
|
|
||||||
ServerInternalException.reportInternalException(exception); // Paper
|
|
||||||
- return amountSpawned; // Paper
|
|
||||||
+ return;
|
|
||||||
}
|
|
||||||
|
|
||||||
entityinsentient.setPositionRotation((double) f, (double) k, (double) f1, world.random.nextFloat() * 360.0F, 0.0F);
|
|
||||||
@@ -134,18 +132,16 @@ public final class SpawnerCreature {
|
|
||||||
groupdataentity = entityinsentient.prepare(world, world.getDamageScaler(new BlockPosition(entityinsentient)), EnumMobSpawn.NATURAL, groupdataentity, (NBTTagCompound) null);
|
|
||||||
// CraftBukkit start
|
|
||||||
if (world.addEntity(entityinsentient, SpawnReason.NATURAL)) {
|
|
||||||
- ++i;
|
|
||||||
+ ++i; // Paper - force diff on name change
|
|
||||||
++i2;
|
|
||||||
// Paper start - stop when limit is reached
|
|
||||||
- ++amountSpawned;
|
|
||||||
- }
|
|
||||||
- if (amountSpawned >= maxSpawns) {
|
|
||||||
- return amountSpawned;
|
|
||||||
+ trackEntity.accept(entityinsentient);
|
|
||||||
}
|
|
||||||
+ if (i >= maxSpawns) { return; }
|
|
||||||
// Paper end
|
|
||||||
// CraftBukkit end
|
|
||||||
if (i >= entityinsentient.dC()) {
|
|
||||||
- return amountSpawned; // Paper
|
|
||||||
+ return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (entityinsentient.c(i2)) {
|
|
||||||
@@ -171,7 +167,6 @@ public final class SpawnerCreature {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
- return amountSpawned; // Paper
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
|
||||||
index 0e23eeb1f..0bbd28ed8 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
|
||||||
@@ -70,6 +70,7 @@ public class WorldServer extends World {
|
|
||||||
private boolean ticking;
|
|
||||||
@Nullable
|
|
||||||
private final MobSpawnerTrader mobSpawnerTrader;
|
|
||||||
+ private Map<UUID, Map<EnumCreatureType, Integer>> playerMobTypeMap; // Paper
|
|
||||||
|
|
||||||
// CraftBukkit start
|
|
||||||
private int tickPosition;
|
|
||||||
@@ -966,6 +967,16 @@ public class WorldServer extends World {
|
|
||||||
}
|
|
||||||
|
|
||||||
public Object2IntMap<EnumCreatureType> l() {
|
|
||||||
+ // Paper start
|
|
||||||
+ if (this.paperConfig.perPlayerMobSpawns) {
|
|
||||||
+ int maxI = EnumCreatureType.values().length;
|
|
||||||
+ for(EntityPlayer player : this.players){
|
|
||||||
+ for(int i = 0; i < maxI; i++) {
|
|
||||||
+ player.mobCounts[i] = 0;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ // Paper end
|
|
||||||
Object2IntMap<EnumCreatureType> object2intmap = new Object2IntOpenHashMap();
|
|
||||||
ObjectIterator objectiterator = this.entitiesById.values().iterator();
|
|
||||||
|
|
||||||
@@ -990,6 +1001,7 @@ public class WorldServer extends World {
|
|
||||||
entity.spawnReason == CreatureSpawnEvent.SpawnReason.CHUNK_GEN)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
+ updatePlayerMobCounts(entity);
|
|
||||||
// Paper end
|
|
||||||
object2intmap.mergeInt(enumcreaturetype, 1, Integer::sum);
|
|
||||||
}
|
|
||||||
@@ -998,6 +1010,20 @@ public class WorldServer extends World {
|
|
||||||
return object2intmap;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ // Paper start
|
|
||||||
+ public void updatePlayerMobCounts(Entity entity) {
|
|
||||||
+ if (!this.paperConfig.perPlayerMobSpawns) { return; }
|
|
||||||
+ for (EntityPlayer player : ((ChunkProviderServer) this.chunkProvider).playerChunkMap.getPlayersNear(entity.getChunkAtLocation().getPos())) {
|
|
||||||
+ EnumCreatureType enumType = entity.getEntityType().getEnumCreatureType();
|
|
||||||
+ player.mobCounts[enumType.ordinal()]++;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ public int getMobCountNear(EntityPlayer entityPlayer, EnumCreatureType enumCreatureType) {
|
|
||||||
+ return entityPlayer.mobCounts[enumCreatureType.ordinal()];
|
|
||||||
+ }
|
|
||||||
+ // Paper end
|
|
||||||
+
|
|
||||||
@Override
|
|
||||||
public boolean addEntity(Entity entity) {
|
|
||||||
// CraftBukkit start
|
|
||||||
--
|
|
||||||
2.23.0.rc1
|
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
From 89cb55714c89430c7675fc909da2c0ebf0b07c87 Mon Sep 17 00:00:00 2001
|
From 19494803caeaf400fd2e4f5a61c3077ec08a4eab Mon Sep 17 00:00:00 2001
|
||||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||||
Date: Sun, 11 Aug 2019 22:25:33 -0500
|
Date: Sun, 11 Aug 2019 22:25:33 -0500
|
||||||
Subject: [PATCH] Advancement stuffs
|
Subject: [PATCH] Advancement stuffs
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
From ac6b964fcc587f744b965cfd03e45663667bb065 Mon Sep 17 00:00:00 2001
|
From 966cdfa706801619c2a4849a6fe9fc91111b350c Mon Sep 17 00:00:00 2001
|
||||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||||
Date: Sat, 17 Aug 2019 15:27:09 -0500
|
Date: Sat, 17 Aug 2019 15:27:09 -0500
|
||||||
Subject: [PATCH] Add option for zombies targetting turtle eggs
|
Subject: [PATCH] Add option for zombies targetting turtle eggs
|
||||||
Reference in New Issue
Block a user