From 222262b8b3b5b51ab8192feb28422d35859f7fb1 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 16 Jul 2021 01:02:15 -0500 Subject: [PATCH] More TPSBar upgrades --- patches/server/0142-Implement-TPSBar.patch | 111 ++++++++++++++---- .../server/0154-Fix-stuck-in-portals.patch | 4 +- ...-to-ignore-nearby-mobs-when-sleeping.patch | 4 +- .../0175-Allow-infinity-on-crossbows.patch | 6 +- ...-Config-to-allow-for-unsafe-enchants.patch | 6 +- ...-Config-to-change-max-number-of-bees.patch | 6 +- .../0189-Gamemode-extra-permissions.patch | 10 +- ...0192-Configurable-broadcast-settings.patch | 6 +- ...-hidden-players-from-entity-selector.patch | 10 +- ...e-anvil-cumulative-cost-configurable.patch | 6 +- ...ake-lightning-rod-range-configurable.patch | 6 +- ...layer-join-full-server-by-permission.patch | 4 +- patches/server/0224-Add-uptime-command.patch | 10 +- ...x-bed-respawn-location-not-resetting.patch | 10 +- 14 files changed, 135 insertions(+), 64 deletions(-) diff --git a/patches/server/0142-Implement-TPSBar.patch b/patches/server/0142-Implement-TPSBar.patch index 4e2c533ae..bca7fa917 100644 --- a/patches/server/0142-Implement-TPSBar.patch +++ b/patches/server/0142-Implement-TPSBar.patch @@ -41,11 +41,61 @@ index 1b8d836607d52c3bc67ad5f2accbc94663637d49..606d5577f121b0103e272bbe4ffa4b58 return true; } } +diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java +index b52cea07a77bd5124881e144483e148cbf5ad54d..d20ccfd3aa974fe84eb675dc040c7e25dbb25920 100644 +--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java ++++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java +@@ -258,6 +258,7 @@ public class ServerPlayer extends Player { + public Integer clientViewDistance; + // CraftBukkit end + public PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper ++ private boolean tpsBar = false; + + public double lastEntitySpawnRadiusSquared; // Paper - optimise isOutsideRange, this field is in blocks + public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper +@@ -480,6 +481,7 @@ public class ServerPlayer extends Player { + } + } + ++ if (nbt.contains("Purpur.TPSBar")) { this.tpsBar = nbt.getBoolean("Purpur.TPSBar"); } // Purpur + } + + @Override +@@ -540,6 +542,7 @@ public class ServerPlayer extends Player { + } + this.getBukkitEntity().setExtraData(nbt); // CraftBukkit + ++ nbt.putBoolean("Purpur.TPSBar", this.tpsBar); // Purpur + } + + // CraftBukkit start - World fallback code, either respawn location or global spawn +@@ -2517,5 +2520,13 @@ public class ServerPlayer extends Player { + this.server.getPlayerList().moveToWorld(this, toLevel, true, to, !toLevel.paperConfig.disableTeleportationSuffocationCheck); + } + } ++ ++ public boolean tpsBar() { ++ return this.tpsBar; ++ } ++ ++ public void tpsBar(boolean tpsBar) { ++ this.tpsBar = tpsBar; ++ } + // Purpur end + } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 29043f9354b29f7766f1d6d8e793e2ea23883fa0..5141185821c798cb20f7936d7927d2256d9be75f 100644 +index 29043f9354b29f7766f1d6d8e793e2ea23883fa0..54db0206bbeea62525ada78b0f9cd99b4f9fddff 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -593,6 +593,8 @@ public abstract class PlayerList { +@@ -483,6 +483,7 @@ public abstract class PlayerList { + scoreboard.addPlayerToTeam(player.getScoreboardName(), collideRuleTeam); + } + // Paper end ++ if (player.tpsBar()) net.pl3x.purpur.task.TPSBarTask.addPlayer(player.getBukkitEntity()); // Purpur + // CraftBukkit - Moved from above, added world + PlayerList.LOGGER.info("{}[{}] logged in with entity id {} at ([{}]{}, {}, {})", player.getName().getString(), s1, player.getId(), worldserver1.serverLevelData.getLevelName(), player.getX(), player.getY(), player.getZ()); + } +@@ -593,6 +594,8 @@ public abstract class PlayerList { } public net.kyori.adventure.text.Component disconnect(ServerPlayer entityplayer, net.kyori.adventure.text.Component leaveMessage) { // Paper end @@ -55,10 +105,10 @@ index 29043f9354b29f7766f1d6d8e793e2ea23883fa0..5141185821c798cb20f7936d7927d225 entityplayer.awardStat(Stats.LEAVE_GAME); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index e1701ab4bd6eccb9a525fa3eb8b35a1bf6f7ffcd..2d64a219becb3006dc12c25ee4d39597fbc2de35 100644 +index e1701ab4bd6eccb9a525fa3eb8b35a1bf6f7ffcd..7ed1d5b2aab3442f80532c62a398353e89c18b0c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -324,6 +324,27 @@ public class PurpurConfig { +@@ -324,6 +324,29 @@ public class PurpurConfig { disableGiveCommandDrops = getBoolean("settings.disable-give-dropping", disableGiveCommandDrops); } @@ -71,6 +121,7 @@ index e1701ab4bd6eccb9a525fa3eb8b35a1bf6f7ffcd..2d64a219becb3006dc12c25ee4d39597 + public static String commandTPSBarTextColorGood = ""; + public static String commandTPSBarTextColorMedium = ""; + public static String commandTPSBarTextColorLow = ""; ++ public static int commandTPSBarTickInterval = 20; + private static void commandSettings() { + commandTPSBarTitle = getString("settings.command.tpsbar.title", commandTPSBarTitle); + commandTPSBarProgressOverlay = BossBar.Overlay.valueOf(getString("settings.command.tpsbar.overlay", commandTPSBarProgressOverlay.name())); @@ -81,6 +132,7 @@ index e1701ab4bd6eccb9a525fa3eb8b35a1bf6f7ffcd..2d64a219becb3006dc12c25ee4d39597 + commandTPSBarTextColorGood = getString("settings.command.tpsbar.text-color.good", commandTPSBarTextColorGood); + commandTPSBarTextColorMedium = getString("settings.command.tpsbar.text-color.medium", commandTPSBarTextColorMedium); + commandTPSBarTextColorLow = getString("settings.command.tpsbar.text-color.low", commandTPSBarTextColorLow); ++ commandTPSBarTickInterval = getInt("settings.command.tpsbar.tick-interval", commandTPSBarTickInterval); + } + public static boolean barrelSixRows = false; @@ -88,10 +140,10 @@ index e1701ab4bd6eccb9a525fa3eb8b35a1bf6f7ffcd..2d64a219becb3006dc12c25ee4d39597 public static boolean enderChestPermissionRows = false; diff --git a/src/main/java/net/pl3x/purpur/command/TPSBarCommand.java b/src/main/java/net/pl3x/purpur/command/TPSBarCommand.java new file mode 100644 -index 0000000000000000000000000000000000000000..2803a1b95121fbff3066fd2d1abaf8723386781f +index 0000000000000000000000000000000000000000..5ed9d779fbdd9da1010f5f31ceec6b46496a21bb --- /dev/null +++ b/src/main/java/net/pl3x/purpur/command/TPSBarCommand.java -@@ -0,0 +1,24 @@ +@@ -0,0 +1,25 @@ +package net.pl3x.purpur.command; + +import com.mojang.brigadier.CommandDispatcher; @@ -110,7 +162,8 @@ index 0000000000000000000000000000000000000000..2803a1b95121fbff3066fd2d1abaf872 + + private static int execute(CommandSourceStack source, ServerPlayer player) { + if (player != null) { -+ TPSBarTask.togglePlayer(player.getBukkitEntity()); ++ boolean result = TPSBarTask.togglePlayer(player.getBukkitEntity()); ++ player.tpsBar(result); + return 1; + } + return 0; @@ -118,10 +171,10 @@ index 0000000000000000000000000000000000000000..2803a1b95121fbff3066fd2d1abaf872 +} diff --git a/src/main/java/net/pl3x/purpur/task/TPSBarTask.java b/src/main/java/net/pl3x/purpur/task/TPSBarTask.java new file mode 100644 -index 0000000000000000000000000000000000000000..12ba7e8a31de9610ca2468a59a28d3f963c5b8f3 +index 0000000000000000000000000000000000000000..8d3823e0be0cab31a906ec30f0a16fe11de86f25 --- /dev/null +++ b/src/main/java/net/pl3x/purpur/task/TPSBarTask.java -@@ -0,0 +1,183 @@ +@@ -0,0 +1,201 @@ +package net.pl3x.purpur.task; + +import net.kyori.adventure.bossbar.BossBar; @@ -144,6 +197,7 @@ index 0000000000000000000000000000000000000000..12ba7e8a31de9610ca2468a59a28d3f9 + private final Map bossbars = new HashMap<>(); + private double tps = 20.0D; + private double mspt = 0.0D; ++ private int tick = 0; + + private static TPSBarTask instance() { + if (instance == null) { @@ -154,6 +208,11 @@ index 0000000000000000000000000000000000000000..12ba7e8a31de9610ca2468a59a28d3f9 + + @Override + public void run() { ++ if (++tick < PurpurConfig.commandTPSBarTickInterval) { ++ return; ++ } ++ tick = 0; ++ + this.tps = Math.max(Math.min(Bukkit.getTPS()[0], 20.0D), 0.0D); + this.mspt = Bukkit.getAverageTickTime(); + @@ -268,31 +327,43 @@ index 0000000000000000000000000000000000000000..12ba7e8a31de9610ca2468a59a28d3f9 + @Override + public void cancel() { + super.cancel(); ++ this.bossbars.keySet().forEach(uuid -> { ++ Player player = Bukkit.getPlayer(uuid); ++ if (player != null) { ++ removePlayer(player); ++ } ++ }); + this.bossbars.clear(); + } + -+ public static void removePlayer(Player player) { ++ public static boolean removePlayer(Player player) { + BossBar bossbar = instance().bossbars.remove(player.getUniqueId()); + if (bossbar != null) { + player.hideBossBar(bossbar); ++ return true; + } ++ return false; + } + -+ public static void togglePlayer(Player player) { -+ BossBar bossbar = instance().bossbars.remove(player.getUniqueId()); -+ if (bossbar != null) { -+ player.hideBossBar(bossbar); -+ } else { -+ bossbar = BossBar.bossBar(Component.text(""), 0.0F, instance().getBossBarColor(), PurpurConfig.commandTPSBarProgressOverlay); -+ instance().bossbars.put(player.getUniqueId(), bossbar); -+ instance().updateBossBar(bossbar, player); -+ player.showBossBar(bossbar); ++ public static void addPlayer(Player player) { ++ removePlayer(player); ++ BossBar bossbar = BossBar.bossBar(Component.text(""), 0.0F, instance().getBossBarColor(), PurpurConfig.commandTPSBarProgressOverlay); ++ instance().bossbars.put(player.getUniqueId(), bossbar); ++ instance().updateBossBar(bossbar, player); ++ player.showBossBar(bossbar); ++ } ++ ++ public static boolean togglePlayer(Player player) { ++ if (removePlayer(player)) { ++ return false; + } ++ addPlayer(player); ++ return true; + } + + public static void start() { + stop(); -+ instance().runTaskTimerAsynchronously(new MinecraftInternalPlugin(), 20L, 20L); ++ instance().runTaskTimerAsynchronously(new MinecraftInternalPlugin(), 1, 1); + } + + public static void stop() { diff --git a/patches/server/0154-Fix-stuck-in-portals.patch b/patches/server/0154-Fix-stuck-in-portals.patch index 42dbe33df..0ecdf655e 100644 --- a/patches/server/0154-Fix-stuck-in-portals.patch +++ b/patches/server/0154-Fix-stuck-in-portals.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix stuck in portals diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index b52cea07a77bd5124881e144483e148cbf5ad54d..4e8333d134b05bdf45356d14b974b8de013cb6d2 100644 +index d20ccfd3aa974fe84eb675dc040c7e25dbb25920..e48496c72f218cf421f5bd7c57f6138c90c511d4 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1137,6 +1137,7 @@ public class ServerPlayer extends Player { +@@ -1140,6 +1140,7 @@ public class ServerPlayer extends Player { playerlist.sendPlayerPermissionLevel(this); worldserver1.removePlayerImmediately(this, Entity.RemovalReason.CHANGED_DIMENSION); this.unsetRemoved(); diff --git a/patches/server/0164-Config-to-ignore-nearby-mobs-when-sleeping.patch b/patches/server/0164-Config-to-ignore-nearby-mobs-when-sleeping.patch index fc588fda0..f1fc29397 100644 --- a/patches/server/0164-Config-to-ignore-nearby-mobs-when-sleeping.patch +++ b/patches/server/0164-Config-to-ignore-nearby-mobs-when-sleeping.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Config to ignore nearby mobs when sleeping diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 4e8333d134b05bdf45356d14b974b8de013cb6d2..19b60f312e5e843964e9549b67109d1b285908ad 100644 +index e48496c72f218cf421f5bd7c57f6138c90c511d4..a2b2cc1abad8afc4f959e8393d8d31e489e55c2d 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1300,7 +1300,7 @@ public class ServerPlayer extends Player { +@@ -1303,7 +1303,7 @@ public class ServerPlayer extends Player { return entitymonster.isPreventingPlayerRest((Player) this); }); diff --git a/patches/server/0175-Allow-infinity-on-crossbows.patch b/patches/server/0175-Allow-infinity-on-crossbows.patch index 48a0875ab..62bcbcbe0 100644 --- a/patches/server/0175-Allow-infinity-on-crossbows.patch +++ b/patches/server/0175-Allow-infinity-on-crossbows.patch @@ -59,10 +59,10 @@ index 6f6106ca4d74d50a7b74b086adc96c58c7906cb6..d6417c1e77ac8823e18a179dc9f61757 public abstract boolean canEnchant(Item item); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 206d04cae6d94ae8ab816e5ae661dd5133be1996..dde79e3f066985a9e6c82b2e562c102b06319bd6 100644 +index 45d536954b8007de69c6f74942c2293510739a5e..f53c2c9a62554141d4f951e5a1c25376e7eaf299 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -369,6 +369,7 @@ public class PurpurConfig { +@@ -371,6 +371,7 @@ public class PurpurConfig { } public static boolean allowInfinityMending = false; @@ -70,7 +70,7 @@ index 206d04cae6d94ae8ab816e5ae661dd5133be1996..dde79e3f066985a9e6c82b2e562c102b private static void enchantmentSettings() { if (version < 5) { boolean oldValue = getBoolean("settings.enchantment.allow-infinite-and-mending-together", false); -@@ -376,6 +377,7 @@ public class PurpurConfig { +@@ -378,6 +379,7 @@ public class PurpurConfig { set("settings.enchantment.allow-infinite-and-mending-together", null); } allowInfinityMending = getBoolean("settings.enchantment.allow-infinity-and-mending-together", allowInfinityMending); diff --git a/patches/server/0181-Config-to-allow-for-unsafe-enchants.patch b/patches/server/0181-Config-to-allow-for-unsafe-enchants.patch index dc6e04c41..b6f723b4d 100644 --- a/patches/server/0181-Config-to-allow-for-unsafe-enchants.patch +++ b/patches/server/0181-Config-to-allow-for-unsafe-enchants.patch @@ -75,10 +75,10 @@ index 18da9a82fb2ca4b9b8d80e37df29c76c8214c37f..e61be8f9a9b26a9daa3f70ec028ed689 this.getOrCreateTag().put(key, tag); } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index dde79e3f066985a9e6c82b2e562c102b06319bd6..cb81e7a819e64779361e8d325463cab55d57aab4 100644 +index f53c2c9a62554141d4f951e5a1c25376e7eaf299..de340a9c0abdc8bc2cbdc71f1858a9ddd549aa94 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -370,6 +370,7 @@ public class PurpurConfig { +@@ -372,6 +372,7 @@ public class PurpurConfig { public static boolean allowInfinityMending = false; public static boolean allowCrossbowInfinity = false; @@ -86,7 +86,7 @@ index dde79e3f066985a9e6c82b2e562c102b06319bd6..cb81e7a819e64779361e8d325463cab5 private static void enchantmentSettings() { if (version < 5) { boolean oldValue = getBoolean("settings.enchantment.allow-infinite-and-mending-together", false); -@@ -378,6 +379,7 @@ public class PurpurConfig { +@@ -380,6 +381,7 @@ public class PurpurConfig { } allowInfinityMending = getBoolean("settings.enchantment.allow-infinity-and-mending-together", allowInfinityMending); allowCrossbowInfinity = getBoolean("settings.enchantment.allow-infinity-on-crossbow", allowCrossbowInfinity); diff --git a/patches/server/0186-Config-to-change-max-number-of-bees.patch b/patches/server/0186-Config-to-change-max-number-of-bees.patch index 2976bf78d..feeb92017 100644 --- a/patches/server/0186-Config-to-change-max-number-of-bees.patch +++ b/patches/server/0186-Config-to-change-max-number-of-bees.patch @@ -18,10 +18,10 @@ index 8484e80a70129fb0358d56efab6fd54798b54e6e..ffacc4b8cc3ab8285c4131aec58e48ff public BeehiveBlockEntity(BlockPos pos, BlockState state) { super(BlockEntityType.BEEHIVE, pos, state); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index cb81e7a819e64779361e8d325463cab55d57aab4..56ef4b6f0af80fd0bf10077e7e9c8314bea5a681 100644 +index de340a9c0abdc8bc2cbdc71f1858a9ddd549aa94..d3f6ced425cca6e80eca485c6007691404c5785b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -351,6 +351,7 @@ public class PurpurConfig { +@@ -353,6 +353,7 @@ public class PurpurConfig { public static boolean enderChestSixRows = false; public static boolean enderChestPermissionRows = false; public static boolean cryingObsidianValidForPortalFrame = false; @@ -29,7 +29,7 @@ index cb81e7a819e64779361e8d325463cab55d57aab4..56ef4b6f0af80fd0bf10077e7e9c8314 private static void blockSettings() { if (version < 3) { boolean oldValue = getBoolean("settings.barrel.packed-barrels", true); -@@ -366,6 +367,7 @@ public class PurpurConfig { +@@ -368,6 +369,7 @@ 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); cryingObsidianValidForPortalFrame = getBoolean("settings.blocks.crying_obsidian.valid-for-portal-frame", cryingObsidianValidForPortalFrame); diff --git a/patches/server/0189-Gamemode-extra-permissions.patch b/patches/server/0189-Gamemode-extra-permissions.patch index f2705c2fe..cdba9104d 100644 --- a/patches/server/0189-Gamemode-extra-permissions.patch +++ b/patches/server/0189-Gamemode-extra-permissions.patch @@ -54,21 +54,21 @@ index 79f6089b934124c3309c6bee2e48b36b937252e0..dff8ef0a1a2e52792070d93685c29002 for(ServerPlayer serverPlayer : targets) { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 56ef4b6f0af80fd0bf10077e7e9c8314bea5a681..f0d23f3331ff8ef2797e1cd542d3601f816d3974 100644 +index d3f6ced425cca6e80eca485c6007691404c5785b..c1926d71aafe3e114f75be5738ab9e3035641894 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -335,6 +335,7 @@ public class PurpurConfig { - public static String commandTPSBarTextColorGood = ""; +@@ -336,6 +336,7 @@ public class PurpurConfig { public static String commandTPSBarTextColorMedium = ""; public static String commandTPSBarTextColorLow = ""; + public static int commandTPSBarTickInterval = 20; + public static boolean commandGamemodeRequiresPermission = false; private static void commandSettings() { commandTPSBarTitle = getString("settings.command.tpsbar.title", commandTPSBarTitle); commandTPSBarProgressOverlay = BossBar.Overlay.valueOf(getString("settings.command.tpsbar.overlay", commandTPSBarProgressOverlay.name())); -@@ -345,6 +346,7 @@ public class PurpurConfig { - commandTPSBarTextColorGood = getString("settings.command.tpsbar.text-color.good", commandTPSBarTextColorGood); +@@ -347,6 +348,7 @@ public class PurpurConfig { commandTPSBarTextColorMedium = getString("settings.command.tpsbar.text-color.medium", commandTPSBarTextColorMedium); commandTPSBarTextColorLow = getString("settings.command.tpsbar.text-color.low", commandTPSBarTextColorLow); + commandTPSBarTickInterval = getInt("settings.command.tpsbar.tick-interval", commandTPSBarTickInterval); + commandGamemodeRequiresPermission = getBoolean("settings.command.gamemode.requires-specific-permission", commandGamemodeRequiresPermission); } diff --git a/patches/server/0192-Configurable-broadcast-settings.patch b/patches/server/0192-Configurable-broadcast-settings.patch index e43ab4fde..98985f790 100644 --- a/patches/server/0192-Configurable-broadcast-settings.patch +++ b/patches/server/0192-Configurable-broadcast-settings.patch @@ -17,10 +17,10 @@ index c46df052a5a39d92688f51377ee1f7b5b5b36faa..d7d2a975386cecb0d50b4f7ed37de8ad // Paper end } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 19b60f312e5e843964e9549b67109d1b285908ad..6103b81f34e7f2c82a7f4be492888cc720c0e9eb 100644 +index a2b2cc1abad8afc4f959e8393d8d31e489e55c2d..fc202c5d541b569be582def48356c3b18e3788d4 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -875,6 +875,7 @@ public class ServerPlayer extends Player { +@@ -878,6 +878,7 @@ public class ServerPlayer extends Player { }); Team scoreboardteambase = this.getTeam(); @@ -29,7 +29,7 @@ index 19b60f312e5e843964e9549b67109d1b285908ad..6103b81f34e7f2c82a7f4be492888cc7 if (scoreboardteambase.getDeathMessageVisibility() == Team.Visibility.HIDE_FOR_OTHER_TEAMS) { this.server.getPlayerList().broadcastToTeam((Player) this, ichatbasecomponent); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index f0d23f3331ff8ef2797e1cd542d3601f816d3974..915a7ef9eb67413ed9db37d91b9c6f5f9f0e2b33 100644 +index c1926d71aafe3e114f75be5738ab9e3035641894..23674fa9b99c79ffe1b2ee88d0e25b5ab8c91fac 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -178,6 +178,18 @@ public class PurpurConfig { diff --git a/patches/server/0195-Hide-hidden-players-from-entity-selector.patch b/patches/server/0195-Hide-hidden-players-from-entity-selector.patch index 5950abde8..a338b9815 100644 --- a/patches/server/0195-Hide-hidden-players-from-entity-selector.patch +++ b/patches/server/0195-Hide-hidden-players-from-entity-selector.patch @@ -59,20 +59,20 @@ index 0fb8f32427843f4bfd90ab88ecb3ab3e4a4fda31..f99f1ba7f912a2fd503e12c446b342a8 + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 915a7ef9eb67413ed9db37d91b9c6f5f9f0e2b33..b2e3e6fee5268cd25d6ac70c03c1bb60a8c840de 100644 +index 23674fa9b99c79ffe1b2ee88d0e25b5ab8c91fac..45626d15e91ac2c0fa745f2670d3877a7387e0d2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -348,6 +348,7 @@ public class PurpurConfig { - public static String commandTPSBarTextColorMedium = ""; +@@ -349,6 +349,7 @@ public class PurpurConfig { public static String commandTPSBarTextColorLow = ""; + public static int commandTPSBarTickInterval = 20; public static boolean commandGamemodeRequiresPermission = false; + public static boolean hideHiddenPlayersFromEntitySelector = false; private static void commandSettings() { commandTPSBarTitle = getString("settings.command.tpsbar.title", commandTPSBarTitle); commandTPSBarProgressOverlay = BossBar.Overlay.valueOf(getString("settings.command.tpsbar.overlay", commandTPSBarProgressOverlay.name())); -@@ -359,6 +360,7 @@ public class PurpurConfig { - commandTPSBarTextColorMedium = getString("settings.command.tpsbar.text-color.medium", commandTPSBarTextColorMedium); +@@ -361,6 +362,7 @@ public class PurpurConfig { commandTPSBarTextColorLow = getString("settings.command.tpsbar.text-color.low", commandTPSBarTextColorLow); + commandTPSBarTickInterval = getInt("settings.command.tpsbar.tick-interval", commandTPSBarTickInterval); commandGamemodeRequiresPermission = getBoolean("settings.command.gamemode.requires-specific-permission", commandGamemodeRequiresPermission); + hideHiddenPlayersFromEntitySelector = getBoolean("settings.command.hide-hidden-players-from-entity-selector", hideHiddenPlayersFromEntitySelector); } diff --git a/patches/server/0203-Make-anvil-cumulative-cost-configurable.patch b/patches/server/0203-Make-anvil-cumulative-cost-configurable.patch index e7f75db23..5498a4856 100644 --- a/patches/server/0203-Make-anvil-cumulative-cost-configurable.patch +++ b/patches/server/0203-Make-anvil-cumulative-cost-configurable.patch @@ -18,10 +18,10 @@ index f380659b261253e327f018ce9b54b15195ad65d7..080449cf3aa0394bd179e26fda8d7248 public void setItemName(String newItemName) { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 13b07388f0e24c419a45ec98087572fb358f9d36..d007b6aa17e62f5716b8a1cbe5096ed493fa3067 100644 +index aa9bed62b71894b74f86ee1016d192293a702fd1..fc26cfc19f0af721eb9030cff691c4d65df06415 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -370,6 +370,7 @@ public class PurpurConfig { +@@ -372,6 +372,7 @@ public class PurpurConfig { public static boolean enderChestPermissionRows = false; public static boolean cryingObsidianValidForPortalFrame = false; public static int beeInsideBeeHive = 3; @@ -29,7 +29,7 @@ index 13b07388f0e24c419a45ec98087572fb358f9d36..d007b6aa17e62f5716b8a1cbe5096ed4 private static void blockSettings() { if (version < 3) { boolean oldValue = getBoolean("settings.barrel.packed-barrels", true); -@@ -386,6 +387,7 @@ public class PurpurConfig { +@@ -388,6 +389,7 @@ public class PurpurConfig { enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows); cryingObsidianValidForPortalFrame = getBoolean("settings.blocks.crying_obsidian.valid-for-portal-frame", cryingObsidianValidForPortalFrame); beeInsideBeeHive = getInt("settings.blocks.beehive.max-bees-inside", beeInsideBeeHive); diff --git a/patches/server/0213-Make-lightning-rod-range-configurable.patch b/patches/server/0213-Make-lightning-rod-range-configurable.patch index 6e51e8b45..944ace4eb 100644 --- a/patches/server/0213-Make-lightning-rod-range-configurable.patch +++ b/patches/server/0213-Make-lightning-rod-range-configurable.patch @@ -18,10 +18,10 @@ index d682f0b69757b0f4e3120066e25170264ba1f289..cee1f74edf069da54d15b7fc7d10c437 return optional.map((blockposition1) -> { return blockposition1.above(1); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index d007b6aa17e62f5716b8a1cbe5096ed493fa3067..d6725c05968f1e119209d7fd6e3e5503caecb951 100644 +index fc26cfc19f0af721eb9030cff691c4d65df06415..d881cdfd3d3c6244c65f54bfa953bc5b18a644af 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -371,6 +371,7 @@ public class PurpurConfig { +@@ -373,6 +373,7 @@ public class PurpurConfig { public static boolean cryingObsidianValidForPortalFrame = false; public static int beeInsideBeeHive = 3; public static boolean anvilCumulativeCost = true; @@ -29,7 +29,7 @@ index d007b6aa17e62f5716b8a1cbe5096ed493fa3067..d6725c05968f1e119209d7fd6e3e5503 private static void blockSettings() { if (version < 3) { boolean oldValue = getBoolean("settings.barrel.packed-barrels", true); -@@ -388,6 +389,7 @@ public class PurpurConfig { +@@ -390,6 +391,7 @@ public class PurpurConfig { cryingObsidianValidForPortalFrame = getBoolean("settings.blocks.crying_obsidian.valid-for-portal-frame", cryingObsidianValidForPortalFrame); beeInsideBeeHive = getInt("settings.blocks.beehive.max-bees-inside", beeInsideBeeHive); anvilCumulativeCost = getBoolean("settings.blocks.anvil.cumulative-cost", anvilCumulativeCost); diff --git a/patches/server/0215-Allow-player-join-full-server-by-permission.patch b/patches/server/0215-Allow-player-join-full-server-by-permission.patch index b072d538f..bcc45e07c 100644 --- a/patches/server/0215-Allow-player-join-full-server-by-permission.patch +++ b/patches/server/0215-Allow-player-join-full-server-by-permission.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow player join full server by permission diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 5141185821c798cb20f7936d7927d2256d9be75f..5fdbdc2d3deb09da018d0db1b495d9fb52e39b44 100644 +index 54db0206bbeea62525ada78b0f9cd99b4f9fddff..5c9cb6fa72fef151b6c9038e2536a4fdf330375e 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -764,7 +764,7 @@ public abstract class PlayerList { +@@ -765,7 +765,7 @@ public abstract class PlayerList { event.disallow(PlayerLoginEvent.Result.KICK_BANNED, PaperAdventure.asAdventure(chatmessage)); // Paper - Adventure } else { // return this.players.size() >= this.maxPlayers && !this.d(gameprofile) ? new ChatMessage("multiplayer.disconnect.server_full") : null; diff --git a/patches/server/0224-Add-uptime-command.patch b/patches/server/0224-Add-uptime-command.patch index 785df2f56..5eaeb9cf6 100644 --- a/patches/server/0224-Add-uptime-command.patch +++ b/patches/server/0224-Add-uptime-command.patch @@ -29,7 +29,7 @@ index 652e596c37bf8d865c954b31ad7d2562b9e95c46..e74ddf6b72dbd335f8a06f05341d5a4d public int autosavePeriod; public boolean serverAutoSave = false; // Paper diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index d6725c05968f1e119209d7fd6e3e5503caecb951..ae27ecf02b799634bf5d756d2b02ea102d25b249 100644 +index d881cdfd3d3c6244c65f54bfa953bc5b18a644af..07e5bb1b148376b3962a983b3d192bd838e04e02 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -166,6 +166,7 @@ public class PurpurConfig { @@ -48,8 +48,8 @@ index d6725c05968f1e119209d7fd6e3e5503caecb951..ae27ecf02b799634bf5d756d2b02ea10 unverifiedUsername = getString("settings.messages.unverified-username", unverifiedUsername); } -@@ -351,6 +353,15 @@ public class PurpurConfig { - public static String commandTPSBarTextColorLow = ""; +@@ -352,6 +354,15 @@ public class PurpurConfig { + public static int commandTPSBarTickInterval = 20; public static boolean commandGamemodeRequiresPermission = false; public static boolean hideHiddenPlayersFromEntitySelector = false; + public static String uptimeFormat = ""; @@ -64,8 +64,8 @@ index d6725c05968f1e119209d7fd6e3e5503caecb951..ae27ecf02b799634bf5d756d2b02ea10 private static void commandSettings() { commandTPSBarTitle = getString("settings.command.tpsbar.title", commandTPSBarTitle); commandTPSBarProgressOverlay = BossBar.Overlay.valueOf(getString("settings.command.tpsbar.overlay", commandTPSBarProgressOverlay.name())); -@@ -363,6 +374,15 @@ public class PurpurConfig { - commandTPSBarTextColorLow = getString("settings.command.tpsbar.text-color.low", commandTPSBarTextColorLow); +@@ -365,6 +376,15 @@ public class PurpurConfig { + commandTPSBarTickInterval = getInt("settings.command.tpsbar.tick-interval", commandTPSBarTickInterval); commandGamemodeRequiresPermission = getBoolean("settings.command.gamemode.requires-specific-permission", commandGamemodeRequiresPermission); hideHiddenPlayersFromEntitySelector = getBoolean("settings.command.hide-hidden-players-from-entity-selector", hideHiddenPlayersFromEntitySelector); + uptimeFormat = getString("settings.command.uptime.format", uptimeFormat); diff --git a/patches/server/0227-SPIGOT-5988-Fix-bed-respawn-location-not-resetting.patch b/patches/server/0227-SPIGOT-5988-Fix-bed-respawn-location-not-resetting.patch index 87ff65591..6b8a9b872 100644 --- a/patches/server/0227-SPIGOT-5988-Fix-bed-respawn-location-not-resetting.patch +++ b/patches/server/0227-SPIGOT-5988-Fix-bed-respawn-location-not-resetting.patch @@ -5,10 +5,10 @@ Subject: [PATCH] SPIGOT-5988 Fix bed respawn location not resetting diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 5fdbdc2d3deb09da018d0db1b495d9fb52e39b44..b984f3fdadd5d44e8e2c1fa12a531a26210cbeed 100644 +index 5c9cb6fa72fef151b6c9038e2536a4fdf330375e..bea7b50888462b89c82da756d0a72226a0cdb3fc 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -902,6 +902,7 @@ public abstract class PlayerList { +@@ -903,6 +903,7 @@ public abstract class PlayerList { location = new Location(worldserver1.getWorld(), vec3d.x, vec3d.y, vec3d.z, f1, 0.0F); } else if (blockposition != null) { entityplayer1.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.NO_RESPAWN_BLOCK_AVAILABLE, 0.0F)); @@ -17,10 +17,10 @@ index 5fdbdc2d3deb09da018d0db1b495d9fb52e39b44..b984f3fdadd5d44e8e2c1fa12a531a26 } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index bbdb4e20f01effd77cf6de5626bb5d5b0c7d3f4d..e59b8ab1ba5d47663ff174752b1a9a81bf0780e7 100644 +index 808d763e767fd4f727c5f0a735c3e5d4ac17a47e..0fada677e0aa6ffa4b654d7eae307863d8fc6e59 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -398,6 +398,7 @@ public class PurpurConfig { +@@ -400,6 +400,7 @@ public class PurpurConfig { public static int beeInsideBeeHive = 3; public static boolean anvilCumulativeCost = true; public static int lightningRodRange = 128; @@ -28,7 +28,7 @@ index bbdb4e20f01effd77cf6de5626bb5d5b0c7d3f4d..e59b8ab1ba5d47663ff174752b1a9a81 private static void blockSettings() { if (version < 3) { boolean oldValue = getBoolean("settings.barrel.packed-barrels", true); -@@ -416,6 +417,7 @@ public class PurpurConfig { +@@ -418,6 +419,7 @@ public class PurpurConfig { beeInsideBeeHive = getInt("settings.blocks.beehive.max-bees-inside", beeInsideBeeHive); anvilCumulativeCost = getBoolean("settings.blocks.anvil.cumulative-cost", anvilCumulativeCost); lightningRodRange = getInt("settings.blocks.lightning_rod.range", lightningRodRange);