Adds powergain flag and worldsPowerGainDisabled config option. See #526
This commit is contained in:
		
				
					committed by
					
						
						Olof Larsson
					
				
			
			
				
	
			
			
			
						parent
						
							7ee391f6b9
						
					
				
				
					commit
					83767dc275
				
			@@ -64,6 +64,8 @@ public class MConf extends Entity<MConf>
 | 
				
			|||||||
	// In such case set standard to false and add "Hurr" as an exeption to worldsClaimingEnabled.
 | 
						// In such case set standard to false and add "Hurr" as an exeption to worldsClaimingEnabled.
 | 
				
			||||||
	public WorldExceptionSet worldsClaimingEnabled = new WorldExceptionSet();
 | 
						public WorldExceptionSet worldsClaimingEnabled = new WorldExceptionSet();
 | 
				
			||||||
	public WorldExceptionSet worldsPowerLossEnabled = new WorldExceptionSet();
 | 
						public WorldExceptionSet worldsPowerLossEnabled = new WorldExceptionSet();
 | 
				
			||||||
 | 
						public WorldExceptionSet worldsPowerGainEnabled = new WorldExceptionSet();
 | 
				
			||||||
 | 
						
 | 
				
			||||||
	public WorldExceptionSet worldsPvpRulesEnabled = new WorldExceptionSet();
 | 
						public WorldExceptionSet worldsPvpRulesEnabled = new WorldExceptionSet();
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	// -------------------------------------------- //
 | 
						// -------------------------------------------- //
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,6 +22,7 @@ public class MFlag extends Entity<MFlag> implements Prioritized, Registerable, N
 | 
				
			|||||||
	public final static transient String ID_MONSTERS = "monsters";
 | 
						public final static transient String ID_MONSTERS = "monsters";
 | 
				
			||||||
	public final static transient String ID_ANIMALS = "animals";
 | 
						public final static transient String ID_ANIMALS = "animals";
 | 
				
			||||||
	public final static transient String ID_POWERLOSS = "powerloss";
 | 
						public final static transient String ID_POWERLOSS = "powerloss";
 | 
				
			||||||
 | 
						public final static transient String ID_POWERGAIN = "powergain";
 | 
				
			||||||
	public final static transient String ID_PVP = "pvp";
 | 
						public final static transient String ID_PVP = "pvp";
 | 
				
			||||||
	public final static transient String ID_FRIENDLYFIRE = "friendlyfire";
 | 
						public final static transient String ID_FRIENDLYFIRE = "friendlyfire";
 | 
				
			||||||
	public final static transient String ID_EXPLOSIONS = "explosions";
 | 
						public final static transient String ID_EXPLOSIONS = "explosions";
 | 
				
			||||||
@@ -37,16 +38,17 @@ public class MFlag extends Entity<MFlag> implements Prioritized, Registerable, N
 | 
				
			|||||||
	public final static transient int PRIORITY_MONSTERS = 2_000;
 | 
						public final static transient int PRIORITY_MONSTERS = 2_000;
 | 
				
			||||||
	public final static transient int PRIORITY_ANIMALS = 3_000;
 | 
						public final static transient int PRIORITY_ANIMALS = 3_000;
 | 
				
			||||||
	public final static transient int PRIORITY_POWERLOSS = 4_000;
 | 
						public final static transient int PRIORITY_POWERLOSS = 4_000;
 | 
				
			||||||
	public final static transient int PRIORITY_PVP = 5_000;
 | 
						public final static transient int PRIORITY_POWERGAIN = 5_000;
 | 
				
			||||||
	public final static transient int PRIORITY_FRIENDLYFIRE = 6_000;
 | 
						public final static transient int PRIORITY_PVP = 6_000;
 | 
				
			||||||
	public final static transient int PRIORITY_EXPLOSIONS = 7_000;
 | 
						public final static transient int PRIORITY_FRIENDLYFIRE = 7_000;
 | 
				
			||||||
	public final static transient int PRIORITY_OFFLINEEXPLOSIONS = 8_000;
 | 
						public final static transient int PRIORITY_EXPLOSIONS = 8_000;
 | 
				
			||||||
	public final static transient int PRIORITY_FIRESPREAD = 9_000;
 | 
						public final static transient int PRIORITY_OFFLINEEXPLOSIONS = 9_000;
 | 
				
			||||||
	public final static transient int PRIORITY_ENDERGRIEF = 10_000;
 | 
						public final static transient int PRIORITY_FIRESPREAD = 10_000;
 | 
				
			||||||
	public final static transient int PRIORITY_ZOMBIEGRIEF = 11_000;
 | 
						public final static transient int PRIORITY_ENDERGRIEF = 11_000;
 | 
				
			||||||
	public final static transient int PRIORITY_PERMANENT = 12_000;
 | 
						public final static transient int PRIORITY_ZOMBIEGRIEF = 12_000;
 | 
				
			||||||
	public final static transient int PRIORITY_PEACEFUL = 13_000;
 | 
						public final static transient int PRIORITY_PERMANENT = 13_000;
 | 
				
			||||||
	public final static transient int PRIORITY_INFPOWER = 14_000;
 | 
						public final static transient int PRIORITY_PEACEFUL = 14_000;
 | 
				
			||||||
 | 
						public final static transient int PRIORITY_INFPOWER = 15_000;
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	// -------------------------------------------- //
 | 
						// -------------------------------------------- //
 | 
				
			||||||
	// META: CORE
 | 
						// META: CORE
 | 
				
			||||||
