- Add D7 Command (Admin interface) - Add remove func to status - Add Color table to Status custom - Add wordlist
This commit is contained in:
parent
682f361ea2
commit
befce5d7d0
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;
|
||||||
|
@ -5,4 +5,7 @@ api-version: 1.17
|
|||||||
|
|
||||||
commands:
|
commands:
|
||||||
status:
|
status:
|
||||||
description: Play Status Command
|
description: Play Status Command
|
||||||
|
d7:
|
||||||
|
description: Admin Command Interface
|
||||||
|
permission: d7.d7
|
Loading…
Reference in New Issue
Block a user