Помогите Плагин не работает как надо

Статус
Закрыто для дальнейших ответов.

Conorfish

Активный участник
Пользователь
Баллы
76
Привет. Суть плагина кастомная команда "/me". Но при вводе "/me [текст]", пишет использование команды. Прошу ткните меня в ошибку которое мне не дал Eclipse. Не обращайте внимание что без CommandExecutor и сложная система с if(config.getString)

Главный класс(единственный):
Код:
package me.qbert.CustomMe;

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;

import net.md_5.bungee.api.ChatColor;

public class MainClass extends JavaPlugin implements Listener{
    
    FileConfiguration config = getConfig();
    
    @Override
    public void onEnable() {
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
        if (config.getString("CustomMe.maxsymbols") == null) {
            config.set("CustomMe.maxsymbols", "60");
            saveConfig();
        }
        if (config.getString("CustomMe.textcolor") == null) {
            config.set("CustomMe.textcolor", "white");
            saveConfig();
        }
        if (config.getString("CustomMe.distance") == null) {
            config.set("CustomMe.distance", "5");
            saveConfig();
        }
    }
    

    public void onDisable() {
        
    }
    public boolean onCommand (CommandSender sender, Command cmd, String label, String[] args) {       
        if(cmd.getName().equalsIgnoreCase("me")) {
            double mal = config.getDouble("CustomMe.maxsymbols");
            if (args.length == 0) {
                sender.sendMessage(ChatColor.GREEN + "Использование: " + ChatColor.RED + "/me [Действие]");
                return true;
            }
            if (args.length >= mal) {
                sender.sendMessage(ChatColor.GREEN + "Использование: " + ChatColor.RED + "/me [Действие]");
                return true;
            }
            if (config.getString("CustomMe.textcolor") == null) {
                config.set("CustomMe.textcolor", "white");
                saveConfig();
            }
            if (config.getString("CustomMe.distance") == null) {
                config.set("CustomMe.distance", "10");
                saveConfig();
            }
            
            if (!(sender instanceof Player)) {
                sender.sendMessage(ChatColor.RED + "Неа, можно только игрокам!!");
                return true;
            }
            
            if (config.getString("CustomMe.textcolor").equals("white")) {
                String argums = String.join(" ", args);
                Player p = (Player) sender;
                double dist = config.getDouble("CustomMe.distance");
                Location ploc = p.getLocation();
                for (Player target : Bukkit.getOnlinePlayers()) {
                    if (target.getLocation().distance(ploc) <= dist) {
                    target.sendMessage(ChatColor.DARK_GREEN + "(Действие) " + ChatColor.AQUA + p.getDisplayName() + ChatColor.RESET + " " + ChatColor.WHITE + argums);
                    }
                }
            }
            if (config.getString("CustomMe.textcolor").equals("red")) {
                String argums = String.join(" ", args);
                Player p = (Player) sender;
                double dist = config.getDouble("CustomMe.distance");
                Location ploc = p.getLocation();
                for (Player target : Bukkit.getOnlinePlayers()) {
                    if (target.getLocation().distance(ploc) <= dist) {
                    target.sendMessage(ChatColor.DARK_GREEN + "(Действие) " + ChatColor.AQUA + p.getDisplayName() + ChatColor.RESET + " " + ChatColor.RED + argums);
                    }
                }
            }
            if (config.getString("CustomMe.textcolor").equals("blue")) {
                String argums = String.join(" ", args);
                Player p = (Player) sender;
                double dist = config.getDouble("CustomMe.distance");
                Location ploc = p.getLocation();
                for (Player target : Bukkit.getOnlinePlayers()) {
                    if (target.getLocation().distance(ploc) <= dist) {
                    target.sendMessage(ChatColor.DARK_GREEN + "(Действие) " + ChatColor.AQUA + p.getDisplayName() + ChatColor.RESET + " " + ChatColor.BLUE + argums);
                    }
                }
            }
            if (config.getString("CustomMe.textcolor").equals("black")) {
                String argums = String.join(" ", args);
                Player p = (Player) sender;
                double dist = config.getDouble("CustomMe.distance");
                Location ploc = p.getLocation();
                for (Player target : Bukkit.getOnlinePlayers()) {
                    if (target.getLocation().distance(ploc) <= dist) {
                    target.sendMessage(ChatColor.DARK_GREEN + "(Действие) " + ChatColor.AQUA + p.getDisplayName() + ChatColor.RESET + " " + ChatColor.BLACK + argums);
                    }
                }
            }
            if (config.getString("CustomMe.textcolor").equals("aqua")) {
                String argums = String.join(" ", args);
                Player p = (Player) sender;
                double dist = config.getDouble("CustomMe.distance");
                Location ploc = p.getLocation();
                for (Player target : Bukkit.getOnlinePlayers()) {
                    if (target.getLocation().distance(ploc) <= dist) {
                    target.sendMessage(ChatColor.DARK_GREEN + "(Действие) " + ChatColor.AQUA + p.getDisplayName() + ChatColor.RESET + " " + ChatColor.AQUA + argums);
                    }
                }
            }
            if (config.getString("CustomMe.textcolor").equals("dark_aqua")) {
                String argums = String.join(" ", args);
                Player p = (Player) sender;
                double dist = config.getDouble("CustomMe.distance");
                Location ploc = p.getLocation();
                for (Player target : Bukkit.getOnlinePlayers()) {
                    if (target.getLocation().distance(ploc) <= dist) {
                    target.sendMessage(ChatColor.DARK_GREEN + "(Действие) " + ChatColor.AQUA + p.getDisplayName() + ChatColor.RESET + " " + ChatColor.DARK_AQUA + argums);
                    }
                }
            }
            if (config.getString("CustomMe.textcolor").equals("dark_blue")) {
                String argums = String.join(" ", args);
                Player p = (Player) sender;
                double dist = config.getDouble("CustomMe.distance");
                Location ploc = p.getLocation();
                for (Player target : Bukkit.getOnlinePlayers()) {
                    if (target.getLocation().distance(ploc) <= dist) {
                    target.sendMessage(ChatColor.DARK_GREEN + "(Действие) " + ChatColor.AQUA + p.getDisplayName() + ChatColor.RESET + " " + ChatColor.DARK_BLUE + argums);
                    }
                }
            }
            if (config.getString("CustomMe.textcolor").equals("gray")) {
                String argums = String.join(" ", args);
                Player p = (Player) sender;
                double dist = config.getDouble("CustomMe.distance");
                Location ploc = p.getLocation();
                for (Player target : Bukkit.getOnlinePlayers()) {
                    if (target.getLocation().distance(ploc) <= dist) {
                    target.sendMessage(ChatColor.DARK_GREEN + "(Действие) " + ChatColor.AQUA + p.getDisplayName() + ChatColor.RESET + " " + ChatColor.GRAY + argums);
                    }
                }
            }
            if (config.getString("CustomMe.textcolor").equals("dark_gray")) {
                String argums = String.join(" ", args);
                Player p = (Player) sender;
                double dist = config.getDouble("CustomMe.distance");
                Location ploc = p.getLocation();
                for (Player target : Bukkit.getOnlinePlayers()) {
                    if (target.getLocation().distance(ploc) <= dist) {
                    target.sendMessage(ChatColor.DARK_GREEN + "(Действие) " + ChatColor.AQUA + p.getDisplayName() + ChatColor.RESET + " " + ChatColor.DARK_GRAY + argums);
                    }
                }
            }
            if (config.getString("CustomMe.textcolor").equals("green")) {
                String argums = String.join(" ", args);
                Player p = (Player) sender;
                double dist = config.getDouble("CustomMe.distance");
                Location ploc = p.getLocation();
                for (Player target : Bukkit.getOnlinePlayers()) {
                    if (target.getLocation().distance(ploc) <= dist) {
                    target.sendMessage(ChatColor.DARK_GREEN + "(Действие) " + ChatColor.AQUA + p.getDisplayName() + ChatColor.RESET + " " + ChatColor.GREEN + argums);
                    }
                }
            }
            if (config.getString("CustomMe.textcolor").equals("dark_green")) {
                String argums = String.join(" ", args);
                Player p = (Player) sender;
                double dist = config.getDouble("CustomMe.distance");
                Location ploc = p.getLocation();
                for (Player target : Bukkit.getOnlinePlayers()) {
                    if (target.getLocation().distance(ploc) <= dist) {
                    target.sendMessage(ChatColor.DARK_GREEN + "(Действие) " + ChatColor.AQUA + p.getDisplayName() + ChatColor.RESET + " " + ChatColor.DARK_GREEN + argums);
                    }
                }
            }
            if (config.getString("CustomMe.textcolor").equals("dark_red")) {
                String argums = String.join(" ", args);
                Player p = (Player) sender;
                double dist = config.getDouble("CustomMe.distance");
                Location ploc = p.getLocation();
                for (Player target : Bukkit.getOnlinePlayers()) {
                    if (target.getLocation().distance(ploc) <= dist) {
                    target.sendMessage(ChatColor.DARK_GREEN + "(Действие) " + ChatColor.AQUA + p.getDisplayName() + ChatColor.RESET + " " + ChatColor.DARK_RED + argums);
                    }
                }
            }
            if (config.getString("CustomMe.textcolor").equals("yellow")) {
                String argums = String.join(" ", args);
                Player p = (Player) sender;
                double dist = config.getDouble("CustomMe.distance");
                Location ploc = p.getLocation();
                for (Player target : Bukkit.getOnlinePlayers()) {
                    if (target.getLocation().distance(ploc) <= dist) {
                    target.sendMessage(ChatColor.DARK_GREEN + "(Действие) " + ChatColor.AQUA + p.getDisplayName() + ChatColor.RESET + " " + ChatColor.YELLOW + argums);
                    }
                }}
            }
            if (config.getString("CustomMe.textcolor").equals("light_purple")) {
                String argums = String.join(" ", args);
                Player p = (Player) sender;
                double dist = config.getDouble("CustomMe.distance");
                Location ploc = p.getLocation();
                for (Player target : Bukkit.getOnlinePlayers()) {
                    if (target.getLocation().distance(ploc) <= dist) {
                    target.sendMessage(ChatColor.DARK_GREEN + "(Действие) " + ChatColor.AQUA + p.getDisplayName() + ChatColor.RESET + " " + ChatColor.LIGHT_PURPLE + argums);
                    }
                }
            }
            if (config.getString("CustomMe.textcolor").equals("dark_purple")) {
                String argums = String.join(" ", args);
                Player p = (Player) sender;
                double dist = config.getDouble("CustomMe.distance");
                Location ploc = p.getLocation();
                for (Player target : Bukkit.getOnlinePlayers()) {
                    if (target.getLocation().distance(ploc) <= dist) {
                    target.sendMessage(ChatColor.DARK_GREEN + "(Действие) " + ChatColor.AQUA + p.getDisplayName() + ChatColor.RESET + " " + ChatColor.DARK_PURPLE + argums);
                    }
                }
            }
            if (config.getString("CustomMe.textcolor").equals("gold")) {
                String argums = String.join(" ", args);
                Player p = (Player) sender;
                double dist = config.getDouble("CustomMe.distance");
                Location ploc = p.getLocation();
                for (Player target : Bukkit.getOnlinePlayers()) {
                    if (target.getLocation().distance(ploc) <= dist) {
                    target.sendMessage(ChatColor.DARK_GREEN + "(Действие) " + ChatColor.AQUA + p.getDisplayName() + ChatColor.RESET + " " + ChatColor.GOLD + argums);
                    }
                }
                
            }
            
        return false;
    }
}
Спасибо за помощь.
 
