Помогите [Команды] onCommand

MrElitePro

Активный участник
Пользователь
Баллы
46
Имя в Minecraft
MrElitePro
Что не так? поправьте пожалуйста

Тема будет обновляться по вопросам,спасибо если будете помогать:good:
 
Последнее редактирование:
У тебя нету варината, когда игрок прописал /pass get, есть только /pass my.

Ну и вот это исправь, оно не совсем подходит (в плане, что оно сработает когда напишешь /pass my).
Код:
if (args.length == 1) {
    p.sendMessage("Укажите ник");
}
 
У тебя нету варината, когда игрок прописал /pass get, есть только /pass my.

Ну и вот это исправь, оно не совсем подходит (в плане, что оно сработает когда напишешь /pass my).
Код:
if (args.length == 1) {
    p.sendMessage("Укажите ник");
}
Я щас сделал вот так и теперь работает,но подскажите как лучше может оформить?
JavaScript:
if ((args.length == 2) && (args[0].equalsIgnoreCase("get")))
    {
    p.sendMessage("Паспорт игрока отображен");
    }
    if ((args.length == 1) && (args[0].equalsIgnoreCase("get")))
    {
    p.sendMessage("Укажите ник");
    }
 
У меня так:

Java:
    public boolean onCommand(CommandSender sender, Command cmd, String label,String[] args) {
        if (sender instanceof Player) {
            Player player = (Player) sender;
            if (cmd.getLabel().equalsIgnoreCase("pass")) {
                if (args.length == 0) {
                    PluginManager.openGUI(player);
                } else {
                    PlayerList pl;
                    if (args.length == 1) {
                        if (PluginManager.checkPlayer(player, args[0]).booleanValue()) {
                            PluginManager.openGUI(player, CommandManager.plugin.getServer().getPlayer(args[0]));
                        }
                        return true;
                    } else if (args.length == 2 && args[0].equalsIgnoreCase("age")) {
                        pl = PlayerList.getByName(player.getName());
                        pl.setAge(args[1]);
                        player.sendMessage(ConfigManager.ageInstalled);
                        return true;
                    } else if (args.length == 2 && args[0].equalsIgnoreCase("skype")) {
                        pl = PlayerList.getByName(player.getName());
                        pl.setSkype(args[1]);
                        player.sendMessage(ConfigManager.skypeInstalled);
                        return true;
                    } else if (args.length == 2 && args[0].equalsIgnoreCase("vk")) {
                        pl = PlayerList.getByName(player.getName());
                        pl.setVk("&avk.com/" + args[1]);
                        player.sendMessage(ConfigManager.VkInstalled);
                        return true;
                    } else if (args.length == 2 && args[0].equalsIgnoreCase("sex")) {
                        pl = PlayerList.getByName(player.getName());
                        if (args[1].equalsIgnoreCase("М")) {
                            pl.setSex(ConfigManager.Male);
                            player.sendMessage(ConfigManager.sexInstalled);
                        } else if (args[1].equalsIgnoreCase("Ж")) {
                            pl.setSex(ConfigManager.Female);
                            player.sendMessage(ConfigManager.sexInstalled);
                        } else {
                            player.sendMessage("§6Введи §3М §6или §3Ж");
                        }
                        return true;
                    }
                }
            }
        }

        return false;
    }
 
У меня так:

