Войти или зарегистрироваться

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

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;
    }
 
plugin.yml кажется неадекватно реагирует на русские символы.
 
Насчёт русских символов - нет, нормально он на них реагирует.
Конечно навряд ли, но всё же может это из за того, что ты не зарегал пермишенс в plugin.yml
Я про
Код:
################################
permissions:
  RPGItems.itgive:
    default: true
 
Последнее редактирование:
Насчёт русский символов - нет, нормально он на них реагирует.
Конечно навряд ли, но всё же может это из за того, что ты не зарегал пермишенс в plugin.yml
Я про
Код:
################################
permissions:
  RPGItems.itgive:
    default: true
Ни когда не объявлял в yml пермишен, ровно как и не приписывал к команде, конечно это вынуждает написать один if в программе, но на мой взгляд вариант вполне себе
 
Что я делаю не правильно?
Код:
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;
    }
commandLabel это не аргумент к команде, а её алиас.
Чтобы сработала команда /itgive WShield надо в условии проверки поменять на args[0].equals("WShield");
Ну и конечно не забывать про то, что массив может быть пустой
 
А после PSender.getInventory().addItem(item); не надо return true? Конечно, я в этом не особо шарю, но может быть...
 
Когда тебе нужно завершить исполнение кода.
Оооо, спасибо! А то я наретурнил в командах лишнего!
А каким способом можно удалить значение из конфига? Есть типо такого
Код:
items:
  coal: 1
  diamond: 3
Как удалить полностью coal,чтобы вышло в итоге так:
Код:
items:
  diamond: 3
 
Оооо, спасибо! А то я наретурнил в командах лишнего!
А каким способом можно удалить значение из конфига? Есть типо такого
Код:
items:
  coal: 1
  diamond: 3
Как удалить полностью coal,чтобы вышло в итоге так:
Код:
items:
  diamond: 3
Скинь код в ЛС, помогу, бесплатно.
 
Оооо, спасибо! А то я наретурнил в командах лишнего!
А каким способом можно удалить значение из конфига? Есть типо такого
Код:
items:
  coal: 1
  diamond: 3
Как удалить полностью coal,чтобы вышло в итоге так:
Код:
items:
  diamond: 3
getConfig().set("items.coal", null)
 
Сделал так:
Код:
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;
    }
но все равно не работает ;(
 
:( Не успел... А где вы Jav'e учились?
Нигде. Выучил синтаксис и всё.
оно удалится? Разве не станет так:
Код:
items:
  coal:
  diamond: 3
Не станет
Сделал так:
Код:
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;
    }
но все равно не работает ;(
Не надо проверять args на нулл, лучше args.length(пустой равен 0)
 
Назад
Верх