Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите как получить отродившегося игрока

Robnays

Новичок
Баллы
6
Имя в Minecraft
Pidoras
я столкнулся с проблемой что не могу найти возродившегося игрока. Суть простая игрок возрождается плагин проверяет его ник в списке и если есть то выдает эффекты через метод
@EventHandler
private void onPlayerd(PlayerRespawnEvent event) {
Player player = event.getPlayer();
if (religioni.contains(player.getName())) {
sposobnosti(player);
}

}
religioni.contains(player.getName()) та сама проверка
sposobnosti(player) выдача эффектов
все прекрасно делает если стоить
PlayerJoinEvent
 
Здраствуй, не уверен, но возможно игрок возрождается чуть позже ивента их-за чего могут возникнуть проблемы.
Попробуй выдавать эффекты спустя некоторое время, после возрождения. Вот код для примера:

Код:
Bukkit.getScheduler().runTaskLater(plugin, () -> {
                // ваш код
                // 2 - число секунд
                //20L - для перевода тики в секунды
            }, 2 * 20L);
Требуется передавать главный класс плагина для работы( plugin в данном примере )
 
Требуется передавать главный класс плагина для работы( plugin в данном примере )

Главный класс*
Код:
    private static TEST istance;
    public static TEST getIstance() { return istance; }
  
    @Override
    public void onEnable() {
        istance = this;
      
      
    }


Класс в котором нужен ГК (Главный Класс):
Код:
private TEST plugin = TEST.getIstance();

И можешь обращаться к главному классу через plugin.


P.s - API 1.12.2 не знаю работает ли такой метод на более новых версиях. Я олд и вообще бросил кодинг по этому кодингом на новых версиях не занимаюсь :D
 
Передавать ссылку на объект в конструктор всё таки удачнее, чем светить статикой на всю jvm.
:good:


я столкнулся с проблемой что не могу найти возродившегося игрока. Суть простая игрок возрождается плагин проверяет его ник в списке и если есть то выдает эффекты через метод
@EventHandler
private void onPlayerd(PlayerRespawnEvent event) {
Player player = event.getPlayer();
if (religioni.contains(player.getName())) {
sposobnosti(player);
}

}
religioni.contains(player.getName()) та сама проверка
sposobnosti(player) выдача эффектов
все прекрасно делает если стоить
PlayerJoinEvent
Как и когда ты записываешь игроков в свой лист, возможно он удаляется с листа где?
 

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

Назад
Верх