T2C-CommandGUI/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/cmdManagement/CmdExecuter_GUI.java

169 lines
6.7 KiB
Java

package de.jatitv.commandguiv2.Spigot.cmdManagement;
import de.jatitv.commandguiv2.Spigot.system.Debug;
import de.jatitv.commandguiv2.Spigot.system.config.DefaultGUICreate;
import de.jatitv.commandguiv2.Spigot.system.config.languages.SelectMessages;
import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Util;
import net.t2code.lib.Bungee.Lib.commands.BTab;
import net.t2code.lib.Spigot.Lib.commands.Tab;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class CmdExecuter_GUI implements CommandExecutor, TabCompleter {
private static String prefix = Util.Prefix;
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (args.length == 0) {
if (!(sender instanceof Player)) {
sender.sendMessage(SelectMessages.OnlyForPlayer);
return false;
}
Player player = (Player) sender;
Commands.gui(player);
} else {
if (args[0].equals("admin")) {
if (args.length == 1) {
Help.sendHelp(sender, prefix);
return false;
}
switch (args[1].toLowerCase()) {
case "info":
if (sender.hasPermission("commandgui.command.info")) {
Commands.info(sender);
} else sender.sendMessage(SelectMessages.NoPermissionForCommand
.replace("[cmd]", "/commandgui admin").replace("[perm]", "commandgui.command.info"));
break;
case "reload":
case "rl":
if (sender.hasPermission("commandgui.admin")) {
Commands.reload(sender);
} else sender.sendMessage(SelectMessages.NoPermissionForCommand
.replace("[cmd]", "/commandgui admin").replace("[perm]", "commandgui.admin"));
break;
case "createdefaultgui":
if (sender.hasPermission("commandgui.admin")) {
DefaultGUICreate.configCreate();
sender.sendMessage(SelectMessages.DefaultGUIcreate.replace("[directory]", Main.getPath() + "/GUIs/default.yml"));
} else sender.sendMessage(SelectMessages.NoPermissionForCommand
.replace("[cmd]", "/commandgui admin").replace("[perm]", "commandgui.admin"));
break;
case "debug":
if (sender.hasPermission("commandgui.admin")) {
Debug.onDebugFile(sender);
/*if (args.length == 2) {
if (args[1].equals("config")) {
Debug.debugmsg();
}
if (args[1].equals("2")) {
send.debug("2");
}
break;
} else Debug.debugmsg();
*/
} else sender.sendMessage(SelectMessages.NoPermissionForCommand.replace("[cmd]", "/commandgui admin").replace("[perm]", "commandgui.admin"));
break;
case "give":
if (args.length == 3) {
if (sender.hasPermission("commandgui.giveitem.other")) {
Player target = Bukkit.getPlayer(args[2]);
Commands.give(sender, target);
} else sender.sendMessage(SelectMessages.NoPermissionForCommand.replace("[cmd]", "/commandgui give")
.replace("[perm]", "commandgui.command.give"));
} else Help.sendHelp(sender, prefix);
break;
case "help":
default:
Help.sendHelp(sender, prefix);
break;
}
} else {
if (sender instanceof Player) {
Player player = (Player) sender;
Commands.gui(player, args[0]);
return false;
}
Help.sendHelp(sender, prefix);
}
}
return false;
}
//TabCompleter
public static HashMap<String, String> arg1 = new HashMap<String, String>();
private static HashMap<String, String> arg2 = new HashMap<String, String>() {{
put("reload", "commandgui.admin");
put("rl", "commandgui.admin");
put("createdefaultgui", "commandgui.admin");
put("give", "commandgui.giveitem.other");
put("info", "commandgui.command.info");
}};
@Override
public List<String> onTabComplete(CommandSender sender, Command cmd, String s, String[] args) {
List<String> list = new ArrayList<>();
Tab.tab(list, sender, 0, args, arg1);
Tab.tab(list, sender, 0, "admin", 1, args, arg2);
Tab.tab(list, sender, 1, "give", 2, args, "commandgui.giveitem.other", true);
// if (args.length == 1) {
// for (String command : arg1.keySet()) {
// Boolean passend = true;
// for (int i = 0; i < args[0].length(); i++) {
// if (args[0].length() >= command.length()) {
// passend = false;
// } else {
// if (args[0].charAt(i) != command.charAt(i)) {
// passend = false;
// }
// }
// }
// if (hasPermission(sender, arg1.get(command)) && passend) {
// list.add(command);
// }
// }
// }
// if (args.length > 1) {
// if (args[0].toLowerCase().equals("admin")){
// return Tab.tab(sender,1,args,arg2);
// }
//
// }
return list;
}
public static boolean hasPermission(CommandSender sender, String permission) {
if (permission.equals("")) {
return true;
}
String[] Permissions = permission.split(";");
for (String perm : Permissions) {
if (sender.hasPermission(perm)) {
return true;
}
}
return false;
}
}