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

Помогите Ввод команды только для ника

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

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

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

    Баллы:
    173
    Skype:
    BlayzerQ
    Имя в Minecraft:
    Blayzer
    Нужен код, который позволит прописывать команду только определенному игроку (По нику)
    Остальным же, из игры нельзя будет писать эту команду. Так-же чтобы можно было от имени сервера (Консоль)
     
  2. elektro3000

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

    Баллы:
    103
    Имя в Minecraft:
    elektro
    Пермишен не помогает?:)
     
  3. StealerSlain

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

    Баллы:
    88
    Имя в Minecraft:
    StealerSlain
    Попробуй if(sender.getDisplayName() == "nickname" && //тут команда)

    Ну лучше конечно взять ответ снизу :)

    сам только учусь
     
    Последнее редактирование: 20 ноя 2013
  4. BeYkeR

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

    Баллы:
    173
    Код:
    if(sender.getName().equals("PlayerName"){
    //Код
    }
    
     
  5. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Ещё нужна проверка, что это игрок вообще
    Код:
    if(!(sender instanceof Player)) {
    // Команду ввел не игрок
    return true;
    }
     
  6. fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Ну вообще, раскройте секрет, чем пермишены-то не устраивают. Выдаете пермишен нужному игроку и...
     
  7. Автор темы
    oleg57zls

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

    Баллы:
    173
    Skype:
    BlayzerQ
    Имя в Minecraft:
    Blayzer
    Я так понимаю sender - это класс файл?
    И еще, у меня вот это место: ){ ошибкой подчеркивается в if(sender.getName().equals("PlayerName"){
     
  8. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    sender это переменная типа CommandSender, имеется в аргументах метода onCommand(...), если она по другому названо, то будет подчёркивать.
     
  9. Автор темы
    oleg57zls

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

    Баллы:
    173
    Skype:
    BlayzerQ
    Имя в Minecraft:
    Blayzer
    Так должно быть?
    Код:
        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
            if(sender.getName().equals("PlayerName")){
                //Код
                if(!(sender instanceof Player)) {
                    // Команду ввел не игрок
                    return true;
                    }
                }
            return true;
        }
     
  10. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Сначала сделай проверку, что это игрок, а потом имени.
     
    I-Am-Black-Overlord нравится это.
  11. Автор темы
    oleg57zls

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

    Баллы:
    173
    Skype:
    BlayzerQ
    Имя в Minecraft:
    Blayzer
    И еще, мне нужно создать команду внутри для запрета ее?
    или код уже существующей? и где его можно посмотреть?
    Проверку имени внутри проверки игрока?
    И что нужно написать в: if(sender.getName().equals("PlayerName")){
    Чтобы вместо одного игрока, было два?
     
  12. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Через или(||)
     
  13. fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Ну поскольку нужно давать возможность выполнять от игрока с определенным именем, то наверное удобнее всего будет так:
    Код:
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String cmdLabel, String[] args) {
            if ((sender instanceof Player)&&(!sender.getName().equalsIgnoreCase("Вася Пупков"))) return false;
    
           // Здесь делаем чего-то
    
            return true;
        }
     
  14. Автор темы
    oleg57zls

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

    Баллы:
    173
    Skype:
    BlayzerQ
    Имя в Minecraft:
    Blayzer
    Без скобок?
     
  15. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Код:
    sender.getName().equalsIgnoreCase("Вася Пупков") || sender.getName().equalsIgnoreCase("Иван Грозный")
    Да и вообще, почитай про синтаксис java уже.
     
  16. fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    oleg57zls, когда в Eclipse код набираешь, он столько подсказывает, что иногда просто не понимаешь, кто из нас двоих: я или эклипс пишет плагин :)
     
    ПриветОтМиднайта нравится это.
  17. Автор темы
    oleg57zls

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

    Баллы:
    173
    Skype:
    BlayzerQ
    Имя в Minecraft:
    Blayzer
    А как сделать так, чтобы команда была запрещена всем, кроме... (Код выше)
     
  18. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Ты же итак сделал проверку на ник, она ни у кого больше не исполнится.
     
  19. Автор темы
    oleg57zls

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

    Баллы:
    173
    Skype:
    BlayzerQ
    Имя в Minecraft:
    Blayzer
    А другие плагины этому могут мешать?
     
  20. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Нет
     

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