diff --git a/patches/server-unmapped/0132-Add-demo-command.patch b/patches/server-unmapped/0132-Add-demo-command.patch deleted file mode 100644 index e9dfecbed..000000000 --- a/patches/server-unmapped/0132-Add-demo-command.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: BillyGalbreath -Date: Mon, 30 Nov 2020 03:12:04 -0600 -Subject: [PATCH] Add demo command - - -diff --git a/src/main/java/net/minecraft/commands/CommandDispatcher.java b/src/main/java/net/minecraft/commands/CommandDispatcher.java -index 185dee82b86aa3abb04809ddcf31c81e29664c62..0ea56c863a9a1019b36f7f9f9164301aef12637b 100644 ---- a/src/main/java/net/minecraft/commands/CommandDispatcher.java -+++ b/src/main/java/net/minecraft/commands/CommandDispatcher.java -@@ -191,6 +191,7 @@ public class CommandDispatcher { - CommandIdleTimeout.a(this.b); - CommandStop.a(this.b); - CommandWhitelist.a(this.b); -+ net.pl3x.purpur.command.DemoCommand.register(getDispatcher()); // Purpur - net.pl3x.purpur.command.PingCommand.register(getDispatcher()); // Purpur - } - -diff --git a/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutGameStateChange.java b/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutGameStateChange.java -index edb6c0ab2826051b04e025a713d794dbc5de4792..0161657748d398b6827ef8bc2b00b8a63bf37c55 100644 ---- a/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutGameStateChange.java -+++ b/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutGameStateChange.java -@@ -13,7 +13,7 @@ public class PacketPlayOutGameStateChange implements Packet dispatcher) { -+ dispatcher.register(CommandDispatcher.literal("demo") -+ .requires((listener) -> { -+ return listener.hasPermission(2); -+ }) -+ .executes((context) -> { -+ return execute(context.getSource(), Collections.singleton(context.getSource().getPlayerOrException())); -+ }) -+ .then(CommandDispatcher.argument("targets", ArgumentEntity.players()) -+ .executes((context) -> { -+ return execute(context.getSource(), ArgumentEntity.getPlayers(context, "targets")); -+ }) -+ ) -+ ).setPermission("bukkit.command.demo"); -+ } -+ -+ private static int execute(CommandListenerWrapper sender, Collection targets) { -+ for (EntityPlayer player : targets) { -+ PacketPlayOutGameStateChange packet = new PacketPlayOutGameStateChange(PacketPlayOutGameStateChange.demo(), 0); -+ player.playerConnection.sendPacket(packet); -+ String output = String.format(PurpurConfig.demoCommandOutput, player.getProfile().getName()); -+ sender.sendMessage(CraftChatMessage.fromStringOrNull(output), false); -+ } -+ return targets.size(); -+ } -+} diff --git a/patches/server/0002-Purpur-config-files.patch b/patches/server/0002-Purpur-config-files.patch index 43669b371..9dc8bf568 100644 --- a/patches/server/0002-Purpur-config-files.patch +++ b/patches/server/0002-Purpur-config-files.patch @@ -29,7 +29,7 @@ index 218f5bafeed8551b55b91c7fccaf6935c8b631ca..4d8740678049aa749b42618470e9cc83 metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> { Map> map = new HashMap<>(); diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java -index b0512af1d06f817f29e418d1d83f3ae446814836..4868815dbf3438ff357d399f7b40435dc8bf5c6a 100644 +index 7acf077bc131af718c7548cc29deef558c04e463..10126cb1c3efa2e6c84f20c0da701a131a5dd4cb 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java @@ -118,6 +118,11 @@ public class PaperConfig { @@ -44,6 +44,41 @@ index b0512af1d06f817f29e418d1d83f3ae446814836..4868815dbf3438ff357d399f7b40435d try { config.save(CONFIG_FILE); } catch (IOException ex) { +diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java +index 6a330170ec1ea9d06593a1bbd1bdb8d98c0904fb..f1ebfd810fd06e62d796110345aa36ce4a94e2fd 100644 +--- a/src/main/java/net/minecraft/commands/CommandSourceStack.java ++++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java +@@ -234,6 +234,30 @@ public class CommandSourceStack implements SharedSuggestionProvider, com.destroy + return this.anchor; + } + ++ // Purpur start ++ public void sendSuccess(@Nullable String message) { ++ sendSuccess(message, false); ++ } ++ ++ public void sendSuccess(@Nullable String message, boolean broadcastToOps) { ++ if (message == null) { ++ return; ++ } ++ sendSuccess(net.kyori.adventure.text.minimessage.MiniMessage.get().parse(message), broadcastToOps); ++ } ++ ++ public void sendSuccess(@Nullable net.kyori.adventure.text.Component message) { ++ sendSuccess(message, false); ++ } ++ ++ public void sendSuccess(@Nullable net.kyori.adventure.text.Component message, boolean broadcastToOps) { ++ if (message == null) { ++ return; ++ } ++ sendSuccess(io.papermc.paper.adventure.PaperAdventure.asVanilla(message), broadcastToOps); ++ } ++ // Purpur end ++ + public void sendSuccess(Component message, boolean broadcastToOps) { + if (this.source.acceptsSuccess() && !this.silent) { + this.source.sendMessage(message, Util.NIL_UUID); diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java index 674eccb7db4982adc28d6878ed8d5b28282b80b1..5fa2723c9899c69ac326f95acf49cd47406378f9 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -64,8 +99,50 @@ index 674eccb7db4982adc28d6878ed8d5b28282b80b1..5fa2723c9899c69ac326f95acf49cd47 com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // load version history now io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider // Paper end +diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java +index af90013d48e2dd827e045e2fc0f7f5be0dbaa33f..a10df746ada5b8cdee6f5ccf90724142609841c6 100644 +--- a/src/main/java/net/minecraft/world/entity/Entity.java ++++ b/src/main/java/net/minecraft/world/entity/Entity.java +@@ -3371,6 +3371,37 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n + return SlotAccess.NULL; + } + ++ // Purpur Start ++ public void sendMessage(@Nullable String message) { ++ sendMessage(message, Util.NIL_UUID); ++ } ++ ++ public void sendMessage(@Nullable String message, UUID sender) { ++ if (message == null) { ++ return; ++ } ++ sendMessage(net.kyori.adventure.text.minimessage.MiniMessage.get().parse(message), sender); ++ } ++ ++ public void sendMessage(@Nullable net.kyori.adventure.text.Component message) { ++ sendMessage(message, Util.NIL_UUID); ++ } ++ ++ public void sendMessage(@Nullable net.kyori.adventure.text.Component message, UUID sender) { ++ if (message == null) { ++ return; ++ } ++ sendMessage(io.papermc.paper.adventure.PaperAdventure.asVanilla(message), sender); ++ } ++ ++ public void sendMessage(@Nullable Component message) { ++ if (message == null) { ++ return; ++ } ++ sendMessage(message, Util.NIL_UUID); ++ } ++ // Purpur end ++ + @Override + public void sendMessage(Component message, UUID sender) {} + diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 274a8bf3d5009e4207ca05348e2f813f257fd934..8fca4d611316e67edfc55ca3e822894d0b791af4 100644 +index 870ff060e34de4ec49ad5496e79c2bd543297c41..de649d73a636920f8b5e92820a8a618f188789e3 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -166,6 +166,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -405,7 +482,7 @@ index fccb85a34b799fd8ac85707e8fd43a08ae2b5fc4..2ae64cad8b482f943163494ac8264faa public void restart() { org.spigotmc.RestartCommand.restart(); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index ba01312f7615d0507c1bd1cd175588197f8d122e..b913ea98eb000edbab20d448da71a904570b48d6 100644 +index 32f82c60b680180b256edff127e5a6ded42fccf4..5cb95340657bf37f9fbb2780f8cc57d2bc17e445 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -147,6 +147,14 @@ public class Main { diff --git a/patches/server/0003-Ridables.patch b/patches/server/0003-Ridables.patch index 8a95dee4d..f8dae0979 100644 --- a/patches/server/0003-Ridables.patch +++ b/patches/server/0003-Ridables.patch @@ -34,7 +34,7 @@ index 736a7baab17b26319f2aa39ad059e2f5a7ee16cf..ae939c81523a3982fc91fe4793ed0553 this.profiler.push(() -> { diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index ef651213d29a8c9b60e39b98ad52f5b7b54f3c22..ce49e2a5ac80280ae03579d72a436e836a03cf8e 100644 +index b3312fa2fd218ffcfaa61d98584003c97fbda4ce..f0b9ff60b6122473bc2f87f56a6d190994079da6 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -201,6 +201,7 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl @@ -86,7 +86,7 @@ index 7d2ac8aa97805e8b022d3982b1332c5055fc8b90..b98263dc5dcba1a5a8518c2f0acd2c9d if ((entity instanceof AbstractFish && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) { ServerGamePacketListenerImpl.this.send(new ClientboundAddMobPacket((AbstractFish) entity)); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index af90013d48e2dd827e045e2fc0f7f5be0dbaa33f..37ded5b8fb3692c773698a794d3977808308801d 100644 +index a10df746ada5b8cdee6f5ccf90724142609841c6..d59ec735b15b02c075f357ee616b821d2760f412 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -230,7 +230,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n @@ -135,37 +135,7 @@ index af90013d48e2dd827e045e2fc0f7f5be0dbaa33f..37ded5b8fb3692c773698a794d397780 if (this.passengers.size() == 1 && this.passengers.get(0) == entity) { this.passengers = ImmutableList.of(); } else { -@@ -3371,6 +3385,29 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n - return SlotAccess.NULL; - } - -+ // Purpur Start -+ public void sendMessage(@Nullable String message) { -+ if (message == null) { -+ return; -+ } -+ sendMessage(net.kyori.adventure.text.minimessage.MiniMessage.get().parse(message)); -+ } -+ -+ public void sendMessage(@Nullable net.kyori.adventure.text.Component message) { -+ if (message == null) { -+ return; -+ } -+ sendMessage(io.papermc.paper.adventure.PaperAdventure.asVanilla(message)); -+ } -+ -+ public void sendMessage(@Nullable Component message) { -+ if (message == null) { -+ return; -+ } -+ sendMessage(message, Util.NIL_UUID); -+ } -+ // Purpur end -+ - @Override - public void sendMessage(Component message, UUID sender) {} - -@@ -3982,4 +4019,41 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n +@@ -4013,4 +4027,41 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n return ((ServerChunkCache) level.getChunkSource()).isPositionTicking(this); } // Paper end @@ -3754,7 +3724,7 @@ index c87d1f8a057e98f7f4ad7e11d89bfa791a7bae90..dca18730731407bb68ad32852c799406 protected void defineSynchedData() { super.defineSynchedData(); diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java -index fdc01dee8a81f0376f3c0a154c4291d03ead7f8f..8830121a89297cc49fb13a7ecac9e6d90f33969d 100644 +index e1a593b464c35f68b22e84a09f99ee72af73da32..25ce1910a03947ce070b318f57379f0da5ac5db8 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Slime.java +++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java @@ -67,18 +67,50 @@ public class Slime extends Mob implements Enemy { diff --git a/patches/server/0009-AFK-API.patch b/patches/server/0009-AFK-API.patch index b7446f02f..a355581fa 100644 --- a/patches/server/0009-AFK-API.patch +++ b/patches/server/0009-AFK-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] AFK API diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 952b6103fd417251e8a030bb574f79e69cfbbe10..f6289be625d61ac3e33118959e8a1bc3defcda42 100644 +index 952b6103fd417251e8a030bb574f79e69cfbbe10..01218ca19f0fd2a6cf8194d4507e40c5bc785b7c 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1915,8 +1915,54 @@ public class ServerPlayer extends Player { +@@ -1915,8 +1915,58 @@ public class ServerPlayer extends Player { public void resetLastActionTime() { this.lastActionTime = Util.getMillis(); @@ -43,7 +43,11 @@ index 952b6103fd417251e8a030bb574f79e69cfbbe10..f6289be625d61ac3e33118959e8a1bc3 + } + + if (level.purpurConfig.idleTimeoutUpdateTabList) { -+ this.getBukkitEntity().setPlayerListName((afk ? net.pl3x.purpur.PurpurConfig.afkTabListPrefix : "") + this.getName()); ++ if (afk) { ++ getBukkitEntity().setPlayerListName(net.pl3x.purpur.PurpurConfig.afkTabListPrefix + getName().getString() + net.pl3x.purpur.PurpurConfig.afkTabListSuffix); ++ } else { ++ getBukkitEntity().setPlayerListName(getName().getString()); ++ } + } + + ((ServerLevel) level).updateSleepingPlayerList(); @@ -173,21 +177,23 @@ index 325e244c46ec208a2e7e18d71ccbbfcc25fc1bce..3645ebf52ad1461937ce6cc0cf38a921 if (range < 0.0D || d < range * range) { return true; diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 7bb30fba98b5b217df72e6df5b2dc4e6082d1a6a..5365a4a047c759f36177716237c2bb98ae1741b3 100644 +index 7bb30fba98b5b217df72e6df5b2dc4e6082d1a6a..11ba89186ef47a574a4f959edaed550bcb6b908e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -129,8 +129,14 @@ public class PurpurConfig { +@@ -129,8 +129,16 @@ public class PurpurConfig { } public static String cannotRideMob = "You cannot mount that mob"; + public static String afkBroadcastAway = "%s is now AFK"; + public static String afkBroadcastBack = "%s is no longer AFK"; + public static String afkTabListPrefix = "[AFK] "; ++ public static String afkTabListSuffix = ""; private static void messages() { cannotRideMob = getString("settings.messages.cannot-ride-mob", cannotRideMob); + afkBroadcastAway = getString("settings.messages.afk-broadcast-away", afkBroadcastAway); + afkBroadcastBack = getString("settings.messages.afk-broadcast-back", afkBroadcastBack); + afkTabListPrefix = getString("settings.messages.afk-tab-list-prefix", afkTabListPrefix); ++ afkTabListSuffix = getString("settings.messages.afk-tab-list-suffix", afkTabListSuffix); } public static String timingsUrl = "https://timings.pl3x.net"; diff --git a/patches/server/0011-Configurable-server-mod-name.patch b/patches/server/0011-Configurable-server-mod-name.patch index b7838dd7b..3c5327618 100644 --- a/patches/server/0011-Configurable-server-mod-name.patch +++ b/patches/server/0011-Configurable-server-mod-name.patch @@ -18,11 +18,11 @@ index ae939c81523a3982fc91fe4793ed0553503c501e..2034eaffd38d8ec1211e027f4fa34931 public SystemReport fillSystemReport(SystemReport systemreport) { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 5365a4a047c759f36177716237c2bb98ae1741b3..fec9241bf21a67b03b2f3a2e544f847e425b2e98 100644 +index 11ba89186ef47a574a4f959edaed550bcb6b908e..5fd47073ccf6b1ff12b0a704244143070375385f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -139,6 +139,11 @@ public class PurpurConfig { - afkTabListPrefix = getString("settings.messages.afk-tab-list-prefix", afkTabListPrefix); +@@ -141,6 +141,11 @@ public class PurpurConfig { + afkTabListSuffix = getString("settings.messages.afk-tab-list-suffix", afkTabListSuffix); } + public static String serverModName = "Purpur"; diff --git a/patches/server/0013-Lagging-threshold.patch b/patches/server/0013-Lagging-threshold.patch index fab5a4730..293e0b334 100644 --- a/patches/server/0013-Lagging-threshold.patch +++ b/patches/server/0013-Lagging-threshold.patch @@ -25,10 +25,10 @@ index 2034eaffd38d8ec1211e027f4fa349314f3c5fb5..713ed9f0c789e0b0c2814dc03865c22c } midTickChunksTasksRan = 0; // Paper diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index fec9241bf21a67b03b2f3a2e544f847e425b2e98..b530e777564e9b455b8763c99039f2c4f890a2db 100644 +index 5fd47073ccf6b1ff12b0a704244143070375385f..1b81e50a3c7dc33fa0ee6ce5b491597910dbe0cd 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -150,6 +150,11 @@ public class PurpurConfig { +@@ -152,6 +152,11 @@ public class PurpurConfig { if (!co.aikar.timings.TimingsManager.hiddenConfigs.contains("server-ip")) co.aikar.timings.TimingsManager.hiddenConfigs.add("server-ip"); } diff --git a/patches/server/0017-Player-invulnerabilities.patch b/patches/server/0017-Player-invulnerabilities.patch index f9b659542..a609b8e69 100644 --- a/patches/server/0017-Player-invulnerabilities.patch +++ b/patches/server/0017-Player-invulnerabilities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Player invulnerabilities diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index f6289be625d61ac3e33118959e8a1bc3defcda42..660649624281928ab4eb79f09a90e2f9facf36d6 100644 +index 01218ca19f0fd2a6cf8194d4507e40c5bc785b7c..928a931e4543a87c9b3294108843ad686d4ac2ae 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -333,6 +333,7 @@ public class ServerPlayer extends Player { @@ -46,7 +46,7 @@ index f6289be625d61ac3e33118959e8a1bc3defcda42..660649624281928ab4eb79f09a90e2f9 return this; } } -@@ -2374,8 +2382,16 @@ public class ServerPlayer extends Player { +@@ -2378,8 +2386,16 @@ public class ServerPlayer extends Player { @Override public boolean isImmobile() { diff --git a/patches/server/0020-Alternative-Keepalive-Handling.patch b/patches/server/0020-Alternative-Keepalive-Handling.patch index bf254f46d..c9b174904 100644 --- a/patches/server/0020-Alternative-Keepalive-Handling.patch +++ b/patches/server/0020-Alternative-Keepalive-Handling.patch @@ -56,10 +56,10 @@ index 5f54905841956b691bf83a4d980c24e0969e9456..5b5993c4687f4414c0b7e9bbd9a7d2fa if (this.keepAlivePending && packet.getId() == this.keepAliveChallenge) { int i = (int) (Util.getMillis() - this.keepAliveTime); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index b530e777564e9b455b8763c99039f2c4f890a2db..6e1a4017e4b737f541c7aa22885fbbd757dd4524 100644 +index 1b81e50a3c7dc33fa0ee6ce5b491597910dbe0cd..226bac7989ebca3ee403cf30bae25ed05c67f70f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -155,6 +155,11 @@ public class PurpurConfig { +@@ -157,6 +157,11 @@ public class PurpurConfig { laggingThreshold = getDouble("settings.lagging-threshold", laggingThreshold); } diff --git a/patches/server/0024-Logger-settings-suppressing-pointless-logs.patch b/patches/server/0024-Logger-settings-suppressing-pointless-logs.patch index ae2c86aff..6c1882d3c 100644 --- a/patches/server/0024-Logger-settings-suppressing-pointless-logs.patch +++ b/patches/server/0024-Logger-settings-suppressing-pointless-logs.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Logger settings (suppressing pointless logs) diff --git a/src/main/java/net/minecraft/server/PlayerAdvancements.java b/src/main/java/net/minecraft/server/PlayerAdvancements.java -index d1f85b092eba829b003e39c913a4afeffc140568..e159bf06a225aa63b4d397a7c76fa9ef8691d052 100644 +index 7d6dc0a8ee35274052b122bbc446bc54750de0a6..c46df052a5a39d92688f51377ee1f7b5b5b36faa 100644 --- a/src/main/java/net/minecraft/server/PlayerAdvancements.java +++ b/src/main/java/net/minecraft/server/PlayerAdvancements.java @@ -186,6 +186,7 @@ public class PlayerAdvancements { @@ -17,10 +17,10 @@ index d1f85b092eba829b003e39c913a4afeffc140568..e159bf06a225aa63b4d397a7c76fa9ef } // CraftBukkit end diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 6e1a4017e4b737f541c7aa22885fbbd757dd4524..7eb5e1b2cdc3abaefd1ea7d19a913269cfd81a1a 100644 +index 226bac7989ebca3ee403cf30bae25ed05c67f70f..1fc480551523065762ce58d638aba7986e829e43 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -178,4 +178,11 @@ public class PurpurConfig { +@@ -180,4 +180,11 @@ public class PurpurConfig { org.bukkit.event.inventory.InventoryType.ENDER_CHEST.setDefaultSize(enderChestSixRows ? 54 : 27); enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows); } diff --git a/patches/server/0031-Dont-send-useless-entity-packets.patch b/patches/server/0031-Dont-send-useless-entity-packets.patch index 9f018e1e4..9fe984db4 100644 --- a/patches/server/0031-Dont-send-useless-entity-packets.patch +++ b/patches/server/0031-Dont-send-useless-entity-packets.patch @@ -40,10 +40,10 @@ index 44aa0c4ec6f0e4df2541c74fa7de852dae59bda5..1b649cb81712bd145cbbb033bcdef6f1 this.entity.stopSeenByPlayer(player); player.connection.send(new ClientboundRemoveEntityPacket(this.entity.getId())); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 7eb5e1b2cdc3abaefd1ea7d19a913269cfd81a1a..011b9e0a96d2ec0e07803cbdf21a5d4741964bfe 100644 +index 1fc480551523065762ce58d638aba7986e829e43..c420c7ecb2ad03c808badbf7e1c77ba27d651713 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -179,6 +179,11 @@ public class PurpurConfig { +@@ -181,6 +181,11 @@ public class PurpurConfig { enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows); } diff --git a/patches/server/0055-Configurable-TPS-Catchup.patch b/patches/server/0055-Configurable-TPS-Catchup.patch index 464a072d1..999f1dec8 100644 --- a/patches/server/0055-Configurable-TPS-Catchup.patch +++ b/patches/server/0055-Configurable-TPS-Catchup.patch @@ -24,10 +24,10 @@ index 713ed9f0c789e0b0c2814dc03865c22cfc47d534..36d26af5b28e96cee930307b6d18edd7 this.profiler.pop(); this.endMetricsRecordingTick(); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 011b9e0a96d2ec0e07803cbdf21a5d4741964bfe..9ea32dd95a57ba485d57ac919423bd75c90eb343 100644 +index c420c7ecb2ad03c808badbf7e1c77ba27d651713..5f6fb1ac7c4b022109e102308cb6ca4c9997e1f1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -190,4 +190,9 @@ public class PurpurConfig { +@@ -192,4 +192,9 @@ public class PurpurConfig { loggerSuppressInitLegacyMaterialError = getBoolean("settings.logger.suppress-init-legacy-material-errors", loggerSuppressInitLegacyMaterialError); loggerSuppressIgnoredAdvancementWarnings = getBoolean("settings.logger.suppress-ignored-advancement-warnings", loggerSuppressIgnoredAdvancementWarnings); } diff --git a/patches/server/0067-Add-canSaveToDisk-to-Entity.patch b/patches/server/0067-Add-canSaveToDisk-to-Entity.patch index f650c41a6..53afa6835 100644 --- a/patches/server/0067-Add-canSaveToDisk-to-Entity.patch +++ b/patches/server/0067-Add-canSaveToDisk-to-Entity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add canSaveToDisk to Entity diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ebb5fe12f18c10eba06db13de653ff53b33994d1..dc847857b7024572d6f6f669820e7d1476d2e866 100644 +index a663de350f315596806253c961544d1ebb682751..f226ea02e83246d8763e9b0587f986a6c148035b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4056,5 +4056,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n +@@ -4064,5 +4064,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n public boolean processClick(InteractionHand hand) { return false; } diff --git a/patches/server/0074-Add-ping-command.patch b/patches/server/0074-Add-ping-command.patch index 0c551a0cd..8214940b2 100644 --- a/patches/server/0074-Add-ping-command.patch +++ b/patches/server/0074-Add-ping-command.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 13 Mar 2020 22:29:10 -0500 -Subject: [PATCH] Add /ping command +Subject: [PATCH] Add ping command diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java @@ -17,19 +17,20 @@ index d478627dcd2b6e3d3d95b3fa224a25d44e6bbafb..158fc5748f175708a0c3415a2217663f if (environment.includeIntegrated) { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 9ea32dd95a57ba485d57ac919423bd75c90eb343..edbcc103e939504a592993f3e903f556c6e1accf 100644 +index 5f6fb1ac7c4b022109e102308cb6ca4c9997e1f1..5ad90e5c2f46b9ae1bf882a199d38e8cb49f6b5f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -132,11 +132,13 @@ public class PurpurConfig { - public static String afkBroadcastAway = "%s is now AFK"; +@@ -133,12 +133,14 @@ public class PurpurConfig { public static String afkBroadcastBack = "%s is no longer AFK"; public static String afkTabListPrefix = "[AFK] "; + public static String afkTabListSuffix = ""; + public static String pingCommandOutput = "§a%s's ping is %sms"; private static void messages() { cannotRideMob = getString("settings.messages.cannot-ride-mob", cannotRideMob); afkBroadcastAway = getString("settings.messages.afk-broadcast-away", afkBroadcastAway); afkBroadcastBack = getString("settings.messages.afk-broadcast-back", afkBroadcastBack); afkTabListPrefix = getString("settings.messages.afk-tab-list-prefix", afkTabListPrefix); + afkTabListSuffix = getString("settings.messages.afk-tab-list-suffix", afkTabListSuffix); + pingCommandOutput = getString("settings.messages.ping-command-output", pingCommandOutput); } diff --git a/patches/server/0075-Add-demo-command.patch b/patches/server/0075-Add-demo-command.patch new file mode 100644 index 000000000..e6fe981c9 --- /dev/null +++ b/patches/server/0075-Add-demo-command.patch @@ -0,0 +1,78 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: BillyGalbreath +Date: Sat, 19 Jun 2021 18:16:31 -0500 +Subject: [PATCH] Add demo command + + +diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java +index 158fc5748f175708a0c3415a2217663f77271bc7..9cbaaf4cd138e6c1d2d51afcef24a81a3f2973c5 100644 +--- a/src/main/java/net/minecraft/commands/Commands.java ++++ b/src/main/java/net/minecraft/commands/Commands.java +@@ -198,6 +198,7 @@ public class Commands { + SetPlayerIdleTimeoutCommand.register(this.dispatcher); + StopCommand.register(this.dispatcher); + WhitelistCommand.register(this.dispatcher); ++ net.pl3x.purpur.command.DemoCommand.register(this.dispatcher); // Purpur + net.pl3x.purpur.command.PingCommand.register(this.dispatcher); // Purpur + } + +diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java +index 5ad90e5c2f46b9ae1bf882a199d38e8cb49f6b5f..c143f2c95fddece9c97f6f5eeb9a0ba52dae18b5 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java +@@ -133,6 +133,7 @@ public class PurpurConfig { + public static String afkBroadcastBack = "%s is no longer AFK"; + public static String afkTabListPrefix = "[AFK] "; + public static String afkTabListSuffix = ""; ++ public static String demoCommandOutput = "%s has been shown the demo screen"; + public static String pingCommandOutput = "§a%s's ping is %sms"; + private static void messages() { + cannotRideMob = getString("settings.messages.cannot-ride-mob", cannotRideMob); +@@ -140,6 +141,7 @@ public class PurpurConfig { + afkBroadcastBack = getString("settings.messages.afk-broadcast-back", afkBroadcastBack); + afkTabListPrefix = getString("settings.messages.afk-tab-list-prefix", afkTabListPrefix); + afkTabListSuffix = getString("settings.messages.afk-tab-list-suffix", afkTabListSuffix); ++ demoCommandOutput = getString("settings.messages.demo-command-output", demoCommandOutput); + pingCommandOutput = getString("settings.messages.ping-command-output", pingCommandOutput); + } + +diff --git a/src/main/java/net/pl3x/purpur/command/DemoCommand.java b/src/main/java/net/pl3x/purpur/command/DemoCommand.java +new file mode 100644 +index 0000000000000000000000000000000000000000..63686e55d169a81c0c225f8dfb47973075c1e491 +--- /dev/null ++++ b/src/main/java/net/pl3x/purpur/command/DemoCommand.java +@@ -0,0 +1,34 @@ ++package net.pl3x.purpur.command; ++ ++import com.mojang.brigadier.CommandDispatcher; ++import net.minecraft.commands.CommandSourceStack; ++import net.minecraft.commands.Commands; ++import net.minecraft.commands.arguments.EntityArgument; ++import net.minecraft.network.protocol.game.ClientboundGameEventPacket; ++import net.minecraft.server.level.ServerPlayer; ++import net.pl3x.purpur.PurpurConfig; ++ ++import java.util.Collection; ++import java.util.Collections; ++ ++public class DemoCommand { ++ public static void register(CommandDispatcher dispatcher) { ++ dispatcher.register(Commands.literal("demo") ++ .requires((listener) -> listener.hasPermission(2)) ++ .executes((context) -> execute(context.getSource(), Collections.singleton(context.getSource().getPlayerOrException()))) ++ .then(Commands.argument("targets", EntityArgument.players()) ++ .executes((context) -> execute(context.getSource(), EntityArgument.getPlayers(context, "targets"))) ++ ) ++ ).setPermission("bukkit.command.demo"); ++ } ++ ++ private static int execute(CommandSourceStack sender, Collection targets) { ++ for (ServerPlayer player : targets) { ++ ClientboundGameEventPacket packet = new ClientboundGameEventPacket(ClientboundGameEventPacket.DEMO_EVENT, 0); ++ player.connection.send(packet); ++ String output = String.format(PurpurConfig.demoCommandOutput, player.getGameProfile().getName()); ++ sender.sendSuccess(output, false); ++ } ++ return targets.size(); ++ } ++} diff --git a/patches/server/0075-Configurable-jockey-options.patch b/patches/server/0076-Configurable-jockey-options.patch similarity index 100% rename from patches/server/0075-Configurable-jockey-options.patch rename to patches/server/0076-Configurable-jockey-options.patch diff --git a/patches/server/0076-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch b/patches/server/0077-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch similarity index 100% rename from patches/server/0076-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch rename to patches/server/0077-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch diff --git a/patches/server/0077-Add-phantom-spawning-options.patch b/patches/server/0078-Add-phantom-spawning-options.patch similarity index 100% rename from patches/server/0077-Add-phantom-spawning-options.patch rename to patches/server/0078-Add-phantom-spawning-options.patch diff --git a/patches/server/0078-Implement-bed-explosion-options.patch b/patches/server/0079-Implement-bed-explosion-options.patch similarity index 100% rename from patches/server/0078-Implement-bed-explosion-options.patch rename to patches/server/0079-Implement-bed-explosion-options.patch diff --git a/patches/server/0079-Implement-respawn-anchor-explosion-options.patch b/patches/server/0080-Implement-respawn-anchor-explosion-options.patch similarity index 100% rename from patches/server/0079-Implement-respawn-anchor-explosion-options.patch rename to patches/server/0080-Implement-respawn-anchor-explosion-options.patch diff --git a/patches/server/0080-Add-allow-water-in-end-world-option.patch b/patches/server/0081-Add-allow-water-in-end-world-option.patch similarity index 97% rename from patches/server/0080-Add-allow-water-in-end-world-option.patch rename to patches/server/0081-Add-allow-water-in-end-world-option.patch index eadab8e21..b70712e6c 100644 --- a/patches/server/0080-Add-allow-water-in-end-world-option.patch +++ b/patches/server/0081-Add-allow-water-in-end-world-option.patch @@ -68,10 +68,10 @@ index df4f2c729f09d5229553308e4876f29de648543f..f2b0278679fa649bbc2904660e0dc9ab } else { world.setBlockAndUpdate(pos, Blocks.WATER.defaultBlockState()); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index edbcc103e939504a592993f3e903f556c6e1accf..8bb11c66df5fd461a1eac749c519142743a1f4a8 100644 +index c143f2c95fddece9c97f6f5eeb9a0ba52dae18b5..d1085145b768911c66d48101c7c58f9698718467 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -186,6 +186,11 @@ public class PurpurConfig { +@@ -190,6 +190,11 @@ public class PurpurConfig { dontSendUselessEntityPackets = getBoolean("settings.dont-send-useless-entity-packets", dontSendUselessEntityPackets); } diff --git a/patches/server/0081-Allow-color-codes-in-books.patch b/patches/server/0082-Allow-color-codes-in-books.patch similarity index 100% rename from patches/server/0081-Allow-color-codes-in-books.patch rename to patches/server/0082-Allow-color-codes-in-books.patch diff --git a/patches/server/0082-Entity-lifespan.patch b/patches/server/0083-Entity-lifespan.patch similarity index 100% rename from patches/server/0082-Entity-lifespan.patch rename to patches/server/0083-Entity-lifespan.patch diff --git a/patches/server/0083-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch b/patches/server/0084-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch similarity index 96% rename from patches/server/0083-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch rename to patches/server/0084-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch index c40dddbf4..1bfd4c7ad 100644 --- a/patches/server/0083-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch +++ b/patches/server/0084-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add option to teleport to spawn if outside world border diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 5163ec0437e3d94ba0cff030588b1c07c04aca16..8a0487c8c1c4bcff6d92bcbbadf555b04f04717d 100644 +index 02e14693021d0968fb5c47181f951a5a3eac5927..5b395fb6f0e7bee4a24fb2d5b0bc9421b70e5b8d 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -2441,5 +2441,25 @@ public class ServerPlayer extends Player { +@@ -2445,5 +2445,25 @@ public class ServerPlayer extends Player { } // CraftBukkit end diff --git a/patches/server/0084-Squid-EAR-immunity.patch b/patches/server/0085-Squid-EAR-immunity.patch similarity index 100% rename from patches/server/0084-Squid-EAR-immunity.patch rename to patches/server/0085-Squid-EAR-immunity.patch diff --git a/patches/server/0085-Configurable-end-spike-seed.patch b/patches/server/0086-Configurable-end-spike-seed.patch similarity index 94% rename from patches/server/0085-Configurable-end-spike-seed.patch rename to patches/server/0086-Configurable-end-spike-seed.patch index d9e79c3f7..2efc18f32 100644 --- a/patches/server/0085-Configurable-end-spike-seed.patch +++ b/patches/server/0086-Configurable-end-spike-seed.patch @@ -19,7 +19,7 @@ index c03bf5bdb67b00c75f9fcfead882c4d944282244..59f7ec9b307a99c5fe2def995523a5f6 return SPIKE_CACHE.getUnchecked(l); } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 8bb11c66df5fd461a1eac749c519142743a1f4a8..fe76bde844a596eec47b2f9e5ca25b8b108fe494 100644 +index d1085145b768911c66d48101c7c58f9698718467..f8bd48d530f2bc5463001b09d0dd526388c452f3 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -1,5 +1,6 @@ @@ -29,7 +29,7 @@ index 8bb11c66df5fd461a1eac749c519142743a1f4a8..fe76bde844a596eec47b2f9e5ca25b8b import com.google.common.base.Throwables; import net.minecraft.server.MinecraftServer; import net.pl3x.purpur.command.PurpurCommand; -@@ -141,6 +142,13 @@ public class PurpurConfig { +@@ -145,6 +146,13 @@ public class PurpurConfig { pingCommandOutput = getString("settings.messages.ping-command-output", pingCommandOutput); } diff --git a/patches/server/0086-Configurable-dungeon-seed.patch b/patches/server/0087-Configurable-dungeon-seed.patch similarity index 95% rename from patches/server/0086-Configurable-dungeon-seed.patch rename to patches/server/0087-Configurable-dungeon-seed.patch index 89ea070d6..cbe3ecae7 100644 --- a/patches/server/0086-Configurable-dungeon-seed.patch +++ b/patches/server/0087-Configurable-dungeon-seed.patch @@ -32,10 +32,10 @@ index d36b6208077254af5f0ebed8e8ce20fd45cbb79d..b09611f7c5177d3f5b22ffcaa9a65480 int i = 3; int j = random.nextInt(2) + 2; diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index fe76bde844a596eec47b2f9e5ca25b8b108fe494..9bc0cd75b4b8c5813b4a005c90275025719daf21 100644 +index f8bd48d530f2bc5463001b09d0dd526388c452f3..a027ab69a2e3cd12ca730aeed8a67e0379db0e85 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -142,10 +142,13 @@ public class PurpurConfig { +@@ -146,10 +146,13 @@ public class PurpurConfig { pingCommandOutput = getString("settings.messages.ping-command-output", pingCommandOutput); } diff --git a/patches/server/0087-Phantoms-burn-in-light.patch b/patches/server/0088-Phantoms-burn-in-light.patch similarity index 100% rename from patches/server/0087-Phantoms-burn-in-light.patch rename to patches/server/0088-Phantoms-burn-in-light.patch diff --git a/patches/server/0088-Configurable-villager-breeding.patch b/patches/server/0089-Configurable-villager-breeding.patch similarity index 100% rename from patches/server/0088-Configurable-villager-breeding.patch rename to patches/server/0089-Configurable-villager-breeding.patch diff --git a/patches/server/0089-Redstone-deactivates-spawners.patch b/patches/server/0090-Redstone-deactivates-spawners.patch similarity index 100% rename from patches/server/0089-Redstone-deactivates-spawners.patch rename to patches/server/0090-Redstone-deactivates-spawners.patch diff --git a/patches/server/0090-Totems-work-in-inventory.patch b/patches/server/0091-Totems-work-in-inventory.patch similarity index 100% rename from patches/server/0090-Totems-work-in-inventory.patch rename to patches/server/0091-Totems-work-in-inventory.patch diff --git a/patches/server/0091-Add-vindicator-johnny-spawn-chance.patch b/patches/server/0092-Add-vindicator-johnny-spawn-chance.patch similarity index 100% rename from patches/server/0091-Add-vindicator-johnny-spawn-chance.patch rename to patches/server/0092-Add-vindicator-johnny-spawn-chance.patch diff --git a/patches/server/0092-Add-option-to-disable-certain-block-updates.patch b/patches/server/0093-Add-option-to-disable-certain-block-updates.patch similarity index 98% rename from patches/server/0092-Add-option-to-disable-certain-block-updates.patch rename to patches/server/0093-Add-option-to-disable-certain-block-updates.patch index fe4ccf13b..e21652872 100644 --- a/patches/server/0092-Add-option-to-disable-certain-block-updates.patch +++ b/patches/server/0093-Add-option-to-disable-certain-block-updates.patch @@ -117,10 +117,10 @@ index f8e58d9f71703139a736d93e7f1996e027a29444..d3c8fd8399629efb8bcbaf7d9a0c4334 } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 9bc0cd75b4b8c5813b4a005c90275025719daf21..cb71e9a46146b70ab34328bf840437646fed629f 100644 +index a027ab69a2e3cd12ca730aeed8a67e0379db0e85..4dfe883f7e3184ca85341d724c306f17c5abc91e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -202,6 +202,15 @@ public class PurpurConfig { +@@ -206,6 +206,15 @@ public class PurpurConfig { allowWaterPlacementInTheEnd = getBoolean("settings.allow-water-placement-in-the-end", allowWaterPlacementInTheEnd); } diff --git a/patches/server/0093-Dispensers-place-anvils-option.patch b/patches/server/0094-Dispensers-place-anvils-option.patch similarity index 100% rename from patches/server/0093-Dispensers-place-anvils-option.patch rename to patches/server/0094-Dispensers-place-anvils-option.patch diff --git a/patches/server/0094-Allow-anvil-colors.patch b/patches/server/0095-Allow-anvil-colors.patch similarity index 100% rename from patches/server/0094-Allow-anvil-colors.patch rename to patches/server/0095-Allow-anvil-colors.patch diff --git a/patches/server/0095-Add-no-random-tick-block-list.patch b/patches/server/0096-Add-no-random-tick-block-list.patch similarity index 100% rename from patches/server/0095-Add-no-random-tick-block-list.patch rename to patches/server/0096-Add-no-random-tick-block-list.patch diff --git a/patches/server/0096-Add-option-to-disable-dolphin-treasure-searching.patch b/patches/server/0097-Add-option-to-disable-dolphin-treasure-searching.patch similarity index 100% rename from patches/server/0096-Add-option-to-disable-dolphin-treasure-searching.patch rename to patches/server/0097-Add-option-to-disable-dolphin-treasure-searching.patch diff --git a/patches/server/0097-Short-enderman-height.patch b/patches/server/0098-Short-enderman-height.patch similarity index 96% rename from patches/server/0097-Short-enderman-height.patch rename to patches/server/0098-Short-enderman-height.patch index a772c6d27..3787271ea 100644 --- a/patches/server/0097-Short-enderman-height.patch +++ b/patches/server/0098-Short-enderman-height.patch @@ -31,7 +31,7 @@ index 6e0b5fbf5b0d216b6b7c647d45ef37cd6b591717..5ebedd6a156b06e98aded57c817f6342 if (this.tryEscape(com.destroystokyo.paper.event.entity.EndermanEscapeEvent.Reason.INDIRECT)) { // Paper start for (int i = 0; i < 64; ++i) { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index cb71e9a46146b70ab34328bf840437646fed629f..f2d9187c45b8ee90246d2b6042cc98ea9fc8c8dd 100644 +index 4dfe883f7e3184ca85341d724c306f17c5abc91e..1fab90fdafdcd9095d806727133bf3b7c17f2323 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -3,6 +3,8 @@ package net.pl3x.purpur; @@ -43,7 +43,7 @@ index cb71e9a46146b70ab34328bf840437646fed629f..f2d9187c45b8ee90246d2b6042cc98ea import net.pl3x.purpur.command.PurpurCommand; import org.bukkit.Bukkit; import org.bukkit.command.Command; -@@ -192,6 +194,12 @@ public class PurpurConfig { +@@ -196,6 +198,12 @@ public class PurpurConfig { enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows); } diff --git a/patches/server/0098-Stop-squids-floating-on-top-of-water.patch b/patches/server/0099-Stop-squids-floating-on-top-of-water.patch similarity index 96% rename from patches/server/0098-Stop-squids-floating-on-top-of-water.patch rename to patches/server/0099-Stop-squids-floating-on-top-of-water.patch index c113c7ea4..a6a2ad7ec 100644 --- a/patches/server/0098-Stop-squids-floating-on-top-of-water.patch +++ b/patches/server/0099-Stop-squids-floating-on-top-of-water.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Stop squids floating on top of water diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index dc847857b7024572d6f6f669820e7d1476d2e866..3bf97664158760355263f4b3dcd48b9388d44231 100644 +index f226ea02e83246d8763e9b0587f986a6c148035b..238acdec48ee5524ecb7645252bec7613e286cf7 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3630,11 +3630,17 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n +@@ -3638,11 +3638,17 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n this.yRotO = this.getYRot(); } diff --git a/patches/server/0099-Use-configured-height-for-nether-surface-builders.patch b/patches/server/0100-Use-configured-height-for-nether-surface-builders.patch similarity index 100% rename from patches/server/0099-Use-configured-height-for-nether-surface-builders.patch rename to patches/server/0100-Use-configured-height-for-nether-surface-builders.patch diff --git a/patches/server/0100-Crying-obsidian-valid-for-portal-frames.patch b/patches/server/0101-Crying-obsidian-valid-for-portal-frames.patch similarity index 92% rename from patches/server/0100-Crying-obsidian-valid-for-portal-frames.patch rename to patches/server/0101-Crying-obsidian-valid-for-portal-frames.patch index e8748e166..0bcf9c82e 100644 --- a/patches/server/0100-Crying-obsidian-valid-for-portal-frames.patch +++ b/patches/server/0101-Crying-obsidian-valid-for-portal-frames.patch @@ -18,10 +18,10 @@ index c07b5d1f1ef8b5e6026c7555d476880c8802d6c5..068f1b184a3694603f564d49fa45d5ce private final LevelAccessor level; private final Direction.Axis axis; diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index f2d9187c45b8ee90246d2b6042cc98ea9fc8c8dd..ebaa80b52f236a8c7376006b4b7f4f37b409c31d 100644 +index 1fab90fdafdcd9095d806727133bf3b7c17f2323..289bc6840b6d3f68b93a565c9cf3079231fab367 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -178,6 +178,7 @@ public class PurpurConfig { +@@ -182,6 +182,7 @@ public class PurpurConfig { public static boolean barrelSixRows = false; public static boolean enderChestSixRows = false; public static boolean enderChestPermissionRows = false; @@ -29,7 +29,7 @@ index f2d9187c45b8ee90246d2b6042cc98ea9fc8c8dd..ebaa80b52f236a8c7376006b4b7f4f37 private static void blockSettings() { if (version < 3) { boolean oldValue = getBoolean("settings.barrel.packed-barrels", true); -@@ -192,6 +193,7 @@ public class PurpurConfig { +@@ -196,6 +197,7 @@ public class PurpurConfig { enderChestSixRows = getBoolean("settings.blocks.ender_chest.six-rows", enderChestSixRows); org.bukkit.event.inventory.InventoryType.ENDER_CHEST.setDefaultSize(enderChestSixRows ? 54 : 27); enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows); diff --git a/patches/server/0101-Entities-can-use-portals-configuration.patch b/patches/server/0102-Entities-can-use-portals-configuration.patch similarity index 97% rename from patches/server/0101-Entities-can-use-portals-configuration.patch rename to patches/server/0102-Entities-can-use-portals-configuration.patch index f257b6d95..380a4f8fd 100644 --- a/patches/server/0101-Entities-can-use-portals-configuration.patch +++ b/patches/server/0102-Entities-can-use-portals-configuration.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Entities can use portals configuration diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3bf97664158760355263f4b3dcd48b9388d44231..70d436a272d03d1f2eb754a83f1ea7e81d97ff3b 100644 +index 238acdec48ee5524ecb7645252bec7613e286cf7..98609a741b9a47417e7de1be4b972e2a398952e5 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2507,7 +2507,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n diff --git a/patches/server/0102-LivingEntity-broadcastItemBreak.patch b/patches/server/0103-LivingEntity-broadcastItemBreak.patch similarity index 100% rename from patches/server/0102-LivingEntity-broadcastItemBreak.patch rename to patches/server/0103-LivingEntity-broadcastItemBreak.patch diff --git a/patches/server/0103-Customizable-wither-health-and-healing.patch b/patches/server/0104-Customizable-wither-health-and-healing.patch similarity index 100% rename from patches/server/0103-Customizable-wither-health-and-healing.patch rename to patches/server/0104-Customizable-wither-health-and-healing.patch diff --git a/patches/server/0104-Allow-toggling-special-MobSpawners-per-world.patch b/patches/server/0105-Allow-toggling-special-MobSpawners-per-world.patch similarity index 100% rename from patches/server/0104-Allow-toggling-special-MobSpawners-per-world.patch rename to patches/server/0105-Allow-toggling-special-MobSpawners-per-world.patch diff --git a/patches/server/0105-Raid-cooldown-setting.patch b/patches/server/0106-Raid-cooldown-setting.patch similarity index 100% rename from patches/server/0105-Raid-cooldown-setting.patch rename to patches/server/0106-Raid-cooldown-setting.patch diff --git a/patches/server/0106-Despawn-rate-config-options-per-projectile-type.patch b/patches/server/0107-Despawn-rate-config-options-per-projectile-type.patch similarity index 100% rename from patches/server/0106-Despawn-rate-config-options-per-projectile-type.patch rename to patches/server/0107-Despawn-rate-config-options-per-projectile-type.patch diff --git a/patches/server/0107-Add-option-to-disable-zombie-aggressiveness-towards-.patch b/patches/server/0108-Add-option-to-disable-zombie-aggressiveness-towards-.patch similarity index 100% rename from patches/server/0107-Add-option-to-disable-zombie-aggressiveness-towards-.patch rename to patches/server/0108-Add-option-to-disable-zombie-aggressiveness-towards-.patch diff --git a/patches/server/0108-Persistent-TileEntity-Lore-and-DisplayName.patch b/patches/server/0109-Persistent-TileEntity-Lore-and-DisplayName.patch similarity index 100% rename from patches/server/0108-Persistent-TileEntity-Lore-and-DisplayName.patch rename to patches/server/0109-Persistent-TileEntity-Lore-and-DisplayName.patch diff --git a/patches/server/0109-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch b/patches/server/0110-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch similarity index 100% rename from patches/server/0109-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch rename to patches/server/0110-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch diff --git a/patches/server/0110-Flying-squids-Oh-my.patch b/patches/server/0111-Flying-squids-Oh-my.patch similarity index 100% rename from patches/server/0110-Flying-squids-Oh-my.patch rename to patches/server/0111-Flying-squids-Oh-my.patch diff --git a/patches/server/0111-Infinity-bow-settings.patch b/patches/server/0112-Infinity-bow-settings.patch similarity index 100% rename from patches/server/0111-Infinity-bow-settings.patch rename to patches/server/0112-Infinity-bow-settings.patch diff --git a/patches/server/0112-Stonecutter-damage.patch b/patches/server/0113-Stonecutter-damage.patch similarity index 97% rename from patches/server/0112-Stonecutter-damage.patch rename to patches/server/0113-Stonecutter-damage.patch index 1a952fd0a..78d4e9e05 100644 --- a/patches/server/0112-Stonecutter-damage.patch +++ b/patches/server/0113-Stonecutter-damage.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Stonecutter damage diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 70d436a272d03d1f2eb754a83f1ea7e81d97ff3b..5ff219cefec41d87c98e0e33e94ad44b9ba52910 100644 +index 98609a741b9a47417e7de1be4b972e2a398952e5..4717b3292bbbc5c1ee7246668b30e515caf48a80 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -897,7 +897,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n diff --git a/patches/server/0113-Configurable-daylight-cycle.patch b/patches/server/0114-Configurable-daylight-cycle.patch similarity index 100% rename from patches/server/0113-Configurable-daylight-cycle.patch rename to patches/server/0114-Configurable-daylight-cycle.patch diff --git a/patches/server/0114-Allow-infinite-and-mending-enchantments-together.patch b/patches/server/0115-Allow-infinite-and-mending-enchantments-together.patch similarity index 93% rename from patches/server/0114-Allow-infinite-and-mending-enchantments-together.patch rename to patches/server/0115-Allow-infinite-and-mending-enchantments-together.patch index 17c0890f0..3bce6082c 100644 --- a/patches/server/0114-Allow-infinite-and-mending-enchantments-together.patch +++ b/patches/server/0115-Allow-infinite-and-mending-enchantments-together.patch @@ -17,10 +17,10 @@ index 3aece8245060dd1ba269c08d226c84247a6f0a83..6763d0b96c83d1b462999f525bf1f31c } } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index ebaa80b52f236a8c7376006b4b7f4f37b409c31d..91605de2724dc3b4f533be168719371060ef105d 100644 +index 289bc6840b6d3f68b93a565c9cf3079231fab367..1727f4069f8f7172d4de7ddf72321e4a5b68ea80 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -196,6 +196,16 @@ public class PurpurConfig { +@@ -200,6 +200,16 @@ public class PurpurConfig { cryingObsidianValidForPortalFrame = getBoolean("settings.blocks.crying_obsidian.valid-for-portal-frame", cryingObsidianValidForPortalFrame); } diff --git a/patches/server/0115-Infinite-fuel-furnace.patch b/patches/server/0116-Infinite-fuel-furnace.patch similarity index 100% rename from patches/server/0115-Infinite-fuel-furnace.patch rename to patches/server/0116-Infinite-fuel-furnace.patch diff --git a/patches/server/0117-Add-tablist-suffix-option-for-afk.patch b/patches/server/0117-Add-tablist-suffix-option-for-afk.patch deleted file mode 100644 index a3cf0c7cd..000000000 --- a/patches/server/0117-Add-tablist-suffix-option-for-afk.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: montlikadani -Date: Thu, 12 Nov 2020 11:02:50 +0100 -Subject: [PATCH] Add tablist suffix option for afk - - -diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 8a0487c8c1c4bcff6d92bcbbadf555b04f04717d..5b395fb6f0e7bee4a24fb2d5b0bc9421b70e5b8d 100644 ---- a/src/main/java/net/minecraft/server/level/ServerPlayer.java -+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1956,7 +1956,11 @@ public class ServerPlayer extends Player { - } - - if (level.purpurConfig.idleTimeoutUpdateTabList) { -- this.getBukkitEntity().setPlayerListName((afk ? net.pl3x.purpur.PurpurConfig.afkTabListPrefix : "") + this.getName()); -+ if (afk) { -+ getBukkitEntity().setPlayerListName(net.pl3x.purpur.PurpurConfig.afkTabListPrefix + getName().getString() + net.pl3x.purpur.PurpurConfig.afkTabListSuffix); -+ } else { -+ getBukkitEntity().setPlayerListName(getName().getString()); -+ } - } - - ((ServerLevel) level).updateSleepingPlayerList(); -diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 91605de2724dc3b4f533be168719371060ef105d..a6c0d16ec697d01ed7576bd8b92e6995e6141681 100644 ---- a/src/main/java/net/pl3x/purpur/PurpurConfig.java -+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -135,12 +135,14 @@ public class PurpurConfig { - public static String afkBroadcastAway = "%s is now AFK"; - public static String afkBroadcastBack = "%s is no longer AFK"; - public static String afkTabListPrefix = "[AFK] "; -+ public static String afkTabListSuffix = ""; - public static String pingCommandOutput = "§a%s's ping is %sms"; - private static void messages() { - cannotRideMob = getString("settings.messages.cannot-ride-mob", cannotRideMob); - afkBroadcastAway = getString("settings.messages.afk-broadcast-away", afkBroadcastAway); - afkBroadcastBack = getString("settings.messages.afk-broadcast-back", afkBroadcastBack); - afkTabListPrefix = getString("settings.messages.afk-tab-list-prefix", afkTabListPrefix); -+ afkTabListSuffix = getString("settings.messages.afk-tab-list-suffix", afkTabListSuffix); - pingCommandOutput = getString("settings.messages.ping-command-output", pingCommandOutput); - } - diff --git a/patches/server/0116-Arrows-should-not-reset-despawn-counter.patch b/patches/server/0117-Arrows-should-not-reset-despawn-counter.patch similarity index 100% rename from patches/server/0116-Arrows-should-not-reset-despawn-counter.patch rename to patches/server/0117-Arrows-should-not-reset-despawn-counter.patch diff --git a/patches/server-unmapped/0133-Left-handed-API.patch b/patches/server/0129-Left-handed-API.patch similarity index 76% rename from patches/server-unmapped/0133-Left-handed-API.patch rename to patches/server/0129-Left-handed-API.patch index dc0b6d4b0..967b7ed29 100644 --- a/patches/server-unmapped/0133-Left-handed-API.patch +++ b/patches/server/0129-Left-handed-API.patch @@ -1,23 +1,25 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: BillyGalbreath -Date: Mon, 30 Nov 2020 06:03:06 -0600 +Date: Sat, 19 Jun 2021 18:38:48 -0500 Subject: [PATCH] Left handed API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java -index 125be4ca56d38c6cba1d1f4e7587abda075ee491..30d3b2f89e08056db128aa95e76c319b196b89ea 100644 +index 6549d7c40d6a0ca307fdcb6fd3ca01d2ab732b59..c128bb7fbea43e9b4245870d78f920dfb23e23f3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java -@@ -133,4 +133,14 @@ public abstract class CraftMob extends CraftLivingEntity implements Mob { +@@ -132,4 +132,16 @@ public abstract class CraftMob extends CraftLivingEntity implements Mob { return getHandle().getMaxHeadXRot(); } // Paper end + + // Purpur start ++ @Override + public boolean isLeftHanded() { + return getHandle().isLeftHanded(); + } + ++ @Override + public void setLeftHanded(boolean leftHanded) { + getHandle().setLeftHanded(leftHanded); + }