Java:
    public boolean onCommand(CommandSender sender, Command cmd, String label,String[] args) {
        if (sender instanceof Player) {
            Player player = (Player) sender;
            if (cmd.getLabel().equalsIgnoreCase("pass")) {
                if (args.length == 0) {
                    PluginManager.openGUI(player);
                } else {
                    PlayerList pl;
                    if (args.length == 1) {
                        if (PluginManager.checkPlayer(player, args[0]).booleanValue()) {
                            PluginManager.openGUI(player, CommandManager.plugin.getServer().getPlayer(args[0]));
                        }
                        return true;
                    } else if (args.length == 2 && args[0].equalsIgnoreCase("age")) {
                        pl = PlayerList.getByName(player.getName());
                        pl.setAge(args[1]);
                        player.sendMessage(ConfigManager.ageInstalled);
                        return true;
                    } else if (args.length == 2 && args[0].equalsIgnoreCase("skype")) {
                        pl = PlayerList.getByName(player.getName());
                        pl.setSkype(args[1]);
                        player.sendMessage(ConfigManager.skypeInstalled);
                        return true;
                    } else if (args.length == 2 && args[0].equalsIgnoreCase("vk")) {
                        pl = PlayerList.getByName(player.getName());
                        pl.setVk("&avk.com/" + args[1]);
                        player.sendMessage(ConfigManager.VkInstalled);
                        return true;
                    } else if (args.length == 2 && args[0].equalsIgnoreCase("sex")) {
                        pl = PlayerList.getByName(player.getName());
                        if (args[1].equalsIgnoreCase("М")) {
                            pl.setSex(ConfigManager.Male);
                            player.sendMessage(ConfigManager.sexInstalled);
                        } else if (args[1].equalsIgnoreCase("Ж")) {
                            pl.setSex(ConfigManager.Female);
                            player.sendMessage(ConfigManager.sexInstalled);
                        } else {
                            player.sendMessage("§6Введи §3М §6или §3Ж");
                        }
                        return true;
                    }
                }
            }
        }

        return false;
    }
А зачем мне код от Baksovic? хе-хе я уже смотрел его и щас смотрю,но есть вопросы
 
Ну так вникни в то что в этом коде есть.
Я вник,но щас вот смотри другая проблема игрок пишет /pass setgender выводит смс укажите boy или girl
/pass setgender text и он записывает это ,а не возвращает чтобы ты написал boy или girl
 
Я вник,но щас вот смотри другая проблема игрок пишет /pass setgender выводит смс укажите boy или girl
/pass setgender text и он записывает это ,а не возвращает чтобы ты написал boy или girl
с 29 строчки смотри.
 
Лучше использовать switch...
Не это тут не уместо
Что не так в коде?
Почему не работает /pass setgender не выводит смс,а когда напишешь /pass setgender например boy то смс ваш пол записан не выводится
JavaScript:
if ((args.length == 2) && (args[0].equalsIgnoreCase("setgender")))
    {
    if ((args.length == 1) && (args[0].equalsIgnoreCase("setgender")))
    {
    p.sendMessage("укажи boy или girl");
    return true;
    }
    if ((!args[1].equalsIgnoreCase("boy")) && (!args[1].equalsIgnoreCase("girl")))
    {
    p.sendMessage("Не правильно указан пол. (boy или girl)");
    return true;
    }
    if (args[1].equalsIgnoreCase("boy"))
    {
    p.sendMessage("ваш пол теперь муж");
    return true;
    }
    if (args[1].equalsIgnoreCase("girl"))
    {
    p.sendMessage("ваш пол теперь жен");
    return true;
    }
    p.sendMessage("Ваш пол записан в паспорт");
    }
 
если (длина СТРОГО_РАВНА 2) то
.... если(длина СТРОГО_РАВНА 1) то
....

ты понимаешь, что одно число не может быть равно сразу 2 и 1 ?
Java:
boolean s(String [] args, Player p)
{
    if(args.length >= 1)
    {
        if(args[0].equalsIgnoreCase("setgender"))
        {
            if(args.length < 2)
            {
                p.sendMessage("укажи boy или girl");
                // FALSE?
                return true;
            } else {
                switch(args[1].toLowerCase())
                {
                    case "boy":
                        p.sendMessage("ваш пол теперь муж");
                        // TO DO HERE
                        break;
                    case "girl":
                        p.sendMessage("ваш пол теперь жен");
                        // TO DO HERE
                        break;
                    default:
                        p.sendMessage("укажи boy или girl");
                        // FALSE?
                        return true;
                }
                p.sendMessage("Ваш пол записан в паспорт");
             }
        }
    }
}
 
