Adds new Animals flag
This commit is contained in:
		
				
					committed by
					
						
						Olof Larsson
					
				
			
			
				
	
			
			
			
						parent
						
							74b9319a1a
						
					
				
				
					commit
					0728f0cfd2
				
			@@ -87,6 +87,7 @@ import com.massivecraft.factions.spigot.SpigotFeatures;
 | 
				
			|||||||
import com.massivecraft.factions.util.VisualizeUtil;
 | 
					import com.massivecraft.factions.util.VisualizeUtil;
 | 
				
			||||||
import com.massivecraft.massivecore.EngineAbstract;
 | 
					import com.massivecraft.massivecore.EngineAbstract;
 | 
				
			||||||
import com.massivecraft.massivecore.PriorityLines;
 | 
					import com.massivecraft.massivecore.PriorityLines;
 | 
				
			||||||
 | 
					import com.massivecraft.massivecore.collections.MassiveSet;
 | 
				
			||||||
import com.massivecraft.massivecore.event.EventMassiveCorePlayerLeave;
 | 
					import com.massivecraft.massivecore.event.EventMassiveCorePlayerLeave;
 | 
				
			||||||
import com.massivecraft.massivecore.mixin.Mixin;
 | 
					import com.massivecraft.massivecore.mixin.Mixin;
 | 
				
			||||||
import com.massivecraft.massivecore.money.Money;
 | 
					import com.massivecraft.massivecore.money.Money;
 | 
				
			||||||
@@ -117,6 +118,19 @@ public class EngineMain extends EngineAbstract
 | 
				
			|||||||
		return Factions.get();
 | 
							return Factions.get();
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
 | 
						// -------------------------------------------- //
 | 
				
			||||||
 | 
						// CONSTANTS
 | 
				
			||||||
 | 
						// -------------------------------------------- //
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						public static final Set<SpawnReason> NATURAL_SPAWN_REASONS = new MassiveSet<SpawnReason>(
 | 
				
			||||||
 | 
							SpawnReason.NATURAL,
 | 
				
			||||||
 | 
							SpawnReason.JOCKEY,
 | 
				
			||||||
 | 
							SpawnReason.CHUNK_GEN,
 | 
				
			||||||
 | 
							SpawnReason.OCELOT_BABY,
 | 
				
			||||||
 | 
							SpawnReason.NETHER_PORTAL,
 | 
				
			||||||
 | 
							SpawnReason.MOUNT
 | 
				
			||||||
 | 
						);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
	// -------------------------------------------- //
 | 
						// -------------------------------------------- //
 | 
				
			||||||
	// FACTION SHOW
 | 
						// FACTION SHOW
 | 
				
			||||||
	// -------------------------------------------- //
 | 
						// -------------------------------------------- //
 | 
				
			||||||
