remove bukkit commands
This commit is contained in:
@ -1,17 +1,21 @@
|
|||||||
package expvintl.tools;
|
package expvintl.tools;
|
||||||
|
|
||||||
import expvintl.tools.listeners.LoginHandler;
|
import expvintl.tools.listeners.LoginHandler;
|
||||||
|
import expvintl.tools.utils.CommandHelper;
|
||||||
import org.bukkit.*;
|
import org.bukkit.*;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.command.SimpleCommandMap;
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.lang.reflect.Field;
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
import java.security.MessageDigest;
|
import java.security.MessageDigest;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
@ -66,10 +70,41 @@ public final class Tools extends JavaPlugin {
|
|||||||
logger.warning(e.getMessage());
|
logger.warning(e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void DisableBukkitCommands(){
|
||||||
|
try {
|
||||||
|
Field commands=SimpleCommandMap.class.getDeclaredField("knownCommands");
|
||||||
|
commands.setAccessible(true);
|
||||||
|
Map<String, Command> map= (Map<String, Command>) commands.get(CommandHelper.getCommandMap());
|
||||||
|
Iterator<String> it=map.keySet().iterator();
|
||||||
|
//ȡ<><C8A1>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
while(it.hasNext()) {
|
||||||
|
String cmd= it.next();
|
||||||
|
//<2F>Ƴ<EFBFBD>bukkit<69><74><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><D5BC>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
if (cmd.startsWith("bukkit:")) {
|
||||||
|
it.remove();
|
||||||
|
}
|
||||||
|
//<2F>Ƴ<EFBFBD>ֱ<EFBFBD><D6B1>ִ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
switch (cmd) {
|
||||||
|
case "ver":
|
||||||
|
case "version":
|
||||||
|
case "pl":
|
||||||
|
case "plugins":
|
||||||
|
case "about":
|
||||||
|
it.remove();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
commands.setAccessible(false);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
// Plugin startup logic
|
|
||||||
logger.info("expvintl:Tools <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
logger.info("expvintl:Tools <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||||
|
DisableBukkitCommands();
|
||||||
initConfigs();
|
initConfigs();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
22
src/main/java/expvintl/tools/utils/CommandHelper.java
Normal file
22
src/main/java/expvintl/tools/utils/CommandHelper.java
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
package expvintl.tools.utils;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.command.CommandMap;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
|
||||||
|
public class CommandHelper {
|
||||||
|
private static CommandMap commandMap=null;
|
||||||
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>Map<61><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
public static CommandMap getCommandMap(){
|
||||||
|
try {
|
||||||
|
Field map=Bukkit.getServer().getClass().getDeclaredField("commandMap");
|
||||||
|
map.setAccessible(true);
|
||||||
|
if(commandMap==null) commandMap=(CommandMap)map.get(Bukkit.getServer());
|
||||||
|
map.setAccessible(false);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Bukkit.getLogger().warning("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡCommandMap:\n"+e.getMessage());
|
||||||
|
}
|
||||||
|
return commandMap;
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user