- Add D7 Command (Admin interface) - Add remove func to status - Add Color table to Status custom - Add wordlist
This commit is contained in:
		
							
								
								
									
										15
									
								
								.vscode/tasks.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								.vscode/tasks.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | { | ||||||
|  |     "version": "2.0.0", | ||||||
|  |     "tasks": [ | ||||||
|  |         { | ||||||
|  |             "label": "build", | ||||||
|  |             "command": "mvn", | ||||||
|  |             "args": [ | ||||||
|  |                 "clean", | ||||||
|  |                 "package" | ||||||
|  |             ], | ||||||
|  |             "type": "shell", | ||||||
|  |             "problemMatcher": [] | ||||||
|  |         } | ||||||
|  |     ] | ||||||
|  | } | ||||||
							
								
								
									
										114
									
								
								src/main/java/de/npid7/serverlite/Commands/D7Command.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								src/main/java/de/npid7/serverlite/Commands/D7Command.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,114 @@ | |||||||
|  | package de.npid7.serverlite.Commands; | ||||||
|  |  | ||||||
|  | import de.npid7.serverlite.Configs.PluginConfig; | ||||||
|  | import de.npid7.serverlite.D7ServerLite; | ||||||
|  | import org.bukkit.Bukkit; | ||||||
|  | import org.bukkit.ChatColor; | ||||||
|  | import org.bukkit.command.Command; | ||||||
|  | import org.bukkit.command.CommandExecutor; | ||||||
|  | import org.bukkit.command.CommandSender; | ||||||
|  | import org.bukkit.entity.Player; | ||||||
|  |  | ||||||
|  | public class D7Command implements CommandExecutor { | ||||||
|  |   private void printUsage(CommandSender sender) { | ||||||
|  |     sender.sendMessage("Verwendung: "); | ||||||
|  |     sender.sendMessage("/d7 config reload -> Läd Config nau"); | ||||||
|  |     sender.sendMessage("/d7 config save -> Speichert die Config"); | ||||||
|  |     sender.sendMessage("/d7 wordlist add <word>"); | ||||||
|  |     sender.sendMessage("/d7 wordlist remove <word>"); | ||||||
|  |     sender.sendMessage("/d7 status <playername> set <status> <color> (color ist optional)"); | ||||||
|  |     sender.sendMessage("/d7 status <playername> remove -> Entfernt einem Spieler den Status"); | ||||||
|  |   } | ||||||
|  |   @Override | ||||||
|  |   public boolean onCommand(CommandSender sender, Command command, String s, String[] strings) { | ||||||
|  |     if (!sender.hasPermission("d7.d7")) { | ||||||
|  |       sender.sendMessage(ChatColor.RED.toString() + "This is an admin command!"); | ||||||
|  |       return false; | ||||||
|  |     } | ||||||
|  |     if (strings.length < 2 || strings.length > 5) { | ||||||
|  |       printUsage(sender); | ||||||
|  |       return false; | ||||||
|  |     } | ||||||
|  |     if (strings[0].equals("config")) { | ||||||
|  |       if (strings.length != 2) { | ||||||
|  |         printUsage(sender); | ||||||
|  |         return false; | ||||||
|  |       } | ||||||
|  |       if (strings[1].equals("reload")) { | ||||||
|  |         D7ServerLite.getInst().getPluginConfig().Load(); | ||||||
|  |         sender.sendMessage(ChatColor.GREEN.toString() + "Config neu geladen!"); | ||||||
|  |         return false; | ||||||
|  |       } else if (strings[1].equals("save")) { | ||||||
|  |         D7ServerLite.getInst().getPluginConfig().Save(); | ||||||
|  |         sender.sendMessage(ChatColor.GREEN.toString() + "Config gespeichert!"); | ||||||
|  |         return false; | ||||||
|  |       } else { | ||||||
|  |         sender.sendMessage( | ||||||
|  |             ChatColor.RED.toString() + strings[1] + " ist kein subcommand von config!"); | ||||||
|  |         return false; | ||||||
|  |       } | ||||||
|  |     } else if (strings[0].equals("wordlist")) { | ||||||
|  |       if (strings.length != 3) { | ||||||
|  |         printUsage(sender); | ||||||
|  |         return false; | ||||||
|  |       } | ||||||
|  |       PluginConfig pcfg = D7ServerLite.getInst().getPluginConfig(); | ||||||
|  |       if (strings[1].equals("add")) { | ||||||
|  |         if (!pcfg.getWordBlacklist().add(strings[2])) { | ||||||
|  |           sender.sendMessage(ChatColor.RED.toString() + "Wort ist bereits in der Liste!"); | ||||||
|  |         } else { | ||||||
|  |           sender.sendMessage(ChatColor.GREEN.toString() + "Wort hinzugefügt!"); | ||||||
|  |         } | ||||||
|  |         pcfg.Save(); | ||||||
|  |         return false; | ||||||
|  |       } else if (strings[1].equals("remove")) { | ||||||
|  |         if (!pcfg.getWordBlacklist().remove(strings[2])) { | ||||||
|  |           sender.sendMessage(ChatColor.RED.toString() + "Wort nicht gefunden!"); | ||||||
|  |         } else { | ||||||
|  |           sender.sendMessage(ChatColor.GREEN.toString() + "Wort entfernt!"); | ||||||
|  |         } | ||||||
|  |         pcfg.Save(); | ||||||
|  |         return false; | ||||||
|  |       } | ||||||
|  |     } else if (strings[0].equals("status")) { | ||||||
|  |       if (strings.length < 3 || strings.length > 5) { | ||||||
|  |         printUsage(sender); | ||||||
|  |         return false; | ||||||
|  |       } | ||||||
|  |       if (strings[2].equals("remove")) { | ||||||
|  |         Player pl = Bukkit.getPlayer(strings[1]); | ||||||
|  |         if (pl == null) { | ||||||
|  |           sender.sendMessage(ChatColor.RED.toString() + "Player existiert nicht!"); | ||||||
|  |           return false; | ||||||
|  |         } | ||||||
|  |         D7ServerLite.getInst().getPlayerConfig().setStatus(pl.getUniqueId(), ""); | ||||||
|  |         D7ServerLite.getInst().getPlayerConfig().Save(); | ||||||
|  |         sender.sendMessage(ChatColor.GREEN.toString() + "Status entfernt von " + pl.getName()); | ||||||
|  |         return false; | ||||||
|  |       } else if (strings[2].equals("set")) { | ||||||
|  |         Player pl = Bukkit.getPlayer(strings[1]); | ||||||
|  |         if (pl == null) { | ||||||
|  |           sender.sendMessage(ChatColor.RED.toString() + "Player existiert nicht!"); | ||||||
|  |           return false; | ||||||
|  |         } | ||||||
|  |         String status = strings[3]; | ||||||
|  |         String color = ChatColor.WHITE.toString(); | ||||||
|  |         if (strings.length == 5) { | ||||||
|  |           for (ChatColor c : ChatColor.values()) { | ||||||
|  |             if (c.isColor() && c.name().equals(strings[4])) { | ||||||
|  |               color = c.toString(); | ||||||
|  |             } | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |         if (D7ServerLite.getInst().getPluginConfig().getWordBlacklist().find(status) != null) { | ||||||
|  |           sender.sendMessage(ChatColor.RED.toString() + "Dieser Status ist nicht erlaubt!"); | ||||||
|  |           return false; | ||||||
|  |         } | ||||||
|  |         D7ServerLite.getInst().getPlayerConfig().setStatus(pl.getUniqueId(), color + status); | ||||||
|  |         D7ServerLite.getInst().getPlayerConfig().Save(); | ||||||
|  |         sender.sendMessage(ChatColor.GREEN.toString() + "Status gesetzt für " + pl.getName()); | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |     return false; | ||||||
|  |   } | ||||||
|  | } | ||||||
| @@ -11,11 +11,12 @@ import org.bukkit.entity.Player; | |||||||
| public class StatusCommand implements CommandExecutor { | public class StatusCommand implements CommandExecutor { | ||||||
|   @Override |   @Override | ||||||
|   public boolean onCommand(CommandSender sender, Command command, String s, String[] strings) { |   public boolean onCommand(CommandSender sender, Command command, String s, String[] strings) { | ||||||
|     if (strings.length != 1 && strings.length != 2) { |     if (strings.length < 1 || strings.length > 3) { | ||||||
|       sender.sendMessage("Verwendung: /status Status"); |       sender.sendMessage("Verwendung: /status <status/custom/remove>"); | ||||||
|       return false; |       return false; | ||||||
|     } |     } | ||||||
|     String str = ""; |     String str = ""; | ||||||
|  |     String color = ChatColor.WHITE.toString(); // Default to White | ||||||
|     boolean is_def = false; |     boolean is_def = false; | ||||||
|     for (String st : D7ServerLite.getInst().getPluginConfig().getDefaultStatusList()) { |     for (String st : D7ServerLite.getInst().getPluginConfig().getDefaultStatusList()) { | ||||||
|       if (strings[0].equals(st)) { |       if (strings[0].equals(st)) { | ||||||
| @@ -26,8 +27,8 @@ public class StatusCommand implements CommandExecutor { | |||||||
|     if (is_def) { |     if (is_def) { | ||||||
|       // Leave empty |       // Leave empty | ||||||
|     } else if (strings[0].equals("custom")) { |     } else if (strings[0].equals("custom")) { | ||||||
|       if (strings.length != 2) { |       if (strings.length < 2) { | ||||||
|         sender.sendMessage("Verwendung: /status custom Status"); |         sender.sendMessage("Verwendung: /status custom <status> <color>"); | ||||||
|         return false; |         return false; | ||||||
|       } |       } | ||||||
|       if (strings[1].length() > 10) { |       if (strings[1].length() > 10) { | ||||||
| @@ -35,17 +36,29 @@ public class StatusCommand implements CommandExecutor { | |||||||
|         return false; |         return false; | ||||||
|       } |       } | ||||||
|       str = strings[1]; |       str = strings[1]; | ||||||
|  |       if (strings.length == 3) { | ||||||
|  |         for (ChatColor c : ChatColor.values()) { | ||||||
|  |           if (c.isColor() && c.name().equals(strings[2])) { | ||||||
|  |             color = c.toString(); | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     } else if (strings[0].equals("remove")) { | ||||||
|  |       PlayerConfig pcfg = D7ServerLite.getInst().getPlayerConfig(); | ||||||
|  |       pcfg.setStatus(((Player) sender).getUniqueId(), ""); | ||||||
|  |       pcfg.Save(); | ||||||
|  |       return false; | ||||||
|     } else { |     } else { | ||||||
|       sender.sendMessage( |       sender.sendMessage( | ||||||
|           ChatColor.RED.toString() + "Was auch immer du versuchst... lass es einfach!"); |           ChatColor.RED.toString() + "Was auch immer du versuchst... lass es einfach!"); | ||||||
|       return false; |       return false; | ||||||
|     } |     } | ||||||
|     if (D7ServerLite.getInst().getPluginConfig().getWordBlacklist().find(str) != null) { |     if (D7ServerLite.getInst().getPluginConfig().getWordBlacklist().find(str) != null) { | ||||||
|       sender.sendMessage(ChatColor.RED.toString() + "Diser Status ist nicht erlaubt!"); |       sender.sendMessage(ChatColor.RED.toString() + "Dieser Status ist nicht erlaubt!"); | ||||||
|       return false; |       return false; | ||||||
|     } |     } | ||||||
|     PlayerConfig pcfg = D7ServerLite.getInst().getPlayerConfig(); |     PlayerConfig pcfg = D7ServerLite.getInst().getPlayerConfig(); | ||||||
|     pcfg.setStatus(((Player) sender).getUniqueId(), str); |     pcfg.setStatus(((Player) sender).getUniqueId(), color + str); | ||||||
|     pcfg.Save(); |     pcfg.Save(); | ||||||
|     return false; |     return false; | ||||||
|   } |   } | ||||||
|   | |||||||
| @@ -104,6 +104,8 @@ public class PluginConfig { | |||||||
|       wordBlacklist.add("MOD"); |       wordBlacklist.add("MOD"); | ||||||
|       wordBlacklist.add("TEAM"); |       wordBlacklist.add("TEAM"); | ||||||
|       wordBlacklist.add("STAFF"); |       wordBlacklist.add("STAFF"); | ||||||
|  |       wordBlacklist.add("OWNER"); | ||||||
|  |       wordBlacklist.add("MODERATOR"); | ||||||
|       defaultStatus = ""; |       defaultStatus = ""; | ||||||
|       defaultStatusList.add("Online"); |       defaultStatusList.add("Online"); | ||||||
|       defaultStatusList.add("AFK"); |       defaultStatusList.add("AFK"); | ||||||
|   | |||||||
| @@ -1,10 +1,12 @@ | |||||||
| package de.npid7.serverlite; | package de.npid7.serverlite; | ||||||
|  |  | ||||||
|  | import de.npid7.serverlite.Commands.D7Command; | ||||||
| import de.npid7.serverlite.Commands.StatusCommand; | import de.npid7.serverlite.Commands.StatusCommand; | ||||||
| import de.npid7.serverlite.Configs.PlayerConfig; | import de.npid7.serverlite.Configs.PlayerConfig; | ||||||
| import de.npid7.serverlite.Configs.PluginConfig; | import de.npid7.serverlite.Configs.PluginConfig; | ||||||
| import de.npid7.serverlite.Helpers.Spielzeit; | import de.npid7.serverlite.Helpers.Spielzeit; | ||||||
| import de.npid7.serverlite.Listeners.JoinListener; | import de.npid7.serverlite.Listeners.JoinListener; | ||||||
|  | import de.npid7.serverlite.TabCompleters.D7Completer; | ||||||
| import de.npid7.serverlite.TabCompleters.StatusCompleter; | import de.npid7.serverlite.TabCompleters.StatusCompleter; | ||||||
| import de.npid7.serverlite.Tasks.TablistTask; | import de.npid7.serverlite.Tasks.TablistTask; | ||||||
| import java.util.logging.Logger; | import java.util.logging.Logger; | ||||||
| @@ -37,6 +39,8 @@ public class D7ServerLite extends JavaPlugin { | |||||||
|     tablistUpdater = new TablistTask(); |     tablistUpdater = new TablistTask(); | ||||||
|     getCommand("status").setExecutor(new StatusCommand()); |     getCommand("status").setExecutor(new StatusCommand()); | ||||||
|     getCommand("status").setTabCompleter(new StatusCompleter()); |     getCommand("status").setTabCompleter(new StatusCompleter()); | ||||||
|  |     getCommand("d7").setExecutor(new D7Command()); | ||||||
|  |     getCommand("d7").setTabCompleter(new D7Completer()); | ||||||
|  |  | ||||||
|     Bukkit.getPluginManager().registerEvents(new JoinListener(), this); |     Bukkit.getPluginManager().registerEvents(new JoinListener(), this); | ||||||
|   } |   } | ||||||
|   | |||||||
| @@ -0,0 +1,62 @@ | |||||||
|  | package de.npid7.serverlite.TabCompleters; | ||||||
|  |  | ||||||
|  | import de.npid7.serverlite.D7ServerLite; | ||||||
|  | import java.util.ArrayList; | ||||||
|  | import java.util.List; | ||||||
|  | import org.bukkit.Bukkit; | ||||||
|  | import org.bukkit.ChatColor; | ||||||
|  | import org.bukkit.command.Command; | ||||||
|  | import org.bukkit.command.CommandSender; | ||||||
|  | import org.bukkit.command.TabCompleter; | ||||||
|  | import org.bukkit.entity.Player; | ||||||
|  |  | ||||||
|  | public class D7Completer implements TabCompleter { | ||||||
|  |   @Override | ||||||
|  |   public List<String> onTabComplete( | ||||||
|  |       CommandSender sender, Command command, String alias, String[] args) { | ||||||
|  |     List<String> completions = new ArrayList<>(); | ||||||
|  |     if (command.getName().equals("d7")) { | ||||||
|  |       if (!sender.hasPermission("d7.d7")) { | ||||||
|  |         return completions; | ||||||
|  |       } | ||||||
|  |       if (args.length == 1) { | ||||||
|  |         completions.add("config"); | ||||||
|  |         completions.add("status"); | ||||||
|  |         completions.add("wordlist"); | ||||||
|  |       } else if (args.length == 2) { | ||||||
|  |         if (args[0].equals("config")) { | ||||||
|  |           completions.add("reload"); | ||||||
|  |           completions.add("save"); | ||||||
|  |         } else if (args[0].equals("status")) { | ||||||
|  |           for (Player pl : Bukkit.getOnlinePlayers()) { | ||||||
|  |             completions.add(pl.getName()); | ||||||
|  |           } | ||||||
|  |         } else if (args[0].equals("wordlist")) { | ||||||
|  |           completions.add("add"); | ||||||
|  |           completions.add("remove"); | ||||||
|  |         } | ||||||
|  |       } else if (args.length == 3) { | ||||||
|  |         if (args[0].equals("status")) { | ||||||
|  |           completions.add("remove"); | ||||||
|  |           completions.add("set"); | ||||||
|  |         } else if (args[0].equals("wordlist")) { | ||||||
|  |           if (args[1].equals("remove")) { | ||||||
|  |             for (String s : D7ServerLite.getInst().getPluginConfig().getWordBlacklist().getList()) { | ||||||
|  |               completions.add(s); | ||||||
|  |             } | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       } else if (args.length == 5) { | ||||||
|  |         if (args[2].equals("set")) { | ||||||
|  |           for (ChatColor c : ChatColor.values()) { | ||||||
|  |             if (c.isColor()) { | ||||||
|  |               completions.add(c.name()); | ||||||
|  |             } | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     return completions; | ||||||
|  |   } | ||||||
|  | } | ||||||
| @@ -3,6 +3,7 @@ package de.npid7.serverlite.TabCompleters; | |||||||
| import de.npid7.serverlite.D7ServerLite; | import de.npid7.serverlite.D7ServerLite; | ||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
| import java.util.List; | import java.util.List; | ||||||
|  | import org.bukkit.ChatColor; | ||||||
| import org.bukkit.command.Command; | import org.bukkit.command.Command; | ||||||
| import org.bukkit.command.CommandSender; | import org.bukkit.command.CommandSender; | ||||||
| import org.bukkit.command.TabCompleter; | import org.bukkit.command.TabCompleter; | ||||||
| @@ -18,6 +19,15 @@ public class StatusCompleter implements TabCompleter { | |||||||
|           completions.add(s); |           completions.add(s); | ||||||
|         } |         } | ||||||
|         completions.add("custom"); |         completions.add("custom"); | ||||||
|  |         completions.add("remove"); | ||||||
|  |       } else if (args.length == 3) { | ||||||
|  |         if (args[0].equals("custom")) { | ||||||
|  |           for (ChatColor c : ChatColor.values()) { | ||||||
|  |             if (c.isColor()) { | ||||||
|  |               completions.add(c.name()); | ||||||
|  |             } | ||||||
|  |           } | ||||||
|  |         } | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|     return completions; |     return completions; | ||||||
|   | |||||||
| @@ -6,3 +6,6 @@ api-version: 1.17 | |||||||
| commands: | commands: | ||||||
|   status: |   status: | ||||||
|     description: Play Status Command |     description: Play Status Command | ||||||
|  |   d7: | ||||||
|  |     description: Admin Command Interface | ||||||
|  |     permission: d7.d7 | ||||||
		Reference in New Issue
	
	Block a user