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

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

Discussion in 'Разработка плагинов для новичков' started by CraftCoder, Apr 12, 2014.

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

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

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

    Code:
    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 Старожил Девелопер Пользователь

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Trophy Points:
    153
    Skype:
    FayStaff
    Скинь код в ЛС, помогу, бесплатно.
     
  17. Den_Abr

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

    Trophy Points:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    getConfig().set("items.coal", null)
     
  18. BeLkA

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

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

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

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

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

    Trophy Points:
    108
    Имя в Minecraft:
    CraftCoderr
    Сделал так:
    Code:
    name: RPGItems
    main: Weapon.Main
    description: rpg items plugin
    version: 0.5
    commands:
      itgive:
        description: Something
        usage: /<command> <item>    
    Code:
    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 Старожил Девелопер Пользователь

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

Share This Page