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

Помогите Путаница с эвентами

EnderChiken

Старожил
Баллы
103
Имя в Minecraft
EnderChiken
В общем, вопрос к разработчикам.
Если эвенты:
OnDamage - Когда игрок получает урон
OnJump - когда игрок прыгает
и когда игрок бьет другого игрока.

Если есть скажите пожалуйста packag'и, заранее спасибо.
 
Java:
public class MelonPVPListener implements Listener  {
 
    //Листенер который слушает урон одной ентити по другой
    @EventHandler
    public void DamageListener(EntityDamageByEntityEvent event) {
 
        /*По скольку Listener у нас void (Не возвращает ничего, то при любом ретурне он сразу завершает свою работу*/
 
        /*Проверяем наследует ли наша ентити класс игрока.
        !!! Обязательное действие!!!
        Иначе при нанесении человеку урона скажем стрелой или мобом в консоль полетит ексепшн*/
        if(!(event.getEntity() instanceof Player))
            return;
 
        /*Аналогично тому что написанно выше, но для игрока который бил*/
        if(!(event.getDamager() instanceof Player))
            return;
 
        /*Теперь, когда мы проверили что обе ентити являются игроками, мы можем заявить об этом серверу, мол "Вот! Это игрок! Обращайся с ним как игроком." Если бы мы не сделали проверку ранее, а нас бы ударил скелет, то сервер попробовал бы обращаться со скелетом как с игроком, что как я уже и сказал вывело бы Ексепшн
 
            /*Говорим серверу что под словом target мы будем иметь ввиду event.getEntity() которая к тому же и Player*/
        Player target = (Player) event.getEntity();
        /*Аналогично тому что выше, только для ентити которая нанесла удар*/
        Player damager = (Player) event.getDamager();
 
        /*Дальше идет твой код*/
 
    }
 
}


Вроде бы все расписал, код должен быть рабочий, но 100% гарантию не дам, так как брал из своего плагина, и много вырезал лишнего, мб зацепил что.
Но в любом случае там есть проверки и все что надо.

Если помог - не забудь туцнуть лайк :)
 
@EnderChiken, не забудьте только проверить entity (getDamager) помимо Player, на такие объекты как стрела, снежок и зелье (возможно еще что-то было добавлено в новых версиях, но я не слежу за ними и работаю с 1.2.5).
 
@EnderChiken, не забудьте только проверить entity (getDamager) помимо Player, на такие объекты как стрела, снежок и зелье (возможно еще что-то было добавлено в новых версиях, но я не слежу за ними и работаю с 1.2.5).
1.2.5 самая четкая :D
 

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

Назад
Верх