onCommand -> return false считается неудачное выполнение команды, тогда он выведет usage из plugin.yml для команды.
Используй return true чтобы оповестить CommandDispatcher, что выполнение было успешное, в случае, когда оно действительно таковым является.

Как раз то:
PHP:
           if (args.length == 0) {
               return true; -> return false;
           }

args.length >= mal - ты берешь количество аргументов, которое пришло в Executor команды, а не конечную длину строки при join.
Посмотри в сторону ChatColor.translateAlternateColorCodes('&', message), ибо это ваще треш у тебя.
Куча дубликат кода, обобщи и сделай общий метод.
 
Последнее редактирование:
onCommand -> return false считается неудачное выполнение команды, тогда он выведет usage из plugin.yml для команды.
Используй return true чтобы оповестить CommandDispatcher, что выполнение было успешное, в случае, когда оно действительно таковым является.

Как раз то:
PHP:
           if (args.length == 0) {
               return true; -> return false;
           }

args.length >= mal - ты берешь количество аргументов, которое пришло в Executor команды, а не конечную длину строки при join.
Посмотри в сторону ChatColor.translateAlternateColorCodes('&', message), ибо это ваще треш у тебя.
Куча дубликат кода, обобщи и сделай общий метод.
Про треш я знаю.
ChatColor.translateAlternateColorCodes('&', message) - Что значит эта строка? Загуглив не нашел
Я знаю что я не самый умный, ок?
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх