diff --git a/Paper b/Paper index d5cb9308f..cae142b85 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit d5cb9308f20639fd080ff0cc8c151396325ea7ac +Subproject commit cae142b85d8777ca2c7d5db11c427d6ff802b9ad diff --git a/patches/server/0001-Tuinity-Server-Changes.patch b/patches/server/0001-Tuinity-Server-Changes.patch index 26a755401..d0242bfc7 100644 --- a/patches/server/0001-Tuinity-Server-Changes.patch +++ b/patches/server/0001-Tuinity-Server-Changes.patch @@ -10919,7 +10919,7 @@ index 7636a51a7ef0aa05b5b2aaa9d17e7b551dedac96..480a02a8f6ec7110f9af8f2037fdc09a double d0 = this.locX() + vec3d.x; diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index 17f6031558d98182c32b3df3fb60daf528d5e684..81249a38ecfdb04a8e266c8d9c3d00d63ccead4b 100644 +index d51925612bc3d37164a8e821833ef1721b6e6976..cf14b83ec3c2b9a2812f50f3bca991e029bf7c67 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -531,6 +531,185 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/patches/server/0008-AFK-API.patch b/patches/server/0008-AFK-API.patch index ae4255c7b..bc2769f40 100644 --- a/patches/server/0008-AFK-API.patch +++ b/patches/server/0008-AFK-API.patch @@ -25,7 +25,7 @@ index 59b00c78f8d92bcceca35d0f25e4d94b3ebdc6e2..e0cf2af8fcbfc66fc32aa8e693b62160 super(EntityTypes.PLAYER, world); this.bL = ItemStack.b; diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index 81249a38ecfdb04a8e266c8d9c3d00d63ccead4b..771f634a06eca998853830d78b4d1546dd2b4c67 100644 +index cf14b83ec3c2b9a2812f50f3bca991e029bf7c67..a4e266955ada46db08b1815e549fa4bde9606df2 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -1929,8 +1929,54 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/patches/server/0016-Player-invulnerabilities.patch b/patches/server/0016-Player-invulnerabilities.patch index 3a41393ac..a5d858d31 100644 --- a/patches/server/0016-Player-invulnerabilities.patch +++ b/patches/server/0016-Player-invulnerabilities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Player invulnerabilities diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index 771f634a06eca998853830d78b4d1546dd2b4c67..f4f6e85bd98ce57bf2daeb9ea30bccc25fdae8ec 100644 +index a4e266955ada46db08b1815e549fa4bde9606df2..599d7fbc4db928a9825e154c09c9a74d39a39a03 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -154,6 +154,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/patches/server/0020-Silk-touch-spawners.patch b/patches/server/0020-Silk-touch-spawners.patch index f41f726da..209991edd 100644 --- a/patches/server/0020-Silk-touch-spawners.patch +++ b/patches/server/0020-Silk-touch-spawners.patch @@ -4,8 +4,20 @@ Date: Thu, 9 May 2019 14:27:37 -0500 Subject: [PATCH] Silk touch spawners +diff --git a/src/main/java/io/papermc/paper/adventure/PaperAdventure.java b/src/main/java/io/papermc/paper/adventure/PaperAdventure.java +index 23e6a033612d964f1185dd09a10b470f46685568..a93102ec168ebddd524492250df09c7522b12fc8 100644 +--- a/src/main/java/io/papermc/paper/adventure/PaperAdventure.java ++++ b/src/main/java/io/papermc/paper/adventure/PaperAdventure.java +@@ -33,6 +33,7 @@ import org.checkerframework.checker.nullness.qual.Nullable; + public final class PaperAdventure { + public static final AttributeKey LOCALE_ATTRIBUTE = AttributeKey.valueOf("adventure:locale"); + public static final LegacyComponentSerializer LEGACY_SECTION_UXRC = LegacyComponentSerializer.builder().hexColors().useUnusualXRepeatedCharacterHexFormat().build(); ++ public static final LegacyComponentSerializer LEGACY_AMPERSAND = LegacyComponentSerializer.builder().character(LegacyComponentSerializer.AMPERSAND_CHAR).hexColors().build(); // Purpur + static final GsonComponentSerializer GSON = GsonComponentSerializer.builder() + .legacyHoverEventSerializer(NBTLegacyHoverEventSerializer.INSTANCE) + .build(); diff --git a/src/main/java/net/minecraft/server/BlockMobSpawner.java b/src/main/java/net/minecraft/server/BlockMobSpawner.java -index 81e145ff0759322f74888c81df8d2133fece7144..f9c4fe9bec9f0ca32e2de907f8705a5d627e0736 100644 +index 81e145ff0759322f74888c81df8d2133fece7144..567a6a064254d99ae6a931b91e6bdd94badb19fc 100644 --- a/src/main/java/net/minecraft/server/BlockMobSpawner.java +++ b/src/main/java/net/minecraft/server/BlockMobSpawner.java @@ -1,5 +1,17 @@ @@ -47,7 +59,7 @@ index 81e145ff0759322f74888c81df8d2133fece7144..f9c4fe9bec9f0ca32e2de907f8705a5d + + String name = world.purpurConfig.silkTouchSpawnerName; + if (name != null && !name.isEmpty() && !name.equals("Spawner")) { -+ final Component displayName = LegacyComponentSerializer.legacyAmpersand().deserialize(name).replaceText(config).decoration(ITALIC, false); ++ final Component displayName = PaperAdventure.LEGACY_AMPERSAND.deserialize(name).replaceText(config).decoration(ITALIC, false); + display.set("Name", NBTTagString.create(GsonComponentSerializer.gson().serialize(displayName))); + customDisplay = true; + } @@ -56,7 +68,7 @@ index 81e145ff0759322f74888c81df8d2133fece7144..f9c4fe9bec9f0ca32e2de907f8705a5d + if (lore != null && !lore.isEmpty()) { + NBTTagList list = new NBTTagList(); + for (String line : lore) { -+ final Component lineComponent = LegacyComponentSerializer.legacyAmpersand().deserialize(line).replaceText(config).decoration(ITALIC, false); ++ final Component lineComponent = PaperAdventure.LEGACY_AMPERSAND.deserialize(line).replaceText(config).decoration(ITALIC, false); + list.add(NBTTagString.create(GsonComponentSerializer.gson().serialize(lineComponent))); + } + display.set("Lore", list); diff --git a/patches/server/0045-Signs-allow-color-codes.patch b/patches/server/0045-Signs-allow-color-codes.patch index 303f7a9a9..55e4cb2f3 100644 --- a/patches/server/0045-Signs-allow-color-codes.patch +++ b/patches/server/0045-Signs-allow-color-codes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Signs allow color codes diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index f4f6e85bd98ce57bf2daeb9ea30bccc25fdae8ec..a76d4ed8a0baa09340fcf58e647afa1ce18d9c97 100644 +index 599d7fbc4db928a9825e154c09c9a74d39a39a03..8bfff671ed779991b8ef5433cfec61b405a184ba 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -1449,6 +1449,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -37,7 +37,7 @@ index 82ac1971278c98d1d09e18b8e0abaacc358efcac..0054c4ec899146e5bb8cebebba2db2a0 } SignChangeEvent event = new SignChangeEvent(org.bukkit.craftbukkit.block.CraftBlock.at(worldserver, blockposition), this.getPlayer(), lines); diff --git a/src/main/java/net/minecraft/server/TileEntitySign.java b/src/main/java/net/minecraft/server/TileEntitySign.java -index 316766970243e8ac00e4c82f6c710de5edc3fa51..be6c9e17379e2c9bf50c58f11632c308efded6c3 100644 +index 316766970243e8ac00e4c82f6c710de5edc3fa51..23706010e6419821709cdaf34c0b1bbb91671d01 100644 --- a/src/main/java/net/minecraft/server/TileEntitySign.java +++ b/src/main/java/net/minecraft/server/TileEntitySign.java @@ -1,6 +1,7 @@ @@ -56,7 +56,7 @@ index 316766970243e8ac00e4c82f6c710de5edc3fa51..be6c9e17379e2c9bf50c58f11632c308 + public PacketPlayOutTileEntityData getTranslatedUpdatePacket() { + NBTTagCompound nbt = save(new NBTTagCompound()); + for (int i = 0; i < 4; ++i) { -+ String line = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacyAmpersand().serialize(PaperAdventure.asAdventure(lines[i])); ++ String line = PaperAdventure.LEGACY_AMPERSAND.serialize(PaperAdventure.asAdventure(lines[i])); + nbt.setString("Text" + (i + 1), net.kyori.adventure.text.serializer.gson.GsonComponentSerializer.gson().serialize(net.kyori.adventure.text.Component.text(line))); + } + nbt.setString("PurpurEditor", "true"); diff --git a/patches/server/0047-Controllable-Minecarts.patch b/patches/server/0047-Controllable-Minecarts.patch index e1030fc03..e9cb3079e 100644 --- a/patches/server/0047-Controllable-Minecarts.patch +++ b/patches/server/0047-Controllable-Minecarts.patch @@ -106,7 +106,7 @@ index 022dfdc5b6af4b243e7e4da8660e8e41d04e1a30..298af30b1a7f12d42216fc1b7ee801fd this.move(EnumMoveType.SELF, this.getMot()); if (!this.onGround) { diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index a76d4ed8a0baa09340fcf58e647afa1ce18d9c97..26220aa522f5bfa64fe0cacbe3800624b41299bb 100644 +index 8bfff671ed779991b8ef5433cfec61b405a184ba..2ccfa195cf351ca0e2b867c119a66e9fa6bfc742 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -1002,6 +1002,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/patches/server/0049-Players-should-not-cram-to-death.patch b/patches/server/0049-Players-should-not-cram-to-death.patch index 626df24e0..418dfff59 100644 --- a/patches/server/0049-Players-should-not-cram-to-death.patch +++ b/patches/server/0049-Players-should-not-cram-to-death.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Players should not cram to death diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index 26220aa522f5bfa64fe0cacbe3800624b41299bb..d3b0e7d03b625f13b1317025d88d93886a900c95 100644 +index 2ccfa195cf351ca0e2b867c119a66e9fa6bfc742..56d8ad52abfcedffc0baebba9e250177fce7153b 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -1426,7 +1426,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/patches/server/0085-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch b/patches/server/0085-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch index 92821cb7a..1bd8dc91a 100644 --- a/patches/server/0085-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch +++ b/patches/server/0085-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch @@ -17,7 +17,7 @@ index ba678ad67d1a48724738a71e1ff3b4e85b672f2c..67f33647cd66c32fcc6d91edd7f66684 } } diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index d3b0e7d03b625f13b1317025d88d93886a900c95..fd923594c67f51cfd77ca22f5b6664a3b7136e7e 100644 +index 56d8ad52abfcedffc0baebba9e250177fce7153b..fcf8f988c1dbc7798e3c1b837de33b3049b33a2f 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -2414,4 +2414,26 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/patches/server/0097-Allow-anvil-colors.patch b/patches/server/0097-Allow-anvil-colors.patch index 8a85026a7..8f946d112 100644 --- a/patches/server/0097-Allow-anvil-colors.patch +++ b/patches/server/0097-Allow-anvil-colors.patch @@ -5,17 +5,16 @@ Subject: [PATCH] Allow anvil colors diff --git a/src/main/java/net/minecraft/server/ContainerAnvil.java b/src/main/java/net/minecraft/server/ContainerAnvil.java -index 4aa6b035a6a8ea39401c6566cd286de39f60e942..bae418eb43a413b09adbfa1f87e5e20052289a21 100644 +index 4aa6b035a6a8ea39401c6566cd286de39f60e942..02924766a4c655f149b58bf1ded8e0610f8900a3 100644 --- a/src/main/java/net/minecraft/server/ContainerAnvil.java +++ b/src/main/java/net/minecraft/server/ContainerAnvil.java -@@ -10,6 +10,14 @@ import org.apache.logging.log4j.Logger; +@@ -10,6 +10,13 @@ import org.apache.logging.log4j.Logger; import org.bukkit.craftbukkit.inventory.CraftInventoryView; // CraftBukkit end +// Purpur start +import io.papermc.paper.adventure.PaperAdventure; +import net.kyori.adventure.text.Component; -+import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; + +import static net.kyori.adventure.text.format.TextDecoration.ITALIC; +// Purpur end @@ -23,7 +22,7 @@ index 4aa6b035a6a8ea39401c6566cd286de39f60e942..bae418eb43a413b09adbfa1f87e5e200 public class ContainerAnvil extends ContainerAnvilAbstract { private static final Logger LOGGER = LogManager.getLogger(); -@@ -251,6 +259,17 @@ public class ContainerAnvil extends ContainerAnvilAbstract { +@@ -251,6 +258,17 @@ public class ContainerAnvil extends ContainerAnvilAbstract { } else if (!this.renameText.equals(itemstack.getName().getString())) { b1 = 1; i += b1; @@ -31,9 +30,9 @@ index 4aa6b035a6a8ea39401c6566cd286de39f60e942..bae418eb43a413b09adbfa1f87e5e200 + if (player != null && player.world.purpurConfig.anvilAllowColors && player.getBukkitEntity().hasPermission("purpur.anvil.color")) { + final Component renameTextComponent; + if (renameText.startsWith("&r") && player.getBukkitEntity().hasPermission("purpur.anvil.remove_italics")) { -+ renameTextComponent = LegacyComponentSerializer.legacyAmpersand().deserialize(renameText.substring(2)).decoration(ITALIC, false); ++ renameTextComponent = PaperAdventure.LEGACY_AMPERSAND.deserialize(renameText.substring(2)).decoration(ITALIC, false); + } else { -+ renameTextComponent = LegacyComponentSerializer.legacyAmpersand().deserialize(renameText); ++ renameTextComponent = PaperAdventure.LEGACY_AMPERSAND.deserialize(renameText); + } + itemstack1.a(PaperAdventure.asVanilla(renameTextComponent)); + } else diff --git a/patches/server/0102-Ridables.patch b/patches/server/0102-Ridables.patch index 2fd119cdf..4a6529a24 100644 --- a/patches/server/0102-Ridables.patch +++ b/patches/server/0102-Ridables.patch @@ -3203,7 +3203,7 @@ index a3a428da99574c485fcf2b8c7944e0d8354146ee..cf7de0127166f6175a6246062c8664e6 this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true)); this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityVillagerAbstract.class, false)); diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index fd923594c67f51cfd77ca22f5b6664a3b7136e7e..f4d971448c91d2814055eea9f13426f1225c3e21 100644 +index fcf8f988c1dbc7798e3c1b837de33b3049b33a2f..cfbe3c1c96e6406219c5f186ae15e178d877dfd6 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -512,6 +512,15 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -6381,7 +6381,7 @@ index 744e6351c58e5aa4a0c668f2ff1adb76a3dc0822..a3b810556e306bc2be65c7811cfa7806 + // Purpur end } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index a6d9212da2821d12449b0405dd360185388eefe5..6eece873dc948c89f8431a6f11e4a940bf6ca476 100644 +index ee325757c79d3dc6db6bcc80c32a371e064ef24d..fefac469e4c8b803cd8e8c104103fad586ff2998 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -527,6 +527,18 @@ public class CraftEventFactory { diff --git a/patches/server/0121-Add-tablist-suffix-option-for-afk.patch b/patches/server/0121-Add-tablist-suffix-option-for-afk.patch index 170b3eb06..a529bf5c1 100644 --- a/patches/server/0121-Add-tablist-suffix-option-for-afk.patch +++ b/patches/server/0121-Add-tablist-suffix-option-for-afk.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add tablist suffix option for afk diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index f4d971448c91d2814055eea9f13426f1225c3e21..b3b88a1d9eab891a09c5ce64fc5e9440e1997dd0 100644 +index cfbe3c1c96e6406219c5f186ae15e178d877dfd6..f22fcc41a20f2be14a05d418a6345234418d6199 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -1980,7 +1980,11 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/patches/server/0130-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch b/patches/server/0130-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch index f2275519d..07099e28e 100644 --- a/patches/server/0130-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch +++ b/patches/server/0130-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch @@ -33,7 +33,7 @@ index e6e180ea46529e80eeab95f550dee5f3f8198ba8..b6bfd8f5073ce481dfe2b1667ece42d3 if (flag5) { if (i > 0) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 6eece873dc948c89f8431a6f11e4a940bf6ca476..3796cdb49329584fe8c753bf24e4b23f922de372 100644 +index fefac469e4c8b803cd8e8c104103fad586ff2998..8f5ca21a9d0e198aade8b7bc0d7990f444c81ffd 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1073,7 +1073,7 @@ public class CraftEventFactory { diff --git a/patches/server/0137-Add-boat-fall-damage-config.patch b/patches/server/0137-Add-boat-fall-damage-config.patch index bb5b3fa79..0bef58039 100644 --- a/patches/server/0137-Add-boat-fall-damage-config.patch +++ b/patches/server/0137-Add-boat-fall-damage-config.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add boat fall damage config diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index b3b88a1d9eab891a09c5ce64fc5e9440e1997dd0..d9565c8a33afbaaec66672d888f45dfa63985a2e 100644 +index f22fcc41a20f2be14a05d418a6345234418d6199..0e5581e363f80735549cfbc5259eb044828e483b 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -1011,7 +1011,16 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/patches/server/0164-Fix-stuck-in-portals.patch b/patches/server/0164-Fix-stuck-in-portals.patch index 666c7fd20..6d3ac9573 100644 --- a/patches/server/0164-Fix-stuck-in-portals.patch +++ b/patches/server/0164-Fix-stuck-in-portals.patch @@ -25,7 +25,7 @@ index 1c407f3050ba34afd33ce66b6ef8ef682010091a..a2ba87dac005572d2617b6fe2c92f698 this.inPortal = true; diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index d9565c8a33afbaaec66672d888f45dfa63985a2e..d9206191e653df877e327b6538eaa321c48be789 100644 +index 0e5581e363f80735549cfbc5259eb044828e483b..67f822e64013540dd890e0269c8f770f7c029405 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -1161,6 +1161,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {