ServerLite/src/main/java/de/npid7/serverlite/Commands/D7Command.java
tobid7 befce5d7d0
All checks were successful
Build Plugin / build-test (push) Successful in 43s
# Changes:
- Add D7 Command (Admin interface)
- Add remove func to status
- Add Color table to Status custom
- Add wordlist
2024-11-24 12:03:15 +01:00

115 lines
4.4 KiB
Java

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;
}
}