1
0
mirror of https://e.coding.net/circlecloud/Residence.git synced 2025-11-24 21:46:16 +00:00

update ConfigManager...

Signed-off-by: 502647092 <jtb1@163.com>
This commit is contained in:
502647092
2015-09-25 11:34:38 +08:00
parent 24f01db06e
commit ce0f698e64
7 changed files with 28 additions and 71 deletions

View File

@@ -237,7 +237,7 @@ public class ConfigManager {
preventBuildInRent = config.getBoolean("Global.PreventRentModify", true);
stopOnSaveError = config.getBoolean("Global.StopOnSaveFault", true);
legacyperms = config.getBoolean("Global.LegacyPermissions", false);
namefix = config.getString("Global.ResidenceNameRegex", null);// "[^a-zA-Z0-9\\-\\_]"
namefix = config.getString("Global.ResidenceNameRegex", "[A-Za-z0-9\\u4e00-\\u9fa5\\-\\_]");// "[^a-zA-Z0-9\\-\\_]"
showIntervalMessages = config.getBoolean("Global.ShowIntervalMessages", false);
spoutEnable = config.getBoolean("Global.EnableSpout", false);
enableLeaseMoneyAccount = config.getBoolean("Global.EnableLeaseMoneyAccount", true);

View File

@@ -6,6 +6,7 @@ import java.util.Map.Entry;
import org.bukkit.event.Listener;
import org.bukkit.plugin.PluginManager;
import com.bekvon.bukkit.residence.listeners.flag.ResidenceAnimalKilling;
import com.bekvon.bukkit.residence.listeners.flag.ResidenceFlyListener;
import cn.citycraft.PluginHelper.config.FileConfig;
@@ -27,6 +28,7 @@ public class FlagManager {
flagmap = new HashMap<Boolean, Listener>();
flagmap.put(config.getBoolean("Flag.Fly"), new ResidenceFlyListener(plugin));
flagmap.put(config.getBoolean("Flag.AnimalKilling"), new ResidenceAnimalKilling(plugin));
for (final Entry<Boolean, Listener> fm : flagmap.entrySet()) {
if (fm.getKey()) {

View File

@@ -50,6 +50,7 @@ import com.bekvon.bukkit.residence.listeners.ResidencePlayerListener_1_8;
import com.bekvon.bukkit.residence.permissions.PermissionManager;
import com.bekvon.bukkit.residence.persistance.YMLSaveHelper;
import com.bekvon.bukkit.residence.protection.ClaimedResidence;
import com.bekvon.bukkit.residence.protection.EntityManager;
import com.bekvon.bukkit.residence.protection.FlagPermissions;
import com.bekvon.bukkit.residence.protection.LeaseManager;
import com.bekvon.bukkit.residence.protection.PermissionListManager;
@@ -94,6 +95,7 @@ public class Residence extends JavaPlugin {
protected Map<String, String> deleteConfirm;
protected EconomyInterface economy;
protected ResidenceEntityListener elistener;
protected EntityManager entitymanager;
protected boolean firstenable = true;
protected FlagManager fmanager;
protected PermissionManager gmanager;
@@ -156,6 +158,10 @@ public class Residence extends JavaPlugin {
return elistener;
}
public EntityManager getEntityManager() {
return entitymanager;
}
public HelpEntry getHelppages() {
return helppages;
}
@@ -369,6 +375,8 @@ public class Residence extends JavaPlugin {
imanager = new WorldItemManager(this.getConfig());
wmanager = new WorldFlagManager(this);
entitymanager = new EntityManager(this);
chatmanager = new ChatManager(this);
rentmanager = new RentManager(this);
for (final String lang : validLanguages) {

View File

@@ -14,27 +14,12 @@ import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.Bat;
import org.bukkit.entity.Chicken;
import org.bukkit.entity.Cow;
import org.bukkit.entity.Creeper;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Ghast;
import org.bukkit.entity.Horse;
import org.bukkit.entity.IronGolem;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Monster;
import org.bukkit.entity.Ocelot;
import org.bukkit.entity.Pig;
import org.bukkit.entity.Player;
import org.bukkit.entity.Projectile;
import org.bukkit.entity.Rabbit;
import org.bukkit.entity.Sheep;
import org.bukkit.entity.Slime;
import org.bukkit.entity.Snowman;
import org.bukkit.entity.Squid;
import org.bukkit.entity.Villager;
import org.bukkit.entity.Wolf;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
@@ -54,6 +39,7 @@ import org.bukkit.event.hanging.HangingPlaceEvent;
import com.bekvon.bukkit.residence.Residence;
import com.bekvon.bukkit.residence.protection.ClaimedResidence;
import com.bekvon.bukkit.residence.protection.EntityManager;
import com.bekvon.bukkit.residence.protection.FlagPermissions;
/**
@@ -61,53 +47,23 @@ import com.bekvon.bukkit.residence.protection.FlagPermissions;
* @author Administrator
*/
public class ResidenceEntityListener implements Listener {
EntityManager entitymanager;
Residence plugin;
public ResidenceEntityListener(final Residence plugin) {
this.plugin = plugin;
}
@EventHandler(priority = EventPriority.LOWEST)
public void AnimalKilling(final EntityDamageByEntityEvent event) {
final Entity damager = event.getDamager();
if ((!(damager instanceof Arrow)) && (!(damager instanceof Player))) {
return;
}
Player cause;
if ((damager instanceof Arrow) && (!(((Arrow) damager).getShooter() instanceof Player))) {
return;
} else if (damager instanceof Player) {
cause = (Player) damager;
} else {
cause = (Player) ((Arrow) damager).getShooter();
}
if (plugin.isResAdminOn(cause)) {
return;
}
final Entity entity = event.getEntity();
final ClaimedResidence res = plugin.getResidenceManager().getByLoc(entity.getLocation());
if (res != null && !res.getPermissions().playerHas(cause.getName(), "animalkilling", true)) {
if (isAnimal(entity)) {
cause.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission"));
event.setCancelled(true);
}
}
this.entitymanager = plugin.getEntityManager();
}
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
public void onCreatureSpawn(final CreatureSpawnEvent event) {
final FlagPermissions perms = plugin.getPermsByLoc(event.getLocation());
final Entity ent = event.getEntity();
if (isAnimal(ent)) {
if (entitymanager.isAnimal(ent)) {
if (!perms.has("animals", true)) {
event.setCancelled(true);
}
} else if (!perms.has("monsters", true) && isMonster(ent)) {
} else if (!perms.has("monsters", true) && entitymanager.isMonster(ent)) {
event.setCancelled(true);
}
}
@@ -238,7 +194,7 @@ public class ResidenceEntityListener implements Listener {
final ClaimedResidence res = plugin.getResidenceManager().getByLoc(loc);
if (res != null) {
if (!res.getPermissions().has("container", false)) {
if (isMonster(dmgr)) {
if (entitymanager.isMonster(dmgr)) {
event.setCancelled(true);
return;
}
@@ -407,13 +363,4 @@ public class ResidenceEntityListener implements Listener {
}
}
}
private boolean isAnimal(final Entity ent) {
return (ent instanceof Horse || ent instanceof Bat || ent instanceof Snowman || ent instanceof IronGolem || ent instanceof Ocelot || ent instanceof Pig || ent instanceof Sheep
|| ent instanceof Chicken || ent instanceof Wolf || ent instanceof Cow || ent instanceof Squid || ent instanceof Villager || (plugin.is1_8() && ent instanceof Rabbit));
}
private boolean isMonster(final Entity ent) {
return (ent instanceof Monster || ent instanceof Slime || ent instanceof Ghast);
}
}

View File

@@ -27,14 +27,8 @@ import com.bekvon.bukkit.residence.Residence;
*/
public class FlagPermissions {
public static enum FlagState {
FALSE,
INVALID,
NEITHER,
TRUE
}
protected static ArrayList<String> validAreaFlags = new ArrayList<String>();
protected static HashMap<String, ArrayList<String>> validFlagGroups = new HashMap<String, ArrayList<String>>();
protected static ArrayList<String> validFlags = new ArrayList<String>();
protected static ArrayList<String> validPlayerFlags = new ArrayList<String>();
@@ -43,7 +37,6 @@ public class FlagPermissions {
protected Map<String, Boolean> cuboidFlags;
protected Map<String, Map<String, Boolean>> groupFlags;
protected FlagPermissions parent;
protected Map<String, Map<String, Boolean>> playerFlags;
public FlagPermissions() {
@@ -139,7 +132,6 @@ public class FlagPermissions {
addFlag("beacon");
/* New flags */
addFlag("animalkilling");
addFlag("trade");
addResidenceOnlyFlag("trample");
@@ -632,4 +624,11 @@ public class FlagPermissions {
}
return def;
}
public static enum FlagState {
FALSE,
INVALID,
NEITHER,
TRUE
}
}