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:
parent
844dc6c420
commit
fa0a2fb90a
@ -1,12 +1,5 @@
|
||||
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
|
||||
{
|
||||
// MStore Collection Names
|
||||
@ -27,61 +20,4 @@ public class Const
|
||||
public static final int MAP_WIDTH = 39;
|
||||
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 org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.event.EventPriority;
|
||||
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.listeners.FactionsListenerChat;
|
||||
import com.massivecraft.mcore.store.Entity;
|
||||
import com.massivecraft.mcore.util.MUtil;
|
||||
|
||||
public class MConf extends Entity<MConf>
|
||||
{
|
||||
@ -177,4 +180,64 @@ public class MConf extends Entity<MConf>
|
||||
public boolean logMoneyTransactions = 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.PlayerRespawnEvent;
|
||||
|
||||
import com.massivecraft.factions.Const;
|
||||
import com.massivecraft.factions.FFlag;
|
||||
import com.massivecraft.factions.FPerm;
|
||||
import com.massivecraft.factions.Factions;
|
||||
@ -515,7 +514,7 @@ public class FactionsListenerMain implements Listener
|
||||
public void blockMonsters(CreatureSpawnEvent event)
|
||||
{
|
||||
// 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
|
||||
if (UConf.isDisabled(event.getLocation())) return;
|
||||
@ -533,7 +532,7 @@ public class FactionsListenerMain implements Listener
|
||||
public void blockMonsters(EntityTargetEvent event)
|
||||
{
|
||||
// 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 ...
|
||||
Entity target = event.getTarget();
|
||||
@ -860,7 +859,7 @@ public class FactionsListenerMain implements Listener
|
||||
// TODO: Possibly incorporate pain build...
|
||||
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();
|
||||
if (MConf.get().playersWhoBypassAllProtection.contains(name)) return true;
|
||||
@ -882,9 +881,9 @@ public class FactionsListenerMain implements Listener
|
||||
PS ps = PS.valueOf(block);
|
||||
Material material = block.getType();
|
||||
|
||||
if (Const.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 (Const.MATERIALS_DOOR.contains(material) && ! FPerm.DOOR.has(me, ps, ! justCheck)) return false;
|
||||
if (MConf.get().MATERIALS_EDIT_ON_INTERACT.contains(material) && ! FPerm.BUILD.has(me, ps, ! justCheck)) return false;
|
||||
if (MConf.get().MATERIALS_CONTAINER.contains(material) && ! FPerm.CONTAINER.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.LEVER && ! FPerm.LEVER.has(me, ps, ! justCheck)) return false;
|
||||
return true;
|
||||
|
Loading…
Reference in New Issue
Block a user