@@ -75,6 +77,7 @@ public class MFlag extends Entity<MFlag> implements Prioritized, Registerable, N
 | 
				
			|||||||
		getFlagMonsters();
 | 
							getFlagMonsters();
 | 
				
			||||||
		getFlagAnimals();
 | 
							getFlagAnimals();
 | 
				
			||||||
		getFlagPowerloss();
 | 
							getFlagPowerloss();
 | 
				
			||||||
 | 
							getFlagPowergain();
 | 
				
			||||||
		getFlagPvp();
 | 
							getFlagPvp();
 | 
				
			||||||
		getFlagFriendlyire();
 | 
							getFlagFriendlyire();
 | 
				
			||||||
		getFlagExplosions();
 | 
							getFlagExplosions();
 | 
				
			||||||
@@ -91,6 +94,7 @@ public class MFlag extends Entity<MFlag> implements Prioritized, Registerable, N
 | 
				
			|||||||
	public static MFlag getFlagMonsters() { return getCreative(PRIORITY_MONSTERS, ID_MONSTERS, ID_MONSTERS, "Can monsters spawn in this territory?", "Monsters can spawn in this territory.", "Monsters can NOT spawn in this territory.", false, true, true); }
 | 
						public static MFlag getFlagMonsters() { return getCreative(PRIORITY_MONSTERS, ID_MONSTERS, ID_MONSTERS, "Can monsters spawn in this territory?", "Monsters can spawn in this territory.", "Monsters can NOT spawn in this territory.", false, true, true); }
 | 
				
			||||||
	public static MFlag getFlagAnimals() { return getCreative(PRIORITY_ANIMALS, ID_ANIMALS, ID_ANIMALS, "Can animals spawn in this territory?", "Animals can spawn in this territory.", "Animals can NOT spawn in this territory.", true, true, true); }
 | 
						public static MFlag getFlagAnimals() { return getCreative(PRIORITY_ANIMALS, ID_ANIMALS, ID_ANIMALS, "Can animals spawn in this territory?", "Animals can spawn in this territory.", "Animals can NOT spawn in this territory.", true, true, true); }
 | 
				
			||||||
	public static MFlag getFlagPowerloss() { return getCreative(PRIORITY_POWERLOSS, ID_POWERLOSS, ID_POWERLOSS, "Is power lost on death in this territory?", "Power is lost on death in this territory.", "Power is NOT lost on death in this territory.", true, false, true); }
 | 
						public static MFlag getFlagPowerloss() { return getCreative(PRIORITY_POWERLOSS, ID_POWERLOSS, ID_POWERLOSS, "Is power lost on death in this territory?", "Power is lost on death in this territory.", "Power is NOT lost on death in this territory.", true, false, true); }
 | 
				
			||||||
 | 
						public static MFlag getFlagPowergain() { return getCreative(PRIORITY_POWERGAIN, ID_POWERGAIN, ID_POWERGAIN, "Can power be gained in this territory?", "Power can be gained in this territory.", "Power is NOT gained in this territory.", true, false, true); }
 | 
				
			||||||
	public static MFlag getFlagPvp() { return getCreative(PRIORITY_PVP, ID_PVP, ID_PVP, "Can you PVP in territory?", "You can PVP in this territory.", "You can NOT PVP in this territory.", true, false, true); }
 | 
						public static MFlag getFlagPvp() { return getCreative(PRIORITY_PVP, ID_PVP, ID_PVP, "Can you PVP in territory?", "You can PVP in this territory.", "You can NOT PVP in this territory.", true, false, true); }
 | 
				
			||||||
	public static MFlag getFlagFriendlyire() { return getCreative(PRIORITY_FRIENDLYFIRE, ID_FRIENDLYFIRE, ID_FRIENDLYFIRE, "Can friends hurt eachother in this territory?", "Friendly fire is on here.", "Friendly fire is off here.", false, false, true); }
 | 
						public static MFlag getFlagFriendlyire() { return getCreative(PRIORITY_FRIENDLYFIRE, ID_FRIENDLYFIRE, ID_FRIENDLYFIRE, "Can friends hurt eachother in this territory?", "Friendly fire is on here.", "Friendly fire is off here.", false, false, true); }
 | 
				
			||||||
	public static MFlag getFlagExplosions() { return getCreative(PRIORITY_EXPLOSIONS, ID_EXPLOSIONS, ID_EXPLOSIONS, "Can explosions occur in this territory?", "Explosions can occur in this territory.", "Explosions can NOT occur in this territory.", true, false, true); }
 | 
						public static MFlag getFlagExplosions() { return getCreative(PRIORITY_EXPLOSIONS, ID_EXPLOSIONS, ID_EXPLOSIONS, "Can explosions occur in this territory?", "Explosions can occur in this territory.", "Explosions can NOT occur in this territory.", true, false, true); }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,11 +1,16 @@
 | 
				
			|||||||
