62 lines
3 KiB
Java
62 lines
3 KiB
Java
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<String> 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<>();
|
||
}
|
||
}
|