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

EgorXeXe

Активный участник
Пользователь
Баллы
66
Привет всем. Мои знания в написании плагинов -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;
           
     }     
   }
 
if(p.getPlayer().getDisplayName() == "Zeynet")

JavaScript:
if(p.getPlayer().getDisplayName().equals("Zeynet"));
== для сравнения енумов больше подходит а не для текста.А в некоторых случаях может и ошибку вывести
 
Не советую использовать getDisplayName() для получения ника игрока, т.к. почти всегда DisplayName вернёт префикс, суффикс игрока, а не только ник.
Юзай getName();
к чему эта строка? удаляй.
а смысл?
e.setDeathMessage("После сметри вернул себе инвентарь");
а вот тут юзай getDisplayName;
 
Привет всем. Мои знания в написании плагинов -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;
          
     }    
   }
e.setKeepInventory(true); - забудь.
Делай другую систему. Это криво будет работать с модами да и вообщем будет криво.
 
JavaScript:
if(p.getPlayer().getDisplayName().equals("Zeynet"));
== для сравнения енумов больше подходит а не для текста.А в некоторых случаях может и ошибку вывести
Идеально подходит для сравнения не только енумов, а любых объектов, за исключением стринга
Мои знания в написании плагинов -99%
-100
 
Идеально подходит для сравнения не только енумов, а любых объектов, за исключением стринга
== сравнивает ссылки на объекты. его вполне можно использовать для сравнения енумов и примитов. (ну и ссылок)
equals() сравнивает объекты
 
== сравнивает ссылки на объекты. его вполне можно использовать для сравнения енумов и примитов. (ну и ссылок)
equals() сравнивает объекты
Энтити и игроков тоже, одним словом - все объекты
 
== сравнивает ссылки на объекты. его вполне можно использовать для сравнения енумов и примитов. (ну и ссылок)
equals() сравнивает объекты
Не всегда и не везде, equals() может быть переопределен.
 
e.setKeepInventory(true); - забудь.
Делай другую систему. Это криво будет работать с модами да и вообщем будет криво.
Правильно он говорит e.setKeepInvntory(true) будет криво работать
  1. e.setKeepIventory() работает в качестве изменения правил на всём сервере и если хоть один умрёт то всем игрокам включится это правило.
  2. Это действие будет работать когда игрок умрёт по этому вещи не будут сохраняться.

Мой тебе совет загляни в код плагина Scavenger или как он там называется и увидишь что там к чему правда там ни чё не понятно
 
Последнее редактирование:
Правильно он говорит e.setKeepInvntory(true) будет криво работать
  1. e.setKeepIventory() работает в качестве изменения правил на всём сервере и если хоть один умрёт то всем игрокам включится это правило.
  2. Это действие будет работать когда игрок умрёт по этому вещи не будут сохраняться.

Мой тебе совет загляни в код плагина Scavenger или как он там называется и увидишь что там к чему
А ник игрока делается так
JavaScript:
if(!e.getPlayer.getName == "name") return;
Ты дурак?
 
Ну вопервых заместь private void сойдет и public void...
Во вторых используй поиск игрока методом Player p = e.getEntity();
Но если чтото не так, извините смотрите Обзоры...
 
Правильно он говорит e.setKeepInvntory(true) будет криво работать
  1. e.setKeepIventory() работает в качестве изменения правил на всём сервере и если хоть один умрёт то всем игрокам включится это правило.
  2. Это действие будет работать когда игрок умрёт по этому вещи не будут сохраняться.

Мой тебе совет загляни в код плагина Scavenger или как он там называется и увидишь что там к чему правда там ни чё не понятно
Scavenger - дичь.
Топ https://github.com/alexandrage/nbtkits/blob/master/nbtkits/src/nbtkits/InventoryNBTSer.java
 
Последнее редактирование:
Чем мозги-то парит?
 
Назад
Верх