Skip to content

Commit

Permalink
Fix entity selectors with tpsbar command
Browse files Browse the repository at this point in the history
  • Loading branch information
BillyGalbreath committed Feb 15, 2022
1 parent d413f6f commit b829f50
Show file tree
Hide file tree
Showing 22 changed files with 124 additions and 87 deletions.
63 changes: 50 additions & 13 deletions patches/server/0127-Implement-TPSBar.patch
Expand Up @@ -17,7 +17,7 @@ index 40735237cc87a476d08f1ffcb1b67ce563091230..3156e7e43a5114aaaa1276b024f4ec45

if (environment.includeIntegrated) {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 884a6b777102877ab9af50f6f1df39213b672fe7..e9a7da7f2f9d0661c128ca040e15676c6d72e38b 100644
index 47fbe4f3877756d88d5b914bb43c06d3a136a288..121bc7f3be749a1773ad917023855bae529e6643 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1126,6 +1126,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
Expand All @@ -41,7 +41,7 @@ index d58e5357f9cb45d9b5ddeaed4ec76aa388fc34d1..9e83f2dea73461f698185f5ffdb6060e
}
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index dfe547b7a2caa2ecfdddef9b9a49be40d26c5da8..951e45f7b17f6f903c99634177395464a1889c0f 100644
index 36e75498ba1fecfd85e2de1cc5b13e4039575658..58b475f26b1e1e2c76cab0e61125846fbb8b7b79 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -256,6 +256,7 @@ public class ServerPlayer extends Player {
Expand Down Expand Up @@ -83,7 +83,7 @@ index dfe547b7a2caa2ecfdddef9b9a49be40d26c5da8..951e45f7b17f6f903c99634177395464
// 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 e2d8631422eb90d050cf1335ab6883ca6fb9c3dc..d6413977a87613a88a155630fa3be9ee9a99d47e 100644
index 1d3692d8d533bb4c3ac18f8837aa44f8704c10be..a088205b5c56595e37ad2e725dcfe31849fe1d96 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -486,6 +486,7 @@ public abstract class PlayerList {
Expand All @@ -104,10 +104,26 @@ index e2d8631422eb90d050cf1335ab6883ca6fb9c3dc..d6413977a87613a88a155630fa3be9ee

entityplayer.awardStat(Stats.LEAVE_GAME);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 92bef71629d982288a9ae928ec815c7cc0af42a9..bc0634f634526ef878dfb12cf3103c226b98bb22 100644
index bd4c8c087b5468e5cde5e2cc017ae6187aef51bb..1eb8d599ebb70313fda467d943888f137b1fa745 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -212,6 +212,29 @@ public class PurpurConfig {
@@ -176,6 +176,7 @@ public class PurpurConfig {
public static String creditsCommandOutput = "<green>%s has been shown the end credits";
public static String demoCommandOutput = "<green>%s has been shown the demo screen";
public static String pingCommandOutput = "<green>%s's ping is %sms";
+ public static String tpsbarCommandOutput = "<green>Tpsbar toggled <onoff> for <target>";
private static void messages() {
cannotRideMob = getString("settings.messages.cannot-ride-mob", cannotRideMob);
afkBroadcastAway = getString("settings.messages.afk-broadcast-away", afkBroadcastAway);
@@ -185,6 +186,7 @@ public class PurpurConfig {
creditsCommandOutput = getString("settings.messages.credits-command-output", creditsCommandOutput);
demoCommandOutput = getString("settings.messages.demo-command-output", demoCommandOutput);
pingCommandOutput = getString("settings.messages.ping-command-output", pingCommandOutput);
+ tpsbarCommandOutput = getString("settings.messages.tpsbar-command-output", tpsbarCommandOutput);
}

public static String deathMsgStonecutter = "<player> has sawed themself in half";
@@ -212,6 +214,29 @@ public class PurpurConfig {
disableGiveCommandDrops = getBoolean("settings.disable-give-dropping", disableGiveCommandDrops);
}

Expand Down Expand Up @@ -139,30 +155,51 @@ index 92bef71629d982288a9ae928ec815c7cc0af42a9..bc0634f634526ef878dfb12cf3103c22
public static boolean enderChestPermissionRows = false;
diff --git a/src/main/java/org/purpurmc/purpur/command/TPSBarCommand.java b/src/main/java/org/purpurmc/purpur/command/TPSBarCommand.java
new file mode 100644
index 0000000000000000000000000000000000000000..2547eb09f34410ae5e6b3dcfd1706ca5f05ff896
index 0000000000000000000000000000000000000000..3de9dfba6bc7c438c093a8dca1f647f6c3de3c08
--- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/command/TPSBarCommand.java
@@ -0,0 +1,21 @@
@@ -0,0 +1,42 @@
+package org.purpurmc.purpur.command;
+
+import com.mojang.brigadier.CommandDispatcher;
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.format.NamedTextColor;
+import net.kyori.adventure.text.minimessage.MiniMessage;
+import net.minecraft.commands.CommandSourceStack;
+import net.minecraft.commands.Commands;
+import net.minecraft.commands.arguments.EntityArgument;
+import net.minecraft.server.level.ServerPlayer;
+import org.purpurmc.purpur.PurpurConfig;
+import org.purpurmc.purpur.task.TPSBarTask;
+
+import java.util.Collection;
+import java.util.Collections;
+
+public class TPSBarCommand {
+ public static void register(CommandDispatcher<CommandSourceStack> dispatcher) {
+ dispatcher.register(Commands.literal("tpsbar")
+ .requires(listener -> listener.hasPermission(2))
+ .executes(context -> {
+ ServerPlayer player = context.getSource().getPlayerOrException();
+ boolean result = TPSBarTask.instance().togglePlayer(player.getBukkitEntity());
+ player.tpsBar(result);
+ return 1;
+ })
+ .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.tpsbar");
+ }
+
+ private static int execute(CommandSourceStack sender, Collection<ServerPlayer> targets) {
+ for (ServerPlayer player : targets) {
+ boolean result = TPSBarTask.instance().togglePlayer(player.getBukkitEntity());
+ player.tpsBar(result);
+
+ Component output = MiniMessage.get().parse(PurpurConfig.tpsbarCommandOutput,
+ "onoff", Component.translatable(result ? "options.on" : "options.off")
+ .color(result ? NamedTextColor.GREEN : NamedTextColor.RED),
+ "target", player.getGameProfile().getName());
+
+ sender.sendSuccess(output, false);
+ }
+ return targets.size();
+ }
+}
diff --git a/src/main/java/org/purpurmc/purpur/task/BossBarTask.java b/src/main/java/org/purpurmc/purpur/task/BossBarTask.java
new file mode 100644
Expand Down
10 changes: 5 additions & 5 deletions patches/server/0142-Dont-run-with-scissors.patch
Expand Up @@ -68,21 +68,21 @@ index 8bc029dcd80452678eead24eaca867ca9afcb5da..361bd8edcc6e6d0fbac958e3ec91d74a

if (cause != null) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index b85cc48ce8334f47c1776e1e35d81003118c2318..24cca9a7a5656f50a998f2d5e357315a6a3adffa 100644
index 1eb8d599ebb70313fda467d943888f137b1fa745..994047373148cd23758998a3d161c6dc9e2b5349 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -176,6 +176,7 @@ public class PurpurConfig {
public static String creditsCommandOutput = "<green>%s has been shown the end credits";
@@ -177,6 +177,7 @@ public class PurpurConfig {
public static String demoCommandOutput = "<green>%s has been shown the demo screen";
public static String pingCommandOutput = "<green>%s's ping is %sms";
public static String tpsbarCommandOutput = "<green>Tpsbar toggled <onoff> for <target>";
+ public static String dontRunWithScissors = "<red><italic>Don't run with scissors!";
private static void messages() {
cannotRideMob = getString("settings.messages.cannot-ride-mob", cannotRideMob);
afkBroadcastAway = getString("settings.messages.afk-broadcast-away", afkBroadcastAway);
@@ -185,11 +186,14 @@ public class PurpurConfig {
creditsCommandOutput = getString("settings.messages.credits-command-output", creditsCommandOutput);
@@ -187,11 +188,14 @@ public class PurpurConfig {
demoCommandOutput = getString("settings.messages.demo-command-output", demoCommandOutput);
pingCommandOutput = getString("settings.messages.ping-command-output", pingCommandOutput);
tpsbarCommandOutput = getString("settings.messages.tpsbar-command-output", tpsbarCommandOutput);
+ dontRunWithScissors = getString("settings.messages.dont-run-with-scissors", dontRunWithScissors);
}

Expand Down
6 changes: 3 additions & 3 deletions patches/server/0157-Allow-infinity-on-crossbows.patch
Expand Up @@ -77,18 +77,18 @@ index 11c1eb0e0bc326b28dc0cab16f67c413cc52e98c..7073985656ae5b17a7489518747dc858
return null;
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 9caca4599d9db887929b191aa85f5501891f9393..6a876e3e50d0fac0ef4370331f5f67917bb65a9a 100644
index 7a2cb685dbf10b8a0c69e393b855c001a24d1767..e1c4af38a7eac438b3304f11121c754e451c5bd6 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -277,6 +277,7 @@ public class PurpurConfig {
@@ -279,6 +279,7 @@ public class PurpurConfig {
}

public static boolean allowInfinityMending = false;
+ public static boolean allowCrossbowInfinity = false;
private static void enchantmentSettings() {
if (version < 5) {
boolean oldValue = getBoolean("settings.enchantment.allow-infinite-and-mending-together", false);
@@ -284,6 +285,7 @@ public class PurpurConfig {
@@ -286,6 +287,7 @@ public class PurpurConfig {
set("settings.enchantment.allow-infinite-and-mending-together", null);
}
allowInfinityMending = getBoolean("settings.enchantment.allow-infinity-and-mending-together", allowInfinityMending);
Expand Down
10 changes: 5 additions & 5 deletions patches/server/0163-Config-to-allow-for-unsafe-enchants.patch
Expand Up @@ -27,7 +27,7 @@ index 514cc0e8805045549eacde6c280859aa2dc4a91d..4c8eeb66a9368597330957dd3c148634
++i;
} else if (targets.size() == 1) {
diff --git a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java
index 69d996fead45bcf9fe5a29727f7f0a7a162cdabe..3f786be9c9efc069a3a1bc457f02421310941800 100644
index 437127f223b738efe3532fc6b4c5b724bad99966..35ceeda917c3c49466f97b16a32c7ce9440f46c9 100644
--- a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java
@@ -208,7 +208,7 @@ public class AnvilMenu extends ItemCombinerMenu {
Expand Down Expand Up @@ -58,7 +58,7 @@ index 69d996fead45bcf9fe5a29727f7f0a7a162cdabe..3f786be9c9efc069a3a1bc457f024213
((ServerPlayer) player).connection.send(new ClientboundContainerSetDataPacket(containerId, 0, cost.get()));
}
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
index 31ac7e1e5cc37cd9abf0ffd0bab1402f51bffed9..fd8d102ac8e84c4bfe6f4431bd1088b862cff752 100644
index ac8a90253f45a43486c1677c576231313d2d3e09..a95df369e8cdd7b7b1e31a463fdbae9017ebe2c0 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -1148,6 +1148,12 @@ public final class ItemStack {
Expand All @@ -75,18 +75,18 @@ index 31ac7e1e5cc37cd9abf0ffd0bab1402f51bffed9..fd8d102ac8e84c4bfe6f4431bd1088b8
this.getOrCreateTag().put(key, element);
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 6a876e3e50d0fac0ef4370331f5f67917bb65a9a..2a1082c106d601c3fe08d6806751561755c6e7f7 100644
index e1c4af38a7eac438b3304f11121c754e451c5bd6..1de373851215803ace0da2058781da5d68500eb9 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -278,6 +278,7 @@ public class PurpurConfig {
@@ -280,6 +280,7 @@ public class PurpurConfig {

public static boolean allowInfinityMending = false;
public static boolean allowCrossbowInfinity = false;
+ public static boolean allowUnsafeEnchants = false;
private static void enchantmentSettings() {
if (version < 5) {
boolean oldValue = getBoolean("settings.enchantment.allow-infinite-and-mending-together", false);
@@ -286,6 +287,7 @@ public class PurpurConfig {
@@ -288,6 +289,7 @@ public class PurpurConfig {
}
allowInfinityMending = getBoolean("settings.enchantment.allow-infinity-and-mending-together", allowInfinityMending);
allowCrossbowInfinity = getBoolean("settings.enchantment.allow-infinity-on-crossbow", allowCrossbowInfinity);
Expand Down
6 changes: 3 additions & 3 deletions patches/server/0168-Config-to-change-max-number-of-bees.patch
Expand Up @@ -18,18 +18,18 @@ index b05ac56823feaf062b1418c9e6dbe4268225f00f..375f25807ca0f35784653d8fbe4e5086
public BeehiveBlockEntity(BlockPos pos, BlockState state) {
super(BlockEntityType.BEEHIVE, pos, state);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 2a1082c106d601c3fe08d6806751561755c6e7f7..9137c8d55fad15dd9981513c4322f0c8ef40a897 100644
index 1de373851215803ace0da2058781da5d68500eb9..09d9080a019d142ab427163439ef5e259d04e6bb 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -243,6 +243,7 @@ public class PurpurConfig {
@@ -245,6 +245,7 @@ public class PurpurConfig {
public static boolean enderChestSixRows = false;
public static boolean enderChestPermissionRows = false;
public static boolean cryingObsidianValidForPortalFrame = false;
+ public static int beeInsideBeeHive = 3;
private static void blockSettings() {
if (version < 3) {
boolean oldValue = getBoolean("settings.barrel.packed-barrels", true);
@@ -274,6 +275,7 @@ public class PurpurConfig {
@@ -276,6 +277,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);
Expand Down
6 changes: 3 additions & 3 deletions patches/server/0171-Gamemode-extra-permissions.patch
Expand Up @@ -75,18 +75,18 @@ index 6cc517b394bafefce50d877761e5b2eee8e14c78..46ca899a7abddea108f6ff1b4ca14ca5
DefaultPermissions.registerPermission(CommandPermissions.PREFIX + "toggledownfall", "Allows the user to toggle rain on/off for a given world", PermissionDefault.OP, commands);
DefaultPermissions.registerPermission(CommandPermissions.PREFIX + "defaultgamemode", "Allows the user to change the default gamemode of the server", PermissionDefault.OP, commands);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 9137c8d55fad15dd9981513c4322f0c8ef40a897..be773b26586ffb2d54fd66af1644556765c75fd4 100644
index 09d9080a019d142ab427163439ef5e259d04e6bb..c3b00e02754f901fe2723cb536ced393ecc95e86 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -226,6 +226,7 @@ public class PurpurConfig {
@@ -228,6 +228,7 @@ public class PurpurConfig {
public static String commandTPSBarTextColorMedium = "<gradient:#ffff55:#ffaa00><text></gradient>";
public static String commandTPSBarTextColorLow = "<gradient:#ff5555:#aa0000><text></gradient>";
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()));
@@ -237,6 +238,7 @@ public class PurpurConfig {
@@ -239,6 +240,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);
Expand Down
6 changes: 3 additions & 3 deletions patches/server/0174-Configurable-broadcast-settings.patch
Expand Up @@ -17,7 +17,7 @@ index 6f5b7650d45958284f7b5c675c1e32d4b7738494..842acb66c58a1ee66c595bd56afc1f94
// 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 a50d5342c5981a7ff5b4c56beea19da7e8a1b77c..6d643998ee32de7f96b94e10fbd0b08a75628978 100644
index 97f1d557c8627c8fe201dafd457a9f31caec14e3..38a01e62ca99da9d8453b6275c5a1b22fcfa9b9e 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -910,6 +910,7 @@ public class ServerPlayer extends Player {
Expand All @@ -29,10 +29,10 @@ index a50d5342c5981a7ff5b4c56beea19da7e8a1b77c..6d643998ee32de7f96b94e10fbd0b08a
if (scoreboardteambase.getDeathMessageVisibility() == Team.Visibility.HIDE_FOR_OTHER_TEAMS) {
this.server.getPlayerList().broadcastToTeam(this, ichatbasecomponent);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index be773b26586ffb2d54fd66af1644556765c75fd4..fdc752a830c1858ad0afd66c8247dd052b37162e 100644
index c3b00e02754f901fe2723cb536ced393ecc95e86..d3a26894b75a7222c6cd8208667fbb0d41d25118 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -196,6 +196,18 @@ public class PurpurConfig {
@@ -198,6 +198,18 @@ public class PurpurConfig {
deathMsgRunWithScissors = getString("settings.messages.death-message.run-with-scissors", deathMsgRunWithScissors);
}

Expand Down
Expand Up @@ -59,18 +59,18 @@ index 35cc3bba20afd4a47160cc674415ba6a3a0ec0ec..2cba35dcc479ed9ad3e698aa2e02b4aa
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index fdc752a830c1858ad0afd66c8247dd052b37162e..898ddc12b5a06b0497add689b4f82afe804745bd 100644
index d3a26894b75a7222c6cd8208667fbb0d41d25118..48efc0d9cd8d55cb58e63115be8755af0d1d31d1 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -239,6 +239,7 @@ public class PurpurConfig {
@@ -241,6 +241,7 @@ public class PurpurConfig {
public static String commandTPSBarTextColorLow = "<gradient:#ff5555:#aa0000><text></gradient>";
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()));
@@ -251,6 +252,7 @@ public class PurpurConfig {
@@ -253,6 +254,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);
Expand Down

0 comments on commit b829f50

Please sign in to comment.