Move enum sets to mconf instead of hardcoding them. This way perhaps other server mods can add in stuff that's useful to them.
This commit is contained in:
		@@ -1,12 +1,5 @@
 | 
				
			|||||||
package com.massivecraft.factions;
 | 
					package com.massivecraft.factions;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.Set;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import org.bukkit.Material;
 | 
					 | 
				
			||||||
import org.bukkit.entity.EntityType;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import com.massivecraft.mcore.util.MUtil;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class Const
 | 
					public class Const
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	// MStore Collection Names
 | 
						// MStore Collection Names
 | 
				
			||||||
@@ -27,61 +20,4 @@ public class Const
 | 
				
			|||||||
	public static final int MAP_WIDTH = 39;
 | 
						public static final int MAP_WIDTH = 39;
 | 
				
			||||||
	public static final char[] MAP_KEY_CHARS = "\\/#?$%=&^ABCDEFGHJKLMNOPQRSTUVWXYZ1234567890abcdeghjmnopqrsuvwxyz".toCharArray();
 | 
						public static final char[] MAP_KEY_CHARS = "\\/#?$%=&^ABCDEFGHJKLMNOPQRSTUVWXYZ1234567890abcdeghjmnopqrsuvwxyz".toCharArray();
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	// Enumerations
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	public static final Set<Material> MATERIALS_EDIT_ON_INTERACT = MUtil.set(
 | 
					 | 
				
			||||||
		Material.DIODE_BLOCK_OFF,
 | 
					 | 
				
			||||||
		Material.DIODE_BLOCK_ON,
 | 
					 | 
				
			||||||
		Material.NOTE_BLOCK,
 | 
					 | 
				
			||||||
		Material.CAULDRON,
 | 
					 | 
				
			||||||
		Material.SOIL
 | 
					 | 
				
			||||||
	);
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	public static final Set<Material> MATERIALS_EDIT_TOOLS = MUtil.set(
 | 
					 | 
				
			||||||
		Material.FIREBALL,
 | 
					 | 
				
			||||||
		Material.FLINT_AND_STEEL,
 | 
					 | 
				
			||||||
		Material.BUCKET,
 | 
					 | 
				
			||||||
		Material.WATER_BUCKET,
 | 
					 | 
				
			||||||
		Material.LAVA_BUCKET
 | 
					 | 
				
			||||||
	);
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	public static final Set<Material> MATERIALS_DOOR = MUtil.set(
 | 
					 | 
				
			||||||
		Material.WOODEN_DOOR,
 | 
					 | 
				
			||||||
		Material.TRAP_DOOR,
 | 
					 | 
				
			||||||
		Material.FENCE_GATE
 | 
					 | 
				
			||||||
	);
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	public static final Set<Material> MATERIALS_CONTAINER = MUtil.set(
 | 
					 | 
				
			||||||
		Material.DISPENSER,
 | 
					 | 
				
			||||||
		Material.CHEST,
 | 
					 | 
				
			||||||
		Material.FURNACE,
 | 
					 | 
				
			||||||
		Material.BURNING_FURNACE,
 | 
					 | 
				
			||||||
		Material.JUKEBOX,
 | 
					 | 
				
			||||||
		Material.BREWING_STAND,
 | 
					 | 
				
			||||||
		Material.ENCHANTMENT_TABLE,
 | 
					 | 
				
			||||||
		Material.ANVIL,
 | 
					 | 
				
			||||||
		Material.BEACON,
 | 
					 | 
				
			||||||
		Material.TRAPPED_CHEST,
 | 
					 | 
				
			||||||
		Material.HOPPER,
 | 
					 | 
				
			||||||
		Material.DROPPER
 | 
					 | 
				
			||||||
	);
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	public static final Set<EntityType> ENTITY_TYPES_MONSTERS = MUtil.set(
 | 
					 | 
				
			||||||
		EntityType.BLAZE,
 | 
					 | 
				
			||||||
		EntityType.CAVE_SPIDER,
 | 
					 | 
				
			||||||
		EntityType.CREEPER,
 | 
					 | 
				
			||||||
		EntityType.ENDERMAN,
 | 
					 | 
				
			||||||
		EntityType.ENDER_DRAGON,
 | 
					 | 
				
			||||||
		EntityType.GHAST,
 | 
					 | 
				
			||||||
		EntityType.GIANT,
 | 
					 | 
				
			||||||
		EntityType.MAGMA_CUBE,
 | 
					 | 
				
			||||||
		EntityType.PIG_ZOMBIE,
 | 
					 | 
				
			||||||
		EntityType.SILVERFISH,
 | 
					 | 
				
			||||||
		EntityType.SKELETON,
 | 
					 | 
				
			||||||
		EntityType.SLIME,
 | 
					 | 
				
			||||||
		EntityType.SPIDER,
 | 
					 | 
				
			||||||
		EntityType.WITCH,
 | 
					 | 
				
			||||||
		EntityType.WITHER,
 | 
					 | 
				
			||||||
		EntityType.ZOMBIE
 | 
					 | 
				
			||||||
	);
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,11 +6,14 @@ import java.util.Set;
 | 
				
			|||||||
