package com.loki.lochat.commands.admin; import com.loki.lochat.LoChat; import com.loki.lochat.utils.ChatFormatter; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.command.TabCompleter; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.List; public class LoChatCommand implements CommandExecutor, TabCompleter { private final LoChat plugin; public LoChatCommand(LoChat plugin) { this.plugin = plugin; } @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { if (!sender.hasPermission("lochat.admin")) { sender.sendMessage(ChatFormatter.parse(plugin.getMessageConfig().getNoPermission())); return true; } if (args.length == 0) { sender.sendMessage(ChatFormatter.parse("ẲE9LoChat &#B798A8v" + plugin.getPluginMeta().getVersion())); sender.sendMessage(ChatFormatter.parse("⚖C9/lochat reload &#B798A8— перезагрузить конфиги")); sender.sendMessage(ChatFormatter.parse("⚖C9/lochat commands [reload] &#B798A8— кастомные команды")); return true; } switch (args[0].toLowerCase()) { case "reload" -> { plugin.reload(); sender.sendMessage(ChatFormatter.parse("⚖C9Конфигурация ẲE9перезагружена!")); } case "commands" -> { if (args.length > 1 && args[1].equalsIgnoreCase("reload")) { plugin.getCustomCommandManager().reload(); sender.sendMessage(ChatFormatter.parse("⚖C9Кастомные команды ẲE9перезагружены!")); } else { var cmds = plugin.getCustomCommandManager().getCommands(); sender.sendMessage(ChatFormatter.parse("&#B798A8Кастомные команды ⚖C9(" + cmds.size() + "⚖C9):")); cmds.values().forEach(c -> sender.sendMessage(ChatFormatter.parse("ẲE9/" + c.name() + " &#B798A8(" + c.type() + ")"))); } } default -> sender.sendMessage(ChatFormatter.parse("&#CF6679Неизвестная команда")); } return true; } @Override public @Nullable List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, @NotNull String[] args) { if (!sender.hasPermission("lochat.admin")) return new ArrayList<>(); if (args.length == 1) return List.of("reload", "commands").stream().filter(s -> s.startsWith(args[0].toLowerCase())).toList(); if (args.length == 2 && args[0].equalsIgnoreCase("commands")) return List.of("reload"); return new ArrayList<>(); } }