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

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

Discussion in 'Разработка плагинов для новичков' started by EgorXeXe, Mar 22, 2017.

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

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

    Trophy Points:
    66
    Skype:
    egorka_rka
    Привет всем. Мои знания в написании плагинов -99%. Сейчас практикуюсь делая всякую фигню на локале. Как можно получить ник игрока? И чтоб только для игрока с определёным ником выполнялась функция.
    КОД:
    Code:
      @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 Участник Пользователь

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    DWortY Ньюби

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

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

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

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

    Trophy Points:
    46
  17. PsyhopatMC

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

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

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

    Trophy Points:
    31
    Имя в Minecraft:
    Egorpom
    Чем именно?
     
  19. Exception_Prototype

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

    Trophy Points:
    46
    Scavenger
     
  20. !Egorpom

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

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

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

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

Share This Page