Added a new Factions event for power loss named PowerLossEvent.
PowerLossEvent happens after each player death
This commit is contained in:
		
							
								
								
									
										78
									
								
								src/com/massivecraft/factions/event/PowerLossEvent.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								src/com/massivecraft/factions/event/PowerLossEvent.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,78 @@
 | 
			
		||||
package com.massivecraft.factions.event;
 | 
			
		||||
 | 
			
		||||
import src.com.massivecraft.factions.FPlayer;
 | 
			
		||||
import src.com.massivecraft.factions.Faction;
 | 
			
		||||
 | 
			
		||||
public class PowerLossEvent extends Event implements Cancellable
 | 
			
		||||
{
 | 
			
		||||
	private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
 | 
			
		||||
	private boolean cancelled;
 | 
			
		||||
	private Faction faction;
 | 
			
		||||
	private FPlayer fplayer;
 | 
			
		||||
	private String message;
 | 
			
		||||
 | 
			
		||||
	public PowerLossEvent(Faction f, FPlayer p)
 | 
			
		||||
	{
 | 
			
		||||
		cancelled = false;
 | 
			
		||||
		faction = f;
 | 
			
		||||
		fplayer = p;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	public HandlerList getHandlers()
 | 
			
		||||
	{
 | 
			
		||||
		return handlers;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public static HandlerList getHandlerList()
 | 
			
		||||
	{
 | 
			
		||||
		return handlers;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public Faction getFaction()
 | 
			
		||||
	{
 | 
			
		||||
		return faction;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public String getFactionId()
 | 
			
		||||
	{
 | 
			
		||||
		return faction.getId();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public String getFactionTag()
 | 
			
		||||
	{
 | 
			
		||||
		return faction.getTag();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public FPlayer getFPlayer()
 | 
			
		||||
	{
 | 
			
		||||
		return fplayer;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public Player getPlayer()
 | 
			
		||||
	{
 | 
			
		||||
		return fplayer.getPlayer();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public String getMessage() {
 | 
			
		||||
		return message;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public void setMessage(String message) {
 | 
			
		||||
		this.message = message;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	public boolean isCancelled()
 | 
			
		||||
	{
 | 
			
		||||
		return cancelled;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	public void setCancelled(boolean c)
 | 
			
		||||
	{
 | 
			
		||||
		this.cancelled = c;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -57,6 +57,7 @@ public class FactionsEntityListener implements Listener
 | 
			
		||||
		this.p = p;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	@EventHandler(priority = EventPriority.NORMAL)
 | 
			
		||||
	public void onEntityDeath(EntityDeathEvent event)
 | 
			
		||||
	{
 | 
			
		||||
@@ -67,20 +68,35 @@ public class FactionsEntityListener implements Listener
 | 
			
		||||
		FPlayer fplayer = FPlayers.i.get(player);
 | 
			
		||||
		Faction faction = Board.getFactionAt(new FLocation(player.getLocation()));
 | 
			
		||||
 | 
			
		||||
		PowerLossEvent powerLossEvent = new PowerLossEvent(faction,fplayer);
 | 
			
		||||
		// Check for no power loss conditions
 | 
			
		||||
		if ( ! faction.getFlag(FFlag.POWERLOSS))
 | 
			
		||||
		{
 | 
			
		||||
			fplayer.msg("<i>You didn't lose any power since the territory you died in works that way.");
 | 
			
		||||
			return;
 | 
			
		||||
			powerLossEvent.setMessage("<i>You didn't lose any power since the territory you died in works that way.");
 | 
			
		||||
			powerLossEvent.setCancelled(true);
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		if (Conf.worldsNoPowerLoss.contains(player.getWorld().getName()))
 | 
			
		||||
		else if (Conf.worldsNoPowerLoss.contains(player.getWorld().getName()))
 | 
			
		||||
		{
 | 
			
		||||
			fplayer.msg("<i>You didn't lose any power due to the world you died in.");
 | 
			
		||||
			return;
 | 
			
		||||
			powerLossEvent.setMessage("<i>You didn't lose any power due to the world you died in.");
 | 
			
		||||
			powerLossEvent.setCancelled(true);
 | 
			
		||||
		}
 | 
			
		||||
		else {
 | 
			
		||||
			powerLossEvent.setMessage("<i>Your power is now <h>"+fplayer.getPowerRounded()+" / "+fplayer.getPowerMaxRounded());
 | 
			
		||||
		}
 | 
			
		||||
		// call Event
 | 
			
		||||
		Bukkit.getPluginManager().callEvent(powerLossEvent);
 | 
			
		||||
 | 
			
		||||
		fplayer.onDeath();
 | 
			
		||||
		fplayer.msg("<i>Your power is now <h>"+fplayer.getPowerRounded()+" / "+fplayer.getPowerMaxRounded());
 | 
			
		||||
		// Send the message from the powerLossEvent
 | 
			
		||||
		final String msg = powerLossEvent.getMessage();
 | 
			
		||||
		if (msg != null && !msg.isEmpty())
 | 
			
		||||
		{
 | 
			
		||||
			fplayer.msg(msg);
 | 
			
		||||
		}
 | 
			
		||||
		// Call player onDeath if the event is not cancelled
 | 
			
		||||
		if(!powerLossEvent.isCancelled())
 | 
			
		||||
		{
 | 
			
		||||
			fplayer.onDeath();
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	@EventHandler(priority = EventPriority.NORMAL)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user