mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Upstream has released updates that appear to apply and compile correctly Paper Changes: 0514fc4e2 Add missing effects 8f5d9effd Add getMainThreadExecutor to BukkitScheduler 313b5020b Allow adding items to BlockDropItemEvent (#5093) 9a556d9da [CI-SKIP] [Auto] Rebuild Patches 72b2768ad Inline shift fields in EnumDirection (#5082) ffff53fa7 added option to disable pathfinding updates on block changes (#5123) b67081fd7 add DragonEggFormEvent (fixes #5110) (#5112) 3eefafbaf Fix javadoc build 0081ed1c4 Add javadoc step to GH Actions 01082503e Add dropLeash variable to EntityUnleashEvent (#5130) 31f9f869a [CI-SKIP] Fix YourKit links in readme, fixes #5091 8ac27aa38 [Auto] Updated Upstream (CraftBukkit) c4d9cc831 [Auto] Updated Upstream (Bukkit/CraftBukkit) d0477d326 [Auto] Updated Upstream (CraftBukkit) d9f5f7018 EntityMoveEvent (#4614)
97 lines
5.8 KiB
Diff
97 lines
5.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: BillyGalbreath <blake.galbreath@gmail.com>
|
|
Date: Mon, 30 Nov 2020 03:12:04 -0600
|
|
Subject: [PATCH] Add demo command
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/CommandDispatcher.java b/src/main/java/net/minecraft/server/CommandDispatcher.java
|
|
index d080bf58ebc9c1dc9d41fae7d515547bc3f26d54..b5cc099746e9f05ea69bc438bda22a5ac3ebc3c5 100644
|
|
--- a/src/main/java/net/minecraft/server/CommandDispatcher.java
|
|
+++ b/src/main/java/net/minecraft/server/CommandDispatcher.java
|
|
@@ -107,6 +107,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/server/PacketPlayOutGameStateChange.java b/src/main/java/net/minecraft/server/PacketPlayOutGameStateChange.java
|
|
index 08cbc787e2bf6587878bdeffa7248e5d23cdcf98..57d39ed441ec7be933f4fce48225f527db7e6a3c 100644
|
|
--- a/src/main/java/net/minecraft/server/PacketPlayOutGameStateChange.java
|
|
+++ b/src/main/java/net/minecraft/server/PacketPlayOutGameStateChange.java
|
|
@@ -11,7 +11,7 @@ public class PacketPlayOutGameStateChange implements Packet<PacketListenerPlayOu
|
|
public static final PacketPlayOutGameStateChange.a c = new PacketPlayOutGameStateChange.a(2);
|
|
public static final PacketPlayOutGameStateChange.a d = new PacketPlayOutGameStateChange.a(3);
|
|
public static final PacketPlayOutGameStateChange.a e = new PacketPlayOutGameStateChange.a(4);
|
|
- public static final PacketPlayOutGameStateChange.a f = new PacketPlayOutGameStateChange.a(5);
|
|
+ public static final PacketPlayOutGameStateChange.a f = new PacketPlayOutGameStateChange.a(5); public static PacketPlayOutGameStateChange.a demo() { return f; } // Purpur - OBFHELPER
|
|
public static final PacketPlayOutGameStateChange.a g = new PacketPlayOutGameStateChange.a(6);
|
|
public static final PacketPlayOutGameStateChange.a h = new PacketPlayOutGameStateChange.a(7);
|
|
public static final PacketPlayOutGameStateChange.a i = new PacketPlayOutGameStateChange.a(8);
|
|
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
|
index 74c76b7f3e0992a90acec338a96077bf4f7afd2a..9294bfab12ef88690e359ff90551c5c615cdd3dd 100644
|
|
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
|
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
|
@@ -136,6 +136,7 @@ public class PurpurConfig {
|
|
public static String afkBroadcastBack = "§e§o%s is no longer AFK";
|
|
public static String afkTabListPrefix = "[AFK] ";
|
|
public static String afkTabListSuffix = "";
|
|
+ public static String demoCommandOutput = "§a%s has been shown the demo screen";
|
|
public static String pingCommandOutput = "§a%s's ping is %sms";
|
|
public static String cannotRideMob = "§cYou cannot mount that mob";
|
|
private static void messages() {
|
|
@@ -143,6 +144,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);
|
|
cannotRideMob = getString("settings.messages.cannot-ride-mob", cannotRideMob);
|
|
}
|
|
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..7640ce18b8c853aad96397ed2f752a401392d5b3
|
|
--- /dev/null
|
|
+++ b/src/main/java/net/pl3x/purpur/command/DemoCommand.java
|
|
@@ -0,0 +1,39 @@
|
|
+package net.pl3x.purpur.command;
|
|
+
|
|
+import java.util.Collection;
|
|
+import java.util.Collections;
|
|
+import net.minecraft.server.ArgumentEntity;
|
|
+import net.minecraft.server.CommandDispatcher;
|
|
+import net.minecraft.server.CommandListenerWrapper;
|
|
+import net.minecraft.server.EntityPlayer;
|
|
+import net.minecraft.server.PacketPlayOutGameStateChange;
|
|
+import net.pl3x.purpur.PurpurConfig;
|
|
+import org.bukkit.craftbukkit.util.CraftChatMessage;
|
|
+
|
|
+public class DemoCommand {
|
|
+ public static void register(com.mojang.brigadier.CommandDispatcher<CommandListenerWrapper> 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<EntityPlayer> 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(), player.ping);
|
|
+ sender.sendMessage(CraftChatMessage.fromStringOrNull(output), false);
|
|
+ }
|
|
+ return targets.size();
|
|
+ }
|
|
+}
|