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

Помогите Команды плагина

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

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

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Что я делаю не правильно?
    Код:
    name: RPGItems
    main: Weapon.Main
    description: rpg items plugin
    version: 0.5
    commands:
      itgive:
        description: Описание команды
        permission: RPGItems.itgive
        usage: /<command> <item>
    Команды не срабатывают.

    Код:
    public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
            if(cmd.getName().equalsIgnoreCase("itgive")){ // If the player typed /basic then do the following...
                if (sender instanceof Player) {
                    Player PSender = (Player) sender;
                    ItemStack item = new ItemStack(Material.AIR);
                    ItemMeta meta = item.getItemMeta();
                    if (commandLabel.equals("WShield")){
                        item.setType(Material.GOLD_SWORD);
                        meta.setDisplayName(ChatColor.WHITE + "Деревянный щит");
                        meta.getLore().add("Shield");
                    }
                    item.setItemMeta(meta);
                    PSender.getInventory().addItem(item);
                }
                return true;
            } //If this has happened the function will break and return true. if this hasn't happened the a value of false will be returned.
            return false;
        }
     
  2. Хостинг MineCraft
    <
  3. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    plugin.yml кажется неадекватно реагирует на русские символы.
     
  4. makssof

    makssof Старожил Девелопер Пользователь

    Баллы:
    103
    Skype:
    makssofez
    Насчёт русских символов - нет, нормально он на них реагирует.
    Конечно навряд ли, но всё же может это из за того, что ты не зарегал пермишенс в plugin.yml
    Я про
    Код:
    ################################
    permissions:
      RPGItems.itgive:
        default: true
     
    Последнее редактирование: 13 апр 2014
  5. kris13

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

    Баллы:
    78
    Ни когда не объявлял в yml пермишен, ровно как и не приписывал к команде, конечно это вынуждает написать один if в программе, но на мой взгляд вариант вполне себе
     
    Den_Abr нравится это.
  6. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    commandLabel это не аргумент к команде, а её алиас.
    Чтобы сработала команда /itgive WShield надо в условии проверки поменять на args[0].equals("WShield");
    Ну и конечно не забывать про то, что массив может быть пустой
     
    ПриветОтЛайки нравится это.
  7. konfyciu98

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

    Баллы:
    123
    Skype:
    wwwixelsor9
    Имя в Minecraft:
    konfyciu
    А после PSender.getInventory().addItem(item); не надо return true? Конечно, я в этом не особо шарю, но может быть...
     
  8. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    В данном случае не столь важно
     
  9. konfyciu98

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

    Баллы:
    123
    Skype:
    wwwixelsor9
    Имя в Minecraft:
    konfyciu
    а когда его вообще надо использовать? При отправке сообщений? Или же Джаву изучить? :D
     
  10. BeLkA

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

    Баллы:
    153
    Skype:
    FayStaff
    Во всех булевских блоках, где-нибудь, да нужен return
     
  11. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Когда тебе нужно завершить исполнение кода.
     
    konfyciu98 нравится это.
  12. BeLkA

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

    Баллы:
    153
    Skype:
    FayStaff
    Не всегда, например:
    if(p.hasPermission("you.dont.have")) return;
     
  13. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Сложно вдуматься в то, что я написал?
    Если у игрока нет прав,
     
  14. BeLkA

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

    Баллы:
    153
    Skype:
    FayStaff
    А, извините :D Торможу сегодня :)
     
  15. konfyciu98

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

    Баллы:
    123
    Skype:
    wwwixelsor9
    Имя в Minecraft:
    konfyciu
    Оооо, спасибо! А то я наретурнил в командах лишнего![DOUBLEPOST=1397391247,1397390984][/DOUBLEPOST]А каким способом можно удалить значение из конфига? Есть типо такого
    Код:
    items:
      coal: 1
      diamond: 3
    
    Как удалить полностью coal,чтобы вышло в итоге так:
    Код:
    items:
      diamond: 3
    
     
  16. BeLkA

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

    Баллы:
    153
    Skype:
    FayStaff
    Скинь код в ЛС, помогу, бесплатно.
     
    ПриветОтЛайки нравится это.
  17. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    getConfig().set("items.coal", null)
     
  18. BeLkA

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

    Баллы:
    153
    Skype:
    FayStaff
    :( Не успел... А где вы Jav'e учились?
     
  19. konfyciu98

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

    Баллы:
    123
    Skype:
    wwwixelsor9
    Имя в Minecraft:
    konfyciu
    оно удалится? Разве не станет так:
    Код:
    items:
      coal: 
      diamond: 3
    
     
  20. Автор темы
    CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Сделал так:
    Код:
    name: RPGItems
    main: Weapon.Main
    description: rpg items plugin
    version: 0.5
    commands:
      itgive:
        description: Something
        usage: /<command> <item>    
    Код:
    public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
            if(cmd.getName().equalsIgnoreCase("itgive")){
                if (sender instanceof Player) {
                if (args != null){
                    Player PSender = (Player) sender;
                    ItemStack item = new ItemStack(Material.AIR);
                    ItemMeta meta = item.getItemMeta();
                    if (args[0].equals("WShield")){
                        item.setType(Material.GOLD_SWORD);
                        meta.setDisplayName(ChatColor.WHITE + "Деревянный щит");
                        meta.getLore().add("Shield");
                    }
                    item.setItemMeta(meta);
                    PSender.getInventory().addItem(item);
                    return true;
                }
                else return false;
                }
                return true;
            } //If this has happened the function will break and return true. if this hasn't happened the a value of false will be returned.
            return false;
        }
    но все равно не работает ;(
     
  21. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Нигде. Выучил синтаксис и всё.
    Не станет
    Не надо проверять args на нулл, лучше args.length(пустой равен 0)
     

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