@@ -1117,23 +1131,16 @@ public class EngineMain extends EngineAbstract
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	// -------------------------------------------- //
 | 
						// -------------------------------------------- //
 | 
				
			||||||
	// FLAG: MONSTERS
 | 
						// FLAG: MONSTERS & ANIMALS
 | 
				
			||||||
	// -------------------------------------------- //
 | 
						// -------------------------------------------- //
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
 | 
						@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
 | 
				
			||||||
	public void blockMonsters(CreatureSpawnEvent event)
 | 
						public void blockMonstersAndAnimals(CreatureSpawnEvent event)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		// If a creature is spawning ...
 | 
							// First check that it's a natural spawn ..
 | 
				
			||||||
		EntityType type = event.getEntityType();
 | 
							if ( ! NATURAL_SPAWN_REASONS.contains(event.getSpawnReason())) return;
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		// ... and that creature is a monster ...
 | 
							// .. and if they can spawn here ..
 | 
				
			||||||
		if ( ! MConf.get().entityTypesMonsters.contains(type)) return;
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		// ... and the reason for the spawn is natural ...
 | 
					 | 
				
			||||||
		SpawnReason reason = event.getSpawnReason();
 | 
					 | 
				
			||||||
		if (reason != SpawnReason.NATURAL && reason != SpawnReason.JOCKEY && reason != SpawnReason.NETHER_PORTAL) return;
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		// ... and monsters are forbidden at the location ...
 | 
					 | 
				
			||||||
		Location location = event.getLocation();
 | 
							Location location = event.getLocation();
 | 
				
			||||||
		if (location == null) return;		
 | 
							if (location == null) return;		
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
@@ -1142,7 +1149,10 @@ public class EngineMain extends EngineAbstract
 | 
				
			|||||||
		Faction faction = BoardColl.get().getFactionAt(ps);
 | 
							Faction faction = BoardColl.get().getFactionAt(ps);
 | 
				
			||||||
		if (faction == null) return;
 | 
							if (faction == null) return;
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		if (faction.getFlag(MFlag.getFlagMonsters())) return;
 | 
							EntityType type = event.getEntityType();
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							if ((faction.getFlag(MFlag.getFlagMonsters()) && MConf.get().entityTypesMonsters.contains(type)) && 
 | 
				
			||||||
 | 
								(faction.getFlag(MFlag.getFlagAnimals()) && MConf.get().entityTypesAnimals.contains(type))) return;
 | 
				
			||||||
				
 | 
									
 | 
				
			||||||
		// ... block the spawn.
 | 
							// ... block the spawn.
 | 
				
			||||||
		event.setCancelled(true);
 | 
							event.setCancelled(true);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -108,6 +108,7 @@ public class FactionColl extends Coll<Faction>
 | 
				
			|||||||
		faction.setFlag(MFlag.getFlagPvp(), true);
 | 
							faction.setFlag(MFlag.getFlagPvp(), true);
 | 
				
			||||||
		faction.setFlag(MFlag.getFlagFriendlyire(), false);
 | 
							faction.setFlag(MFlag.getFlagFriendlyire(), false);
 | 
				
			||||||
		faction.setFlag(MFlag.getFlagMonsters(), true);
 | 
							faction.setFlag(MFlag.getFlagMonsters(), true);
 | 
				
			||||||
 | 
							faction.setFlag(MFlag.getFlagAnimals(), true);
 | 
				
			||||||
		faction.setFlag(MFlag.getFlagExplosions(), true);
 | 
							faction.setFlag(MFlag.getFlagExplosions(), true);
 | 
				
			||||||
		faction.setFlag(MFlag.getFlagOfflineexplosions(), true);
 | 
							faction.setFlag(MFlag.getFlagOfflineexplosions(), true);
 | 
				
			||||||
		faction.setFlag(MFlag.getFlagFirespread(), true);
 | 
							faction.setFlag(MFlag.getFlagFirespread(), true);
 | 
				
			||||||
@@ -142,6 +143,7 @@ public class FactionColl extends Coll<Faction>
 | 
				
			|||||||
		faction.setFlag(MFlag.getFlagPvp(), false);
 | 
							faction.setFlag(MFlag.getFlagPvp(), false);
 | 
				
			||||||
		faction.setFlag(MFlag.getFlagFriendlyire(), false);
 | 
							faction.setFlag(MFlag.getFlagFriendlyire(), false);
 | 
				
			||||||
		faction.setFlag(MFlag.getFlagMonsters(), false);
 | 
							faction.setFlag(MFlag.getFlagMonsters(), false);
 | 
				
			||||||
 | 
							faction.setFlag(MFlag.getFlagAnimals(), true);
 | 
				
			||||||
		faction.setFlag(MFlag.getFlagExplosions(), false);
 | 
							faction.setFlag(MFlag.getFlagExplosions(), false);
 | 
				
			||||||
		faction.setFlag(MFlag.getFlagOfflineexplosions(), false);
 | 
							faction.setFlag(MFlag.getFlagOfflineexplosions(), false);
 | 
				
			||||||
		faction.setFlag(MFlag.getFlagFirespread(), false);
 | 
							faction.setFlag(MFlag.getFlagFirespread(), false);
 | 
				
			||||||
