mirror of
https://github.com/LeavesMC/Leaves.git
synced 2025-12-19 14:59:32 +00:00
47 lines
2.5 KiB
Diff
47 lines
2.5 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: violetc <58360096+s-yh-china@users.noreply.github.com>
|
|
Date: Fri, 2 Feb 2024 13:18:22 +0800
|
|
Subject: [PATCH] Force minecraft command
|
|
|
|
|
|
diff --git a/src/main/java/io/papermc/paper/command/brigadier/bukkit/BukkitBrigForwardingMap.java b/src/main/java/io/papermc/paper/command/brigadier/bukkit/BukkitBrigForwardingMap.java
|
|
index d08ca38b4f04f7834de4ab64e5f794e8e26ec746..744db73d6cb89ca0256835cb2e98d427fe0f629a 100644
|
|
--- a/src/main/java/io/papermc/paper/command/brigadier/bukkit/BukkitBrigForwardingMap.java
|
|
+++ b/src/main/java/io/papermc/paper/command/brigadier/bukkit/BukkitBrigForwardingMap.java
|
|
@@ -96,6 +96,12 @@ public class BukkitBrigForwardingMap extends HashMap<String, Command> {
|
|
@Override
|
|
public Command put(String key, Command value) {
|
|
Command old = this.get(key);
|
|
+ if (org.leavesmc.leaves.LeavesConfig.mics.forceMinecraftCommand &&
|
|
+ getDispatcher().getRoot().getChild(key) != null &&
|
|
+ getDispatcher().getRoot().getChild("minecraft:" + key) != null
|
|
+ ) {
|
|
+ return old;
|
|
+ }
|
|
this.getDispatcher().getRoot().removeCommand(key); // Override previous command
|
|
if (value instanceof VanillaCommandWrapper wrapper && wrapper.getName().equals(key)) {
|
|
// Don't break when some plugin tries to remove and add back a plugin command registered with modern API...
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/command/CraftCommandMap.java b/src/main/java/org/bukkit/craftbukkit/command/CraftCommandMap.java
|
|
index 90ed57a7fbcd0625b64084347460e9864216f610..e3598f7a0d183255ba17bc0f08cee284a0898cef 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/command/CraftCommandMap.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/command/CraftCommandMap.java
|
|
@@ -14,4 +14,18 @@ public class CraftCommandMap extends SimpleCommandMap {
|
|
public Map<String, Command> getKnownCommands() {
|
|
return this.knownCommands;
|
|
}
|
|
+
|
|
+ // Leaves start - force minecraft command
|
|
+ @Override
|
|
+ public Command getCommand(String name) {
|
|
+ Command target = super.getCommand(name);
|
|
+ if (org.leavesmc.leaves.LeavesConfig.mics.forceMinecraftCommand && !(target instanceof org.bukkit.craftbukkit.command.VanillaCommandWrapper)) {
|
|
+ Command minecraftTarget = super.getCommand("minecraft:" + name);
|
|
+ if (minecraftTarget != null) {
|
|
+ return minecraftTarget;
|
|
+ }
|
|
+ }
|
|
+ return target;
|
|
+ }
|
|
+ // Leaves end - force minecraft command
|
|
}
|