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

Помогите Ник игрока

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

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

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

    Баллы:
    66
    Skype:
    egorka_rka
    Привет всем. Мои знания в написании плагинов -99%. Сейчас практикуюсь делая всякую фигню на локале. Как можно получить ник игрока? И чтоб только для игрока с определёным ником выполнялась функция.
    КОД:
    Код:
      @EventHandler
       private void KeepInv(PlayerDeathEvent e){
         Player p = e.getEntity();
         if(p.getPlayer().isDead());
         //if(p.getPlayer().hasPermission("zeynet.keep.inv")){   lol kek cheburek   }
         if(p.getPlayer().getDisplayName() == "Zeynet"){
           e.setDeathMessage("После сметри вернул себе инвентарь");
           e.setKeepInventory(true);
           
         }else{
           return;
               
         }     
       }
    
     
  2. Хостинг MineCraft
    <
  3. MasterCapeXD

    MasterCapeXD Участник Пользователь

    Баллы:
    36
    Имя в Minecraft:
    MasterCapeXD
    Код:
    if(p.getPlayer().getDisplayName().equals("Zeynet"));
    == для сравнения енумов больше подходит а не для текста.А в некоторых случаях может и ошибку вывести
     
  4. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    Не советую использовать getDisplayName() для получения ника игрока, т.к. почти всегда DisplayName вернёт префикс, суффикс игрока, а не только ник.
    Юзай getName();
    к чему эта строка? удаляй.
    а смысл?
    а вот тут юзай getDisplayName;
     
  5. Exception_Prototype

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

    Баллы:
    46
    e.setKeepInventory(true); - забудь.
    Делай другую систему. Это криво будет работать с модами да и вообщем будет криво.
     
  6. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Идеально подходит для сравнения не только енумов, а любых объектов, за исключением стринга
    -100
     
  7. Blc_Dragon

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    == сравнивает ссылки на объекты. его вполне можно использовать для сравнения енумов и примитов. (ну и ссылок)
    equals() сравнивает объекты
     
  8. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Энтити и игроков тоже, одним словом - все объекты
     
  9. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Не всегда и не везде, equals() может быть переопределен.
     
  10. Bomber123

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

    Баллы:
    46
    Правильно он говорит e.setKeepInvntory(true) будет криво работать
    1. e.setKeepIventory() работает в качестве изменения правил на всём сервере и если хоть один умрёт то всем игрокам включится это правило.
    2. Это действие будет работать когда игрок умрёт по этому вещи не будут сохраняться.
    [DOUBLEPOST=1490433442,1490433307][/DOUBLEPOST]Мой тебе совет загляни в код плагина Scavenger или как он там называется и увидишь что там к чему правда там ни чё не понятно[DOUBLEPOST=1490433542][/DOUBLEPOST]
     
    Последнее редактирование: 25 мар 2017
  11. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Ты дурак?
     
  12. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    ты дурак?
     
  13. Bomber123

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

    Баллы:
    46
    Это я дурак? Это вы написали!
     
  14. DWortY

    DWortY Ньюби

    Баллы:
    1
    Имя в Minecraft:
    DWortY
    Ну вопервых заместь private void сойдет и public void...
    Во вторых используй поиск игрока методом Player p = e.getEntity();
    Но если чтото не так, извините смотрите Обзоры...
     
  15. Exception_Prototype

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

    Баллы:
    46
    Scavenger - дичь.
    Топ https://github.com/alexandrage/nbtkits/blob/master/nbtkits/src/nbtkits/InventoryNBTSer.java
     
  16. Bomber123

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

    Баллы:
    46
  17. PsyhopatMC

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

    Баллы:
    78
    Skype:
    ilyxxxaa
    Имя в Minecraft:
    Psyhopat
    Это сохранение инвентаря в NBT лист.
    Очень хорошая альтернатива Scavenger(Постоянно парит мозги, использование не рекомендуется.)
     
    Последнее редактирование: 26 мар 2017
  18. !Egorpom

    !Egorpom Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    Egorpom
    Чем именно?
     
  19. Exception_Prototype

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

    Баллы:
    46
    Scavenger
     
  20. !Egorpom

    !Egorpom Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    Egorpom
    Чем мозги-то парит?
     
  21. Exception_Prototype

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

    Баллы:
    46
    Наверное он про дюпы и т.д. в Scavenger
     

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