@@ -175,6 +177,7 @@ public class FactionColl extends Coll<Faction>
 | 
				
			|||||||
		faction.setFlag(MFlag.getFlagPvp(), true);
 | 
							faction.setFlag(MFlag.getFlagPvp(), true);
 | 
				
			||||||
		faction.setFlag(MFlag.getFlagFriendlyire(), true);
 | 
							faction.setFlag(MFlag.getFlagFriendlyire(), true);
 | 
				
			||||||
		faction.setFlag(MFlag.getFlagMonsters(), true);
 | 
							faction.setFlag(MFlag.getFlagMonsters(), true);
 | 
				
			||||||
 | 
							faction.setFlag(MFlag.getFlagAnimals(), true);
 | 
				
			||||||
		faction.setFlag(MFlag.getFlagExplosions(), true);
 | 
							faction.setFlag(MFlag.getFlagExplosions(), true);
 | 
				
			||||||
		faction.setFlag(MFlag.getFlagOfflineexplosions(), true);
 | 
							faction.setFlag(MFlag.getFlagOfflineexplosions(), true);
 | 
				
			||||||
		faction.setFlag(MFlag.getFlagFirespread(), true);
 | 
							faction.setFlag(MFlag.getFlagFirespread(), true);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -596,6 +596,19 @@ public class MConf extends Entity<MConf>
 | 
				
			|||||||
		"ZOMBIE" // Minecraft 1.?
 | 
							"ZOMBIE" // Minecraft 1.?
 | 
				
			||||||
	);
 | 
						);
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
 | 
						// List of entities considered to be animals.
 | 
				
			||||||
 | 
						public BackstringEnumSet<EntityType> entityTypesAnimals = new BackstringEnumSet<EntityType>(EntityType.class,
 | 
				
			||||||
 | 
							"CHICKEN", // Minecraft 1.?
 | 
				
			||||||
 | 
							"COW", // Minecraft 1.?
 | 
				
			||||||
 | 
							"HORSE", // Minecraft 1.?
 | 
				
			||||||
 | 
							"MUSHROOM_COW", // Minecraft 1.?
 | 
				
			||||||
 | 
							"OCELOT", // Minecraft 1.?
 | 
				
			||||||
 | 
							"PIG", // Minecraft 1.?
 | 
				
			||||||
 | 
							"RABBIT", // Minecraft 1.?
 | 
				
			||||||
 | 
							"SHEEP", // Minecraft 1.?
 | 
				
			||||||
 | 
							"SQUID" // Minecraft 1.?
 | 
				
			||||||
 | 
						);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
	// -------------------------------------------- //
 | 
						// -------------------------------------------- //
 | 
				
			||||||
	// INTEGRATION: HeroChat
 | 
						// INTEGRATION: HeroChat
 | 
				
			||||||
	// -------------------------------------------- //
 | 
						// -------------------------------------------- //
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,6 +19,7 @@ public class MFlag extends Entity<MFlag> implements Prioritized, Registerable
 | 
				
			|||||||
	
 | 
						
 | 
				
			||||||
	public final static transient String ID_OPEN = "open";
 | 
						public final static transient String ID_OPEN = "open";
 | 
				
			||||||
	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_POWERLOSS = "powerloss";
 | 
						public final static transient String ID_POWERLOSS = "powerloss";
 | 
				
			||||||
	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";
 | 
				
			||||||
@@ -32,6 +33,7 @@ public class MFlag extends Entity<MFlag> implements Prioritized, Registerable
 | 
				
			|||||||
	
 | 
						
 | 
				
			||||||
	public final static transient int PRIORITY_OPEN = 1000;
 | 
						public final static transient int PRIORITY_OPEN = 1000;
 | 
				
			||||||
	public final static transient int PRIORITY_MONSTERS = 2000;
 | 
						public final static transient int PRIORITY_MONSTERS = 2000;
 | 
				
			||||||
 | 
						public final static transient int PRIORITY_ANIMALS = 2500;
 | 
				
			||||||
	public final static transient int PRIORITY_POWERLOSS = 3000;
 | 
						public final static transient int PRIORITY_POWERLOSS = 3000;
 | 
				
			||||||
	public final static transient int PRIORITY_PVP = 4000;
 | 
						public final static transient int PRIORITY_PVP = 4000;
 | 
				
			||||||
	public final static transient int PRIORITY_FRIENDLYFIRE = 5000;
 | 
						public final static transient int PRIORITY_FRIENDLYFIRE = 5000;
 | 
				
			||||||
@@ -68,6 +70,7 @@ public class MFlag extends Entity<MFlag> implements Prioritized, Registerable
 | 
				
			|||||||
	{
 | 
						{
 | 
				
			||||||
		getFlagOpen();
 | 
							getFlagOpen();
 | 
				
			||||||
		getFlagMonsters();
 | 
							getFlagMonsters();
 | 
				
			||||||
 | 
							getFlagAnimals();
 | 
				
			||||||
		getFlagPowerloss();
 | 
							getFlagPowerloss();
 | 
				
			||||||
		getFlagPvp();
 | 
							getFlagPvp();
 | 
				
			||||||
		getFlagFriendlyire();
 | 
							getFlagFriendlyire();
 | 
				
			||||||
@@ -82,6 +85,7 @@ public class MFlag extends Entity<MFlag> implements Prioritized, Registerable
 | 
				
			|||||||
	
 | 
						
 | 
				
			||||||
	public static MFlag getFlagOpen() { return getCreative(PRIORITY_OPEN, ID_OPEN, ID_OPEN, "Can the faction be joined without an invite?", "Anyone can join. No invite required.", "An invite is required to join.", false, true, true); }
 | 
						public static MFlag getFlagOpen() { return getCreative(PRIORITY_OPEN, ID_OPEN, ID_OPEN, "Can the faction be joined without an invite?", "Anyone can join. No invite required.", "An invite is required to join.", 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 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 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 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); }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user