import java.util.TreeSet;
 | 
					import java.util.TreeSet;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.bukkit.ChatColor;
 | 
					import org.bukkit.ChatColor;
 | 
				
			||||||
 | 
					import org.bukkit.Material;
 | 
				
			||||||
 | 
					import org.bukkit.entity.EntityType;
 | 
				
			||||||
import org.bukkit.event.EventPriority;
 | 
					import org.bukkit.event.EventPriority;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.massivecraft.factions.Factions;
 | 
					import com.massivecraft.factions.Factions;
 | 
				
			||||||
import com.massivecraft.factions.listeners.FactionsListenerChat;
 | 
					import com.massivecraft.factions.listeners.FactionsListenerChat;
 | 
				
			||||||
import com.massivecraft.mcore.store.Entity;
 | 
					import com.massivecraft.mcore.store.Entity;
 | 
				
			||||||
 | 
					import com.massivecraft.mcore.util.MUtil;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class MConf extends Entity<MConf>
 | 
					public class MConf extends Entity<MConf>
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@@ -176,5 +179,65 @@ public class MConf extends Entity<MConf>
 | 
				
			|||||||
	public boolean logLandUnclaims = true;
 | 
						public boolean logLandUnclaims = true;
 | 
				
			||||||
	public boolean logMoneyTransactions = true;
 | 
						public boolean logMoneyTransactions = true;
 | 
				
			||||||
	public boolean logPlayerCommands = true;
 | 
						public boolean logPlayerCommands = true;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						// -------------------------------------------- //
 | 
				
			||||||
 | 
						// ENUMERATIONS
 | 
				
			||||||
 | 
						// -------------------------------------------- //
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						public Set<Material> MATERIALS_EDIT_ON_INTERACT = MUtil.set(
 | 
				
			||||||
 | 
							Material.DIODE_BLOCK_OFF,
 | 
				
			||||||
 | 
							Material.DIODE_BLOCK_ON,
 | 
				
			||||||
 | 
							Material.NOTE_BLOCK,
 | 
				
			||||||
 | 
							Material.CAULDRON,
 | 
				
			||||||
 | 
							Material.SOIL
 | 
				
			||||||
 | 
						);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						public Set<Material> MATERIALS_EDIT_TOOLS = MUtil.set(
 | 
				
			||||||
 | 
							Material.FIREBALL,
 | 
				
			||||||
 | 
							Material.FLINT_AND_STEEL,
 | 
				
			||||||
 | 
							Material.BUCKET,
 | 
				
			||||||
 | 
							Material.WATER_BUCKET,
 | 
				
			||||||
 | 
							Material.LAVA_BUCKET
 | 
				
			||||||
 | 
						);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						public Set<Material> MATERIALS_DOOR = MUtil.set(
 | 
				
			||||||
 | 
							Material.WOODEN_DOOR,
 | 
				
			||||||
 | 
							Material.TRAP_DOOR,
 | 
				
			||||||
 | 
							Material.FENCE_GATE
 | 
				
			||||||
 | 
						);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						public Set<Material> MATERIALS_CONTAINER = MUtil.set(
 | 
				
			||||||
 | 
							Material.DISPENSER,
 | 
				
			||||||
 | 
							Material.CHEST,
 | 
				
			||||||
 | 
							Material.FURNACE,
 | 
				
			||||||
 | 
							Material.BURNING_FURNACE,
 | 
				
			||||||
 | 
							Material.JUKEBOX,
 | 
				
			||||||
 | 
							Material.BREWING_STAND,
 | 
				
			||||||
 | 
							Material.ENCHANTMENT_TABLE,
 | 
				
			||||||
 | 
							Material.ANVIL,
 | 
				
			||||||
 | 
							Material.BEACON,
 | 
				
			||||||
 | 
							Material.TRAPPED_CHEST,
 | 
				
			||||||
 | 
							Material.HOPPER,
 | 
				
			||||||
 | 
							Material.DROPPER
 | 
				
			||||||
 | 
						);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						public Set<EntityType> ENTITY_TYPES_MONSTERS = MUtil.set(
 | 
				
			||||||
 | 
							EntityType.BLAZE,
 | 
				
			||||||
 | 
							EntityType.CAVE_SPIDER,
 | 
				
			||||||
 | 
							EntityType.CREEPER,
 | 
				
			||||||
 | 
							EntityType.ENDERMAN,
 | 
				
			||||||
 | 
							EntityType.ENDER_DRAGON,
 | 
				
			||||||
 | 
							EntityType.GHAST,
 | 
				
			||||||
 | 
							EntityType.GIANT,
 | 
				
			||||||
 | 
							EntityType.MAGMA_CUBE,
 | 
				
			||||||
 | 
							EntityType.PIG_ZOMBIE,
 | 
				
			||||||
 | 
							EntityType.SILVERFISH,
 | 
				
			||||||
 | 
							EntityType.SKELETON,
 | 
				
			||||||
 | 
							EntityType.SLIME,
 | 
				
			||||||
 | 
							EntityType.SPIDER,
 | 
				
			||||||
 | 
							EntityType.WITCH,
 | 
				
			||||||
 | 
							EntityType.WITHER,
 | 
				
			||||||
 | 
							EntityType.ZOMBIE
 | 
				
			||||||
 | 
						);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -51,7 +51,6 @@ import org.bukkit.event.player.PlayerKickEvent;
 | 
				
			|||||||
