|
@@ -25,7 +25,8 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
|
|
import com.l2jserver.gameserver.model.conditions.Condition;
|
|
|
import com.l2jserver.gameserver.model.effects.AbstractEffect;
|
|
|
import com.l2jserver.gameserver.model.events.EventType;
|
|
|
-import com.l2jserver.gameserver.model.events.listeners.AbstractEventListener;
|
|
|
+import com.l2jserver.gameserver.model.events.impl.character.playable.OnPlayableExpChanged;
|
|
|
+import com.l2jserver.gameserver.model.events.listeners.ConsumerEventListener;
|
|
|
import com.l2jserver.gameserver.model.skills.BuffInfo;
|
|
|
import com.l2jserver.gameserver.model.stats.Stats;
|
|
|
import com.l2jserver.gameserver.network.SystemMessageId;
|
|
@@ -50,7 +51,7 @@ public final class SoulEating extends AbstractEffect
|
|
|
{
|
|
|
if (info.getEffected().isPlayer())
|
|
|
{
|
|
|
- info.getEffected().getListeners(EventType.ON_PLAYABLE_EXP_CHANGED).stream().filter(listener -> listener.getOwner() == this).forEach(AbstractEventListener::unregisterMe);
|
|
|
+ info.getEffected().removeListenerIf(EventType.ON_PLAYABLE_EXP_CHANGED, listener -> listener.getOwner() == this);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -82,7 +83,7 @@ public final class SoulEating extends AbstractEffect
|
|
|
{
|
|
|
if (info.getEffected().isPlayer())
|
|
|
{
|
|
|
- info.getEffected().removeListenerIf(EventType.ON_PLAYABLE_EXP_CHANGED, listener -> listener.getOwner() == this);
|
|
|
+ info.getEffected().addListener(new ConsumerEventListener(info.getEffected(), EventType.ON_PLAYABLE_EXP_CHANGED, (OnPlayableExpChanged event) -> onExperienceReceived(event.getActiveChar(), (event.getNewExp() - event.getOldExp())), this));
|
|
|
}
|
|
|
}
|
|
|
}
|