если (длина СТРОГО_РАВНА 2) то
.... если(длина СТРОГО_РАВНА 1) то
....
ты понимаешь, что одно число не может быть равно сразу 2 и 1 ?
тяжело как-то,а вот я переписал так подойдет?
JavaScript:
if ((args.length == 2) && (args[0].equalsIgnoreCase("setgender")))
    {
    if ((!args[1].equalsIgnoreCase("boy")) && (!args[1].equalsIgnoreCase("girl")))
    {
    p.sendMessage("Не правильно указан пол. (boy или girl)");
    return true;
    }
    if (args[1].equalsIgnoreCase("boy"))
    {
    p.sendMessage("ваш пол теперь муж");
    }
    if (args[1].equalsIgnoreCase("girl"))
    {
    p.sendMessage("ваш пол теперь жен");
    }
    p.sendMessage("Пол в вашем паспорте успешно изменен");
    }
 
Да ты сам решай, как тебе пойдёт =) Главное, чтобы глупых ошибок не совершал.
 
Да ты сам решай, как тебе пойдёт =) Главное, чтобы глупых ошибок не совершал.
Ну я советуюсь с вами,вот спрашиваю правильно ли написал? может ошибки есть? не там указал,написал код:cool:
 
У меня так:

Java:
    public boolean onCommand(CommandSender sender, Command cmd, String label,String[] args) {
        if (sender instanceof Player) {
            Player player = (Player) sender;
            if (cmd.getLabel().equalsIgnoreCase("pass")) {
                if (args.length == 0) {
                    PluginManager.openGUI(player);
                } else {
                    PlayerList pl;
                    if (args.length == 1) {
                        if (PluginManager.checkPlayer(player, args[0]).booleanValue()) {
                            PluginManager.openGUI(player, CommandManager.plugin.getServer().getPlayer(args[0]));
                        }
                        return true;
                    } else if (args.length == 2 && args[0].equalsIgnoreCase("age")) {
                        pl = PlayerList.getByName(player.getName());
                        pl.setAge(args[1]);
                        player.sendMessage(ConfigManager.ageInstalled);
                        return true;
                    } else if (args.length == 2 && args[0].equalsIgnoreCase("skype")) {
                        pl = PlayerList.getByName(player.getName());
                        pl.setSkype(args[1]);
                        player.sendMessage(ConfigManager.skypeInstalled);
                        return true;
                    } else if (args.length == 2 && args[0].equalsIgnoreCase("vk")) {
                        pl = PlayerList.getByName(player.getName());
                        pl.setVk("&avk.com/" + args[1]);
                        player.sendMessage(ConfigManager.VkInstalled);
                        return true;
                    } else if (args.length == 2 && args[0].equalsIgnoreCase("sex")) {
                        pl = PlayerList.getByName(player.getName());
                        if (args[1].equalsIgnoreCase("М")) {
                            pl.setSex(ConfigManager.Male);
                            player.sendMessage(ConfigManager.sexInstalled);
                        } else if (args[1].equalsIgnoreCase("Ж")) {
                            pl.setSex(ConfigManager.Female);
                            player.sendMessage(ConfigManager.sexInstalled);
                        } else {
                            player.sendMessage("§6Введи §3М §6или §3Ж");
                        }
                        return true;
                    }
                }
            }
        }

        return false;
    }
Я видел код твоего XtimePass полностью, он такой задроченный.
 
Ну я советуюсь с вами,вот спрашиваю правильно ли написал? может ошибки есть? не там указал,написал код:cool:
Ну с первого взгляда правильно, просто я бы написал не так, а как написал выше. Пробуй, тестируй.
 
Ну с первого взгляда правильно, просто я бы написал не так, а как написал выше. Пробуй, тестируй.
Ну ты там написал тяжелый код,мне лучше который полегче хе-хе и чтобы я понял,а и кстате помоги там в теме конфиг ниже
 
Чем же он тяжёлый? Забор if-ов куда тяжелее.
 
Мне так более понятнее хе-хе,я же учусь еще
 
Назад
Верх