import org.bukkit.event.player.PlayerMoveEvent;
 | 
					import org.bukkit.event.player.PlayerMoveEvent;
 | 
				
			||||||
import org.bukkit.event.player.PlayerRespawnEvent;
 | 
					import org.bukkit.event.player.PlayerRespawnEvent;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.massivecraft.factions.Const;
 | 
					 | 
				
			||||||
import com.massivecraft.factions.FFlag;
 | 
					import com.massivecraft.factions.FFlag;
 | 
				
			||||||
import com.massivecraft.factions.FPerm;
 | 
					import com.massivecraft.factions.FPerm;
 | 
				
			||||||
import com.massivecraft.factions.Factions;
 | 
					import com.massivecraft.factions.Factions;
 | 
				
			||||||
@@ -515,7 +514,7 @@ public class FactionsListenerMain implements Listener
 | 
				
			|||||||
	public void blockMonsters(CreatureSpawnEvent event)
 | 
						public void blockMonsters(CreatureSpawnEvent event)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		// If a monster is spawning ...
 | 
							// If a monster is spawning ...
 | 
				
			||||||
		if ( ! Const.ENTITY_TYPES_MONSTERS.contains(event.getEntityType())) return;
 | 
							if ( ! MConf.get().ENTITY_TYPES_MONSTERS.contains(event.getEntityType())) return;
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		// Check Disabled
 | 
							// Check Disabled
 | 
				
			||||||
		if (UConf.isDisabled(event.getLocation())) return;
 | 
							if (UConf.isDisabled(event.getLocation())) return;
 | 
				
			||||||
