Jelajahi Sumber

BETA: Minor changes of TvTEvent listener.

Rumen Nikiforov 11 tahun lalu
induk
melakukan
41da1cb02e

+ 7 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java

@@ -14233,6 +14233,13 @@ public final class L2PcInstance extends L2Playable
 	@Override
 	public boolean canRevive()
 	{
+		for (IEventListener listener : _eventListeners)
+		{
+			if (listener.isOnEvent() && !listener.canRevive())
+			{
+				return false;
+			}
+		}
 		return _canRevive;
 	}
 	

+ 0 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/TvTEvent.java

@@ -525,7 +525,6 @@ public class TvTEvent
 			{
 				player.removeEventListener(TvTEventListener.class);
 			}
-			
 			return true;
 		}
 		

+ 6 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/TvTEventListener.java

@@ -31,7 +31,6 @@ public final class TvTEventListener implements IEventListener
 	protected TvTEventListener(L2PcInstance player)
 	{
 		_player = player;
-		player.addEventListener(this);
 	}
 	
 	@Override
@@ -52,6 +51,12 @@ public final class TvTEventListener implements IEventListener
 		return true;
 	}
 	
+	@Override
+	public boolean canRevive()
+	{
+		return false;
+	}
+	
 	@Override
 	public L2PcInstance getPlayer()
 	{

+ 5 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/model/interfaces/IEventListener.java

@@ -40,5 +40,10 @@ public interface IEventListener
 	 */
 	public boolean isBlockingDeathPenalty();
 	
+	/**
+	 * @return {@code true} if player can revive after death, {@code false} otherwise.
+	 */
+	public boolean canRevive();
+	
 	public L2PcInstance getPlayer();
 }