1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Не изменяет DisplayName.

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

Статус темы:
Закрыта.
  1. Автор темы
    MinotaurWorld

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

    Баллы:
    66
    Имя в Minecraft:
    MinotaurWorld
    Не знаю в чём проблема но не изменяется имя предмета в руках.
    код:
    Код:
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            if (!sender.hasPermission("codeyourhouse.setcode")){
                sender.sendMessage(ChatColor.RED + "У вас не прав!");
                return true;
            }
            if (args.length == 0){
                return false;
            }
            if (args.length > 1){
                return false;
            }
            if (args.length == 1){
            Player p = (Player) sender;
            if (p.getItemInHand().getType() == Material.TRIPWIRE_HOOK){
                p.getItemInHand().getItemMeta().setDisplayName(args[0]);
                p.sendMessage(ChatColor.BLUE + "Успешно!");
            }
            if (p.getItemInHand().getType() == Material.CHEST){
                p.getItemInHand().getItemMeta().setDisplayName(args[0]);
                p.sendMessage(ChatColor.BLUE + "Успешно!");
            }
            if (p.getItemInHand().getType() == Material.FURNACE){
                p.getItemInHand().getItemMeta().setDisplayName(args[0]);
                p.sendMessage(ChatColor.BLUE + "Успешно!");
            }
            if (p.getItemInHand().getType() != Material.TRIPWIRE_HOOK && p.getItemInHand().getType() != Material.CHEST && p.getItemInHand().getType() != Material.FURNACE){
                p.sendMessage(ChatColor.RED + "Имя можно менять только у крюка, сундука, или печки!");
            }
            }
            return true;
        }
    
    }
    
    С командой всё нормально. В чат пишется "Успешно.", но имя не меняется.
     
  2. XjCyan1de

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

    Баллы:
    76
    Имя в Minecraft:
    XjCyan1de
    забыл поставить setItemMeta
     
  3. Lilian_solo

    Lilian_solo Активный участник Пользователь Заблокирован

    Баллы:
    46
    Имя в Minecraft:
    CoreKolas
    Код:
                    ItemStack it = p.getItemInHand();
                    ItemMeta meta = it.getItemMeta();
                    meta.setDisplayName(args[0]);
                    it.setItemMeta(meta);
     
  4. iD3LSY

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

    Баллы:
    76
    Ну, начнём с того, что запятая не ставиться перед ИЛИ, а во вторых, если перейти к вопросу, ты не установил meta на свой itemstack.

    А вот тебе полный, новый код. Уже исправленный
    Код:
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            if(!(sender instanceof Player)) {
                getLogger().info("You cant execute that command, because you not are Player!");
            } else {
                if(cmd.getName().equalsIgnoreCase("command"))
                    if(!sender.hasPermission("codeyourhouse.setcode")) {
                        sender.sendMessage("§cУ вас недостаточно прав для исполнения данной команды!");
                        return true;
                    } else {
                        if (args.length != 1) {
                            Player p = (Player) sender;
                            if (p.getItemInHand().getType() == Material.TRIPWIRE_HOOK ||
                                    p.getItemInHand().getType() == Material.CHEST ||
                                    p.getItemInHand().getType() == Material.FURNACE) {
                                p.getItemInHand().getItemMeta().setDisplayName(args[0]);
                                p.sendMessage(ChatColor.BLUE + "Успешно!");
                            }
                            if (p.getItemInHand().getType() != Material.TRIPWIRE_HOOK ||
                                    p.getItemInHand().getType() != Material.CHEST ||
                                    p.getItemInHand().getType() != Material.FURNACE) {
                                p.sendMessage(ChatColor.RED + "§cДействие невозможно, так как предмет в вашей руке не является §6крюком§c, §6сундуком§c или §6печкой§c!");
                            }
                        }
                        return true;
                    }
            }
            return false;
        }
     
    Последнее редактирование: 24 дек 2016
  5. Lilian_solo

    Lilian_solo Активный участник Пользователь Заблокирован

    Баллы:
    46
    Имя в Minecraft:
    CoreKolas
    "Действие невозможно, так как предмет в вашей руке не является крюка, сундука, или печки!"
    О каких знания русского языка тут может идти речь? Зачем других учишь тогда?
     
  6. iD3LSY

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

    Баллы:
    76
    Извини, писал текст на основе его кода. После "или" запятую я не писал. Повторяюсь, это его же запятая...
    Всё окончания в словах заменил.
    Слушай, MinotaurWorld, не мог бы ты научиться закрывать темы, в которых тебе уже проблему решили?..
    А если не решили, то пиши о возникшей ошибке..
     
  7. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooo
    А в своём коде, ты как будто установил мету на итемстак....
    Код:
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            if(!(sender instanceof Player)) {
                getLogger().info("Ты не игрок");
                return true;
            }
            if(!sender.hasPermission("codeyourhouse.setcode")) {
                sender.sendMessage("§cУ вас недостаточно прав для исполнения данной команды!");
                return true;
            }
            if (args.length == 0 || args.length > 1) {
                sender.sendMessage("command args");
                return true;
            }
            Player p = (Player) sender;
            ItemStack it = p.getItemInHand();
    
            if (it != null && (p.getItemInHand().getType() == Material.TRIPWIRE_HOOK ||
                    p.getItemInHand().getType() == Material.CHEST ||
                    p.getItemInHand().getType() == Material.FURNACE)) {
                ItemMeta im = it.getItemMeta();
                im.setDisplayName(args[0]);
                it.setItemMeta(im);
                p.sendMessage(ChatColor.BLUE + "Успешно!");
                return true;
            }
            p.sendMessage(ChatColor.RED + "§cДействие невозможно, так как предмет в вашей руке не является §6крюком§c, §6сундуком§c или §6печкой§c!");
            return true;
        }
     
    Последнее редактирование: 24 дек 2016
  8. Lilian_solo

    Lilian_solo Активный участник Пользователь Заблокирован

    Баллы:
    46
    Имя в Minecraft:
    CoreKolas
    Кстати, да)
    Код:
     Зачем это? 
    [LIST=1]
    [*]       if(!cmd.getName().equalsIgnoreCase("command")) {
    [*]           return true;
    [*]       }
    [/LIST]
     
  9. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooo
    хз. всякое бывает. а так да, это не нужно.
     
  10. iD3LSY

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

    Баллы:
    76
    Взяв его код, я немного убрал лишнего, изменил текст. Я вообще не менял его ошибок. А на счёт правильного кода, я про грамматику, формулировку.

    Ну а если быть честными, то это просто маза.
     
Статус темы:
Закрыта.

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