Помогите Опыт при убийстве

  • Автор темы Автор темы Link0
  • Дата начала Дата начала

Link0

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
Avanguard
Помогите, хочу сам сделать плагин который при убийстве игрока/моба добавлял опыт. Это первая попытка написать плагин, в чем моя ошибка

package ru.avanguard.aero;

import org.bukkit.Bukkit
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.plugin.java.JavaPlugin;


public class Aero extends JavaPlugin implements Listener
{

public void onEnable()
{
getLogger().info("Aero plugin enabled!");
Bukkit.getPluginManager().registerEvents(this, this);
}

public void onDisable()
{
getLogger().info("Aero plugin disabled!");
}
@EventHandler
public void onDamage(EntityDamageByEntityEvent e)
{
((Player) e).getPlayer().setLevel(+0.5);
}

}
 
Вот тут
Java:
public void onDamage(EntityDamageByEntityEvent e)
{
((Player) e).getPlayer().setLevel(+0.5);
}
PS: используй перед началом кода [.CODE=JAVA] в конце [/.CODE]
без точки .Для вставки кода в сообщение.
 
Последнее редактирование:
Java:
    @EventHandler
    public void onDamage(EntityDamageByEntityEvent e) {
        ((Player) e).getPlayer().setLevel(+0.5);
    }
Начальные знания английского языка позволяют понять, что ты используешь событие урона энтити, а не их смерти. Соответственно в твоём случае опыт в теории выдавался бы при каждом дамаге. Если хочешь использовать этот эвент, то вручную проверяй уровень здоровья энтити. Однако я бы посоветовал в данном случае примерять EntityDeathEvent.
Ты кастуешь объект события в объект игрока. Это полный бред. События не наследуют игроков. События содержат несколько "равноправных" элементов. В данном случае это, например, объект энтити, получившей урон (жертва), энтити, произведшая урон (атакующая) и значение силы и причины урона.
Также нужно учесть, что других энтити может атаковать не только игрок, но и любые другие агрессивные энтити.
Плюс ко всему не понятно, к чему ты прибавляешь "0.5". Если к текущему уровню игрока, то так и пропиши.
 
Назад
Верх