@@ -533,7 +532,7 @@ public class FactionsListenerMain implements Listener
 | 
				
			|||||||
	public void blockMonsters(EntityTargetEvent event)
 | 
						public void blockMonsters(EntityTargetEvent event)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		// If a monster ...
 | 
							// If a monster ...
 | 
				
			||||||
		if ( ! Const.ENTITY_TYPES_MONSTERS.contains(event.getEntityType())) return;
 | 
							if ( ! MConf.get().ENTITY_TYPES_MONSTERS.contains(event.getEntityType())) return;
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		// ... is targeting something ...
 | 
							// ... is targeting something ...
 | 
				
			||||||
		Entity target = event.getTarget();
 | 
							Entity target = event.getTarget();
 | 
				
			||||||
@@ -860,7 +859,7 @@ public class FactionsListenerMain implements Listener
 | 
				
			|||||||
	// TODO: Possibly incorporate pain build... 
 | 
						// TODO: Possibly incorporate pain build... 
 | 
				
			||||||
	public static boolean playerCanUseItemHere(Player player, PS ps, Material material, boolean justCheck)
 | 
						public static boolean playerCanUseItemHere(Player player, PS ps, Material material, boolean justCheck)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		if (!Const.MATERIALS_EDIT_TOOLS.contains(material)) return true;
 | 
							if (!MConf.get().MATERIALS_EDIT_TOOLS.contains(material)) return true;
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		String name = player.getName();
 | 
							String name = player.getName();
 | 
				
			||||||
		if (MConf.get().playersWhoBypassAllProtection.contains(name)) return true;
 | 
							if (MConf.get().playersWhoBypassAllProtection.contains(name)) return true;
 | 
				
			||||||
@@ -882,9 +881,9 @@ public class FactionsListenerMain implements Listener
 | 
				
			|||||||
		PS ps = PS.valueOf(block);
 | 
							PS ps = PS.valueOf(block);
 | 
				
			||||||
		Material material = block.getType();
 | 
							Material material = block.getType();
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		if (Const.MATERIALS_EDIT_ON_INTERACT.contains(material) && ! FPerm.BUILD.has(me, ps, ! justCheck)) return false;
 | 
							if (MConf.get().MATERIALS_EDIT_ON_INTERACT.contains(material) && ! FPerm.BUILD.has(me, ps, ! justCheck)) return false;
 | 
				
			||||||
		if (Const.MATERIALS_CONTAINER.contains(material) && ! FPerm.CONTAINER.has(me, ps, ! justCheck)) return false;
 | 
							if (MConf.get().MATERIALS_CONTAINER.contains(material) && ! FPerm.CONTAINER.has(me, ps, ! justCheck)) return false;
 | 
				
			||||||
		if (Const.MATERIALS_DOOR.contains(material) && ! FPerm.DOOR.has(me, ps, ! justCheck)) return false;
 | 
							if (MConf.get().MATERIALS_DOOR.contains(material) && ! FPerm.DOOR.has(me, ps, ! justCheck)) return false;
 | 
				
			||||||
		if (material == Material.STONE_BUTTON && ! FPerm.BUTTON.has(me, ps, ! justCheck)) return false;
 | 
							if (material == Material.STONE_BUTTON && ! FPerm.BUTTON.has(me, ps, ! justCheck)) return false;
 | 
				
			||||||
		if (material == Material.LEVER && ! FPerm.LEVER.has(me, ps, ! justCheck)) return false;
 | 
							if (material == Material.LEVER && ! FPerm.LEVER.has(me, ps, ! justCheck)) return false;
 | 
				
			||||||
		return true;
 | 
							return true;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user