From 027b86d5f2684dd1f059ad8ffe2f0b2b6d20aaa2 Mon Sep 17 00:00:00 2001 From: JeremyStarTM Date: Tue, 30 Apr 2024 22:30:55 +0200 Subject: [PATCH] Add /clearchat command --- .../pickshadow/plugin/base/Translation.java | 3 ++ .../plugin/commands/ClearChatCommand.java | 30 +++++++++++++++++++ src/main/resources/plugin.yml | 8 +++++ 3 files changed, 41 insertions(+) create mode 100644 src/main/java/de/pickshadow/plugin/commands/ClearChatCommand.java diff --git a/src/main/java/de/pickshadow/plugin/base/Translation.java b/src/main/java/de/pickshadow/plugin/base/Translation.java index 166ab0e..984d803 100644 --- a/src/main/java/de/pickshadow/plugin/base/Translation.java +++ b/src/main/java/de/pickshadow/plugin/base/Translation.java @@ -109,4 +109,7 @@ public class Translation { public static String MSG_NO_LAST_MESSAGED_PLAYER = "Du scheinst keinen Spieler in der letzten Zeit angeschrieben zu haben."; public static String MSG_TO = "%reciever% « %sender% » %message%"; public static String MSG_FROM = "%reciever% » %sender% » %message%"; + + // Command: /clearchat + public static String CLEARCHAT = "Der Chat wurde von %sender% geleert."; } diff --git a/src/main/java/de/pickshadow/plugin/commands/ClearChatCommand.java b/src/main/java/de/pickshadow/plugin/commands/ClearChatCommand.java new file mode 100644 index 0000000..3189c28 --- /dev/null +++ b/src/main/java/de/pickshadow/plugin/commands/ClearChatCommand.java @@ -0,0 +1,30 @@ +package de.pickshadow.plugin.commands; + +import de.pickshadow.plugin.base.Translation; +import de.pickshadow.plugin.classes.CommandBase; +import de.pickshadow.plugin.utils.Miscellaneous; +import de.pickshadow.plugin.utils.TabCompletionHelper; +import net.kyori.adventure.text.minimessage.MiniMessage; +import org.bukkit.Bukkit; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabCompleter; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; + +public class ClearChatCommand extends CommandBase { + public ClearChatCommand() { + commandNames = new String[]{ "clearchat" }; + } + + @Override + public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + for (Player player : Bukkit.getOnlinePlayers()) player.sendMessage(MiniMessage.miniMessage().deserialize("\n".repeat(10000)).append(Miscellaneous.format(Translation.CLEARCHAT.replace("%sender%", sender.getName())))); + return true; + } + + @Override + public TabCompleter getCompletion() { + return TabCompletionHelper.createEmptyCompletion(); + } +} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index bd43424..1ceb053 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -62,6 +62,11 @@ commands: usage: /reply aliases: [ "r" ] permission: pickshadow.commands.reply + clearchat: + description: Löscht den Chatverlauf für den gesamten Server. + usage: /clearchat + aliases: [ "cc", "chatclear" ] + permission: pickshadow.commands.clearchat permissions: pickshadow.*: @@ -81,6 +86,7 @@ permissions: - pickshadow.commands.broadcast - pickshadow.commands.msg - pickshadow.commands.reply + - pickshadow.commands.clearchat pickshadow.commands.discord: default: not op pickshadow.commands.home: @@ -97,3 +103,5 @@ permissions: default: not op pickshadow.commands.reply: default: not op + pickshadow.commands.clearchat: + default: op