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;
 | 
							this.p = p;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@EventHandler(priority = EventPriority.NORMAL)
 | 
						@EventHandler(priority = EventPriority.NORMAL)
 | 
				
			||||||
	public void onEntityDeath(EntityDeathEvent event)
 | 
						public void onEntityDeath(EntityDeathEvent event)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
@@ -67,20 +68,35 @@ public class FactionsEntityListener implements Listener
 | 
				
			|||||||
		FPlayer fplayer = FPlayers.i.get(player);
 | 
							FPlayer fplayer = FPlayers.i.get(player);
 | 
				
			||||||
		Faction faction = Board.getFactionAt(new FLocation(player.getLocation()));
 | 
							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))
 | 
							if ( ! faction.getFlag(FFlag.POWERLOSS))
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			fplayer.msg("<i>You didn't lose any power since the territory you died in works that way.");
 | 
								powerLossEvent.setMessage("<i>You didn't lose any power since the territory you died in works that way.");
 | 
				
			||||||
			return;
 | 
								powerLossEvent.setCancelled(true);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		
 | 
							else if (Conf.worldsNoPowerLoss.contains(player.getWorld().getName()))
 | 
				
			||||||
		if (Conf.worldsNoPowerLoss.contains(player.getWorld().getName()))
 | 
					 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			fplayer.msg("<i>You didn't lose any power due to the world you died in.");
 | 
								powerLossEvent.setMessage("<i>You didn't lose any power due to the world you died in.");
 | 
				
			||||||
			return;
 | 
								powerLossEvent.setCancelled(true);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							else {
 | 
				
			||||||
 | 
								powerLossEvent.setMessage("<i>Your power is now <h>"+fplayer.getPowerRounded()+" / "+fplayer.getPowerMaxRounded());
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							// call Event
 | 
				
			||||||
 | 
							Bukkit.getPluginManager().callEvent(powerLossEvent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		fplayer.onDeath();
 | 
							// Send the message from the powerLossEvent
 | 
				
			||||||
		fplayer.msg("<i>Your power is now <h>"+fplayer.getPowerRounded()+" / "+fplayer.getPowerMaxRounded());
 | 
							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)
 | 
						@EventHandler(priority = EventPriority.NORMAL)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user