diff --git a/src/main/java/com/bekvon/bukkit/residence/listeners/bugfix/ResidenceBugFix.java b/src/main/java/com/bekvon/bukkit/residence/listeners/bugfix/ResidenceBugFix.java index 7c705c8..6695758 100644 --- a/src/main/java/com/bekvon/bukkit/residence/listeners/bugfix/ResidenceBugFix.java +++ b/src/main/java/com/bekvon/bukkit/residence/listeners/bugfix/ResidenceBugFix.java @@ -9,9 +9,6 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.block.BlockPhysicsEvent; -import org.bukkit.event.entity.CreatureSpawnEvent; -import org.bukkit.event.entity.EntitySpawnEvent; -import org.bukkit.event.entity.SpawnerSpawnEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.ItemStack; @@ -27,14 +24,35 @@ public class ResidenceBugFix implements Listener { plugin.getLogger().info("防刷甘蔗补丁已加载..."); plugin.getLogger().info("防刷单元补丁已加载..."); plugin.getLogger().info("防刷铁轨补丁已加载..."); - // plugin.getLogger().info("防刷生物补丁已加载..."); + plugin.getLogger().info("防刷生物补丁已加载..."); } @EventHandler - public void onPhysics(final BlockPhysicsEvent e) { - final Material mat = e.getChangedType(); - if (mat == Material.RAILS || mat == Material.POWERED_RAIL || mat == Material.ACTIVATOR_RAIL || mat == Material.DETECTOR_RAIL) { - e.setCancelled(true); + public void onBlockPlace(final PlayerInteractEvent e) { + if (e.getAction() == Action.LEFT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.PHYSICAL) { + return; + } + try { + final Player p = e.getPlayer(); + final ItemStack it = p.getItemInHand(); + if (it == null || it.getType() == Material.AIR) { + return; + } + final Block b = e.getClickedBlock(); + final ClaimedResidence res = plugin.getResidenceManager().getByLoc(b.getLocation()); + if (res == null) { + return; + } + if ((it.getType() == Material.PUMPKIN && (b.getType() == Material.SNOW_BLOCK || b.getType() == Material.IRON_BLOCK)) + || (it.getType() == Material.SKULL_ITEM && b.getType() == Material.SOUL_SAND)) { + final FlagPermissions perms = res.getPermissions(); + final String world = p.getWorld().getName(); + if (!perms.playerHas(p.getName(), world, "place", perms.playerHas(p.getName(), world, "build", false))) { + e.setCancelled(true); + p.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission") + ChatColor.DARK_RED + " 当前区域不允许放置!"); + } + } + } catch (final Exception e2) { } } @@ -73,53 +91,18 @@ public class ResidenceBugFix implements Listener { } @EventHandler - public void onSpawn(final CreatureSpawnEvent e) { - // final SpawnReason sr = e.getSpawnReason(); - // if (sr == SpawnReason.NATURAL) { - // return; - // } - // plugin.getLogger().info("=======CreatureSpawnEvent======="); - // plugin.getLogger().info(e.getEntity().getType().toString()); - // plugin.getLogger().info(e.getEntityType().toString()); - // plugin.getLogger().info(e.getSpawnReason().toString()); - // plugin.getLogger().info("=======CreatureSpawnEvent======="); - // final Location loc = e.getLocation(); - // if (sr == SpawnReason.BUILD_IRONGOLEM || sr == SpawnReason.BUILD_SNOWMAN || sr == SpawnReason.BUILD_WITHER) { - // final FlagPermissions perm = plugin.getPermsByLocForPlayer(loc, p); - // if (!perm.has("place", false)) { - // e.setCancelled(true); - // p.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission") + ChatColor.DARK_RED + " 当前区域无法建造生物!"); - // } - // } + public void onRailsPhysics(final BlockPhysicsEvent e) { + final Material mat = e.getChangedType(); + if (mat == Material.RAILS || mat == Material.POWERED_RAIL || mat == Material.ACTIVATOR_RAIL || mat == Material.DETECTOR_RAIL) { + e.setCancelled(true); + } } @EventHandler - public void onSpawn(final EntitySpawnEvent e) { - // plugin.getLogger().info("=======EntitySpawnEvent======="); - // plugin.getLogger().info(e.getEntity().getType().toString()); - // plugin.getLogger().info(e.getEntityType().toString()); - // plugin.getLogger().info(e.getLocation().toString()); - // plugin.getLogger().info("=======EntitySpawnEvent======="); - // if (e.getEntity() instanceof Player) { - // final Player p = (Player) e.getEntity(); - // final EntityType et = e.getEntityType(); - // final Location loc = e.getLocation(); - // if (et == EntityType.WITHER || et == EntityType.SNOWMAN || et == EntityType.IRON_GOLEM) { - // final FlagPermissions perm = plugin.getPermsByLocForPlayer(loc, p); - // if (!perm.has("place", false)) { - // e.setCancelled(true); - // p.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission") + ChatColor.DARK_RED + " 当前区域无法建造生物!"); + public void onSugarCanePhysics(final BlockPhysicsEvent e) { + // final Material mat = e.getChangedType(); + // if (mat == Material.SUGAR_CANE_BLOCK) { + // e.getBlock().getDrops().clear(); // } - // } - // } - } - - @EventHandler - public void onSpawn(final SpawnerSpawnEvent e) { - // plugin.getLogger().info("=======SpawnerSpawnEvent======="); - // plugin.getLogger().info(e.getEntityType().toString()); - // plugin.getLogger().info(e.getLocation().toString()); - // plugin.getLogger().info(e.getSpawner().getSpawnedType().toString()); - // plugin.getLogger().info("=======SpawnerSpawnEvent======="); } } diff --git a/src/main/java/com/bekvon/bukkit/residence/manager/ConfigManager.java b/src/main/java/com/bekvon/bukkit/residence/manager/ConfigManager.java index b0e9302..f8603b2 100644 --- a/src/main/java/com/bekvon/bukkit/residence/manager/ConfigManager.java +++ b/src/main/java/com/bekvon/bukkit/residence/manager/ConfigManager.java @@ -16,6 +16,8 @@ import org.bukkit.configuration.file.FileConfiguration; import com.bekvon.bukkit.residence.ResidenceMain; import com.bekvon.bukkit.residence.protection.FlagPermissions; +import cn.citycraft.PluginHelper.config.FileConfig; + /** * * @author Administrator @@ -214,6 +216,10 @@ public class ConfigManager { @SuppressWarnings("deprecation") private void load(final FileConfiguration config) { try { + if (!config.isConfigurationSection("Global")) { + plugin.getLogger().warning("配置文件主键丢失 恢复默认配置文件!"); + plugin.getConfig().addDefaults(new FileConfig(plugin)); + } defaultGroup = config.getString("Global.DefaultGroup", "default").toLowerCase(); adminsOnly = config.getBoolean("Global.AdminOnlyCommands", false); useLeases = config.getBoolean("Global.UseLeaseSystem", false); @@ -255,7 +261,6 @@ public class ConfigManager { if (!plugin.is1_8()) { actionBar = false; } - if (node != null) { final Set keys = node.getConfigurationSection(defaultGroup).getKeys(false); if (keys != null) { diff --git a/src/main/java/com/bekvon/bukkit/residence/protection/FlagPermissions.java b/src/main/java/com/bekvon/bukkit/residence/protection/FlagPermissions.java index 861197d..f500646 100644 --- a/src/main/java/com/bekvon/bukkit/residence/protection/FlagPermissions.java +++ b/src/main/java/com/bekvon/bukkit/residence/protection/FlagPermissions.java @@ -27,23 +27,16 @@ import com.bekvon.bukkit.residence.ResidenceMain; */ public class FlagPermissions { - public static enum FlagState { - FALSE, - INVALID, - NEITHER, - TRUE - } + protected static ResidenceMain plugin; protected static ArrayList validAreaFlags = new ArrayList(); protected static HashMap> validFlagGroups = new HashMap>(); protected static ArrayList validFlags = new ArrayList(); protected static ArrayList validPlayerFlags = new ArrayList(); final static Map matUseFlagList = new EnumMap(Material.class); - protected static ResidenceMain plugin; protected Map cuboidFlags; protected Map> groupFlags; protected FlagPermissions parent; - protected Map> playerFlags; public FlagPermissions() { @@ -634,4 +627,11 @@ public class FlagPermissions { } return def; } + + public static enum FlagState { + FALSE, + INVALID, + NEITHER, + TRUE + } } diff --git a/src/main/java/com/bekvon/bukkit/residence/protection/ResidencePermissions.java b/src/main/java/com/bekvon/bukkit/residence/protection/ResidencePermissions.java index 4d9db5c..b7e21a9 100644 --- a/src/main/java/com/bekvon/bukkit/residence/protection/ResidencePermissions.java +++ b/src/main/java/com/bekvon/bukkit/residence/protection/ResidencePermissions.java @@ -51,24 +51,30 @@ public class ResidencePermissions extends FlagPermissions { public static ResidencePermissions load(final ResidenceMain plugin, final ClaimedResidence res, final Map root) throws Exception { final ResidencePermissions newperms = new ResidencePermissions(plugin, res); newperms.owner = (String) root.get("Owner"); - if (newperms.owner == null) + if (newperms.owner == null) { newperms.owner = (String) root.get("OwnerLastKnownName"); + } if (newperms.owner == null) { plugin.getLogger().warning("发现未知所有者的领地,转换为Server Land..."); newperms.owner = "Server Land"; } newperms.world = (String) root.get("World"); FlagPermissions.load(root, newperms); - if (newperms.owner == null) - throw new Exception("错误的Owner数据..."); - if (newperms.world == null) - throw new Exception("错误的World数据..."); - if (newperms.playerFlags == null) - throw new Exception("错误的PlayerFlags数据..."); - if (newperms.groupFlags == null) - throw new Exception("错误的GroupFlags数据..."); - if (newperms.cuboidFlags == null) - throw new Exception("错误的CuboidFlags数据..."); + if (newperms.owner == null) { + throw new IllegalArgumentException("错误的Owner数据..."); + } + if (newperms.world == null) { + throw new IllegalArgumentException("错误的World数据..."); + } + if (newperms.playerFlags == null) { + throw new IllegalArgumentException("错误的PlayerFlags数据..."); + } + if (newperms.groupFlags == null) { + throw new IllegalArgumentException("错误的GroupFlags数据..."); + } + if (newperms.cuboidFlags == null) { + throw new IllegalArgumentException("错误的CuboidFlags数据..."); + } newperms.fixNames(); return newperms; } @@ -80,25 +86,33 @@ public class ResidencePermissions extends FlagPermissions { final Set> dcflags = group.getDefaultCreatorFlags(); final Set>> dgflags = group.getDefaultGroupFlags(); this.applyGlobalDefaults(); - for (final Entry next : dflags) - if (this.checkValidFlag(next.getKey(), true)) - if (next.getValue()) + for (final Entry next : dflags) { + if (this.checkValidFlag(next.getKey(), true)) { + if (next.getValue()) { this.setFlag(next.getKey(), FlagState.TRUE); - else + } else { this.setFlag(next.getKey(), FlagState.FALSE); - for (final Entry next : dcflags) - if (this.checkValidFlag(next.getKey(), false)) - if (next.getValue()) + } + } + } + for (final Entry next : dcflags) { + if (this.checkValidFlag(next.getKey(), false)) { + if (next.getValue()) { this.setPlayerFlag(owner, next.getKey(), FlagState.TRUE); - else + } else { this.setPlayerFlag(owner, next.getKey(), FlagState.FALSE); + } + } + } for (final Entry> entry : dgflags) { final Map value = entry.getValue(); - for (final Entry flag : value.entrySet()) - if (flag.getValue()) + for (final Entry flag : value.entrySet()) { + if (flag.getValue()) { this.setGroupFlag(entry.getKey(), flag.getKey(), FlagState.TRUE); - else + } else { this.setGroupFlag(entry.getKey(), flag.getKey(), FlagState.FALSE); + } + } } } @@ -106,8 +120,9 @@ public class ResidencePermissions extends FlagPermissions { if (this.hasResidencePermission(player, true) || resadmin) { this.applyDefaultFlags(); player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("FlagsDefault")); - } else + } else { player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("NoPermission")); + } } public void applyGlobalDefaults() { @@ -115,22 +130,29 @@ public class ResidencePermissions extends FlagPermissions { final FlagPermissions gRD = plugin.getConfigManager().getGlobalResidenceDefaultFlags(); final FlagPermissions gCD = plugin.getConfigManager().getGlobalCreatorDefaultFlags(); final Map gGD = plugin.getConfigManager().getGlobalGroupDefaultFlags(); - for (final Entry entry : gRD.cuboidFlags.entrySet()) - if (entry.getValue()) + for (final Entry entry : gRD.cuboidFlags.entrySet()) { + if (entry.getValue()) { this.setFlag(entry.getKey(), FlagState.TRUE); - else + } else { this.setFlag(entry.getKey(), FlagState.FALSE); - for (final Entry entry : gCD.cuboidFlags.entrySet()) - if (entry.getValue()) + } + } + for (final Entry entry : gCD.cuboidFlags.entrySet()) { + if (entry.getValue()) { this.setPlayerFlag(owner, entry.getKey(), FlagState.TRUE); - else + } else { this.setPlayerFlag(owner, entry.getKey(), FlagState.FALSE); - for (final Entry entry : gGD.entrySet()) - for (final Entry flag : entry.getValue().cuboidFlags.entrySet()) - if (flag.getValue()) + } + } + for (final Entry entry : gGD.entrySet()) { + for (final Entry flag : entry.getValue().cuboidFlags.entrySet()) { + if (flag.getValue()) { this.setGroupFlag(entry.getKey(), flag.getKey(), FlagState.TRUE); - else + } else { this.setGroupFlag(entry.getKey(), flag.getKey(), FlagState.FALSE); + } + } + } } public void applyTemplate(final Player player, final FlagPermissions list, boolean resadmin) { @@ -139,32 +161,44 @@ public class ResidencePermissions extends FlagPermissions { player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); return; } - } else + } else { resadmin = true; + } final PermissionGroup group = plugin.getPermissionManager().getGroup(owner, world); - for (final Entry flag : list.cuboidFlags.entrySet()) - if (group.hasFlagAccess(flag.getKey()) || resadmin) + for (final Entry flag : list.cuboidFlags.entrySet()) { + if (group.hasFlagAccess(flag.getKey()) || resadmin) { this.cuboidFlags.put(flag.getKey(), flag.getValue()); - else if (player != null) + } else if (player != null) { player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagSetDeny", ChatColor.YELLOW + flag.getKey() + ChatColor.RED)); - for (final Entry> plists : list.playerFlags.entrySet()) - for (final Entry flag : plists.getValue().entrySet()) + } + } + for (final Entry> plists : list.playerFlags.entrySet()) { + for (final Entry flag : plists.getValue().entrySet()) { if (group.hasFlagAccess(flag.getKey()) || resadmin) { - if (!this.playerFlags.containsKey(plists.getKey())) + if (!this.playerFlags.containsKey(plists.getKey())) { this.playerFlags.put(plists.getKey(), Collections.synchronizedMap(new HashMap())); + } this.playerFlags.get(plists.getKey()).put(flag.getKey(), flag.getValue()); - } else if (player != null) + } else if (player != null) { player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagSetDeny", ChatColor.YELLOW + flag.getKey() + ChatColor.RED)); - for (final Entry> glists : list.groupFlags.entrySet()) - for (final Entry flag : glists.getValue().entrySet()) + } + } + } + for (final Entry> glists : list.groupFlags.entrySet()) { + for (final Entry flag : glists.getValue().entrySet()) { if (group.hasFlagAccess(flag.getKey()) || resadmin) { - if (!this.groupFlags.containsKey(glists.getKey())) + if (!this.groupFlags.containsKey(glists.getKey())) { this.groupFlags.put(glists.getKey(), Collections.synchronizedMap(new HashMap())); + } this.groupFlags.get(glists.getKey()).put(flag.getKey(), flag.getValue()); - } else if (player != null) + } else if (player != null) { player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagSetDeny", ChatColor.YELLOW + flag.getKey() + ChatColor.RED)); - if (player != null) + } + } + } + if (player != null) { player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("PermissionsApply")); + } } public void fixNames() { @@ -172,8 +206,9 @@ public class ResidencePermissions extends FlagPermissions { final Iterator>> it = playerFlags.entrySet().iterator(); while (it.hasNext()) { final String name = it.next().getKey(); - if (!name.equals(name.toLowerCase())) + if (!name.equals(name.toLowerCase())) { fixNames.add(name); + } } for (final String name : fixNames) { final Map get = playerFlags.get(name); @@ -194,8 +229,9 @@ public class ResidencePermissions extends FlagPermissions { public boolean groupHas(final String group, final String flag, final boolean def) { final ResidenceFlagCheckEvent fc = new ResidenceFlagCheckEvent(residence, flag, FlagType.GROUP, group, def); pm.callEvent(fc); - if (fc.isOverriden()) + if (fc.isOverriden()) { return fc.getOverrideValue(); + } return super.groupHas(group, flag, def); } @@ -203,8 +239,9 @@ public class ResidencePermissions extends FlagPermissions { public boolean has(final String flag, final boolean def) { final ResidenceFlagCheckEvent fc = new ResidenceFlagCheckEvent(residence, flag, FlagType.RESIDENCE, null, def); pm.callEvent(fc); - if (fc.isOverriden()) + if (fc.isOverriden()) { return fc.getOverrideValue(); + } return super.has(flag, def); } @@ -216,17 +253,20 @@ public class ResidencePermissions extends FlagPermissions { if (plugin.getConfigManager().enabledRentSystem()) { final String resname = residence.getName(); if (plugin.getRentManager().isRented(resname)) { - if (requireOwner) + if (requireOwner) { return false; + } final String renter = plugin.getRentManager().getRentingPlayer(resname); - if (player.getName().equalsIgnoreCase(renter)) + if (player.getName().equalsIgnoreCase(renter)) { return true; - else + } else { return (playerHas(player.getName(), "admin", false)); + } } } - if (requireOwner) + if (requireOwner) { return (owner.equalsIgnoreCase(player.getName())); + } return (playerHas(player.getName(), "admin", false) || owner.equalsIgnoreCase(player.getName())); } @@ -238,8 +278,9 @@ public class ResidencePermissions extends FlagPermissions { public boolean playerHas(final String player, final String world, final String flag, final boolean def) { final ResidenceFlagCheckEvent fc = new ResidenceFlagCheckEvent(residence, flag, FlagType.PLAYER, player, def); pm.callEvent(fc); - if (fc.isOverriden()) + if (fc.isOverriden()) { return fc.getOverrideValue(); + } return super.playerHas(player, world, flag, def); } @@ -247,8 +288,9 @@ public class ResidencePermissions extends FlagPermissions { if (this.hasResidencePermission(player, false) || resadmin) { final ResidenceFlagChangeEvent fc = new ResidenceFlagChangeEvent(residence, player, "ALL", ResidenceFlagChangeEvent.FlagType.GROUP, FlagState.NEITHER, null); pm.callEvent(fc); - if (fc.isCancelled()) + if (fc.isCancelled()) { return false; + } super.removeAllGroupFlags(group); player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("FlagSet")); return true; @@ -260,8 +302,9 @@ public class ResidencePermissions extends FlagPermissions { if (this.hasResidencePermission(player, false) || resadmin) { final ResidenceFlagChangeEvent fc = new ResidenceFlagChangeEvent(residence, player, "ALL", ResidenceFlagChangeEvent.FlagType.RESIDENCE, FlagState.NEITHER, null); pm.callEvent(fc); - if (fc.isCancelled()) + if (fc.isCancelled()) { return false; + } super.removeAllPlayerFlags(targetPlayer); player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("FlagSet")); return true; @@ -278,14 +321,16 @@ public class ResidencePermissions extends FlagPermissions { } public boolean setFlag(final Player player, final String flag, final String flagstate, final boolean resadmin) { - if (validFlagGroups.containsKey(flag)) + if (validFlagGroups.containsKey(flag)) { return this.setFlagGroup(player, flag, flagstate, resadmin); + } final FlagState state = FlagPermissions.stringToFlagState(flagstate); if (checkCanSetFlag(player, flag, state, true, resadmin)) { final ResidenceFlagChangeEvent fc = new ResidenceFlagChangeEvent(residence, player, flag, ResidenceFlagChangeEvent.FlagType.RESIDENCE, state, null); pm.callEvent(fc); - if (fc.isCancelled()) + if (fc.isCancelled()) { return false; + } if (super.setFlag(flag, state)) { player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("FlagSet")); return true; @@ -298,8 +343,9 @@ public class ResidencePermissions extends FlagPermissions { public boolean setFlag(final String flag, final FlagState state) { final ResidenceFlagChangeEvent fc = new ResidenceFlagChangeEvent(residence, null, flag, ResidenceFlagChangeEvent.FlagType.RESIDENCE, state, null); pm.callEvent(fc); - if (fc.isCancelled()) + if (fc.isCancelled()) { return false; + } return super.setFlag(flag, state); } @@ -307,9 +353,11 @@ public class ResidencePermissions extends FlagPermissions { if (ResidencePermissions.validFlagGroups.containsKey(flaggroup)) { final ArrayList flags = ResidencePermissions.validFlagGroups.get(flaggroup); boolean changed = false; - for (final String flag : flags) - if (this.setFlag(player, flag, state, resadmin)) + for (final String flag : flags) { + if (this.setFlag(player, flag, state, resadmin)) { changed = true; + } + } return changed; } return false; @@ -319,9 +367,11 @@ public class ResidencePermissions extends FlagPermissions { if (ResidencePermissions.validFlagGroups.containsKey(flaggroup)) { final ArrayList flags = ResidencePermissions.validFlagGroups.get(flaggroup); boolean changed = false; - for (final String flag : flags) - if (this.setGroupFlag(player, group, flag, state, resadmin)) + for (final String flag : flags) { + if (this.setGroupFlag(player, group, flag, state, resadmin)) { changed = true; + } + } return changed; } return false; @@ -331,9 +381,11 @@ public class ResidencePermissions extends FlagPermissions { if (ResidencePermissions.validFlagGroups.containsKey(flaggroup)) { final ArrayList flags = ResidencePermissions.validFlagGroups.get(flaggroup); boolean changed = false; - for (final String flag : flags) - if (this.setPlayerFlag(player, target, flag, state, resadmin)) + for (final String flag : flags) { + if (this.setPlayerFlag(player, target, flag, state, resadmin)) { changed = true; + } + } return changed; } return false; @@ -341,15 +393,17 @@ public class ResidencePermissions extends FlagPermissions { public boolean setGroupFlag(final Player player, String group, final String flag, final String flagstate, final boolean resadmin) { group = group.toLowerCase(); - if (validFlagGroups.containsKey(flag)) + if (validFlagGroups.containsKey(flag)) { return this.setFlagGroupOnGroup(player, flag, group, flagstate, resadmin); + } final FlagState state = FlagPermissions.stringToFlagState(flagstate); - if (checkCanSetFlag(player, flag, state, false, resadmin)) + if (checkCanSetFlag(player, flag, state, false, resadmin)) { if (plugin.getPermissionManager().hasGroup(group)) { final ResidenceFlagChangeEvent fc = new ResidenceFlagChangeEvent(residence, player, flag, ResidenceFlagChangeEvent.FlagType.GROUP, state, group); pm.callEvent(fc); - if (fc.isCancelled()) + if (fc.isCancelled()) { return false; + } if (super.setGroupFlag(group, flag, state)) { player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("FlagSet")); return true; @@ -358,6 +412,7 @@ public class ResidencePermissions extends FlagPermissions { player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidGroup")); return false; } + } return false; } @@ -365,8 +420,9 @@ public class ResidencePermissions extends FlagPermissions { public boolean setGroupFlag(final String group, final String flag, final FlagState state) { final ResidenceFlagChangeEvent fc = new ResidenceFlagChangeEvent(residence, null, flag, ResidenceFlagChangeEvent.FlagType.GROUP, state, group); pm.callEvent(fc); - if (fc.isCancelled()) + if (fc.isCancelled()) { return false; + } return super.setGroupFlag(group, flag, state); } @@ -374,19 +430,22 @@ public class ResidencePermissions extends FlagPermissions { final ResidenceOwnerChangeEvent ownerchange = new ResidenceOwnerChangeEvent(residence, newOwner); pm.callEvent(ownerchange); owner = newOwner; - if (resetFlags) + if (resetFlags) { this.applyDefaultFlags(); + } } public boolean setPlayerFlag(final Player player, final String targetPlayer, final String flag, final String flagstate, final boolean resadmin) { - if (validFlagGroups.containsKey(flag)) + if (validFlagGroups.containsKey(flag)) { return this.setFlagGroupOnPlayer(player, targetPlayer, flag, flagstate, resadmin); + } final FlagState state = FlagPermissions.stringToFlagState(flagstate); if (checkCanSetFlag(player, flag, state, false, resadmin)) { final ResidenceFlagChangeEvent fc = new ResidenceFlagChangeEvent(residence, player, flag, ResidenceFlagChangeEvent.FlagType.PLAYER, state, targetPlayer); pm.callEvent(fc); - if (fc.isCancelled()) + if (fc.isCancelled()) { return false; + } if (super.setPlayerFlag(targetPlayer, flag, state)) { player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("FlagSet")); return true; @@ -399,8 +458,9 @@ public class ResidencePermissions extends FlagPermissions { public boolean setPlayerFlag(final String player, final String flag, final FlagState state) { final ResidenceFlagChangeEvent fc = new ResidenceFlagChangeEvent(residence, null, flag, ResidenceFlagChangeEvent.FlagType.PLAYER, state, player); pm.callEvent(fc); - if (fc.isCancelled()) + if (fc.isCancelled()) { return false; + } return super.setPlayerFlag(player, flag, state); }