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

Помогите Установка сообщения о смерти игрока

Попробовал запустить Ваш код, выдает ошибку. Буду разбираться.
 
Эх:( Ну что же, удачи Вам. Спасибо, что помогаете мне
 
Вроде ошибка была из-за неизвестной причины смерти - внезапно стало 0 здоровья, но урон не наносился.
Сейчас тот код, который у меня работал раньше, перестал работать. Причину, по которой он работал раньше, я не понимаю.
 
А если s.damage(1000) и nick = s поменять местами?
Сначала запишется ник самоубийцы, а только потом он умрет.
А то он умирал до того, как был записан его ник, и из-за того, что nick - null, выкидывалось исключение.
 
Ясно, [SEVERE] Could not pass event PlayerDeathEvent, возникает, когда при обработке ивента возникает ошибка. Ниже этой ошибки был Exception, выкинутый при обработки ивента, а я его раньше и не заметил.
 
А если s.damage(1000) и nick = s поменять местами?
Сначала запишется ник самоубийцы, а только потом он умрет.
А то он умирал до того, как был записан его ник, и из-за того, что nick - null, выкидывалось исключение.
Ура, вот это помогло! Спасибо огромное:)
 
Вот ещё 1 момент. У меня теперь при любой смерти игрока будет писать сообщение, которое я поставил в этом плагине. Как сделать, чтобы это сообщение относилось только к событию, когда игрок вводит определённую команду (onCommand())?
 
В onDeathEvent:
Java:
// Меняем сообщение о смерти, только если умер именно тот игрок, который запустил команду
if (event.getEntity() == nick)
  event.setDeathMessage(...);
 
Окей, сейчас попробуем
 
Java:
@EventHandler
public void onPlayerDeath(PlayerDeathEvent event) {
    if(event.getEntity() == nick){
    event.setDeathMessage(ChatColor.RED + "" + nick.getName() + "не смог больше жить в этом ужасном мире и совершил самоубийство.");}
    }
Так? Всё равно при любой смерти это сообщение пишет
 
Не при любой - а при смерти игрока, который раньше вводил эту команду.
Java:
    if(event.getEntity() == nick){
      event.setDeathMessage(ChatColor.RED + "" + nick.getName() + "не смог больше жить в этом ужасном мире и совершил самоубийство.");
      nick = null; // Мы поменяли один раз сообщение смерти у этого игрока, теперь, пока он не введет команду, менять сообщение смерти не надо
    }
 

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

Назад
Верх