From 682b586320e566ffb154ffb304ab5d13ccef22c1 Mon Sep 17 00:00:00 2001 From: EmrageGHC Date: Sun, 23 Feb 2025 15:46:21 +0100 Subject: [PATCH] add RestartCommand --- .../blazesmp/command/RestartCommand.java | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/main/java/me/freezy/plugins/papermc/blazesmp/command/RestartCommand.java diff --git a/src/main/java/me/freezy/plugins/papermc/blazesmp/command/RestartCommand.java b/src/main/java/me/freezy/plugins/papermc/blazesmp/command/RestartCommand.java new file mode 100644 index 0000000..3786f97 --- /dev/null +++ b/src/main/java/me/freezy/plugins/papermc/blazesmp/command/RestartCommand.java @@ -0,0 +1,47 @@ +package me.freezy.plugins.papermc.blazesmp.command; + +import me.freezy.plugins.papermc.blazesmp.BlazeSMP; +import me.freezy.plugins.papermc.blazesmp.command.util.SimpleCommand; +import me.freezy.plugins.papermc.blazesmp.module.manager.L4M4; +import net.kyori.adventure.text.minimessage.MiniMessage; +import org.bukkit.Bukkit; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +public class RestartCommand extends SimpleCommand { + public RestartCommand() { + super("restart"); + } + + @Override + public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + if (!sender.isOp()) { + sender.sendMessage(MiniMessage.miniMessage().deserialize(L4M4.get("error.no_permission"))); + return true; + } + + if (args.length == 0) { + sender.sendMessage(MiniMessage.miniMessage().deserialize(L4M4.get("error.no_reason"))); + return true; + } + + String reason = String.join(" ", args); + String kickMessage = MiniMessage.miniMessage().deserialize(reason).toString(); + + Bukkit.getOnlinePlayers().forEach(player -> player.kickPlayer(kickMessage)); + + Bukkit.getScheduler().runTaskLater(BlazeSMP.getInstance(), Bukkit::shutdown, 60L); // 3 seconds later (60 ticks) + + return true; + } + + @Override + public @Nullable List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + return List.of(); + } +} \ No newline at end of file