Fixed a bug where you could not reload the plugin (/t2c-alias reload) when using a server below 1.13
91 lines
3.9 KiB
Java
91 lines
3.9 KiB
Java
package net.t2code.alias.Spigot.system;
|
|
|
|
import net.t2code.alias.Spigot.Main;
|
|
import net.t2code.alias.Spigot.cmdManagement.RegisterCommands;
|
|
import net.t2code.alias.Util;
|
|
import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
|
|
import net.t2code.t2codelib.SPIGOT.api.minecraftVersion.T2CmcVersion;
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.command.Command;
|
|
import org.bukkit.command.CommandMap;
|
|
import org.bukkit.command.SimpleCommandMap;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.plugin.SimplePluginManager;
|
|
|
|
import java.lang.reflect.Field;
|
|
import java.util.Map;
|
|
import java.util.Objects;
|
|
|
|
public class AliasRegister {
|
|
public static void onRegister() {
|
|
try {
|
|
final Field bukkitCommandMap = Bukkit.getServer().getClass().getDeclaredField("commandMap");
|
|
bukkitCommandMap.setAccessible(true);
|
|
CommandMap commandMap = (CommandMap) bukkitCommandMap.get(Bukkit.getServer());
|
|
// onUnRegister(bukkitCommandMap);
|
|
for (String alias : Main.allAliases) {
|
|
register(alias, commandMap);
|
|
// wrap(alias, commandMap);
|
|
}
|
|
|
|
|
|
if (!(T2CmcVersion.isMc1_8() || T2CmcVersion.isMc1_9() || T2CmcVersion.isMc1_10() || T2CmcVersion.isMc1_11() || T2CmcVersion.isMc1_12())) {
|
|
Main.getPlugin().getBukkitCommandWrap().sync();
|
|
if (Bukkit.getOnlinePlayers().size() >= 1)
|
|
for (Player player : Bukkit.getOnlinePlayers()) player.updateCommands();
|
|
}
|
|
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
//public static void onUnRegister(Field bukkitCommandMap) throws IllegalAccessException {
|
|
//
|
|
// // if (Main.allAliases != null && !Main.allAliases.isEmpty()) {
|
|
// // if (!(Main.getPlugin().getBukkitCommandWrap() instanceof BukkitCommandWrap_Useless)) {
|
|
// // for (String alias : Main.allAliases) {
|
|
// // T2Csend.debugmsg(Main.getPlugin(),"uload: " + alias);
|
|
// // Main.getPlugin().
|
|
// // Main.getPlugin().getBukkitCommandWrap().unwrap(alias);
|
|
// // }
|
|
// // Main.getPlugin().getBukkitCommandWrap().sync();
|
|
// // if (Bukkit.getOnlinePlayers().size() >= 1)
|
|
// // for (Player player : Bukkit.getOnlinePlayers()) player.updateCommands();
|
|
// // }
|
|
// // }
|
|
// // commandMap.clearCommands();
|
|
//
|
|
//
|
|
// for (Map.Entry<String, Boolean> entry : Main.loadAliasHashMap.entrySet()) {
|
|
// ((SimpleCommandMap) bukkitCommandMap.get(simplePluginManager)).getCommand(entry.getKey()).unregister(bukkitCommandMap.get(Bukkit.getServer()));
|
|
//
|
|
//
|
|
// if (entry.getValue())
|
|
// Main.getPlugin().getBukkitCommandWrap().unwrap(entry.getKey());
|
|
// }
|
|
//
|
|
// Main.getPlugin().getBukkitCommandWrap().sync();
|
|
// if (Bukkit.getOnlinePlayers().size() >= 1)
|
|
// for (Player player : Bukkit.getOnlinePlayers()) player.updateCommands();
|
|
// Main.loadAliasHashMap.clear();
|
|
//
|
|
//}
|
|
|
|
private static void register(String alias, CommandMap commandMap) {
|
|
if (Main.aliasHashMap.get(alias) != null) {
|
|
if (alias.equals(" ")) return;
|
|
if (Main.aliasHashMap.get(alias).aliasEnable) {
|
|
commandMap.register(alias, new RegisterCommands(alias));
|
|
T2Csend.console(Util.getPrefix() + " §aAlias §e" + alias + " §aregister");
|
|
Main.loadAliasHashMap.put(alias, true);
|
|
} else Main.loadAliasHashMap.put(alias, false);
|
|
} else T2Csend.warning(Main.getPlugin(), " §4AliasHashmap is null! - " + alias);
|
|
}
|
|
|
|
private static void wrap(String alias, CommandMap commandMap) {
|
|
Command cmd = commandMap.getCommand(alias);
|
|
Main.getPlugin().getBukkitCommandWrap().wrap(cmd, alias);
|
|
}
|
|
}
|