package com.massivecraft.factions.task;
 | 
					package com.massivecraft.factions.task;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.bukkit.entity.Player;
 | 
					import org.bukkit.entity.Player;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.massivecraft.factions.entity.BoardColl;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.entity.Faction;
 | 
				
			||||||
import com.massivecraft.factions.entity.MConf;
 | 
					import com.massivecraft.factions.entity.MConf;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.entity.MFlag;
 | 
				
			||||||
import com.massivecraft.factions.entity.MPlayer;
 | 
					import com.massivecraft.factions.entity.MPlayer;
 | 
				
			||||||
import com.massivecraft.factions.event.EventFactionsPowerChange;
 | 
					import com.massivecraft.factions.event.EventFactionsPowerChange;
 | 
				
			||||||
import com.massivecraft.factions.event.EventFactionsPowerChange.PowerChangeReason;
 | 
					import com.massivecraft.factions.event.EventFactionsPowerChange.PowerChangeReason;
 | 
				
			||||||
import com.massivecraft.massivecore.ModuloRepeatTask;
 | 
					import com.massivecraft.massivecore.ModuloRepeatTask;
 | 
				
			||||||
 | 
					import com.massivecraft.massivecore.ps.PS;
 | 
				
			||||||
import com.massivecraft.massivecore.util.MUtil;
 | 
					import com.massivecraft.massivecore.util.MUtil;
 | 
				
			||||||
import com.massivecraft.massivecore.util.TimeUnit;
 | 
					import com.massivecraft.massivecore.util.TimeUnit;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -44,6 +49,14 @@ public class TaskPlayerPowerUpdate extends ModuloRepeatTask
 | 
				
			|||||||
			if (MUtil.isntPlayer(player)) continue;
 | 
								if (MUtil.isntPlayer(player)) continue;
 | 
				
			||||||
			if (player.isDead()) continue;
 | 
								if (player.isDead()) continue;
 | 
				
			||||||
			
 | 
								
 | 
				
			||||||
 | 
								// Check the powergain flag is not disabled
 | 
				
			||||||
 | 
								Faction faction = BoardColl.get().getFactionAt(PS.valueOf(player.getLocation()));
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
								if ( ! faction.getFlag(MFlag.getFlagPowergain())) return;
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
								// Check power gain has not been disabled in this world
 | 
				
			||||||
 | 
								if ( ! MConf.get().worldsPowerGainEnabled.contains(player)) return;
 | 
				
			||||||
 | 
								
 | 
				
			||||||
			MPlayer mplayer = MPlayer.get(player);
 | 
								MPlayer mplayer = MPlayer.get(player);
 | 
				
			||||||
			double newPower = mplayer.getPower() + mplayer.getPowerPerHour() * millis / TimeUnit.MILLIS_PER_HOUR;
 | 
								double newPower = mplayer.getPower() + mplayer.getPowerPerHour() * millis / TimeUnit.MILLIS_PER_HOUR;
 | 
				
			||||||
			
 | 
								
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user