Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем MrElitePro, 26 мар 2016.

  1. Автор темы
    MrElitePro

    MrElitePro Активный участник Пользователь

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

    Тема будет обновляться по вопросам,спасибо если будете помогать:good:
     
    Последнее редактирование: 27 мар 2016
  2. Хостинг MineCraft
    <
  3. ShadowCode

    ShadowCode Активный участник Пользователь

    Баллы:
    61
    У тебя нету варината, когда игрок прописал /pass get, есть только /pass my.

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

    MrElitePro Активный участник Пользователь

    Баллы:
    46
    Имя в Minecraft:
    MrElitePro
    Я щас сделал вот так и теперь работает,но подскажите как лучше может оформить?
    Код:
    if ((args.length == 2) && (args[0].equalsIgnoreCase("get")))
        {
        p.sendMessage("Паспорт игрока отображен");
        }
        if ((args.length == 1) && (args[0].equalsIgnoreCase("get")))
        {
        p.sendMessage("Укажите ник");
        }
     
  5. slavik123123123

    slavik123123123 Старожил Пользователь

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    У меня так:

    Код:
        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;
        }
     
  6. Автор темы
    MrElitePro

    MrElitePro Активный участник Пользователь

    Баллы:
    46
    Имя в Minecraft:
    MrElitePro
    А зачем мне код от Baksovic? хе-хе я уже смотрел его и щас смотрю,но есть вопросы
     
  7. slavik123123123

    slavik123123123 Старожил Пользователь

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Ну так вникни в то что в этом коде есть.
     
  8. Автор темы
    MrElitePro

    MrElitePro Активный участник Пользователь

    Баллы:
    46
    Имя в Minecraft:
    MrElitePro
    Я вник,но щас вот смотри другая проблема игрок пишет /pass setgender выводит смс укажите boy или girl
    /pass setgender text и он записывает это ,а не возвращает чтобы ты написал boy или girl
     
  9. slavik123123123

    slavik123123123 Старожил Пользователь

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    с 29 строчки смотри.
     
  10. ShadowCode

    ShadowCode Активный участник Пользователь

    Баллы:
    61
    Лучше использовать switch...
     
  11. Автор темы
    MrElitePro

    MrElitePro Активный участник Пользователь

    Баллы:
    46
    Имя в Minecraft:
    MrElitePro
    Не это тут не уместо[DOUBLEPOST=1459072169,1459068484][/DOUBLEPOST]Что не так в коде?[DOUBLEPOST=1459075961][/DOUBLEPOST]Почему не работает /pass setgender не выводит смс,а когда напишешь /pass setgender например boy то смс ваш пол записан не выводится
    Код:
    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("Ваш пол записан в паспорт");
        }
     
  12. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    если (длина СТРОГО_РАВНА 2) то
    .... если(длина СТРОГО_РАВНА 1) то
    ....

    ты понимаешь, что одно число не может быть равно сразу 2 и 1 ?[DOUBLEPOST=1459081014,1459080688][/DOUBLEPOST]
    Код:
    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("Ваш пол записан в паспорт");
                 }
            }
        }
    }
     
  13. Автор темы
    MrElitePro

    MrElitePro Активный участник Пользователь

    Баллы:
    46
    Имя в Minecraft:
    MrElitePro
    тяжело как-то,а вот я переписал так подойдет?
    Код:
    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("Пол в вашем паспорте успешно изменен");
        }
     
  14. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Да ты сам решай, как тебе пойдёт =) Главное, чтобы глупых ошибок не совершал.
     
  15. Автор темы
    MrElitePro

    MrElitePro Активный участник Пользователь

    Баллы:
    46
    Имя в Minecraft:
    MrElitePro
    Ну я советуюсь с вами,вот спрашиваю правильно ли написал? может ошибки есть? не там указал,написал код:cool:
     
  16. _Rex_

    _Rex_ Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    itzRex
    Я видел код твоего XtimePass полностью, он такой задроченный.
     
  17. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Ну с первого взгляда правильно, просто я бы написал не так, а как написал выше. Пробуй, тестируй.
     
  18. Автор темы
    MrElitePro

    MrElitePro Активный участник Пользователь

    Баллы:
    46
    Имя в Minecraft:
    MrElitePro
    Ну ты там написал тяжелый код,мне лучше который полегче хе-хе и чтобы я понял,а и кстате помоги там в теме конфиг ниже
     
  19. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Чем же он тяжёлый? Забор if-ов куда тяжелее.
     
  20. Автор темы
    MrElitePro

    MrElitePro Активный участник Пользователь

    Баллы:
    46
    Имя в Minecraft:
    MrElitePro
    Мне так более понятнее хе-хе,я же учусь еще
     

Поделиться этой страницей