Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class GNickCommand implements CommandExecutor, TabCompleter {
- private final GradientNick plugin;
- public GNickCommand(GradientNick plugin) {
- this.plugin = plugin;
- }
- @Override
- public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
- if (args.length == 4 && args[0].equalsIgnoreCase("set")) {
- //Проверка аргументов
- String nickname = args[1];
- if (!(args[2].startsWith("#") || args[3].startsWith("#"))) {
- Player player = Bukkit.getPlayer(nickname);
- if (player != null) {
- FileConfiguration config = plugin.getConfig();
- String startColor = args[2];
- String endColor = args[3];
- String firstColor = config.getString(startColor);
- String secondColor = config.getString(endColor);
- Component mmdisplayName = MiniMessage.miniMessage().deserialize("<gradient:" + firstColor + ":" + secondColor + ">" + nickname + "</gradient>");
- final String displayName = LegacyComponentSerializer.builder().useUnusualXRepeatedCharacterHexFormat().hexColors().build().serialize(mmdisplayName);
- player.setDisplayName(displayName);
- player.setPlayerListName(displayName);
- return true;
- } else {
- sender.sendMessage(ChatColor.RED + "Игрок не в сети");
- }
- }
- }
- if(args[0].equalsIgnoreCase("reload")){
- plugin.savePluginConfig();
- Player p = (Player) sender;
- p.sendMessage(ChatColor.AQUA + "" + ChatColor.BOLD + " [GradientNickname] " + ChatColor.WHITE + " Конфиг перезагружен.");
- return true;
- }
- return false;
- }
- @Override
- public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
- List<String> completions = new ArrayList<>();
- FileConfiguration config = plugin.getConfig(); // получаем объект конфига
- if (args.length == 1) {
- // Автодополнение для args[0]
- completions.add("set");
- completions.add("reload");
- } else if (args.length == 2) {
- // Автодополнение для args[1]
- for (Player player : Bukkit.getOnlinePlayers()) {
- completions.add(player.getName());
- }
- } else if (args.length == 3 || args.length == 4) {
- // Автодополнение для args[2] и args[3]
- for (String key : config.getKeys(false)) { // перебираем все ключи в конфиге
- completions.add(key); // добавляем первую часть ключа (до ":") в список
- }
- }
- return completions;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement