From ffd407654972501f1be6bb1b843d2fca7e644d81 Mon Sep 17 00:00:00 2001 From: 502647092 Date: Sat, 9 Jan 2016 13:11:07 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=E4=BB=A3=E7=A0=81=20?= =?UTF-8?q?=E5=B0=9D=E8=AF=95=E5=85=BC=E5=AE=B9172...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 502647092 --- .../cn/citycraft/Residence/ResidenceMain.java | 1287 ++++++------ .../citycraft/Residence/chat/ChatChannel.java | 80 +- .../citycraft/Residence/chat/ChatManager.java | 52 +- .../Residence/commandmain/CommandRc.java | 66 +- .../Residence/commandmain/CommandRes.java | 206 +- .../Residence/commandmain/CommandResLoad.java | 38 +- .../commandmain/CommandResReload.java | 38 +- .../commandmain/CommandResWorld.java | 34 +- .../Residence/commandsub/CommandArea.java | 132 +- .../Residence/commandsub/CommandBank.java | 68 +- .../Residence/commandsub/CommandCheck.java | 66 +- .../commandsub/CommandCheckSelf.java | 44 +- .../commandsub/CommandClearFlags.java | 52 +- .../Residence/commandsub/CommandCompass.java | 62 +- .../Residence/commandsub/CommandConfirm.java | 56 +- .../Residence/commandsub/CommandCreate.java | 54 +- .../Residence/commandsub/CommandCurrent.java | 36 +- .../Residence/commandsub/CommandDefault.java | 32 +- .../Residence/commandsub/CommandGive.java | 30 +- .../Residence/commandsub/CommandGset.java | 64 +- .../Residence/commandsub/CommandInfo.java | 48 +- .../Residence/commandsub/CommandKick.java | 70 +- .../Residence/commandsub/CommandLease.java | 146 +- .../Residence/commandsub/CommandLimits.java | 24 +- .../Residence/commandsub/CommandList.java | 68 +- .../Residence/commandsub/CommandListAll.java | 38 +- .../commandsub/CommandListAllHidden.java | 50 +- .../commandsub/CommandListHidden.java | 64 +- .../Residence/commandsub/CommandLists.java | 118 +- .../Residence/commandsub/CommandLset.java | 92 +- .../Residence/commandsub/CommandMarket.java | 388 ++-- .../Residence/commandsub/CommandMaterial.java | 38 +- .../Residence/commandsub/CommandMessage.java | 58 +- .../Residence/commandsub/CommandMirror.java | 28 +- .../Residence/commandsub/CommandPset.java | 96 +- .../Residence/commandsub/CommandRemove.java | 156 +- .../commandsub/CommandRemoveAll.java | 44 +- .../Residence/commandsub/CommandRename.java | 28 +- .../commandsub/CommandRenameArea.java | 40 +- .../Residence/commandsub/CommandSelect.java | 276 +-- .../Residence/commandsub/CommandServer.java | 50 +- .../Residence/commandsub/CommandSet.java | 60 +- .../Residence/commandsub/CommandSetOwner.java | 58 +- .../Residence/commandsub/CommandSubList.java | 68 +- .../Residence/commandsub/CommandSubZone.java | 88 +- .../Residence/commandsub/CommandTool.java | 30 +- .../Residence/commandsub/CommandTp.java | 40 +- .../Residence/commandsub/CommandTpSet.java | 38 +- .../Residence/commandsub/CommandUnStuck.java | 50 +- .../Residence/commandsub/CommandVersion.java | 52 +- .../Residence/economy/EconomyInterface.java | 5 + .../economy/EssentialsEcoAdapter.java | 156 +- .../Residence/economy/ResidenceBank.java | 126 +- .../Residence/economy/TransactionManager.java | 454 ++--- .../Residence/economy/rent/RentManager.java | 760 ++++---- .../Residence/economy/rent/RentableLand.java | 6 +- .../Residence/economy/rent/RentedLand.java | 10 +- .../Residence/itemlist/ItemList.java | 284 +-- .../Residence/itemlist/ResidenceItemList.java | 58 +- .../Residence/itemlist/WorldItemList.java | 38 +- .../Residence/itemlist/WorldItemManager.java | 8 +- .../listeners/ResidenceBlockListener.java | 346 ++-- .../listeners/ResidenceEntityListener.java | 602 +++--- .../listeners/ResidencePlayerListener.java | 933 ++++----- .../ResidencePlayerListener_1_8.java | 42 +- .../listeners/bugfix/ResidenceBugFix.java | 208 +- .../Residence/manager/ConfigManager.java | 430 ++-- .../Residence/manager/EntityManager.java | 22 +- .../permissions/PermissionGroup.java | 512 ++--- .../permissions/PermissionManager.java | 228 +-- .../permissions/PermissionsInterface.java | 1 + .../Residence/persistance/YMLSaveHelper.java | 24 +- .../Residence/runnable/AutoSaveTask.java | 28 +- .../Residence/runnable/HealTask.java | 50 +- .../Residence/runnable/LeaseTask.java | 22 +- .../Residence/runnable/RentTask.java | 22 +- .../Residence/runnable/TaskManager.java | 26 +- .../Residence/selection/SelectionManager.java | 560 +++--- .../citycraft/Residence/selection/WECUI.java | 10 +- .../selection/WorldEditSelectionManager.java | 146 +- .../cn/citycraft/Residence/text/Language.java | 108 +- .../Residence/text/help/HelpEntry.java | 302 +-- .../Residence/text/help/InformationPager.java | 72 +- .../citycraft/Residence/utils/DataBackup.java | 158 +- .../vaultinterface/ResidenceVaultAdapter.java | 208 +- .../bekvon/bukkit/residence/Residence.java | 180 +- .../event/CancellableResidenceEvent.java | 25 +- .../CancellableResidencePlayerEvent.java | 27 +- .../CancellableResidencePlayerFlagEvent.java | 25 +- .../event/ResidenceChangedEvent.java | 29 +- .../residence/event/ResidenceChatEvent.java | 23 +- .../event/ResidenceCommandEvent.java | 78 +- .../event/ResidenceCreationEvent.java | 18 +- .../residence/event/ResidenceDeleteEvent.java | 12 +- .../residence/event/ResidenceEvent.java | 43 +- .../event/ResidenceFlagChangeEvent.java | 7 +- .../event/ResidenceFlagCheckEvent.java | 64 +- .../residence/event/ResidenceFlagEvent.java | 22 +- .../event/ResidenceOwnerChangeEvent.java | 10 +- .../residence/event/ResidencePlayerEvent.java | 42 +- .../event/ResidencePlayerEventInterface.java | 2 + .../event/ResidencePlayerFlagEvent.java | 40 +- .../residence/event/ResidenceRenameEvent.java | 42 +- .../residence/event/ResidenceRentEvent.java | 16 +- .../residence/event/ResidenceTPEvent.java | 13 +- .../protection/ClaimedResidence.java | 1721 +++++++++-------- .../residence/protection/CuboidArea.java | 334 ++-- .../residence/protection/FlagPermissions.java | 1100 +++++------ .../residence/protection/LeaseManager.java | 380 ++-- .../protection/PermissionListManager.java | 214 +- .../protection/ResidenceManager.java | 1320 ++++++------- .../protection/ResidencePermissions.java | 856 ++++---- .../protection/WorldFlagManager.java | 206 +- 113 files changed, 9350 insertions(+), 9365 deletions(-) diff --git a/src/main/java/cn/citycraft/Residence/ResidenceMain.java b/src/main/java/cn/citycraft/Residence/ResidenceMain.java index 4bf4256..9ac1710 100644 --- a/src/main/java/cn/citycraft/Residence/ResidenceMain.java +++ b/src/main/java/cn/citycraft/Residence/ResidenceMain.java @@ -44,6 +44,7 @@ import com.earth2me.essentials.Essentials; import cn.citycraft.PluginHelper.commands.HandlerMainCommand; import cn.citycraft.PluginHelper.config.FileConfig; +import cn.citycraft.PluginHelper.utils.CompatibleUtil; import cn.citycraft.PluginHelper.utils.VersionChecker; import cn.citycraft.Residence.chat.ChatManager; import cn.citycraft.Residence.commandmain.CommandRc; @@ -85,709 +86,709 @@ import cn.citycraft.Residence.vaultinterface.ResidenceVaultAdapter; */ public class ResidenceMain extends JavaPlugin { - public final static int saveVersion = 1; - public final static String[] validLanguages = { "English", "Chinese" }; - public final static Pattern VER_REGEX = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)"); - protected static ResidenceMain instance; + public final static int saveVersion = 1; + public final static String[] validLanguages = { "English", "Chinese" }; + public final static Pattern VER_REGEX = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)"); + protected static ResidenceMain instance; - private ConfigManager cmanager; - private boolean vergt1_8; + private ConfigManager cmanager; + private boolean vergt1_8; - protected DataBackup backup; - protected ResidenceBlockListener blistener; - protected ChatManager chatmanager; - protected FileConfig config; - protected File dataFolder; - protected Map deleteConfirm; - protected EconomyInterface economy; - protected ResidenceEntityListener elistener; - protected EntityManager entitymanager; - protected PermissionManager gmanager; - protected HandlerMainCommand hdmcnd; - protected HelpEntry helppages; - protected WorldItemManager imanager; - protected boolean init; - protected Language language; - protected LeaseManager leasemanager; - protected ResidencePlayerListener plistener; - protected ResidencePlayerListener_1_8 plistener1_8; - protected PermissionListManager pmanager; - protected RentManager rentmanager; - protected List resadminToggle; - protected ResidenceManager rmanager; - protected SelectionManager smanager; - protected TaskManager taskmanager; - protected TransactionManager tmanager; - protected boolean useWorldEdit; - protected WorldFlagManager wmanager; + protected DataBackup backup; + protected ResidenceBlockListener blistener; + protected ChatManager chatmanager; + protected FileConfig config; + protected File dataFolder; + protected Map deleteConfirm; + protected EconomyInterface economy; + protected ResidenceEntityListener elistener; + protected EntityManager entitymanager; + protected PermissionManager gmanager; + protected HandlerMainCommand hdmcnd; + protected HelpEntry helppages; + protected WorldItemManager imanager; + protected boolean init; + protected Language language; + protected LeaseManager leasemanager; + protected ResidencePlayerListener plistener; + protected ResidencePlayerListener_1_8 plistener1_8; + protected PermissionListManager pmanager; + protected RentManager rentmanager; + protected List resadminToggle; + protected ResidenceManager rmanager; + protected SelectionManager smanager; + protected TaskManager taskmanager; + protected TransactionManager tmanager; + protected boolean useWorldEdit; + protected WorldFlagManager wmanager; - public static ResidenceMain getInstance() { - return instance; - } + public static ResidenceMain getInstance() { + return instance; + } - public void csm(final String... msgs) { - for (final String msg : msgs) { - Bukkit.getConsoleSender().sendMessage("§6[§a领地插件§6]§r " + msg); - } - } + public void csm(final String... msgs) { + for (final String msg : msgs) { + Bukkit.getConsoleSender().sendMessage("§6[§a领地插件§6]§r " + msg); + } + } - public DataBackup getBackup() { - return backup; - } + public DataBackup getBackup() { + return backup; + } - public ResidenceBlockListener getBlockListener() { - return blistener; - } + public ResidenceBlockListener getBlockListener() { + return blistener; + } - public ChatManager getChatManager() { - return chatmanager; - } + public ChatManager getChatManager() { + return chatmanager; + } - @Override - public FileConfiguration getConfig() { - return config; - } + @Override + public FileConfiguration getConfig() { + return config; + } - public ConfigManager getConfigManager() { - return cmanager; - } + public ConfigManager getConfigManager() { + return cmanager; + } - public File getDataLocation() { - return dataFolder; - } + public File getDataLocation() { + return dataFolder; + } - public Map getDeleteConfirm() { - return deleteConfirm; - } + public Map getDeleteConfirm() { + return deleteConfirm; + } - public EconomyInterface getEconomyManager() { - return economy; - } + public EconomyInterface getEconomyManager() { + return economy; + } - public ResidenceEntityListener getEntityListener() { - return elistener; - } + public ResidenceEntityListener getEntityListener() { + return elistener; + } - public EntityManager getEntityManager() { - return entitymanager; - } + public EntityManager getEntityManager() { + return entitymanager; + } - public HelpEntry getHelppages() { - return helppages; - } + public HelpEntry getHelppages() { + return helppages; + } - public WorldItemManager getItemManager() { - return imanager; - } + public WorldItemManager getItemManager() { + return imanager; + } - public Language getLanguage() { - if (language == null) { - language = new Language(); - } - return language; - } + public Language getLanguage() { + if (language == null) { + language = new Language(); + } + return language; + } - public LeaseManager getLeaseManager() { - return leasemanager; - } + public LeaseManager getLeaseManager() { + return leasemanager; + } - public PermissionListManager getPermissionListManager() { - return pmanager; - } + public PermissionListManager getPermissionListManager() { + return pmanager; + } - public PermissionManager getPermissionManager() { - return gmanager; - } + public PermissionManager getPermissionManager() { + return gmanager; + } - public FlagPermissions getPermsByLoc(final Location loc) { - final ClaimedResidence res = rmanager.getByLoc(loc); - if (res != null) { - return res.getPermissions(); - } - return wmanager.getPerms(loc.getWorld().getName()); - } + public FlagPermissions getPermsByLoc(final Location loc) { + final ClaimedResidence res = rmanager.getByLoc(loc); + if (res != null) { + return res.getPermissions(); + } + return wmanager.getPerms(loc.getWorld().getName()); + } - public FlagPermissions getPermsByLocForPlayer(final Location loc, final Player player) { - final ClaimedResidence res = rmanager.getByLoc(loc); - if (res != null) { - return res.getPermissions(); - } else if (player != null) { - return wmanager.getPerms(player); - } else { - return wmanager.getPerms(loc.getWorld().getName()); - } - } + public FlagPermissions getPermsByLocForPlayer(final Location loc, final Player player) { + final ClaimedResidence res = rmanager.getByLoc(loc); + if (res != null) { + return res.getPermissions(); + } else if (player != null) { + return wmanager.getPerms(player); + } else { + return wmanager.getPerms(loc.getWorld().getName()); + } + } - public ResidencePlayerListener getPlayerListener() { - return plistener; - } + public ResidencePlayerListener getPlayerListener() { + return plistener; + } - public RentManager getRentManager() { - return rentmanager; - } + public RentManager getRentManager() { + return rentmanager; + } - public List getResadminToggle() { - return resadminToggle; - } + public List getResadminToggle() { + return resadminToggle; + } - public ResidenceManager getResidenceManager() { - return rmanager; - } + public ResidenceManager getResidenceManager() { + return rmanager; + } - public SelectionManager getSelectionManager() { - return smanager; - } + public SelectionManager getSelectionManager() { + return smanager; + } - public TransactionManager getTransactionManager() { - return tmanager; - } + public TransactionManager getTransactionManager() { + return tmanager; + } - public WorldFlagManager getWorldFlags() { - return wmanager; - } + public WorldFlagManager getWorldFlags() { + return wmanager; + } - public boolean isGt1_8() { - return vergt1_8; - } + public boolean isGt1_8() { + return vergt1_8; + } - public boolean isInit() { - return init; - } + public boolean isInit() { + return init; + } - public boolean isResAdminOn(final Player player) { - if (resadminToggle.contains(player.getName())) { - return true; - } - return false; - } + public boolean isResAdminOn(final Player player) { + if (resadminToggle.contains(player.getName())) { + return true; + } + return false; + } - public boolean isResAdminOn(final String player) { - if (resadminToggle.contains(player.toLowerCase())) { - return true; - } - return false; - } + public boolean isResAdminOn(final String player) { + if (resadminToggle.contains(player.toLowerCase())) { + return true; + } + return false; + } - public boolean isUseWorldEdit() { - return useWorldEdit; - } + public boolean isUseWorldEdit() { + return useWorldEdit; + } - public void loadLang(final File langFile) throws FileNotFoundException, IOException, InvalidConfigurationException { - final FileConfig langconfig = new FileConfig(this, langFile); - helppages = HelpEntry.parseHelp(this, langconfig, "CommandHelp"); - HelpEntry.setLinesPerPage(langconfig.getInt("HelpLinesPerPage", 7)); - InformationPager.setLinesPerPage(langconfig.getInt("HelpLinesPerPage", 7)); - language = Language.parseText(langconfig, "Language"); - } + public void loadLang(final File langFile) throws FileNotFoundException, IOException, InvalidConfigurationException { + final FileConfig langconfig = new FileConfig(this, langFile); + helppages = HelpEntry.parseHelp(this, langconfig, "CommandHelp"); + HelpEntry.setLinesPerPage(langconfig.getInt("HelpLinesPerPage", 7)); + InformationPager.setLinesPerPage(langconfig.getInt("HelpLinesPerPage", 7)); + language = Language.parseText(langconfig, "Language"); + } - @SuppressWarnings("unchecked") - public synchronized boolean loadYml() throws Exception { - final File saveFolder = new File(dataFolder, "Save"); - try { - final File worldFolder = new File(saveFolder, "Worlds"); - if (!saveFolder.isDirectory()) { - this.getLogger().warning("领地数据保存目录不存在 跳过载入..."); - return true; - } - YMLSaveHelper yml; - File loadFile; - final long time = System.currentTimeMillis(); - final HashMap worlds = new HashMap(); - for (final World world : this.getServer().getWorlds()) { - loadFile = new File(worldFolder, "res_" + world.getName() + ".yml"); - if (loadFile.isFile()) { - yml = new YMLSaveHelper(loadFile); - yml.load(); - worlds.put(world.getName(), yml.getRoot().get("Residences")); - } - } - rmanager = ResidenceManager.load(this, worlds); - loadFile = new File(saveFolder, "forsale.yml"); - if (loadFile.isFile()) { - yml = new YMLSaveHelper(loadFile); - yml.load(); - tmanager = TransactionManager.load(this, (Map) yml.getRoot().get("Economy"), gmanager, rmanager); - } - loadFile = new File(saveFolder, "leases.yml"); - if (loadFile.isFile()) { - yml = new YMLSaveHelper(loadFile); - yml.load(); - leasemanager = LeaseManager.load(this, (Map) yml.getRoot().get("Leases"), rmanager); - } - loadFile = new File(saveFolder, "permlists.yml"); - if (loadFile.isFile()) { - yml = new YMLSaveHelper(loadFile); - yml.load(); - pmanager = PermissionListManager.load(this, (Map) yml.getRoot().get("PermissionLists")); - } - loadFile = new File(saveFolder, "rent.yml"); - if (loadFile.isFile()) { - yml = new YMLSaveHelper(loadFile); - yml.load(); - rentmanager = RentManager.load(this, (Map) yml.getRoot().get("RentSystem")); - } - this.getLogger().info("从配置文件中读取领地数据完毕,耗时 " + ((float) (System.currentTimeMillis() - time) / 1000) + " 秒"); - return true; - } catch (final Exception ex) { - this.getLogger().warning("领地数据载入时发生错误,请报告以下内容给作者: "); - this.getLogger().warning("错误: " + ex); - throw ex; - } - } + @SuppressWarnings("unchecked") + public synchronized boolean loadYml() throws Exception { + final File saveFolder = new File(dataFolder, "Save"); + try { + final File worldFolder = new File(saveFolder, "Worlds"); + if (!saveFolder.isDirectory()) { + this.getLogger().warning("领地数据保存目录不存在 跳过载入..."); + return true; + } + YMLSaveHelper yml; + File loadFile; + final long time = System.currentTimeMillis(); + final HashMap worlds = new HashMap(); + for (final World world : this.getServer().getWorlds()) { + loadFile = new File(worldFolder, "res_" + world.getName() + ".yml"); + if (loadFile.isFile()) { + yml = new YMLSaveHelper(loadFile); + yml.load(); + worlds.put(world.getName(), yml.getRoot().get("Residences")); + } + } + rmanager = ResidenceManager.load(this, worlds); + loadFile = new File(saveFolder, "forsale.yml"); + if (loadFile.isFile()) { + yml = new YMLSaveHelper(loadFile); + yml.load(); + tmanager = TransactionManager.load(this, (Map) yml.getRoot().get("Economy"), gmanager, rmanager); + } + loadFile = new File(saveFolder, "leases.yml"); + if (loadFile.isFile()) { + yml = new YMLSaveHelper(loadFile); + yml.load(); + leasemanager = LeaseManager.load(this, (Map) yml.getRoot().get("Leases"), rmanager); + } + loadFile = new File(saveFolder, "permlists.yml"); + if (loadFile.isFile()) { + yml = new YMLSaveHelper(loadFile); + yml.load(); + pmanager = PermissionListManager.load(this, (Map) yml.getRoot().get("PermissionLists")); + } + loadFile = new File(saveFolder, "rent.yml"); + if (loadFile.isFile()) { + yml = new YMLSaveHelper(loadFile); + yml.load(); + rentmanager = RentManager.load(this, (Map) yml.getRoot().get("RentSystem")); + } + this.getLogger().info("从配置文件中读取领地数据完毕,耗时 " + ((float) (System.currentTimeMillis() - time) / 1000) + " 秒"); + return true; + } catch (final Exception ex) { + this.getLogger().warning("领地数据载入时发生错误,请报告以下内容给作者: "); + this.getLogger().warning("错误: " + ex); + throw ex; + } + } - @Override - public boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args) { - final ResidenceCommandEvent cevent = new ResidenceCommandEvent(command.getName(), args, sender); - this.getServer().getPluginManager().callEvent(cevent); - if (cevent.isCancelled()) { - return true; - } - if (args.length == 0) { - return hdmcnd.onCommand(sender, command, label, new String[] { "?" }); - } - return hdmcnd.onCommand(sender, command, label, args); - } + @Override + public boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args) { + final ResidenceCommandEvent cevent = new ResidenceCommandEvent(command.getName(), args, sender); + this.getServer().getPluginManager().callEvent(cevent); + if (cevent.isCancelled()) { + return true; + } + if (args.length == 0) { + return hdmcnd.onCommand(sender, command, label, new String[] { "?" }); + } + return hdmcnd.onCommand(sender, command, label, args); + } - @Override - public void onDisable() { - if (this.init) { - taskmanager.cancelall(); - try { - this.saveYml(); - this.backup.backup(); - } catch (final Exception ex) { - this.getLogger().warning("领地数据保存错误,可能造成部分领地丢失,请尝试恢复备份文件!"); - this.getLogger().warning("错误: " + ex); - } - } - } + @Override + public void onDisable() { + if (this.init) { + taskmanager.cancelall(); + try { + this.saveYml(); + this.backup.backup(); + } catch (final Exception ex) { + this.getLogger().warning("领地数据保存错误,可能造成部分领地丢失,请尝试恢复备份文件!"); + this.getLogger().warning("错误: " + ex); + } + } + } - @Override - public void onEnable() { - try { - instance = this; - init = false; - FlagPermissions.init(this); - this.getLogger().info("Bukkit 版本: " + this.getServer().getBukkitVersion()); - try { - Class.forName("org.bukkit.event.player.PlayerInteractAtEntityEvent"); - vergt1_8 = true; - } catch (final Exception e) { - vergt1_8 = false; - } - deleteConfirm = new HashMap(); - resadminToggle = new ArrayList(); - dataFolder = this.getDataFolder(); - if (!dataFolder.isDirectory()) { - dataFolder.mkdirs(); - } - cmanager = (new ConfigManager(this)); - final String multiworld = cmanager.getMultiworldPlugin(); - if (multiworld != null) { - final Plugin plugin = this.getServer().getPluginManager().getPlugin(multiworld); - if (plugin != null) { - if (!plugin.isEnabled()) { - this.getLogger().info("加载多世界插件: " + multiworld); - this.getServer().getPluginManager().enablePlugin(plugin); - } - } - } - gmanager = new PermissionManager(this); - 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) { - try { - if (this.checkNewLanguageVersion(lang)) { - this.writeDefaultLanguageFile(lang); - } - } catch (final Exception ex) { - this.getLogger().warning("语言文件升级失败: " + lang + ".yml"); - helppages = new HelpEntry(this, ""); - language = new Language(); - } - } - final File langFile = new File(new File(dataFolder, "Language"), cmanager.getLanguage() + ".yml"); - try { - if (langFile.isFile()) { - loadLang(langFile); - } else { - this.getLogger().warning("语言文件不存在..."); - } - } catch (final Exception ex) { - this.getLogger().warning("语言文件载入失败: " + cmanager.getLanguage() + ".yml 写入默认语言文件"); - this.writeDefaultLanguageFile(cmanager.getLanguage()); - loadLang(langFile); - } - economy = null; - if (this.getConfig().getBoolean("Global.EnableEconomy", false)) { - if (gmanager.getPermissionsPlugin() instanceof ResidenceVaultAdapter) { - final ResidenceVaultAdapter vault = (ResidenceVaultAdapter) gmanager.getPermissionsPlugin(); - if (vault.economyOK()) { - economy = vault; - this.getLogger().info("发现 Vault 使用经济系统: " + vault.getEconomyName()); - } - } - if (economy == null) { - this.loadVaultEconomy(); - } - if (economy == null) { - this.loadEssentialsEconomy(); - } - if (economy == null) { - this.getLogger().warning("经济系统已启用,但是未找到经济插件..."); - } - } - try { - this.loadYml(); - } catch (final Exception e) { - this.getLogger().warning("领地数据载入错误,可能造成插件无法启动,请尝试恢复备份文件!"); - this.getLogger().warning("错误: " + e); - } - if (rmanager == null) { - rmanager = new ResidenceManager(this); - } - if (leasemanager == null) { - leasemanager = new LeaseManager(this, rmanager); - } - if (tmanager == null) { - tmanager = new TransactionManager(this, rmanager, gmanager); - } - if (pmanager == null) { - pmanager = new PermissionListManager(this); - } - if (taskmanager == null) { - taskmanager = new TaskManager(this); - } - final PluginManager pm = getServer().getPluginManager(); + @Override + public void onEnable() { + try { + instance = this; + init = false; + FlagPermissions.init(this); + this.getLogger().info("Bukkit 版本: " + this.getServer().getBukkitVersion()); + try { + Class.forName("org.bukkit.event.player.PlayerInteractAtEntityEvent"); + vergt1_8 = true; + } catch (final Exception e) { + vergt1_8 = false; + } + deleteConfirm = new HashMap(); + resadminToggle = new ArrayList(); + dataFolder = this.getDataFolder(); + if (!dataFolder.isDirectory()) { + dataFolder.mkdirs(); + } + cmanager = (new ConfigManager(this)); + final String multiworld = cmanager.getMultiworldPlugin(); + if (multiworld != null) { + final Plugin plugin = this.getServer().getPluginManager().getPlugin(multiworld); + if (plugin != null) { + if (!plugin.isEnabled()) { + this.getLogger().info("加载多世界插件: " + multiworld); + this.getServer().getPluginManager().enablePlugin(plugin); + } + } + } + gmanager = new PermissionManager(this); + 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) { + try { + if (this.checkNewLanguageVersion(lang)) { + this.writeDefaultLanguageFile(lang); + } + } catch (final Exception ex) { + this.getLogger().warning("语言文件升级失败: " + lang + ".yml"); + helppages = new HelpEntry(this, ""); + language = new Language(); + } + } + final File langFile = new File(new File(dataFolder, "Language"), cmanager.getLanguage() + ".yml"); + try { + if (langFile.isFile()) { + loadLang(langFile); + } else { + this.getLogger().warning("语言文件不存在..."); + } + } catch (final Exception ex) { + this.getLogger().warning("语言文件载入失败: " + cmanager.getLanguage() + ".yml 写入默认语言文件"); + this.writeDefaultLanguageFile(cmanager.getLanguage()); + loadLang(langFile); + } + economy = null; + if (this.getConfig().getBoolean("Global.EnableEconomy", false)) { + if (gmanager.getPermissionsPlugin() instanceof ResidenceVaultAdapter) { + final ResidenceVaultAdapter vault = (ResidenceVaultAdapter) gmanager.getPermissionsPlugin(); + if (vault.economyOK()) { + economy = vault; + this.getLogger().info("发现 Vault 使用经济系统: " + vault.getEconomyName()); + } + } + if (economy == null) { + this.loadVaultEconomy(); + } + if (economy == null) { + this.loadEssentialsEconomy(); + } + if (economy == null) { + this.getLogger().warning("经济系统已启用,但是未找到经济插件..."); + } + } + try { + this.loadYml(); + } catch (final Exception e) { + this.getLogger().warning("领地数据载入错误,可能造成插件无法启动,请尝试恢复备份文件!"); + this.getLogger().warning("错误: " + e); + } + if (rmanager == null) { + rmanager = new ResidenceManager(this); + } + if (leasemanager == null) { + leasemanager = new LeaseManager(this, rmanager); + } + if (tmanager == null) { + tmanager = new TransactionManager(this, rmanager, gmanager); + } + if (pmanager == null) { + pmanager = new PermissionListManager(this); + } + if (taskmanager == null) { + taskmanager = new TaskManager(this); + } + final PluginManager pm = getServer().getPluginManager(); - if (!this.isEnabled()) { - return; - } - FlagPermissions.initValidFlags(); - final Plugin wep = this.getServer().getPluginManager().getPlugin("WorldEdit"); - if (wep != null) { - smanager = new WorldEditSelectionManager(this); - useWorldEdit = true; - this.getLogger().info("发现 WorldEdit 已启用相关支持..."); - } else { - smanager = new SelectionManager(this); - useWorldEdit = false; - } - blistener = new ResidenceBlockListener(this); - plistener = new ResidencePlayerListener(this); - elistener = new ResidenceEntityListener(this); - plistener1_8 = new ResidencePlayerListener_1_8(this); - pm.registerEvents(blistener, this); - pm.registerEvents(plistener, this); - if (isGt1_8()) { - pm.registerEvents(plistener1_8, this); - } - pm.registerEvents(elistener, this); + if (!this.isEnabled()) { + return; + } + FlagPermissions.initValidFlags(); + final Plugin wep = this.getServer().getPluginManager().getPlugin("WorldEdit"); + if (wep != null) { + smanager = new WorldEditSelectionManager(this); + useWorldEdit = true; + this.getLogger().info("发现 WorldEdit 已启用相关支持..."); + } else { + smanager = new SelectionManager(this); + useWorldEdit = false; + } + blistener = new ResidenceBlockListener(this); + plistener = new ResidencePlayerListener(this); + elistener = new ResidenceEntityListener(this); + plistener1_8 = new ResidencePlayerListener_1_8(this); + pm.registerEvents(blistener, this); + pm.registerEvents(plistener, this); + if (isGt1_8()) { + pm.registerEvents(plistener1_8, this); + } + pm.registerEvents(elistener, this); - this.getLogger().info("开始加载领地补丁..."); - pm.registerEvents(new ResidenceBugFix(this), this); + this.getLogger().info("开始加载领地补丁..."); + pm.registerEvents(new ResidenceBugFix(this), this); - taskmanager.add(this.getServer().getScheduler().runTaskTimer(this, new HealTask(this), 20, 20)); + taskmanager.add(this.getServer().getScheduler().runTaskTimer(this, new HealTask(this), 20, 20)); - hdmcnd = new HandlerMainCommand(this); - hdmcnd.registerCommand(new CommandRc(this)); - hdmcnd.registerCommand(new CommandRes(this)); - hdmcnd.registerCommand(new CommandResLoad(this)); - hdmcnd.registerCommand(new CommandResReload(this)); - hdmcnd.registerCommand(new CommandResWorld(this)); + hdmcnd = new HandlerMainCommand(this); + hdmcnd.registerCommand(new CommandRc(this)); + hdmcnd.registerCommand(new CommandRes(this)); + hdmcnd.registerCommand(new CommandResLoad(this)); + hdmcnd.registerCommand(new CommandResReload(this)); + hdmcnd.registerCommand(new CommandResWorld(this)); - int autosaveInt = cmanager.getAutoSaveInterval(); - autosaveInt = autosaveInt < 1 ? 1 : autosaveInt * 60 * 20; - taskmanager.add(this.getServer().getScheduler().runTaskTimerAsynchronously(this, new AutoSaveTask(this), autosaveInt, autosaveInt)); + int autosaveInt = cmanager.getAutoSaveInterval(); + autosaveInt = autosaveInt < 1 ? 1 : autosaveInt * 60 * 20; + taskmanager.add(this.getServer().getScheduler().runTaskTimerAsynchronously(this, new AutoSaveTask(this), autosaveInt, autosaveInt)); - if (cmanager.useLeases()) { - int leaseInterval = cmanager.getLeaseCheckInterval(); - leaseInterval = leaseInterval < 1 ? 1 : leaseInterval * 60 * 20; - taskmanager.add(this.getServer().getScheduler().runTaskTimerAsynchronously(this, new LeaseTask(this), leaseInterval, leaseInterval)); - } - if (cmanager.enabledRentSystem()) { - int rentint = cmanager.getRentCheckInterval(); - rentint = rentint < 1 ? 1 : rentint * 60 * 20; - taskmanager.add(this.getServer().getScheduler().runTaskTimerAsynchronously(this, new RentTask(this), rentint, rentint)); - } - for (final Player player : Bukkit.getServer().getOnlinePlayers()) { - if (this.getPermissionManager().isResidenceAdmin(player)) { - turnResAdminOn(player); - } - } - this.getLogger().info("载入完成! 版本: " + this.getDescription().getVersion() + " 重制 by 喵♂呜"); - backup = new DataBackup(this); - init = true; - } catch (final Exception ex) { - this.getServer().getPluginManager().disablePlugin(this); - csm("§4初始化失败! 卸载插件! 请报告以下错误给作者,谢谢!"); - csm("§c错误: " + ex); - ex.printStackTrace(); - return; - } - try { - new Residence(this); - this.getLogger().info("旧版本兼容接口初始化成功..."); - } catch (final LinkageError e) { - this.csm("§c旧版本兼容接口初始化失败 可能导致部分插件不可用!"); - this.csm("§c若是其他插件重载本插件 请尝试重启服务器修复此问题!"); - } - new VersionChecker(this); - } + if (cmanager.useLeases()) { + int leaseInterval = cmanager.getLeaseCheckInterval(); + leaseInterval = leaseInterval < 1 ? 1 : leaseInterval * 60 * 20; + taskmanager.add(this.getServer().getScheduler().runTaskTimerAsynchronously(this, new LeaseTask(this), leaseInterval, leaseInterval)); + } + if (cmanager.enabledRentSystem()) { + int rentint = cmanager.getRentCheckInterval(); + rentint = rentint < 1 ? 1 : rentint * 60 * 20; + taskmanager.add(this.getServer().getScheduler().runTaskTimerAsynchronously(this, new RentTask(this), rentint, rentint)); + } + for (final Player player : CompatibleUtil.getOnlinePlayers()) { + if (this.getPermissionManager().isResidenceAdmin(player)) { + turnResAdminOn(player); + } + } + this.getLogger().info("载入完成! 版本: " + this.getDescription().getVersion() + " 重制 by 喵♂呜"); + backup = new DataBackup(this); + init = true; + } catch (final Exception ex) { + this.getServer().getPluginManager().disablePlugin(this); + csm("§4初始化失败! 卸载插件! 请报告以下错误给作者,谢谢!"); + csm("§c错误: " + ex); + ex.printStackTrace(); + return; + } + try { + new Residence(this); + this.getLogger().info("旧版本兼容接口初始化成功..."); + } catch (final LinkageError e) { + this.csm("§c旧版本兼容接口初始化失败 可能导致部分插件不可用!"); + this.csm("§c若是其他插件重载本插件 请尝试重启服务器修复此问题!"); + } + new VersionChecker(this); + } - @Override - public void onLoad() { - config = new FileConfig(this); - } + @Override + public void onLoad() { + config = new FileConfig(this); + } - @Override - public void reloadConfig() { - config.reload(); - gmanager = new PermissionManager(this); - imanager = new WorldItemManager(this.getConfig()); - wmanager = new WorldFlagManager(this); - entitymanager = new EntityManager(this); - chatmanager = new ChatManager(this); - rentmanager = new RentManager(this); - } + @Override + public void reloadConfig() { + config.reload(); + gmanager = new PermissionManager(this); + imanager = new WorldItemManager(this.getConfig()); + wmanager = new WorldFlagManager(this); + entitymanager = new EntityManager(this); + chatmanager = new ChatManager(this); + rentmanager = new RentManager(this); + } - public void reloadPlugin() { - final PluginManager pm = this.getServer().getPluginManager(); - pm.disablePlugin(this); - pm.enablePlugin(this); - } + public void reloadPlugin() { + final PluginManager pm = this.getServer().getPluginManager(); + pm.disablePlugin(this); + pm.enablePlugin(this); + } - @Override - public void saveConfig() { - config.save(); - } + @Override + public void saveConfig() { + config.save(); + } - public synchronized void saveYml() throws IOException { - final File saveFolder = new File(dataFolder, "Save"); - final File worldFolder = new File(saveFolder, "Worlds"); - worldFolder.mkdirs(); - YMLSaveHelper yml; - final long time = System.currentTimeMillis(); - final Map save = rmanager.save(); - for (final Entry entry : save.entrySet()) { - final File ymlSaveLoc = new File(worldFolder, "res_" + entry.getKey() + ".yml"); - final File tmpFile = new File(worldFolder, "tmp_res_" + entry.getKey() + ".yml"); - yml = new YMLSaveHelper(tmpFile); - yml.getRoot().put("Version", saveVersion); - final World world = this.getServer().getWorld(entry.getKey()); - if (world != null) { - yml.getRoot().put("Seed", world.getSeed()); - } - yml.getRoot().put("Residences", entry.getValue()); - yml.save(); - if (ymlSaveLoc.isFile()) { - final File backupFolder = new File(worldFolder, "Backup"); - backupFolder.mkdirs(); - final File backupFile = new File(backupFolder, "res_" + entry.getKey() + ".yml"); - if (backupFile.isFile()) { - backupFile.delete(); - } - ymlSaveLoc.renameTo(backupFile); - } - tmpFile.renameTo(ymlSaveLoc); - } + public synchronized void saveYml() throws IOException { + final File saveFolder = new File(dataFolder, "Save"); + final File worldFolder = new File(saveFolder, "Worlds"); + worldFolder.mkdirs(); + YMLSaveHelper yml; + final long time = System.currentTimeMillis(); + final Map save = rmanager.save(); + for (final Entry entry : save.entrySet()) { + final File ymlSaveLoc = new File(worldFolder, "res_" + entry.getKey() + ".yml"); + final File tmpFile = new File(worldFolder, "tmp_res_" + entry.getKey() + ".yml"); + yml = new YMLSaveHelper(tmpFile); + yml.getRoot().put("Version", saveVersion); + final World world = this.getServer().getWorld(entry.getKey()); + if (world != null) { + yml.getRoot().put("Seed", world.getSeed()); + } + yml.getRoot().put("Residences", entry.getValue()); + yml.save(); + if (ymlSaveLoc.isFile()) { + final File backupFolder = new File(worldFolder, "Backup"); + backupFolder.mkdirs(); + final File backupFile = new File(backupFolder, "res_" + entry.getKey() + ".yml"); + if (backupFile.isFile()) { + backupFile.delete(); + } + ymlSaveLoc.renameTo(backupFile); + } + tmpFile.renameTo(ymlSaveLoc); + } - // For Sale save - File ymlSaveLoc = new File(saveFolder, "forsale.yml"); - File tmpFile = new File(saveFolder, "tmp_forsale.yml"); - yml = new YMLSaveHelper(tmpFile); - yml.getRoot().put("Version", saveVersion); - yml.getRoot().put("Economy", tmanager.save()); - yml.save(); - if (ymlSaveLoc.isFile()) { - final File backupFolder = new File(saveFolder, "Backup"); - backupFolder.mkdirs(); - final File backupFile = new File(backupFolder, "forsale.yml"); - if (backupFile.isFile()) { - backupFile.delete(); - } - ymlSaveLoc.renameTo(backupFile); - } - tmpFile.renameTo(ymlSaveLoc); + // For Sale save + File ymlSaveLoc = new File(saveFolder, "forsale.yml"); + File tmpFile = new File(saveFolder, "tmp_forsale.yml"); + yml = new YMLSaveHelper(tmpFile); + yml.getRoot().put("Version", saveVersion); + yml.getRoot().put("Economy", tmanager.save()); + yml.save(); + if (ymlSaveLoc.isFile()) { + final File backupFolder = new File(saveFolder, "Backup"); + backupFolder.mkdirs(); + final File backupFile = new File(backupFolder, "forsale.yml"); + if (backupFile.isFile()) { + backupFile.delete(); + } + ymlSaveLoc.renameTo(backupFile); + } + tmpFile.renameTo(ymlSaveLoc); - // Leases save - ymlSaveLoc = new File(saveFolder, "leases.yml"); - tmpFile = new File(saveFolder, "tmp_leases.yml"); - yml = new YMLSaveHelper(tmpFile); - yml.getRoot().put("Version", saveVersion); - yml.getRoot().put("Leases", leasemanager.save()); - yml.save(); - if (ymlSaveLoc.isFile()) { - final File backupFolder = new File(saveFolder, "Backup"); - backupFolder.mkdirs(); - final File backupFile = new File(backupFolder, "leases.yml"); - if (backupFile.isFile()) { - backupFile.delete(); - } - ymlSaveLoc.renameTo(backupFile); - } - tmpFile.renameTo(ymlSaveLoc); + // Leases save + ymlSaveLoc = new File(saveFolder, "leases.yml"); + tmpFile = new File(saveFolder, "tmp_leases.yml"); + yml = new YMLSaveHelper(tmpFile); + yml.getRoot().put("Version", saveVersion); + yml.getRoot().put("Leases", leasemanager.save()); + yml.save(); + if (ymlSaveLoc.isFile()) { + final File backupFolder = new File(saveFolder, "Backup"); + backupFolder.mkdirs(); + final File backupFile = new File(backupFolder, "leases.yml"); + if (backupFile.isFile()) { + backupFile.delete(); + } + ymlSaveLoc.renameTo(backupFile); + } + tmpFile.renameTo(ymlSaveLoc); - // permlist save - ymlSaveLoc = new File(saveFolder, "permlists.yml"); - tmpFile = new File(saveFolder, "tmp_permlists.yml"); - yml = new YMLSaveHelper(tmpFile); - yml.getRoot().put("Version", saveVersion); - yml.getRoot().put("PermissionLists", pmanager.save()); - yml.save(); - if (ymlSaveLoc.isFile()) { - final File backupFolder = new File(saveFolder, "Backup"); - backupFolder.mkdirs(); - final File backupFile = new File(backupFolder, "permlists.yml"); - if (backupFile.isFile()) { - backupFile.delete(); - } - ymlSaveLoc.renameTo(backupFile); - } - tmpFile.renameTo(ymlSaveLoc); + // permlist save + ymlSaveLoc = new File(saveFolder, "permlists.yml"); + tmpFile = new File(saveFolder, "tmp_permlists.yml"); + yml = new YMLSaveHelper(tmpFile); + yml.getRoot().put("Version", saveVersion); + yml.getRoot().put("PermissionLists", pmanager.save()); + yml.save(); + if (ymlSaveLoc.isFile()) { + final File backupFolder = new File(saveFolder, "Backup"); + backupFolder.mkdirs(); + final File backupFile = new File(backupFolder, "permlists.yml"); + if (backupFile.isFile()) { + backupFile.delete(); + } + ymlSaveLoc.renameTo(backupFile); + } + tmpFile.renameTo(ymlSaveLoc); - // rent save - ymlSaveLoc = new File(saveFolder, "rent.yml"); - tmpFile = new File(saveFolder, "tmp_rent.yml"); - yml = new YMLSaveHelper(tmpFile); - yml.getRoot().put("Version", saveVersion); - yml.getRoot().put("RentSystem", rentmanager.save()); - yml.save(); - if (ymlSaveLoc.isFile()) { - final File backupFolder = new File(saveFolder, "Backup"); - backupFolder.mkdirs(); - final File backupFile = new File(backupFolder, "rent.yml"); - if (backupFile.isFile()) { - backupFile.delete(); - } - ymlSaveLoc.renameTo(backupFile); - } - tmpFile.renameTo(ymlSaveLoc); - this.getLogger().info("保存领地数据到文件中,耗时 " + ((float) (System.currentTimeMillis() - time) / 1000) + " 秒"); - if (cmanager.showIntervalMessages()) { - this.getLogger().info(" - 保存插件数据..."); - } - }; + // rent save + ymlSaveLoc = new File(saveFolder, "rent.yml"); + tmpFile = new File(saveFolder, "tmp_rent.yml"); + yml = new YMLSaveHelper(tmpFile); + yml.getRoot().put("Version", saveVersion); + yml.getRoot().put("RentSystem", rentmanager.save()); + yml.save(); + if (ymlSaveLoc.isFile()) { + final File backupFolder = new File(saveFolder, "Backup"); + backupFolder.mkdirs(); + final File backupFile = new File(backupFolder, "rent.yml"); + if (backupFile.isFile()) { + backupFile.delete(); + } + ymlSaveLoc.renameTo(backupFile); + } + tmpFile.renameTo(ymlSaveLoc); + this.getLogger().info("保存领地数据到文件中,耗时 " + ((float) (System.currentTimeMillis() - time) / 1000) + " 秒"); + if (cmanager.showIntervalMessages()) { + this.getLogger().info(" - 保存插件数据..."); + } + }; - public void setLanguage(final Language language) { - this.language = language; - } + public void setLanguage(final Language language) { + this.language = language; + } - public void turnResAdminOn(final Player player) { - resadminToggle.add(player.getName()); - } + public void turnResAdminOn(final Player player) { + resadminToggle.add(player.getName()); + } - public boolean validName(final String name) { - if (name.contains(":") || name.contains(".")) { - return false; - } - if (cmanager.getResidenceNameRegex() == null) { - return true; - } - final String namecheck = name.replaceAll(cmanager.getResidenceNameRegex(), ""); - if (!name.equals(namecheck)) { - return false; - } - return true; - } + public boolean validName(final String name) { + if (name.contains(":") || name.contains(".")) { + return false; + } + if (cmanager.getResidenceNameRegex() == null) { + return true; + } + final String namecheck = name.replaceAll(cmanager.getResidenceNameRegex(), ""); + if (!name.equals(namecheck)) { + return false; + } + return true; + } - private boolean checkNewLanguageVersion(final String lang) throws IOException, FileNotFoundException, InvalidConfigurationException { - final File outFile = new File(new File(this.getDataFolder(), "Language"), lang + ".yml"); - final File checkFile = new File(new File(this.getDataFolder(), "Language"), "temp-" + lang + ".yml"); - if (outFile.isFile()) { - final FileConfig testconfig = new FileConfig(this, outFile); - final int oldversion = testconfig.getInt("FieldsVersion", 0); - if (!this.writeDefaultFileFromJar(checkFile, "languagefiles/" + lang + ".yml", false)) { - return false; - } - final FileConfig testconfig2 = new FileConfig(this, checkFile); - testconfig2.load(checkFile); - final int newversion = testconfig2.getInt("FieldsVersion", oldversion); - if (checkFile.isFile()) { - checkFile.delete(); - } - if (newversion > oldversion) { - return true; - } - return false; - } - return true; - } + private boolean checkNewLanguageVersion(final String lang) throws IOException, FileNotFoundException, InvalidConfigurationException { + final File outFile = new File(new File(this.getDataFolder(), "Language"), lang + ".yml"); + final File checkFile = new File(new File(this.getDataFolder(), "Language"), "temp-" + lang + ".yml"); + if (outFile.isFile()) { + final FileConfig testconfig = new FileConfig(this, outFile); + final int oldversion = testconfig.getInt("FieldsVersion", 0); + if (!this.writeDefaultFileFromJar(checkFile, "languagefiles/" + lang + ".yml", false)) { + return false; + } + final FileConfig testconfig2 = new FileConfig(this, checkFile); + testconfig2.load(checkFile); + final int newversion = testconfig2.getInt("FieldsVersion", oldversion); + if (checkFile.isFile()) { + checkFile.delete(); + } + if (newversion > oldversion) { + return true; + } + return false; + } + return true; + } - private void loadEssentialsEconomy() { - final Plugin p = getServer().getPluginManager().getPlugin("Essentials"); - if (p != null) { - economy = new EssentialsEcoAdapter((Essentials) p); - this.getLogger().info("成功关联Essentials Economy!"); - } else { - this.getLogger().info("Essentials Economy 未找到!"); - } - } + private void loadEssentialsEconomy() { + final Plugin p = getServer().getPluginManager().getPlugin("Essentials"); + if (p != null) { + economy = new EssentialsEcoAdapter((Essentials) p); + this.getLogger().info("成功关联Essentials Economy!"); + } else { + this.getLogger().info("Essentials Economy 未找到!"); + } + } - private void loadVaultEconomy() { - final Plugin p = getServer().getPluginManager().getPlugin("Vault"); - if (p != null) { - final ResidenceVaultAdapter vault = new ResidenceVaultAdapter(getServer()); - if (vault.economyOK()) { - this.getLogger().info("发现 Vault 使用经济系统: " + vault.getEconomyName()); - economy = vault; - } else { - this.getLogger().info("发现 Vault, 但是 Vault 未找到经济系统..."); - } - } else { - this.getLogger().info("Vault 未找到!"); - } - } + private void loadVaultEconomy() { + final Plugin p = getServer().getPluginManager().getPlugin("Vault"); + if (p != null) { + final ResidenceVaultAdapter vault = new ResidenceVaultAdapter(getServer()); + if (vault.economyOK()) { + this.getLogger().info("发现 Vault 使用经济系统: " + vault.getEconomyName()); + economy = vault; + } else { + this.getLogger().info("发现 Vault, 但是 Vault 未找到经济系统..."); + } + } else { + this.getLogger().info("Vault 未找到!"); + } + } - @SuppressWarnings("resource") - private boolean writeDefaultFileFromJar(final File writeName, final String jarPath, final boolean backupOld) { - try { - final File fileBackup = new File(this.getDataFolder(), "backup-" + writeName); - final File jarloc = new File(getClass().getProtectionDomain().getCodeSource().getLocation().toURI()).getCanonicalFile(); - if (jarloc.isFile()) { - final JarFile jar = new JarFile(jarloc); - final JarEntry entry = jar.getJarEntry(jarPath); - if (entry != null && !entry.isDirectory()) { - final InputStream in = jar.getInputStream(entry); - final InputStreamReader isr = new InputStreamReader(in, "UTF8"); - if (writeName.isFile()) { - if (backupOld) { - if (fileBackup.isFile()) { - fileBackup.delete(); - } - writeName.renameTo(fileBackup); - } else { - writeName.delete(); - } - } - final FileOutputStream out = new FileOutputStream(writeName); - final OutputStreamWriter osw = new OutputStreamWriter(out, "UTF8"); - final char[] tempbytes = new char[512]; - int readbytes = isr.read(tempbytes, 0, 512); - while (readbytes > -1) { - osw.write(tempbytes, 0, readbytes); - readbytes = isr.read(tempbytes, 0, 512); - } - osw.close(); - isr.close(); - return true; - } - } - return false; - } catch (final Exception ex) { - this.getLogger().warning("文件写入失败: " + writeName); - return false; - } - } + @SuppressWarnings("resource") + private boolean writeDefaultFileFromJar(final File writeName, final String jarPath, final boolean backupOld) { + try { + final File fileBackup = new File(this.getDataFolder(), "backup-" + writeName); + final File jarloc = new File(getClass().getProtectionDomain().getCodeSource().getLocation().toURI()).getCanonicalFile(); + if (jarloc.isFile()) { + final JarFile jar = new JarFile(jarloc); + final JarEntry entry = jar.getJarEntry(jarPath); + if (entry != null && !entry.isDirectory()) { + final InputStream in = jar.getInputStream(entry); + final InputStreamReader isr = new InputStreamReader(in, "UTF8"); + if (writeName.isFile()) { + if (backupOld) { + if (fileBackup.isFile()) { + fileBackup.delete(); + } + writeName.renameTo(fileBackup); + } else { + writeName.delete(); + } + } + final FileOutputStream out = new FileOutputStream(writeName); + final OutputStreamWriter osw = new OutputStreamWriter(out, "UTF8"); + final char[] tempbytes = new char[512]; + int readbytes = isr.read(tempbytes, 0, 512); + while (readbytes > -1) { + osw.write(tempbytes, 0, readbytes); + readbytes = isr.read(tempbytes, 0, 512); + } + osw.close(); + isr.close(); + return true; + } + } + return false; + } catch (final Exception ex) { + this.getLogger().warning("文件写入失败: " + writeName); + return false; + } + } - private void writeDefaultLanguageFile(final String lang) { - final File outFile = new File(new File(this.getDataFolder(), "Language"), lang + ".yml"); - outFile.getParentFile().mkdirs(); - if (this.writeDefaultFileFromJar(outFile, "languagefiles/" + lang + ".yml", true)) { - this.getLogger().info("保存默认 " + lang + " 语言文件..."); - } - } + private void writeDefaultLanguageFile(final String lang) { + final File outFile = new File(new File(this.getDataFolder(), "Language"), lang + ".yml"); + outFile.getParentFile().mkdirs(); + if (this.writeDefaultFileFromJar(outFile, "languagefiles/" + lang + ".yml", true)) { + this.getLogger().info("保存默认 " + lang + " 语言文件..."); + } + } } diff --git a/src/main/java/cn/citycraft/Residence/chat/ChatChannel.java b/src/main/java/cn/citycraft/Residence/chat/ChatChannel.java index 3f346a5..7a60886 100644 --- a/src/main/java/cn/citycraft/Residence/chat/ChatChannel.java +++ b/src/main/java/cn/citycraft/Residence/chat/ChatChannel.java @@ -23,50 +23,50 @@ import cn.citycraft.Residence.ResidenceMain; */ public class ChatChannel { - protected List members; - protected final String name; - protected final ResidenceMain plugin; - protected final PluginManager pm; + protected List members; + protected final String name; + protected final ResidenceMain plugin; + protected final PluginManager pm; - public ChatChannel(final ResidenceMain plugin, final String channelName) { - this.plugin = plugin; - pm = plugin.getServer().getPluginManager(); - name = channelName; - members = new ArrayList(); - } + public ChatChannel(final ResidenceMain plugin, final String channelName) { + this.plugin = plugin; + pm = plugin.getServer().getPluginManager(); + name = channelName; + members = new ArrayList(); + } - public void chat(final String sourcePlayer, final String message) { - final Server serv = plugin.getServer(); - final ChatColor color = plugin.getConfigManager().getChatColor(); - final ResidenceChatEvent cevent = new ResidenceChatEvent(plugin.getResidenceManager().getByName(name), serv.getPlayer(sourcePlayer), message, color); - pm.callEvent(cevent); - if (cevent.isCancelled()) { - return; - } - for (final String member : members) { - final Player player = serv.getPlayer(member); - if (player != null) { - player.sendMessage(cevent.getColor() + sourcePlayer + ": " + cevent.getChatMessage()); - } - } - plugin.getLogger().info("ResidentialChat[" + name + "] - " + sourcePlayer + ": " + cevent.getChatMessage()); - } + public void chat(final String sourcePlayer, final String message) { + final Server serv = plugin.getServer(); + final ChatColor color = plugin.getConfigManager().getChatColor(); + final ResidenceChatEvent cevent = new ResidenceChatEvent(plugin.getResidenceManager().getByName(name), serv.getPlayer(sourcePlayer), message, color); + pm.callEvent(cevent); + if (cevent.isCancelled()) { + return; + } + for (final String member : members) { + final Player player = serv.getPlayer(member); + if (player != null) { + player.sendMessage(cevent.getColor() + sourcePlayer + ": " + cevent.getChatMessage()); + } + } + plugin.getLogger().info("ResidentialChat[" + name + "] - " + sourcePlayer + ": " + cevent.getChatMessage()); + } - public boolean hasMember(final String player) { - return members.contains(player); - } + public boolean hasMember(final String player) { + return members.contains(player); + } - public void join(final String player) { - if (!members.contains(player)) { - members.add(player); - } - } + public void join(final String player) { + if (!members.contains(player)) { + members.add(player); + } + } - public void leave(final String player) { - members.remove(player); - } + public void leave(final String player) { + members.remove(player); + } - public int memberCount() { - return members.size(); - } + public int memberCount() { + return members.size(); + } } diff --git a/src/main/java/cn/citycraft/Residence/chat/ChatManager.java b/src/main/java/cn/citycraft/Residence/chat/ChatManager.java index 837a3ad..2e0eb10 100644 --- a/src/main/java/cn/citycraft/Residence/chat/ChatManager.java +++ b/src/main/java/cn/citycraft/Residence/chat/ChatManager.java @@ -16,36 +16,36 @@ import cn.citycraft.Residence.ResidenceMain; */ public class ChatManager { - protected Map channelmap; - protected final ResidenceMain plugin; + protected Map channelmap; + protected final ResidenceMain plugin; - public ChatManager(final ResidenceMain plugin) { - this.plugin = plugin; - channelmap = new HashMap(); - } + public ChatManager(final ResidenceMain plugin) { + this.plugin = plugin; + channelmap = new HashMap(); + } - public ChatChannel getChannel(final String channel) { - return channelmap.get(channel); - } + public ChatChannel getChannel(final String channel) { + return channelmap.get(channel); + } - public ChatChannel getPlayerChannel(final String player) { - for (final ChatChannel chan : channelmap.values()) - if (chan.hasMember(player)) - return chan; - return null; - } + public ChatChannel getPlayerChannel(final String player) { + for (final ChatChannel chan : channelmap.values()) + if (chan.hasMember(player)) + return chan; + return null; + } - public void removeFromChannel(final String player) { - for (final ChatChannel chan : channelmap.values()) - if (chan.hasMember(player)) - chan.leave(player); - } + public void removeFromChannel(final String player) { + for (final ChatChannel chan : channelmap.values()) + if (chan.hasMember(player)) + chan.leave(player); + } - public void setChannel(final String player, final String channel) { - this.removeFromChannel(player); - if (!channelmap.containsKey(channel)) - channelmap.put(channel, new ChatChannel(plugin, channel)); - channelmap.get(channel).join(player); - } + public void setChannel(final String player, final String channel) { + this.removeFromChannel(player); + if (!channelmap.containsKey(channel)) + channelmap.put(channel, new ChatChannel(plugin, channel)); + channelmap.get(channel).join(player); + } } diff --git a/src/main/java/cn/citycraft/Residence/commandmain/CommandRc.java b/src/main/java/cn/citycraft/Residence/commandmain/CommandRc.java index 2727221..c22e9c2 100644 --- a/src/main/java/cn/citycraft/Residence/commandmain/CommandRc.java +++ b/src/main/java/cn/citycraft/Residence/commandmain/CommandRc.java @@ -11,40 +11,40 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.chat.ChatChannel; public class CommandRc extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandRc(final ResidenceMain plugin) { - super("rc"); - this.plugin = plugin; - setOnlyPlayerExecutable(); - } + public CommandRc(final ResidenceMain plugin) { + super("rc"); + this.plugin = plugin; + setOnlyPlayerExecutable(); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final String pname = sender.getName(); - if (plugin.getConfigManager().chatEnabled()) { - if (args.length == 0) { - plugin.getPlayerListener().tooglePlayerResidenceChat((Player) sender); - } else { - final String area = plugin.getPlayerListener().getCurrentResidenceName(pname); - if (area != null) { - final ChatChannel channel = plugin.getChatManager().getChannel(area); - if (channel != null) { - String message = ""; - for (final String arg : args) { - message = message + " " + arg; - } - channel.chat(pname, message); - } else { - sender.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidChannel")); - } - } else { - sender.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NotInResidence")); - } - } - } else { - sender.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ChatDisabled")); - } - } + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final String pname = sender.getName(); + if (plugin.getConfigManager().chatEnabled()) { + if (args.length == 0) { + plugin.getPlayerListener().tooglePlayerResidenceChat((Player) sender); + } else { + final String area = plugin.getPlayerListener().getCurrentResidenceName(pname); + if (area != null) { + final ChatChannel channel = plugin.getChatManager().getChannel(area); + if (channel != null) { + String message = ""; + for (final String arg : args) { + message = message + " " + arg; + } + channel.chat(pname, message); + } else { + sender.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidChannel")); + } + } else { + sender.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NotInResidence")); + } + } + } else { + sender.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ChatDisabled")); + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandmain/CommandRes.java b/src/main/java/cn/citycraft/Residence/commandmain/CommandRes.java index c537bc3..2c5385d 100644 --- a/src/main/java/cn/citycraft/Residence/commandmain/CommandRes.java +++ b/src/main/java/cn/citycraft/Residence/commandmain/CommandRes.java @@ -54,115 +54,115 @@ import cn.citycraft.Residence.commandsub.CommandUnStuck; import cn.citycraft.Residence.commandsub.CommandVersion; public class CommandRes extends BaseCommand implements DefaultCommand { - HandlerSubCommand hdsubcmd; + HandlerSubCommand hdsubcmd; - ResidenceMain plugin; + ResidenceMain plugin; - public CommandRes(final ResidenceMain plugin) { - super("res", "residence", "resadmin"); - this.plugin = plugin; - hdsubcmd = new HandlerSubCommand(plugin); + public CommandRes(final ResidenceMain plugin) { + super("res", "residence", "resadmin"); + this.plugin = plugin; + hdsubcmd = new HandlerSubCommand(plugin); - hdsubcmd.registerCommand(new CommandArea(plugin)); - hdsubcmd.registerCommand(new CommandBank(plugin)); - hdsubcmd.registerCommand(new CommandCheck(plugin)); - hdsubcmd.registerCommand(new CommandCheckSelf(plugin)); - hdsubcmd.registerCommand(new CommandClearFlags(plugin)); - hdsubcmd.registerCommand(new CommandCompass(plugin)); - hdsubcmd.registerCommand(new CommandConfirm(plugin)); - hdsubcmd.registerCommand(new CommandCreate(plugin)); - hdsubcmd.registerCommand(new CommandCurrent(plugin)); - hdsubcmd.registerCommand(new CommandDefault(plugin)); - hdsubcmd.registerCommand(new CommandGive(plugin)); - hdsubcmd.registerCommand(new CommandGset(plugin)); - hdsubcmd.registerCommand(new CommandInfo(plugin)); - hdsubcmd.registerCommand(new CommandKick(plugin)); - hdsubcmd.registerCommand(new CommandLease(plugin)); - hdsubcmd.registerCommand(new CommandLimits(plugin)); - hdsubcmd.registerCommand(new CommandList(plugin)); - hdsubcmd.registerCommand(new CommandListAll(plugin)); - hdsubcmd.registerCommand(new CommandListAllHidden(plugin)); - hdsubcmd.registerCommand(new CommandListHidden(plugin)); - hdsubcmd.registerCommand(new CommandLists(plugin)); - hdsubcmd.registerCommand(new CommandLset(plugin)); - hdsubcmd.registerCommand(new CommandMarket(plugin)); - hdsubcmd.registerCommand(new CommandMaterial(plugin)); - hdsubcmd.registerCommand(new CommandMessage(plugin)); - hdsubcmd.registerCommand(new CommandMirror(plugin)); - hdsubcmd.registerCommand(new CommandPset(plugin)); - hdsubcmd.registerCommand(new CommandRemove(plugin)); - hdsubcmd.registerCommand(new CommandRemoveAll(plugin)); - hdsubcmd.registerCommand(new CommandRename(plugin)); - hdsubcmd.registerCommand(new CommandRenameArea(plugin)); - hdsubcmd.registerCommand(new CommandSelect(plugin)); - hdsubcmd.registerCommand(new CommandServer(plugin)); - hdsubcmd.registerCommand(new CommandSet(plugin)); - hdsubcmd.registerCommand(new CommandSetOwner(plugin)); - hdsubcmd.registerCommand(new CommandSubList(plugin)); - hdsubcmd.registerCommand(new CommandSubZone(plugin)); - hdsubcmd.registerCommand(new CommandTool(plugin)); - hdsubcmd.registerCommand(new CommandTp(plugin)); - hdsubcmd.registerCommand(new CommandTpSet(plugin)); - hdsubcmd.registerCommand(new CommandUnStuck(plugin)); - hdsubcmd.registerCommand(new CommandVersion(plugin)); + hdsubcmd.registerCommand(new CommandArea(plugin)); + hdsubcmd.registerCommand(new CommandBank(plugin)); + hdsubcmd.registerCommand(new CommandCheck(plugin)); + hdsubcmd.registerCommand(new CommandCheckSelf(plugin)); + hdsubcmd.registerCommand(new CommandClearFlags(plugin)); + hdsubcmd.registerCommand(new CommandCompass(plugin)); + hdsubcmd.registerCommand(new CommandConfirm(plugin)); + hdsubcmd.registerCommand(new CommandCreate(plugin)); + hdsubcmd.registerCommand(new CommandCurrent(plugin)); + hdsubcmd.registerCommand(new CommandDefault(plugin)); + hdsubcmd.registerCommand(new CommandGive(plugin)); + hdsubcmd.registerCommand(new CommandGset(plugin)); + hdsubcmd.registerCommand(new CommandInfo(plugin)); + hdsubcmd.registerCommand(new CommandKick(plugin)); + hdsubcmd.registerCommand(new CommandLease(plugin)); + hdsubcmd.registerCommand(new CommandLimits(plugin)); + hdsubcmd.registerCommand(new CommandList(plugin)); + hdsubcmd.registerCommand(new CommandListAll(plugin)); + hdsubcmd.registerCommand(new CommandListAllHidden(plugin)); + hdsubcmd.registerCommand(new CommandListHidden(plugin)); + hdsubcmd.registerCommand(new CommandLists(plugin)); + hdsubcmd.registerCommand(new CommandLset(plugin)); + hdsubcmd.registerCommand(new CommandMarket(plugin)); + hdsubcmd.registerCommand(new CommandMaterial(plugin)); + hdsubcmd.registerCommand(new CommandMessage(plugin)); + hdsubcmd.registerCommand(new CommandMirror(plugin)); + hdsubcmd.registerCommand(new CommandPset(plugin)); + hdsubcmd.registerCommand(new CommandRemove(plugin)); + hdsubcmd.registerCommand(new CommandRemoveAll(plugin)); + hdsubcmd.registerCommand(new CommandRename(plugin)); + hdsubcmd.registerCommand(new CommandRenameArea(plugin)); + hdsubcmd.registerCommand(new CommandSelect(plugin)); + hdsubcmd.registerCommand(new CommandServer(plugin)); + hdsubcmd.registerCommand(new CommandSet(plugin)); + hdsubcmd.registerCommand(new CommandSetOwner(plugin)); + hdsubcmd.registerCommand(new CommandSubList(plugin)); + hdsubcmd.registerCommand(new CommandSubZone(plugin)); + hdsubcmd.registerCommand(new CommandTool(plugin)); + hdsubcmd.registerCommand(new CommandTp(plugin)); + hdsubcmd.registerCommand(new CommandTpSet(plugin)); + hdsubcmd.registerCommand(new CommandUnStuck(plugin)); + hdsubcmd.registerCommand(new CommandVersion(plugin)); - hdsubcmd.setDefaultCommand(this); + hdsubcmd.setDefaultCommand(this); - plugin.getCommand("residence").setTabCompleter(hdsubcmd); - } + plugin.getCommand("residence").setTabCompleter(hdsubcmd); + } - @Override - public void defaultExecute(final CommandSender sender, final Command command, final String label) throws CommandException { - commandHelp(new String[] { "?" }, true, sender); - } + @Override + public void defaultExecute(final CommandSender sender, final Command command, final String label) throws CommandException { + commandHelp(new String[] { "?" }, true, sender); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - boolean resadmin = false; - if (sender instanceof Player) { - if (label.equalsIgnoreCase("resadmin")) { - if (plugin.getPermissionManager().isResidenceAdmin((Player) sender)) { - resadmin = true; - } else { - sender.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NonAdmin")); - } - } - } else { - resadmin = true; - } - if (args.length > 0 && args[args.length - 1].equalsIgnoreCase("?") || args.length > 1 && args[args.length - 2].equals("?")) { - commandHelp(args, resadmin, sender); - return; - } - if (plugin.getConfigManager().allowAdminsOnly()) { - if (!resadmin) { - sender.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AdminOnly")); - return; - } - } - hdsubcmd.onCommand(sender, resadmin ? command : null, label, args); - } + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + boolean resadmin = false; + if (sender instanceof Player) { + if (label.equalsIgnoreCase("resadmin")) { + if (plugin.getPermissionManager().isResidenceAdmin((Player) sender)) { + resadmin = true; + } else { + sender.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NonAdmin")); + } + } + } else { + resadmin = true; + } + if (args.length > 0 && args[args.length - 1].equalsIgnoreCase("?") || args.length > 1 && args[args.length - 2].equals("?")) { + commandHelp(args, resadmin, sender); + return; + } + if (plugin.getConfigManager().allowAdminsOnly()) { + if (!resadmin) { + sender.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AdminOnly")); + return; + } + } + hdsubcmd.onCommand(sender, resadmin ? command : null, label, args); + } - private void commandHelp(final String[] args, final boolean resadmin, final CommandSender sender) { - if (plugin.getHelppages() != null) { - String helppath = "res"; - for (final String arg : args) { - if (arg.equalsIgnoreCase("?")) { - break; - } - helppath = helppath + "." + arg; - } - int page = 1; - if (!args[args.length - 1].equalsIgnoreCase("?")) { - try { - page = Integer.parseInt(args[args.length - 1]); - } catch (final Exception ex) { - sender.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidHelp")); - } - } - if (plugin.getHelppages().containesEntry(helppath)) { - plugin.getHelppages().printHelp(sender, page, helppath); - } - } - } + private void commandHelp(final String[] args, final boolean resadmin, final CommandSender sender) { + if (plugin.getHelppages() != null) { + String helppath = "res"; + for (final String arg : args) { + if (arg.equalsIgnoreCase("?")) { + break; + } + helppath = helppath + "." + arg; + } + int page = 1; + if (!args[args.length - 1].equalsIgnoreCase("?")) { + try { + page = Integer.parseInt(args[args.length - 1]); + } catch (final Exception ex) { + sender.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidHelp")); + } + } + if (plugin.getHelppages().containesEntry(helppath)) { + plugin.getHelppages().printHelp(sender, page, helppath); + } + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandmain/CommandResLoad.java b/src/main/java/cn/citycraft/Residence/commandmain/CommandResLoad.java index f75ea00..1b54cb5 100644 --- a/src/main/java/cn/citycraft/Residence/commandmain/CommandResLoad.java +++ b/src/main/java/cn/citycraft/Residence/commandmain/CommandResLoad.java @@ -13,26 +13,26 @@ import cn.citycraft.PluginHelper.commands.BaseCommand; import cn.citycraft.Residence.ResidenceMain; public class CommandResLoad extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandResLoad(final ResidenceMain plugin) { - super("resload"); - this.plugin = plugin; - } + public CommandResLoad(final ResidenceMain plugin) { + super("resload"); + this.plugin = plugin; + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - if (!(sender instanceof Player) || plugin.getPermissionManager().isResidenceAdmin((Player) sender)) { - try { - plugin.reloadConfig(); - plugin.loadYml(); - sender.sendMessage(ChatColor.GREEN + "[Residence] 从配置保存文件重新载入数据..."); - } catch (final Exception ex) { - sender.sendMessage(ChatColor.RED + "[Residence] 无法从配置保存文件重新载入数据, 请查看控制台异常信息!"); - sender.sendMessage(ChatColor.RED + "[Residence] 异常: " + ex.getMessage()); - Logger.getLogger(ResidenceMain.class.getName()).log(Level.SEVERE, null, ex); - } - } - } + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + if (!(sender instanceof Player) || plugin.getPermissionManager().isResidenceAdmin((Player) sender)) { + try { + plugin.reloadConfig(); + plugin.loadYml(); + sender.sendMessage(ChatColor.GREEN + "[Residence] 从配置保存文件重新载入数据..."); + } catch (final Exception ex) { + sender.sendMessage(ChatColor.RED + "[Residence] 无法从配置保存文件重新载入数据, 请查看控制台异常信息!"); + sender.sendMessage(ChatColor.RED + "[Residence] 异常: " + ex.getMessage()); + Logger.getLogger(ResidenceMain.class.getName()).log(Level.SEVERE, null, ex); + } + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandmain/CommandResReload.java b/src/main/java/cn/citycraft/Residence/commandmain/CommandResReload.java index 044d870..9b7b21c 100644 --- a/src/main/java/cn/citycraft/Residence/commandmain/CommandResReload.java +++ b/src/main/java/cn/citycraft/Residence/commandmain/CommandResReload.java @@ -10,26 +10,26 @@ import cn.citycraft.PluginHelper.commands.BaseCommand; import cn.citycraft.Residence.ResidenceMain; public class CommandResReload extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandResReload(final ResidenceMain plugin) { - super("resreload"); - this.plugin = plugin; - } + public CommandResReload(final ResidenceMain plugin) { + super("resreload"); + this.plugin = plugin; + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - if (sender instanceof Player) { - final Player player = (Player) sender; - if (plugin.getPermissionManager().isResidenceAdmin(player)) { - plugin.reloadPlugin(); - sender.sendMessage(ChatColor.GREEN + "[Residence] 重载配置文件."); - plugin.getLogger().info("重载 by " + player.getName() + "."); - } - } else { - plugin.reloadPlugin(); - plugin.getLogger().info("重载 by 控制台."); - } - } + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + if (sender instanceof Player) { + final Player player = (Player) sender; + if (plugin.getPermissionManager().isResidenceAdmin(player)) { + plugin.reloadPlugin(); + sender.sendMessage(ChatColor.GREEN + "[Residence] 重载配置文件."); + plugin.getLogger().info("重载 by " + player.getName() + "."); + } + } else { + plugin.reloadPlugin(); + plugin.getLogger().info("重载 by 控制台."); + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandmain/CommandResWorld.java b/src/main/java/cn/citycraft/Residence/commandmain/CommandResWorld.java index 0ccac0f..bb2a970 100644 --- a/src/main/java/cn/citycraft/Residence/commandmain/CommandResWorld.java +++ b/src/main/java/cn/citycraft/Residence/commandmain/CommandResWorld.java @@ -10,24 +10,24 @@ import cn.citycraft.PluginHelper.commands.BaseCommand; import cn.citycraft.Residence.ResidenceMain; public class CommandResWorld extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandResWorld(final ResidenceMain plugin) { - super("resworld"); - this.plugin = plugin; - setMinimumArguments(2); - setPossibleArguments("remove <世界名称>"); - } + public CommandResWorld(final ResidenceMain plugin) { + super("resworld"); + this.plugin = plugin; + setMinimumArguments(2); + setPossibleArguments("remove <世界名称>"); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - if (args[0].equalsIgnoreCase("remove")) { - if (sender instanceof ConsoleCommandSender) { - plugin.getResidenceManager().removeAllFromWorld(sender, args[1]); - } else { - sender.sendMessage(ChatColor.RED + "当前命令必须从控制台执行."); - } - } - } + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + if (args[0].equalsIgnoreCase("remove")) { + if (sender instanceof ConsoleCommandSender) { + plugin.getResidenceManager().removeAllFromWorld(sender, args[1]); + } else { + sender.sendMessage(ChatColor.RED + "当前命令必须从控制台执行."); + } + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandArea.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandArea.java index e97a6f3..1840014 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandArea.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandArea.java @@ -18,76 +18,76 @@ import cn.citycraft.Residence.selection.SelectionManager; import cn.citycraft.Residence.text.Language; public class CommandArea extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandArea(final ResidenceMain plugin) { - super("area"); - this.plugin = plugin; - setMinimumArguments(3); - setOnlyPlayerExecutable(); - setPossibleArguments(" <领地名称> [区域名称]"); - } + public CommandArea(final ResidenceMain plugin) { + super("area"); + this.plugin = plugin; + setMinimumArguments(3); + setOnlyPlayerExecutable(); + setPossibleArguments(" <领地名称> [区域名称]"); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final boolean resadmin = (command != null); - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); - final SelectionManager smanager = plugin.getSelectionManager(); - final WorldEditPlugin wep = (WorldEditPlugin) Bukkit.getServer().getPluginManager().getPlugin("WorldEdit"); - int page = 1; - try { - if (args.length > 0) { - page = Integer.parseInt(args[args.length - 1]); - } - } catch (final Exception ex) { - } + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final boolean resadmin = (command != null); + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); + final SelectionManager smanager = plugin.getSelectionManager(); + final WorldEditPlugin wep = (WorldEditPlugin) Bukkit.getServer().getPluginManager().getPlugin("WorldEdit"); + int page = 1; + try { + if (args.length > 0) { + page = Integer.parseInt(args[args.length - 1]); + } + } catch (final Exception ex) { + } - final String subcmd = args[0]; + final String subcmd = args[0]; - final ClaimedResidence res = rmanager.getByName(args[1]); + final ClaimedResidence res = rmanager.getByName(args[1]); - if (res == null) { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); - return; - } - if (wep != null) { - if (wep.getConfig().getInt("wand-item") == plugin.getConfigManager().getSelectionTooldID()) { - smanager.worldEdit(player); - } - } - if (args.length == 2) { - switch (subcmd) { - case "list": - res.printAreaList(player, page); - return; - case "listall": - res.printAdvancedAreaList(player, page); - return; - } - } - if (args.length == 3) { - switch (subcmd) { - case "add": - if (smanager.hasPlacedBoth(player.getName())) { - res.addArea(player, new CuboidArea(smanager.getPlayerLoc1(player.getName()), smanager.getPlayerLoc2(player.getName())), args[2], resadmin); - } else { - player.sendMessage(ChatColor.RED + language.getPhrase("SelectPoints")); - } - return; - case "remove": - res.removeArea(player, args[2], resadmin); - return; - case "replace": - if (smanager.hasPlacedBoth(player.getName())) { - res.replaceArea(player, new CuboidArea(smanager.getPlayerLoc1(player.getName()), smanager.getPlayerLoc2(player.getName())), args[2], resadmin); - } else { - player.sendMessage(ChatColor.RED + language.getPhrase("SelectPoints")); - } - return; - } - } - } + if (res == null) { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); + return; + } + if (wep != null) { + if (wep.getConfig().getInt("wand-item") == plugin.getConfigManager().getSelectionTooldID()) { + smanager.worldEdit(player); + } + } + if (args.length == 2) { + switch (subcmd) { + case "list": + res.printAreaList(player, page); + return; + case "listall": + res.printAdvancedAreaList(player, page); + return; + } + } + if (args.length == 3) { + switch (subcmd) { + case "add": + if (smanager.hasPlacedBoth(player.getName())) { + res.addArea(player, new CuboidArea(smanager.getPlayerLoc1(player.getName()), smanager.getPlayerLoc2(player.getName())), args[2], resadmin); + } else { + player.sendMessage(ChatColor.RED + language.getPhrase("SelectPoints")); + } + return; + case "remove": + res.removeArea(player, args[2], resadmin); + return; + case "replace": + if (smanager.hasPlacedBoth(player.getName())) { + res.replaceArea(player, new CuboidArea(smanager.getPlayerLoc1(player.getName()), smanager.getPlayerLoc2(player.getName())), args[2], resadmin); + } else { + player.sendMessage(ChatColor.RED + language.getPhrase("SelectPoints")); + } + return; + } + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandBank.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandBank.java index 3e5ce17..d649816 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandBank.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandBank.java @@ -14,41 +14,41 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.text.Language; public class CommandBank extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandBank(final ResidenceMain plugin) { - super("bank"); - this.plugin = plugin; - setMinimumArguments(2); - setOnlyPlayerExecutable(); - setPossibleArguments("[deposit(存入)|withdraw(取出)] 金额"); - } + public CommandBank(final ResidenceMain plugin) { + super("bank"); + this.plugin = plugin; + setMinimumArguments(2); + setOnlyPlayerExecutable(); + setPossibleArguments("[deposit(存入)|withdraw(取出)] 金额"); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final boolean resadmin = (command != null); - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); - final ClaimedResidence res = rmanager.getByName(plugin.getPlayerListener().getCurrentResidenceName(player.getName())); - if (res == null) { - player.sendMessage(ChatColor.RED + language.getPhrase("NotInResidence")); - return; - } - int amount = 0; - try { - amount = Integer.parseInt(args[1]); - } catch (final Exception ex) { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidAmount")); - return; - } - final String subcmd = args[0]; - switch (subcmd) { - case "deposit": - res.getBank().deposit(player, amount, resadmin); - case "withdraw": - res.getBank().withdraw(player, amount, resadmin); - } - } + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final boolean resadmin = (command != null); + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); + final ClaimedResidence res = rmanager.getByName(plugin.getPlayerListener().getCurrentResidenceName(player.getName())); + if (res == null) { + player.sendMessage(ChatColor.RED + language.getPhrase("NotInResidence")); + return; + } + int amount = 0; + try { + amount = Integer.parseInt(args[1]); + } catch (final Exception ex) { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidAmount")); + return; + } + final String subcmd = args[0]; + switch (subcmd) { + case "deposit": + res.getBank().deposit(player, amount, resadmin); + case "withdraw": + res.getBank().withdraw(player, amount, resadmin); + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandCheck.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandCheck.java index 35529a5..720dc8c 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandCheck.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandCheck.java @@ -14,41 +14,41 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.text.Language; public class CommandCheck extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandCheck(final ResidenceMain plugin) { - super("check"); - this.plugin = plugin; - setMinimumArguments(2); - setOnlyPlayerExecutable(); - setPossibleArguments("<领地名称> <权限> [玩家]"); - } + public CommandCheck(final ResidenceMain plugin) { + super("check"); + this.plugin = plugin; + setMinimumArguments(2); + setOnlyPlayerExecutable(); + setPossibleArguments("<领地名称> <权限> [玩家]"); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - String pname = player.getName(); - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + String pname = player.getName(); + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); - if (args.length == 2 || args.length == 3) { - if (args.length == 3) { - pname = args[2]; - } - final ClaimedResidence res = rmanager.getByName(args[0]); - if (res == null) { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); - return; - } - if (!res.getPermissions().hasApplicableFlag(pname, args[1])) { - player.sendMessage(language.getPhrase("FlagCheckFalse", - ChatColor.YELLOW + args[0] + ChatColor.RED + "." + ChatColor.YELLOW + pname + ChatColor.RED + "." + ChatColor.YELLOW + args[0] + ChatColor.RED)); - } else { - player.sendMessage(language.getPhrase("FlagCheckTrue", - ChatColor.GREEN + args[0] + ChatColor.YELLOW + "." + ChatColor.GREEN + pname + ChatColor.YELLOW + "." + ChatColor.YELLOW + args[0] + ChatColor.RED + "." - + (res.getPermissions().playerHas(pname, res.getPermissions().getWorld(), args[1], false) ? ChatColor.GREEN + "TRUE" : ChatColor.RED + "FALSE"))); - } - } - } + if (args.length == 2 || args.length == 3) { + if (args.length == 3) { + pname = args[2]; + } + final ClaimedResidence res = rmanager.getByName(args[0]); + if (res == null) { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); + return; + } + if (!res.getPermissions().hasApplicableFlag(pname, args[1])) { + player.sendMessage(language.getPhrase("FlagCheckFalse", + ChatColor.YELLOW + args[0] + ChatColor.RED + "." + ChatColor.YELLOW + pname + ChatColor.RED + "." + ChatColor.YELLOW + args[0] + ChatColor.RED)); + } else { + player.sendMessage(language.getPhrase("FlagCheckTrue", + ChatColor.GREEN + args[0] + ChatColor.YELLOW + "." + ChatColor.GREEN + pname + ChatColor.YELLOW + "." + ChatColor.YELLOW + args[0] + ChatColor.RED + "." + + (res.getPermissions().playerHas(pname, res.getPermissions().getWorld(), args[1], false) ? ChatColor.GREEN + "TRUE" : ChatColor.RED + "FALSE"))); + } + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandCheckSelf.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandCheckSelf.java index 0d61add..e97a552 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandCheckSelf.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandCheckSelf.java @@ -11,29 +11,29 @@ import cn.citycraft.PluginHelper.commands.BaseCommand; import cn.citycraft.Residence.ResidenceMain; public class CommandCheckSelf extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandCheckSelf(final ResidenceMain plugin) { - super("checkself"); - this.plugin = plugin; - setOnlyPlayerExecutable(); - setPossibleArguments("[权限]"); - } + public CommandCheckSelf(final ResidenceMain plugin) { + super("checkself"); + this.plugin = plugin; + setOnlyPlayerExecutable(); + setPossibleArguments("[权限]"); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final FlagPermissions perm = plugin.getPermsByLocForPlayer(player.getLocation(), player); - switch (args.length) { - case 0: - player.sendMessage("§e权限列表: "); - perm.printFlags(player); - return; - case 1: - final String flag = args[0]; - player.sendMessage("§e权限检查: §a" + flag + " " + (perm.checkValidFlag(flag, false) ? "§atrue" : "§cfalse")); - return; - } - } + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final FlagPermissions perm = plugin.getPermsByLocForPlayer(player.getLocation(), player); + switch (args.length) { + case 0: + player.sendMessage("§e权限列表: "); + perm.printFlags(player); + return; + case 1: + final String flag = args[0]; + player.sendMessage("§e权限检查: §a" + flag + " " + (perm.checkValidFlag(flag, false) ? "§atrue" : "§cfalse")); + return; + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandClearFlags.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandClearFlags.java index 0c4c487..87c6bb4 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandClearFlags.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandClearFlags.java @@ -14,34 +14,34 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.text.Language; public class CommandClearFlags extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandClearFlags(final ResidenceMain plugin) { - super("clearflags"); - this.plugin = plugin; - setMinimumArguments(1); - setOnlyPlayerExecutable(); - setPossibleArguments("<领地名称>"); - } + public CommandClearFlags(final ResidenceMain plugin) { + super("clearflags"); + this.plugin = plugin; + setMinimumArguments(1); + setOnlyPlayerExecutable(); + setPossibleArguments("<领地名称>"); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final boolean resadmin = (command != null); - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final boolean resadmin = (command != null); + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); - if (!resadmin) { - player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission")); - return; - } - final ClaimedResidence area = rmanager.getByName(args[1]); - if (area != null) { - area.getPermissions().clearFlags(); - player.sendMessage(ChatColor.GREEN + language.getPhrase("FlagsCleared")); - } else { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); - } - } + if (!resadmin) { + player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission")); + return; + } + final ClaimedResidence area = rmanager.getByName(args[1]); + if (area != null) { + area.getPermissions().clearFlags(); + player.sendMessage(ChatColor.GREEN + language.getPhrase("FlagsCleared")); + } else { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandCompass.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandCompass.java index 0c23351..d058258 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandCompass.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandCompass.java @@ -14,40 +14,40 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.text.Language; public class CommandCompass extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandCompass(final ResidenceMain plugin) { - super("compass", "cp"); - this.plugin = plugin; - setOnlyPlayerExecutable(); - setDescription("切换指南针方向"); - setPossibleArguments("[领地名称]"); - } + public CommandCompass(final ResidenceMain plugin) { + super("compass", "cp"); + this.plugin = plugin; + setOnlyPlayerExecutable(); + setDescription("切换指南针方向"); + setPossibleArguments("[领地名称]"); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); - if (args.length != 1) { - player.setCompassTarget(player.getWorld().getSpawnLocation()); - player.sendMessage(ChatColor.GREEN + language.getPhrase("CompassTargetReset")); - return; - } - final String resname = args[0]; + if (args.length != 1) { + player.setCompassTarget(player.getWorld().getSpawnLocation()); + player.sendMessage(ChatColor.GREEN + language.getPhrase("CompassTargetReset")); + return; + } + final String resname = args[0]; - if (rmanager.getByName(resname) != null) { - if (rmanager.getByName(resname).getWorld().equalsIgnoreCase(player.getWorld().getName())) { - final Location low = rmanager.getByName(resname).getArea("main").getLowLoc(); - final Location high = rmanager.getByName(resname).getArea("main").getHighLoc(); - final Location mid = new Location(low.getWorld(), (low.getBlockX() + high.getBlockX()) / 2, (low.getBlockY() + high.getBlockY()) / 2, (low.getBlockZ() + high.getBlockZ()) / 2); - player.setCompassTarget(mid); - player.sendMessage(ChatColor.GREEN + language.getPhrase("CompassTargetSet", ChatColor.YELLOW + resname + ChatColor.GREEN)); - } - } else { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); - } - } + if (rmanager.getByName(resname) != null) { + if (rmanager.getByName(resname).getWorld().equalsIgnoreCase(player.getWorld().getName())) { + final Location low = rmanager.getByName(resname).getArea("main").getLowLoc(); + final Location high = rmanager.getByName(resname).getArea("main").getHighLoc(); + final Location mid = new Location(low.getWorld(), (low.getBlockX() + high.getBlockX()) / 2, (low.getBlockY() + high.getBlockY()) / 2, (low.getBlockZ() + high.getBlockZ()) / 2); + player.setCompassTarget(mid); + player.sendMessage(ChatColor.GREEN + language.getPhrase("CompassTargetSet", ChatColor.YELLOW + resname + ChatColor.GREEN)); + } + } else { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandConfirm.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandConfirm.java index 6f02fb3..543f27d 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandConfirm.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandConfirm.java @@ -15,35 +15,35 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.text.Language; public class CommandConfirm extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandConfirm(final ResidenceMain plugin) { - super("confirm"); - this.plugin = plugin; - } + public CommandConfirm(final ResidenceMain plugin) { + super("confirm"); + this.plugin = plugin; + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - Player player = null; - final boolean resadmin = (command != null); - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Map deleteConfirm = plugin.getDeleteConfirm(); - final Language language = plugin.getLanguage(); - String name = "Console"; - if (sender instanceof Player) { - player = (Player) sender; - name = player.getName(); - } - final String area = deleteConfirm.get(name); - if (area == null) { - sender.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); - } else { - rmanager.removeResidence(player, area, resadmin); - deleteConfirm.remove(name); - if (player == null) { - sender.sendMessage(ChatColor.GREEN + language.getPhrase("ResidenceRemove", ChatColor.YELLOW + name + ChatColor.GREEN)); - } - } - } + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + Player player = null; + final boolean resadmin = (command != null); + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Map deleteConfirm = plugin.getDeleteConfirm(); + final Language language = plugin.getLanguage(); + String name = "Console"; + if (sender instanceof Player) { + player = (Player) sender; + name = player.getName(); + } + final String area = deleteConfirm.get(name); + if (area == null) { + sender.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); + } else { + rmanager.removeResidence(player, area, resadmin); + deleteConfirm.remove(name); + if (player == null) { + sender.sendMessage(ChatColor.GREEN + language.getPhrase("ResidenceRemove", ChatColor.YELLOW + name + ChatColor.GREEN)); + } + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandCreate.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandCreate.java index 9ab6ab2..9118e40 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandCreate.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandCreate.java @@ -15,34 +15,34 @@ import cn.citycraft.Residence.selection.SelectionManager; import cn.citycraft.Residence.text.Language; public class CommandCreate extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandCreate(final ResidenceMain plugin) { - super("create", "new"); - this.plugin = plugin; - setMinimumArguments(1); - setOnlyPlayerExecutable(); - setPossibleArguments("<领地名称>"); - } + public CommandCreate(final ResidenceMain plugin) { + super("create", "new"); + this.plugin = plugin; + setMinimumArguments(1); + setOnlyPlayerExecutable(); + setPossibleArguments("<领地名称>"); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final boolean resadmin = (command != null); - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); - final SelectionManager smanager = plugin.getSelectionManager(); - final WorldEditPlugin wep = (WorldEditPlugin) plugin.getServer().getPluginManager().getPlugin("WorldEdit"); - if (wep != null) { - if (wep.getConfig().getInt("wand-item") == plugin.getConfigManager().getSelectionTooldID()) { - smanager.worldEdit(player); - } - } - if (smanager.hasPlacedBoth(player.getName())) { - rmanager.addResidence(player, args[0], smanager.getPlayerLoc1(player.getName()), smanager.getPlayerLoc2(player.getName()), resadmin); - } else { - player.sendMessage(ChatColor.RED + language.getPhrase("SelectPoints")); - } - } + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final boolean resadmin = (command != null); + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); + final SelectionManager smanager = plugin.getSelectionManager(); + final WorldEditPlugin wep = (WorldEditPlugin) plugin.getServer().getPluginManager().getPlugin("WorldEdit"); + if (wep != null) { + if (wep.getConfig().getInt("wand-item") == plugin.getConfigManager().getSelectionTooldID()) { + smanager.worldEdit(player); + } + } + if (smanager.hasPlacedBoth(player.getName())) { + rmanager.addResidence(player, args[0], smanager.getPlayerLoc1(player.getName()), smanager.getPlayerLoc2(player.getName()), resadmin); + } else { + player.sendMessage(ChatColor.RED + language.getPhrase("SelectPoints")); + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandCurrent.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandCurrent.java index 7f2c4ef..726f97b 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandCurrent.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandCurrent.java @@ -13,25 +13,25 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.text.Language; public class CommandCurrent extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandCurrent(final ResidenceMain plugin) { - super("current"); - this.plugin = plugin; - setOnlyPlayerExecutable(); - } + public CommandCurrent(final ResidenceMain plugin) { + super("current"); + this.plugin = plugin; + setOnlyPlayerExecutable(); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); - final String res = rmanager.getNameByLoc(player.getLocation()); - if (res == null) { - player.sendMessage(ChatColor.RED + language.getPhrase("NotInResidence")); - } else { - player.sendMessage(ChatColor.GREEN + language.getPhrase("InResidence", ChatColor.YELLOW + res + ChatColor.GREEN)); - } - } + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); + final String res = rmanager.getNameByLoc(player.getLocation()); + if (res == null) { + player.sendMessage(ChatColor.RED + language.getPhrase("NotInResidence")); + } else { + player.sendMessage(ChatColor.GREEN + language.getPhrase("InResidence", ChatColor.YELLOW + res + ChatColor.GREEN)); + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandDefault.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandDefault.java index 8e5113d..05b5784 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandDefault.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandDefault.java @@ -12,23 +12,23 @@ import cn.citycraft.PluginHelper.commands.BaseCommand; import cn.citycraft.Residence.ResidenceMain; public class CommandDefault extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandDefault(final ResidenceMain plugin) { - super("default"); - this.plugin = plugin; - setMinimumArguments(1); - setOnlyPlayerExecutable(); - setPossibleArguments("<领地名称>"); - } + public CommandDefault(final ResidenceMain plugin) { + super("default"); + this.plugin = plugin; + setMinimumArguments(1); + setOnlyPlayerExecutable(); + setPossibleArguments("<领地名称>"); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final boolean resadmin = (command != null); - final ResidenceManager rmanager = plugin.getResidenceManager(); - final ClaimedResidence res = rmanager.getByName(args[0]); - res.getPermissions().applyDefaultFlags(player, resadmin); - } + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final boolean resadmin = (command != null); + final ResidenceManager rmanager = plugin.getResidenceManager(); + final ClaimedResidence res = rmanager.getByName(args[0]); + res.getPermissions().applyDefaultFlags(player, resadmin); + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandGive.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandGive.java index d1876cc..242631a 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandGive.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandGive.java @@ -11,23 +11,23 @@ import cn.citycraft.PluginHelper.commands.BaseCommand; import cn.citycraft.Residence.ResidenceMain; public class CommandGive extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandGive(final ResidenceMain plugin) { - super("give"); - this.plugin = plugin; - setMinimumArguments(2); - setOnlyPlayerExecutable(); - setPossibleArguments("<目标玩家> <赠送的领地>"); - } + public CommandGive(final ResidenceMain plugin) { + super("give"); + this.plugin = plugin; + setMinimumArguments(2); + setOnlyPlayerExecutable(); + setPossibleArguments("<目标玩家> <赠送的领地>"); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final boolean resadmin = (command != null); - final ResidenceManager rmanager = plugin.getResidenceManager(); + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final boolean resadmin = (command != null); + final ResidenceManager rmanager = plugin.getResidenceManager(); - rmanager.giveResidence(player, args[1], args[0], resadmin); - } + rmanager.giveResidence(player, args[1], args[0], resadmin); + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandGset.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandGset.java index ed25900..de11580 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandGset.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandGset.java @@ -14,40 +14,40 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.text.Language; public class CommandGset extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandGset(final ResidenceMain plugin) { - super("gset"); - this.plugin = plugin; - setMinimumArguments(3); - setOnlyPlayerExecutable(); - setPossibleArguments("<领地名称(不写则为所在领地)> <组名称> <权限> <权限状态>"); - } + public CommandGset(final ResidenceMain plugin) { + super("gset"); + this.plugin = plugin; + setMinimumArguments(3); + setOnlyPlayerExecutable(); + setPossibleArguments("<领地名称(不写则为所在领地)> <组名称> <权限> <权限状态>"); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final boolean resadmin = (command != null); - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final boolean resadmin = (command != null); + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); - if (args.length == 3) { - final ClaimedResidence area = rmanager.getByLoc(player.getLocation()); - if (area != null) { - area.getPermissions().setGroupFlag(player, args[0], args[1], args[2], resadmin); - } else { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidArea")); - } - return; - } else if (args.length == 4) { - final ClaimedResidence area = rmanager.getByName(args[0]); - if (area != null) { - area.getPermissions().setGroupFlag(player, args[1], args[2], args[3], resadmin); - } else { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); - } - return; - } - } + if (args.length == 3) { + final ClaimedResidence area = rmanager.getByLoc(player.getLocation()); + if (area != null) { + area.getPermissions().setGroupFlag(player, args[0], args[1], args[2], resadmin); + } else { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidArea")); + } + return; + } else if (args.length == 4) { + final ClaimedResidence area = rmanager.getByName(args[0]); + if (area != null) { + area.getPermissions().setGroupFlag(player, args[1], args[2], args[3], resadmin); + } else { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); + } + return; + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandInfo.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandInfo.java index 2aef0e6..af9f47e 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandInfo.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandInfo.java @@ -13,33 +13,33 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.text.Language; public class CommandInfo extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandInfo(final ResidenceMain plugin) { - super("info"); - this.plugin = plugin; - setOnlyPlayerExecutable(); - } + public CommandInfo(final ResidenceMain plugin) { + super("info"); + this.plugin = plugin; + setOnlyPlayerExecutable(); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); - if (args.length == 0) { - final String area = rmanager.getNameByLoc(player.getLocation()); - if (area != null) { - rmanager.printAreaInfo(area, player); - } else { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); - } - } else { - if (args.length == 1) { - rmanager.printAreaInfo(args[0], player); - } - } - } + if (args.length == 0) { + final String area = rmanager.getNameByLoc(player.getLocation()); + if (area != null) { + rmanager.printAreaInfo(area, player); + } else { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); + } + } else { + if (args.length == 1) { + rmanager.printAreaInfo(args[0], player); + } + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandKick.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandKick.java index 8c980cd..f4d59bb 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandKick.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandKick.java @@ -16,43 +16,43 @@ import cn.citycraft.Residence.permissions.PermissionGroup; import cn.citycraft.Residence.text.Language; public class CommandKick extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandKick(final ResidenceMain plugin) { - super("kick"); - this.plugin = plugin; - setMinimumArguments(1); - setOnlyPlayerExecutable(); - setPossibleArguments("<目标玩家>"); - setDescription("把玩家T出当前领地!"); - } + public CommandKick(final ResidenceMain plugin) { + super("kick"); + this.plugin = plugin; + setMinimumArguments(1); + setOnlyPlayerExecutable(); + setPossibleArguments("<目标玩家>"); + setDescription("把玩家T出当前领地!"); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); - final PermissionGroup group = plugin.getPermissionManager().getGroup(player); + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); + final PermissionGroup group = plugin.getPermissionManager().getGroup(player); - final Player targetplayer = Bukkit.getPlayer(args[0]); - if (targetplayer == null) { - return; - } - if (!group.hasKickAccess()) { - player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission")); - return; - } - final ClaimedResidence res = rmanager.getByLoc(targetplayer.getLocation()); - if (res == null) { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); - return; - } - if (res.getOwner().equals(player.getName())) { - if (res.getPlayersInResidence().contains(targetplayer)) { - targetplayer.teleport(res.getOutsideFreeLoc(player.getLocation())); - targetplayer.sendMessage(ChatColor.RED + language.getPhrase("Kicked") + "!"); - } - } - } + final Player targetplayer = Bukkit.getPlayer(args[0]); + if (targetplayer == null) { + return; + } + if (!group.hasKickAccess()) { + player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission")); + return; + } + final ClaimedResidence res = rmanager.getByLoc(targetplayer.getLocation()); + if (res == null) { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); + return; + } + if (res.getOwner().equals(player.getName())) { + if (res.getPlayersInResidence().contains(targetplayer)) { + targetplayer.teleport(res.getOutsideFreeLoc(player.getLocation())); + targetplayer.sendMessage(ChatColor.RED + language.getPhrase("Kicked") + "!"); + } + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandLease.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandLease.java index 7486ef8..a3a69de 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandLease.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandLease.java @@ -15,81 +15,81 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.text.Language; public class CommandLease extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandLease(final ResidenceMain plugin) { - super("lease"); - this.plugin = plugin; - setMinimumArguments(2); - setOnlyPlayerExecutable(); - setPossibleArguments("[renew/cost] [领地名]"); - } + public CommandLease(final ResidenceMain plugin) { + super("lease"); + this.plugin = plugin; + setMinimumArguments(2); + setOnlyPlayerExecutable(); + setPossibleArguments("[renew/cost] [领地名]"); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final boolean resadmin = (command != null); - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); - final LeaseManager leasemanager = plugin.getLeaseManager(); + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final boolean resadmin = (command != null); + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); + final LeaseManager leasemanager = plugin.getLeaseManager(); - if (args.length == 1 || args.length == 2) { - if (args[0].equals("renew")) { - if (args.length == 2) { - leasemanager.renewArea(args[1], player); - } else { - leasemanager.renewArea(rmanager.getNameByLoc(player.getLocation()), player); - } - return; - } else if (args[0].equals("cost")) { - if (args.length == 2) { - final ClaimedResidence res = plugin.getResidenceManager().getByName(args[1]); - if (res == null || leasemanager.leaseExpires(args[1])) { - final int cost = leasemanager.getRenewCost(res); - player.sendMessage(ChatColor.YELLOW + language.getPhrase("LeaseRenewalCost", ChatColor.RED + args[1] + ChatColor.YELLOW + "." + ChatColor.RED + cost + ChatColor.YELLOW)); - } else { - player.sendMessage(ChatColor.RED + language.getPhrase("LeaseNotExpire")); - } - } else { - final String area = rmanager.getNameByLoc(player.getLocation()); - final ClaimedResidence res = rmanager.getByName(area); - if (area == null || res == null) { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidArea")); - return; - } - if (leasemanager.leaseExpires(area)) { - final int cost = leasemanager.getRenewCost(res); - player.sendMessage(ChatColor.YELLOW + language.getPhrase("LeaseRenewalCost", ChatColor.RED + area + ChatColor.YELLOW + "." + ChatColor.RED + cost + ChatColor.YELLOW)); - } else { - player.sendMessage(ChatColor.RED + language.getPhrase("LeaseNotExpire")); - } - } - } - } else if (args.length == 3) { - if (args[0].equals("set")) { - if (!resadmin) { - player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission")); - return; - } - if (args[2].equals("infinite")) { - if (leasemanager.leaseExpires(args[1])) { - leasemanager.removeExpireTime(args[1]); - player.sendMessage(ChatColor.GREEN + language.getPhrase("LeaseInfinite")); - } else { - player.sendMessage(ChatColor.RED + language.getPhrase("LeaseNotExpire")); - } - } else { - int days; - try { - days = Integer.parseInt(args[2]); - } catch (final Exception ex) { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidDays")); - return; - } - leasemanager.setExpireTime(player, args[1], days); - } - } - } - } + if (args.length == 1 || args.length == 2) { + if (args[0].equals("renew")) { + if (args.length == 2) { + leasemanager.renewArea(args[1], player); + } else { + leasemanager.renewArea(rmanager.getNameByLoc(player.getLocation()), player); + } + return; + } else if (args[0].equals("cost")) { + if (args.length == 2) { + final ClaimedResidence res = plugin.getResidenceManager().getByName(args[1]); + if (res == null || leasemanager.leaseExpires(args[1])) { + final int cost = leasemanager.getRenewCost(res); + player.sendMessage(ChatColor.YELLOW + language.getPhrase("LeaseRenewalCost", ChatColor.RED + args[1] + ChatColor.YELLOW + "." + ChatColor.RED + cost + ChatColor.YELLOW)); + } else { + player.sendMessage(ChatColor.RED + language.getPhrase("LeaseNotExpire")); + } + } else { + final String area = rmanager.getNameByLoc(player.getLocation()); + final ClaimedResidence res = rmanager.getByName(area); + if (area == null || res == null) { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidArea")); + return; + } + if (leasemanager.leaseExpires(area)) { + final int cost = leasemanager.getRenewCost(res); + player.sendMessage(ChatColor.YELLOW + language.getPhrase("LeaseRenewalCost", ChatColor.RED + area + ChatColor.YELLOW + "." + ChatColor.RED + cost + ChatColor.YELLOW)); + } else { + player.sendMessage(ChatColor.RED + language.getPhrase("LeaseNotExpire")); + } + } + } + } else if (args.length == 3) { + if (args[0].equals("set")) { + if (!resadmin) { + player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission")); + return; + } + if (args[2].equals("infinite")) { + if (leasemanager.leaseExpires(args[1])) { + leasemanager.removeExpireTime(args[1]); + player.sendMessage(ChatColor.GREEN + language.getPhrase("LeaseInfinite")); + } else { + player.sendMessage(ChatColor.RED + language.getPhrase("LeaseNotExpire")); + } + } else { + int days; + try { + days = Integer.parseInt(args[2]); + } catch (final Exception ex) { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidDays")); + return; + } + leasemanager.setExpireTime(player, args[1], days); + } + } + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandLimits.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandLimits.java index c7f893d..6204430 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandLimits.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandLimits.java @@ -10,19 +10,19 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.permissions.PermissionManager; public class CommandLimits extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandLimits(final ResidenceMain plugin) { - super("limits"); - this.plugin = plugin; - setOnlyPlayerExecutable(); - } + public CommandLimits(final ResidenceMain plugin) { + super("limits"); + this.plugin = plugin; + setOnlyPlayerExecutable(); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final PermissionManager gmanager = plugin.getPermissionManager(); - gmanager.getGroup(player).printLimits(player); - } + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final PermissionManager gmanager = plugin.getPermissionManager(); + gmanager.getGroup(player).printLimits(player); + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandList.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandList.java index 98081cf..3e2f89c 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandList.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandList.java @@ -11,41 +11,41 @@ import cn.citycraft.PluginHelper.commands.BaseCommand; import cn.citycraft.Residence.ResidenceMain; public class CommandList extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandList(final ResidenceMain plugin) { - super("list"); - this.plugin = plugin; - setOnlyPlayerExecutable(); - } + public CommandList(final ResidenceMain plugin) { + super("list"); + this.plugin = plugin; + setOnlyPlayerExecutable(); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final ResidenceManager rmanager = plugin.getResidenceManager(); - int page = 1; - try { - if (args.length > 0) { - page = Integer.parseInt(args[args.length - 1]); - } - } catch (final Exception ex) { - } - switch (args.length) { - case 0: - rmanager.listResidences(player); - return; - case 1: - try { - Integer.parseInt(args[0]); - rmanager.listResidences(player, page); - } catch (final Exception ex) { - rmanager.listResidences(player, args[0]); - } - return; - case 2: - rmanager.listResidences(player, args[0], page); - return; - } - } + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final ResidenceManager rmanager = plugin.getResidenceManager(); + int page = 1; + try { + if (args.length > 0) { + page = Integer.parseInt(args[args.length - 1]); + } + } catch (final Exception ex) { + } + switch (args.length) { + case 0: + rmanager.listResidences(player); + return; + case 1: + try { + Integer.parseInt(args[0]); + rmanager.listResidences(player, page); + } catch (final Exception ex) { + rmanager.listResidences(player, args[0]); + } + return; + case 2: + rmanager.listResidences(player, args[0], page); + return; + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandListAll.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandListAll.java index e724e44..9dfa9cd 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandListAll.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandListAll.java @@ -11,26 +11,26 @@ import cn.citycraft.PluginHelper.commands.BaseCommand; import cn.citycraft.Residence.ResidenceMain; public class CommandListAll extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandListAll(final ResidenceMain plugin) { - super("listall"); - this.plugin = plugin; - setOnlyPlayerExecutable(); - } + public CommandListAll(final ResidenceMain plugin) { + super("listall"); + this.plugin = plugin; + setOnlyPlayerExecutable(); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final ResidenceManager rmanager = plugin.getResidenceManager(); - int page = 1; - try { - if (args.length > 0) { - page = Integer.parseInt(args[args.length - 1]); - } - } catch (final Exception ex) { - } - rmanager.listAllResidences(player, page); - } + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final ResidenceManager rmanager = plugin.getResidenceManager(); + int page = 1; + try { + if (args.length > 0) { + page = Integer.parseInt(args[args.length - 1]); + } + } catch (final Exception ex) { + } + rmanager.listAllResidences(player, page); + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandListAllHidden.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandListAllHidden.java index 84bdaa4..92953ad 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandListAllHidden.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandListAllHidden.java @@ -13,34 +13,34 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.text.Language; public class CommandListAllHidden extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandListAllHidden(final ResidenceMain plugin) { - super("listallhidden"); - this.plugin = plugin; - setOnlyPlayerExecutable(); - } + public CommandListAllHidden(final ResidenceMain plugin) { + super("listallhidden"); + this.plugin = plugin; + setOnlyPlayerExecutable(); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final boolean resadmin = (command != null); - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final boolean resadmin = (command != null); + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); - int page = 1; - try { - if (args.length > 0) { - page = Integer.parseInt(args[args.length - 1]); - } - } catch (final Exception ex) { - } + int page = 1; + try { + if (args.length > 0) { + page = Integer.parseInt(args[args.length - 1]); + } + } catch (final Exception ex) { + } - if (!resadmin) { - player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission")); - return; - } - rmanager.listAllResidences(player, page, true); - } + if (!resadmin) { + player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission")); + return; + } + rmanager.listAllResidences(player, page, true); + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandListHidden.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandListHidden.java index 6720bfa..273509a 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandListHidden.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandListHidden.java @@ -13,42 +13,42 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.text.Language; public class CommandListHidden extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandListHidden(final ResidenceMain plugin) { - super("listhidden"); - this.plugin = plugin; - setOnlyPlayerExecutable(); - } + public CommandListHidden(final ResidenceMain plugin) { + super("listhidden"); + this.plugin = plugin; + setOnlyPlayerExecutable(); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final boolean resadmin = (command != null); - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final boolean resadmin = (command != null); + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); - int page = 1; - try { - if (args.length > 0) { - page = Integer.parseInt(args[args.length - 1]); - } - } catch (final Exception ex) { - } + int page = 1; + try { + if (args.length > 0) { + page = Integer.parseInt(args[args.length - 1]); + } + } catch (final Exception ex) { + } - if (!resadmin) { - player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission")); - return; - } + if (!resadmin) { + player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission")); + return; + } - switch (args.length) { - case 0: - rmanager.listResidences(player, 1, true); - return; - case 2: - rmanager.listResidences(player, args[1], page, true); - return; - } - } + switch (args.length) { + case 0: + rmanager.listResidences(player, 1, true); + return; + case 2: + rmanager.listResidences(player, args[1], page, true); + return; + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandLists.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandLists.java index 0672fb2..2f44a42 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandLists.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandLists.java @@ -14,67 +14,67 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.text.Language; public class CommandLists extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandLists(final ResidenceMain plugin) { - super("lists"); - this.plugin = plugin; - setMinimumArguments(1); - setOnlyPlayerExecutable(); - setPossibleArguments("用法: /res lists ? 查看帮助"); - } + public CommandLists(final ResidenceMain plugin) { + super("lists"); + this.plugin = plugin; + setMinimumArguments(1); + setOnlyPlayerExecutable(); + setPossibleArguments("用法: /res lists ? 查看帮助"); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final boolean resadmin = (command != null); - final Language language = plugin.getLanguage(); - final PermissionListManager pmanager = plugin.getPermissionListManager(); - final String listname = args[1]; + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final boolean resadmin = (command != null); + final Language language = plugin.getLanguage(); + final PermissionListManager pmanager = plugin.getPermissionListManager(); + final String listname = args[1]; - switch (args[0]) { - case "list": - pmanager.printLists(player); - return; - case "add": - if (args.length == 2) { - pmanager.makeList(player, listname); - } - return; - case "remove": - if (args.length == 2) { - pmanager.removeList(player, listname); - } - return; - case "apply": - if (args.length == 3) { - pmanager.applyListToResidence(player, listname, args[2], resadmin); - } - return; - case "set": - if (args.length == 4) { - pmanager.getList(player.getName(), listname).setFlag(args[2], FlagPermissions.stringToFlagState(args[3])); - player.sendMessage(ChatColor.GREEN + language.getPhrase("FlagSet")); - } - return; - case "pset": - if (args.length == 5) { - pmanager.getList(player.getName(), listname).setGroupFlag(args[2], args[3], FlagPermissions.stringToFlagState(args[4])); - player.sendMessage(ChatColor.GREEN + language.getPhrase("FlagSet")); - } - return; - case "gset": - if (args.length == 5) { - pmanager.getList(player.getName(), listname).setPlayerFlag(args[2], args[3], FlagPermissions.stringToFlagState(args[4])); - player.sendMessage(ChatColor.GREEN + language.getPhrase("FlagSet")); - } - return; - case "view": - if (args.length == 2) { - pmanager.printList(player, listname); - } - return; - } - } + switch (args[0]) { + case "list": + pmanager.printLists(player); + return; + case "add": + if (args.length == 2) { + pmanager.makeList(player, listname); + } + return; + case "remove": + if (args.length == 2) { + pmanager.removeList(player, listname); + } + return; + case "apply": + if (args.length == 3) { + pmanager.applyListToResidence(player, listname, args[2], resadmin); + } + return; + case "set": + if (args.length == 4) { + pmanager.getList(player.getName(), listname).setFlag(args[2], FlagPermissions.stringToFlagState(args[3])); + player.sendMessage(ChatColor.GREEN + language.getPhrase("FlagSet")); + } + return; + case "pset": + if (args.length == 5) { + pmanager.getList(player.getName(), listname).setGroupFlag(args[2], args[3], FlagPermissions.stringToFlagState(args[4])); + player.sendMessage(ChatColor.GREEN + language.getPhrase("FlagSet")); + } + return; + case "gset": + if (args.length == 5) { + pmanager.getList(player.getName(), listname).setPlayerFlag(args[2], args[3], FlagPermissions.stringToFlagState(args[4])); + player.sendMessage(ChatColor.GREEN + language.getPhrase("FlagSet")); + } + return; + case "view": + if (args.length == 2) { + pmanager.printList(player, listname); + } + return; + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandLset.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandLset.java index 8f5ecd0..5c385e5 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandLset.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandLset.java @@ -15,60 +15,60 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.text.Language; public class CommandLset extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandLset(final ResidenceMain plugin) { - super("lset"); - this.plugin = plugin; - setMinimumArguments(2); - setOnlyPlayerExecutable(); - setPossibleArguments("<领地名称> [blacklist(bl)/ignorelist(il)||info] [material]"); - } + public CommandLset(final ResidenceMain plugin) { + super("lset"); + this.plugin = plugin; + setMinimumArguments(2); + setOnlyPlayerExecutable(); + setPossibleArguments("<领地名称> [blacklist(bl)/ignorelist(il)||info] [material]"); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final boolean resadmin = (command != null); - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final boolean resadmin = (command != null); + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); - final ClaimedResidence res = rmanager.getByName(args[0]); + final ClaimedResidence res = rmanager.getByName(args[0]); - if (res == null) { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); - return; - } + if (res == null) { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); + return; + } - Material mat = null; + Material mat = null; - if (args.length == 3) { - try { - mat = Material.valueOf(args[3].toUpperCase()); - } catch (final Exception ex) { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidMaterial")); - return; - } - } + if (args.length == 3) { + try { + mat = Material.valueOf(args[3].toUpperCase()); + } catch (final Exception ex) { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidMaterial")); + return; + } + } - final String subcmd = args[1]; + final String subcmd = args[1]; - switch (subcmd) { + switch (subcmd) { - case "info": - player.sendMessage(ChatColor.RED + "Blacklist:"); - res.getItemBlacklist().printList(player); - player.sendMessage(ChatColor.GREEN + "Ignorelist:"); - res.getItemIgnoreList().printList(player); - return; - case "bl": - case "blacklist": - res.getItemBlacklist().playerListChange(player, mat, resadmin); - return; - case "il": - case "ignorelist": - res.getItemIgnoreList().playerListChange(player, mat, resadmin); - return; - } - } + case "info": + player.sendMessage(ChatColor.RED + "Blacklist:"); + res.getItemBlacklist().printList(player); + player.sendMessage(ChatColor.GREEN + "Ignorelist:"); + res.getItemIgnoreList().printList(player); + return; + case "bl": + case "blacklist": + res.getItemBlacklist().playerListChange(player, mat, resadmin); + return; + case "il": + case "ignorelist": + res.getItemIgnoreList().playerListChange(player, mat, resadmin); + return; + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandMarket.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandMarket.java index 32f76b8..f2e6cf5 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandMarket.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandMarket.java @@ -18,207 +18,207 @@ import cn.citycraft.Residence.selection.SelectionManager; import cn.citycraft.Residence.text.Language; public class CommandMarket extends BaseCommand { - ConfigManager cmanager; - PermissionManager gmanager; - Language language; - ResidenceMain plugin; - RentManager rentmanager; - ResidenceManager rmanager; - SelectionManager smanager; - TransactionManager tmanager; + ConfigManager cmanager; + PermissionManager gmanager; + Language language; + ResidenceMain plugin; + RentManager rentmanager; + ResidenceManager rmanager; + SelectionManager smanager; + TransactionManager tmanager; - public CommandMarket(final ResidenceMain plugin) { - super("market"); - this.plugin = plugin; - rmanager = plugin.getResidenceManager(); - language = plugin.getLanguage(); - smanager = plugin.getSelectionManager(); - gmanager = plugin.getPermissionManager(); - rentmanager = plugin.getRentManager(); - cmanager = plugin.getConfigManager(); - tmanager = plugin.getTransactionManager(); - setOnlyPlayerExecutable(); - } + public CommandMarket(final ResidenceMain plugin) { + super("market"); + this.plugin = plugin; + rmanager = plugin.getResidenceManager(); + language = plugin.getLanguage(); + smanager = plugin.getSelectionManager(); + gmanager = plugin.getPermissionManager(); + rentmanager = plugin.getRentManager(); + cmanager = plugin.getConfigManager(); + tmanager = plugin.getTransactionManager(); + setOnlyPlayerExecutable(); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final boolean resadmin = (command != null); - int page = 1; - try { - if (args.length > 0) { - page = Integer.parseInt(args[args.length - 1]); - } - } catch (final Exception ex) { - } + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final boolean resadmin = (command != null); + int page = 1; + try { + if (args.length > 0) { + page = Integer.parseInt(args[args.length - 1]); + } + } catch (final Exception ex) { + } - final String cmd = args[0].toLowerCase(); - if (cmd.equals("list")) { - commandResMarketList(args, resadmin, player, page); - return; - } - if (cmd.equals("autorenew")) { - commandResMarketAutorenew(args, resadmin, player, page); - return; - } - if (cmd.equals("rentable")) { - commandResMarketRentable(args, resadmin, player, page); - return; - } - if (cmd.equals("rent")) { - commandResMarketRent(args, resadmin, player, page); - return; - } + final String cmd = args[0].toLowerCase(); + if (cmd.equals("list")) { + commandResMarketList(args, resadmin, player, page); + return; + } + if (cmd.equals("autorenew")) { + commandResMarketAutorenew(args, resadmin, player, page); + return; + } + if (cmd.equals("rentable")) { + commandResMarketRentable(args, resadmin, player, page); + return; + } + if (cmd.equals("rent")) { + commandResMarketRent(args, resadmin, player, page); + return; + } - if (cmd.equals("release")) { - if (args.length != 2) { - return; - } - if (rentmanager.isRented(args[1])) { - rentmanager.removeFromForRent(player, args[1], resadmin); - } else { - rentmanager.unrent(player, args[1], resadmin); - } - return; - } - if (cmd.equals("info")) { - if (args.length == 1) { - final String areaname = rmanager.getNameByLoc(player.getLocation()); - tmanager.viewSaleInfo(areaname, player); - if (cmanager.enabledRentSystem() && rentmanager.isForRent(areaname)) { - rentmanager.printRentInfo(player, areaname); - } - } else if (args.length == 2) { - tmanager.viewSaleInfo(args[1], player); - if (cmanager.enabledRentSystem() && rentmanager.isForRent(args[1])) { - rentmanager.printRentInfo(player, args[1]); - } - } else { - return; - } - return; - } - if (cmd.equals("buy")) { - if (args.length != 2) { - return; - } - tmanager.buyPlot(args[1], player, resadmin); - return; - } - if (cmd.equals("unsell")) { - if (args.length != 2) { - return; - } - tmanager.removeFromSale(player, args[1], resadmin); - return; - } - if (cmd.equals("sell")) { - if (args.length != 3) { - return; - } - int amount; - try { - amount = Integer.parseInt(args[2]); - } catch (final Exception ex) { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidAmount")); - return; - } - tmanager.putForSale(args[1], player, amount, resadmin); - return; - } - } + if (cmd.equals("release")) { + if (args.length != 2) { + return; + } + if (rentmanager.isRented(args[1])) { + rentmanager.removeFromForRent(player, args[1], resadmin); + } else { + rentmanager.unrent(player, args[1], resadmin); + } + return; + } + if (cmd.equals("info")) { + if (args.length == 1) { + final String areaname = rmanager.getNameByLoc(player.getLocation()); + tmanager.viewSaleInfo(areaname, player); + if (cmanager.enabledRentSystem() && rentmanager.isForRent(areaname)) { + rentmanager.printRentInfo(player, areaname); + } + } else if (args.length == 2) { + tmanager.viewSaleInfo(args[1], player); + if (cmanager.enabledRentSystem() && rentmanager.isForRent(args[1])) { + rentmanager.printRentInfo(player, args[1]); + } + } else { + return; + } + return; + } + if (cmd.equals("buy")) { + if (args.length != 2) { + return; + } + tmanager.buyPlot(args[1], player, resadmin); + return; + } + if (cmd.equals("unsell")) { + if (args.length != 2) { + return; + } + tmanager.removeFromSale(player, args[1], resadmin); + return; + } + if (cmd.equals("sell")) { + if (args.length != 3) { + return; + } + int amount; + try { + amount = Integer.parseInt(args[2]); + } catch (final Exception ex) { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidAmount")); + return; + } + tmanager.putForSale(args[1], player, amount, resadmin); + return; + } + } - private boolean commandResMarketAutorenew(final String[] args, final boolean resadmin, final Player player, final int page) { - if (!cmanager.enableEconomy()) { - player.sendMessage(ChatColor.RED + language.getPhrase("MarketDisabled")); - return true; - } - if (args.length != 3) { - return true; - } - boolean value; - if (args[2].equalsIgnoreCase("true") || args[2].equalsIgnoreCase("t")) { - value = true; - } else if (args[2].equalsIgnoreCase("false") || args[2].equalsIgnoreCase("f")) { - value = false; - } else { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidBoolean")); - return true; - } - if (rentmanager.isRented(args[1]) && rentmanager.getRentingPlayer(args[1]).equalsIgnoreCase(player.getName())) { - rentmanager.setRentedRepeatable(player, args[1], value, resadmin); - } else if (rentmanager.isForRent(args[1])) { - rentmanager.setRentRepeatable(player, args[1], value, resadmin); - } else { - player.sendMessage(ChatColor.RED + language.getPhrase("RentReleaseInvalid", ChatColor.YELLOW + args[1] + ChatColor.RED)); - } - return true; - } + private boolean commandResMarketAutorenew(final String[] args, final boolean resadmin, final Player player, final int page) { + if (!cmanager.enableEconomy()) { + player.sendMessage(ChatColor.RED + language.getPhrase("MarketDisabled")); + return true; + } + if (args.length != 3) { + return true; + } + boolean value; + if (args[2].equalsIgnoreCase("true") || args[2].equalsIgnoreCase("t")) { + value = true; + } else if (args[2].equalsIgnoreCase("false") || args[2].equalsIgnoreCase("f")) { + value = false; + } else { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidBoolean")); + return true; + } + if (rentmanager.isRented(args[1]) && rentmanager.getRentingPlayer(args[1]).equalsIgnoreCase(player.getName())) { + rentmanager.setRentedRepeatable(player, args[1], value, resadmin); + } else if (rentmanager.isForRent(args[1])) { + rentmanager.setRentRepeatable(player, args[1], value, resadmin); + } else { + player.sendMessage(ChatColor.RED + language.getPhrase("RentReleaseInvalid", ChatColor.YELLOW + args[1] + ChatColor.RED)); + } + return true; + } - private boolean commandResMarketList(final String[] args, final boolean resadmin, final Player player, final int page) { - if (!cmanager.enableEconomy()) { - player.sendMessage(ChatColor.RED + language.getPhrase("MarketDisabled")); - return true; - } - player.sendMessage(ChatColor.BLUE + "---" + language.getPhrase("MarketList") + "---"); - tmanager.printForSaleResidences(player); - if (cmanager.enabledRentSystem()) { - rentmanager.printRentableResidences(player); - } - return true; - } + private boolean commandResMarketList(final String[] args, final boolean resadmin, final Player player, final int page) { + if (!cmanager.enableEconomy()) { + player.sendMessage(ChatColor.RED + language.getPhrase("MarketDisabled")); + return true; + } + player.sendMessage(ChatColor.BLUE + "---" + language.getPhrase("MarketList") + "---"); + tmanager.printForSaleResidences(player); + if (cmanager.enabledRentSystem()) { + rentmanager.printRentableResidences(player); + } + return true; + } - private boolean commandResMarketRent(final String[] args, final boolean resadmin, final Player player, final int page) { - if (args.length < 2 || args.length > 3) { - return false; - } - boolean repeat = false; - if (args.length == 3) { - if (args[2].equalsIgnoreCase("t") || args[2].equalsIgnoreCase("true")) { - repeat = true; - } else if (!args[2].equalsIgnoreCase("f") && !args[2].equalsIgnoreCase("false")) { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidBoolean")); - return true; - } - } - rentmanager.rent(player, args[1], repeat, resadmin); - return true; - } + private boolean commandResMarketRent(final String[] args, final boolean resadmin, final Player player, final int page) { + if (args.length < 2 || args.length > 3) { + return false; + } + boolean repeat = false; + if (args.length == 3) { + if (args[2].equalsIgnoreCase("t") || args[2].equalsIgnoreCase("true")) { + repeat = true; + } else if (!args[2].equalsIgnoreCase("f") && !args[2].equalsIgnoreCase("false")) { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidBoolean")); + return true; + } + } + rentmanager.rent(player, args[1], repeat, resadmin); + return true; + } - private boolean commandResMarketRentable(final String[] args, final boolean resadmin, final Player player, final int page) { - if (args.length < 4 || args.length > 5) { - return false; - } - if (!cmanager.enabledRentSystem()) { - player.sendMessage(ChatColor.RED + language.getPhrase("RentDisabled")); - return true; - } - int days; - int cost; - try { - cost = Integer.parseInt(args[2]); - } catch (final Exception ex) { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidCost")); - return true; - } - try { - days = Integer.parseInt(args[3]); - } catch (final Exception ex) { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidDays")); - return true; - } - boolean repeat = false; - if (args.length == 5) { - final String state = args[4]; - if (state.equalsIgnoreCase("t") || state.equalsIgnoreCase("true")) { - repeat = true; - } else if (!state.equalsIgnoreCase("f") && !state.equalsIgnoreCase("false")) { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidBoolean")); - return true; - } - } - rentmanager.setForRent(player, args[1], cost, days, repeat, resadmin); - return true; - } + private boolean commandResMarketRentable(final String[] args, final boolean resadmin, final Player player, final int page) { + if (args.length < 4 || args.length > 5) { + return false; + } + if (!cmanager.enabledRentSystem()) { + player.sendMessage(ChatColor.RED + language.getPhrase("RentDisabled")); + return true; + } + int days; + int cost; + try { + cost = Integer.parseInt(args[2]); + } catch (final Exception ex) { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidCost")); + return true; + } + try { + days = Integer.parseInt(args[3]); + } catch (final Exception ex) { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidDays")); + return true; + } + boolean repeat = false; + if (args.length == 5) { + final String state = args[4]; + if (state.equalsIgnoreCase("t") || state.equalsIgnoreCase("true")) { + repeat = true; + } else if (!state.equalsIgnoreCase("f") && !state.equalsIgnoreCase("false")) { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidBoolean")); + return true; + } + } + rentmanager.setForRent(player, args[1], cost, days, repeat, resadmin); + return true; + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandMaterial.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandMaterial.java index 0069bf6..1860ad0 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandMaterial.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandMaterial.java @@ -12,28 +12,28 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.text.Language; public class CommandMaterial extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandMaterial(final ResidenceMain plugin) { - super("material"); - this.plugin = plugin; - setMinimumArguments(1); - setOnlyPlayerExecutable(); - } + public CommandMaterial(final ResidenceMain plugin) { + super("material"); + this.plugin = plugin; + setMinimumArguments(1); + setOnlyPlayerExecutable(); + } - @SuppressWarnings("deprecation") - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; + @SuppressWarnings("deprecation") + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; - final Language language = plugin.getLanguage(); + final Language language = plugin.getLanguage(); - try { - player.sendMessage(ChatColor.GREEN - + language.getPhrase("MaterialGet", ChatColor.GOLD + args[0] + ChatColor.GREEN + "." + ChatColor.RED + Material.getMaterial(Integer.parseInt(args[0])).name() + ChatColor.GREEN)); - } catch (final Exception ex) { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidMaterial")); - } - } + try { + player.sendMessage(ChatColor.GREEN + + language.getPhrase("MaterialGet", ChatColor.GOLD + args[0] + ChatColor.GREEN + "." + ChatColor.RED + Material.getMaterial(Integer.parseInt(args[0])).name() + ChatColor.GREEN)); + } catch (final Exception ex) { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidMaterial")); + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandMessage.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandMessage.java index 521ac13..7e6f027 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandMessage.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandMessage.java @@ -15,36 +15,36 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.text.Language; public class CommandMessage extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandMessage(final ResidenceMain plugin) { - super("message"); - this.plugin = plugin; - setMinimumArguments(1); - setOnlyPlayerExecutable(); - setPossibleArguments("[enter|leave] [消息(移除则留空)]"); - } + public CommandMessage(final ResidenceMain plugin) { + super("message"); + this.plugin = plugin; + setMinimumArguments(1); + setOnlyPlayerExecutable(); + setPossibleArguments("[enter|leave] [消息(移除则留空)]"); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final boolean resadmin = (command != null); - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); - final ClaimedResidence res = rmanager.getByLoc(player.getLocation()); - if (res == null) { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); - return; - } - String message = null; - if (args.length != 1) { - message = StringUtil.consolidateStrings(args, 1); - } - boolean enter = false; - if (args[0].equalsIgnoreCase("enter")) { - enter = true; - } - res.setEnterLeaveMessage(player, message, enter, resadmin); - } + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final boolean resadmin = (command != null); + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); + final ClaimedResidence res = rmanager.getByLoc(player.getLocation()); + if (res == null) { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); + return; + } + String message = null; + if (args.length != 1) { + message = StringUtil.consolidateStrings(args, 1); + } + boolean enter = false; + if (args[0].equalsIgnoreCase("enter")) { + enter = true; + } + res.setEnterLeaveMessage(player, message, enter, resadmin); + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandMirror.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandMirror.java index 93cffac..1eb77b9 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandMirror.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandMirror.java @@ -11,21 +11,21 @@ import cn.citycraft.PluginHelper.commands.BaseCommand; import cn.citycraft.Residence.ResidenceMain; public class CommandMirror extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandMirror(final ResidenceMain plugin) { - super("mirror"); - this.plugin = plugin; - setMinimumArguments(2); - setOnlyPlayerExecutable(); - } + public CommandMirror(final ResidenceMain plugin) { + super("mirror"); + this.plugin = plugin; + setMinimumArguments(2); + setOnlyPlayerExecutable(); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final boolean resadmin = (command != null); - final ResidenceManager rmanager = plugin.getResidenceManager(); - rmanager.mirrorPerms(player, args[1], args[0], resadmin); - } + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final boolean resadmin = (command != null); + final ResidenceManager rmanager = plugin.getResidenceManager(); + rmanager.mirrorPerms(player, args[1], args[0], resadmin); + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandPset.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandPset.java index 2c60d04..25fb05b 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandPset.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandPset.java @@ -14,56 +14,56 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.text.Language; public class CommandPset extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandPset(final ResidenceMain plugin) { - super("pset"); - this.plugin = plugin; - setMinimumArguments(2); - setOnlyPlayerExecutable(); - setPossibleArguments(" [player] [flag|removeall] [true/false/remove]"); - } + public CommandPset(final ResidenceMain plugin) { + super("pset"); + this.plugin = plugin; + setMinimumArguments(2); + setOnlyPlayerExecutable(); + setPossibleArguments(" [player] [flag|removeall] [true/false/remove]"); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final boolean resadmin = (command != null); - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final boolean resadmin = (command != null); + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); - if (args.length == 2 && args[1].equalsIgnoreCase("removeall")) { - final ClaimedResidence area = rmanager.getByLoc(player.getLocation()); - if (area != null) { - area.getPermissions().removeAllPlayerFlags(player, args[1], resadmin); - } else { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); - } - return; - } else if (args.length == 3 && args[2].equalsIgnoreCase("removeall")) { - final ClaimedResidence area = rmanager.getByName(args[0]); - if (area != null) { - area.getPermissions().removeAllPlayerFlags(player, args[2], resadmin); - } else { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); - } - return; - } else if (args.length == 3) { - final ClaimedResidence area = rmanager.getByLoc(player.getLocation()); - if (area != null) { - area.getPermissions().setPlayerFlag(player, args[0], args[1], args[2], resadmin); - } else { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); - } - return; - } else if (args.length == 4) { - final ClaimedResidence area = rmanager.getByName(args[0]); - if (area != null) { - area.getPermissions().setPlayerFlag(player, args[1], args[2], args[3], resadmin); - } else { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); - } - return; - } - } + if (args.length == 2 && args[1].equalsIgnoreCase("removeall")) { + final ClaimedResidence area = rmanager.getByLoc(player.getLocation()); + if (area != null) { + area.getPermissions().removeAllPlayerFlags(player, args[1], resadmin); + } else { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); + } + return; + } else if (args.length == 3 && args[2].equalsIgnoreCase("removeall")) { + final ClaimedResidence area = rmanager.getByName(args[0]); + if (area != null) { + area.getPermissions().removeAllPlayerFlags(player, args[2], resadmin); + } else { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); + } + return; + } else if (args.length == 3) { + final ClaimedResidence area = rmanager.getByLoc(player.getLocation()); + if (area != null) { + area.getPermissions().setPlayerFlag(player, args[0], args[1], args[2], resadmin); + } else { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); + } + return; + } else if (args.length == 4) { + final ClaimedResidence area = rmanager.getByName(args[0]); + if (area != null) { + area.getPermissions().setPlayerFlag(player, args[1], args[2], args[3], resadmin); + } else { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); + } + return; + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandRemove.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandRemove.java index ad0462a..ae9fde6 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandRemove.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandRemove.java @@ -17,85 +17,85 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.text.Language; public class CommandRemove extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandRemove(final ResidenceMain plugin) { - super("remove", "delete"); - this.plugin = plugin; - } + public CommandRemove(final ResidenceMain plugin) { + super("remove", "delete"); + this.plugin = plugin; + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - Player player = null; - final boolean resadmin = (command != null); - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Map deleteConfirm = plugin.getDeleteConfirm(); - final Language language = plugin.getLanguage(); - if (sender instanceof Player) { - player = (Player) sender; - final String area = rmanager.getNameByLoc(player.getLocation()); - if (area != null) { - final ClaimedResidence res = rmanager.getByName(area); - if (res.getParent() != null) { - final String[] split = area.split("\\."); - final String words = split[split.length - 1]; - if (!deleteConfirm.containsKey(player.getName()) || !area.equalsIgnoreCase(deleteConfirm.get(player.getName()))) { - player.sendMessage(ChatColor.RED + language.getPhrase("DeleteSubzoneConfirm", ChatColor.YELLOW + words + ChatColor.RED)); - deleteConfirm.put(player.getName(), area); - } else { - rmanager.removeResidence(player, area, resadmin); - } - } else { - if (!deleteConfirm.containsKey(player.getName()) || !area.equalsIgnoreCase(deleteConfirm.get(player.getName()))) { - player.sendMessage(ChatColor.RED + language.getPhrase("DeleteConfirm", ChatColor.YELLOW + area + ChatColor.RED)); - deleteConfirm.put(player.getName(), area); - } else { - rmanager.removeResidence(player, area, resadmin); - } - } - return; - } - } - if (args.length != 1) { - return; - } - if (player != null) { - if (!deleteConfirm.containsKey(player.getName()) || !args[0].equalsIgnoreCase(deleteConfirm.get(player.getName()))) { - String words = null; - if (rmanager.getByName(args[0]) != null) { - final ClaimedResidence res = rmanager.getByName(args[0]); - if (res.getParent() != null) { - final String[] split = args[0].split("\\."); - words = split[split.length - 1]; - } - } - if (words == null) { - player.sendMessage(ChatColor.RED + language.getPhrase("DeleteConfirm", ChatColor.YELLOW + args[0] + ChatColor.RED)); - } else { - player.sendMessage(ChatColor.RED + language.getPhrase("DeleteSubzoneConfirm", ChatColor.YELLOW + words + ChatColor.RED)); - } - deleteConfirm.put(player.getName(), args[0]); - } else { - rmanager.removeResidence(player, args[0], resadmin); - } - } else if (!deleteConfirm.containsKey("Console") || !args[0].equalsIgnoreCase(deleteConfirm.get("Console"))) { - String words = null; - if (rmanager.getByName(args[0]) != null) { - final ClaimedResidence res = rmanager.getByName(args[1]); - if (res.getParent() != null) { - final String[] split = args[0].split("\\."); - words = split[split.length - 1]; - } - } - if (words == null) { - Bukkit.getConsoleSender().sendMessage(ChatColor.RED + language.getPhrase("DeleteConfirm", ChatColor.YELLOW + args[0] + ChatColor.RED)); - } else { - Bukkit.getConsoleSender().sendMessage(ChatColor.RED + language.getPhrase("DeleteSubzoneConfirm", ChatColor.YELLOW + words + ChatColor.RED)); - } - deleteConfirm.put("Console", args[0]); - } else { - rmanager.removeResidence(args[0]); - } - } + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + Player player = null; + final boolean resadmin = (command != null); + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Map deleteConfirm = plugin.getDeleteConfirm(); + final Language language = plugin.getLanguage(); + if (sender instanceof Player) { + player = (Player) sender; + final String area = rmanager.getNameByLoc(player.getLocation()); + if (area != null) { + final ClaimedResidence res = rmanager.getByName(area); + if (res.getParent() != null) { + final String[] split = area.split("\\."); + final String words = split[split.length - 1]; + if (!deleteConfirm.containsKey(player.getName()) || !area.equalsIgnoreCase(deleteConfirm.get(player.getName()))) { + player.sendMessage(ChatColor.RED + language.getPhrase("DeleteSubzoneConfirm", ChatColor.YELLOW + words + ChatColor.RED)); + deleteConfirm.put(player.getName(), area); + } else { + rmanager.removeResidence(player, area, resadmin); + } + } else { + if (!deleteConfirm.containsKey(player.getName()) || !area.equalsIgnoreCase(deleteConfirm.get(player.getName()))) { + player.sendMessage(ChatColor.RED + language.getPhrase("DeleteConfirm", ChatColor.YELLOW + area + ChatColor.RED)); + deleteConfirm.put(player.getName(), area); + } else { + rmanager.removeResidence(player, area, resadmin); + } + } + return; + } + } + if (args.length != 1) { + return; + } + if (player != null) { + if (!deleteConfirm.containsKey(player.getName()) || !args[0].equalsIgnoreCase(deleteConfirm.get(player.getName()))) { + String words = null; + if (rmanager.getByName(args[0]) != null) { + final ClaimedResidence res = rmanager.getByName(args[0]); + if (res.getParent() != null) { + final String[] split = args[0].split("\\."); + words = split[split.length - 1]; + } + } + if (words == null) { + player.sendMessage(ChatColor.RED + language.getPhrase("DeleteConfirm", ChatColor.YELLOW + args[0] + ChatColor.RED)); + } else { + player.sendMessage(ChatColor.RED + language.getPhrase("DeleteSubzoneConfirm", ChatColor.YELLOW + words + ChatColor.RED)); + } + deleteConfirm.put(player.getName(), args[0]); + } else { + rmanager.removeResidence(player, args[0], resadmin); + } + } else if (!deleteConfirm.containsKey("Console") || !args[0].equalsIgnoreCase(deleteConfirm.get("Console"))) { + String words = null; + if (rmanager.getByName(args[0]) != null) { + final ClaimedResidence res = rmanager.getByName(args[1]); + if (res.getParent() != null) { + final String[] split = args[0].split("\\."); + words = split[split.length - 1]; + } + } + if (words == null) { + Bukkit.getConsoleSender().sendMessage(ChatColor.RED + language.getPhrase("DeleteConfirm", ChatColor.YELLOW + args[0] + ChatColor.RED)); + } else { + Bukkit.getConsoleSender().sendMessage(ChatColor.RED + language.getPhrase("DeleteSubzoneConfirm", ChatColor.YELLOW + words + ChatColor.RED)); + } + deleteConfirm.put("Console", args[0]); + } else { + rmanager.removeResidence(args[0]); + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandRemoveAll.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandRemoveAll.java index 1ae0a63..f266220 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandRemoveAll.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandRemoveAll.java @@ -13,29 +13,29 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.text.Language; public class CommandRemoveAll extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandRemoveAll(final ResidenceMain plugin) { - super("removeall"); - this.plugin = plugin; - setMinimumArguments(1); - setOnlyPlayerExecutable(); - } + public CommandRemoveAll(final ResidenceMain plugin) { + super("removeall"); + this.plugin = plugin; + setMinimumArguments(1); + setOnlyPlayerExecutable(); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final String pname = player.getName(); - final boolean resadmin = (command != null); - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); - if (resadmin || args[0].endsWith(pname)) { - rmanager.removeAllByOwner(player, args[0]); - player.sendMessage(ChatColor.GREEN + language.getPhrase("RemovePlayersResidences", ChatColor.YELLOW + args[1] + ChatColor.GREEN)); - } else { - player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission")); - } - return; - } + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final String pname = player.getName(); + final boolean resadmin = (command != null); + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); + if (resadmin || args[0].endsWith(pname)) { + rmanager.removeAllByOwner(player, args[0]); + player.sendMessage(ChatColor.GREEN + language.getPhrase("RemovePlayersResidences", ChatColor.YELLOW + args[1] + ChatColor.GREEN)); + } else { + player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission")); + } + return; + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandRename.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandRename.java index c1065f1..bd5bfb4 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandRename.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandRename.java @@ -11,22 +11,22 @@ import cn.citycraft.PluginHelper.commands.BaseCommand; import cn.citycraft.Residence.ResidenceMain; public class CommandRename extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandRename(final ResidenceMain plugin) { - super("rename"); - this.plugin = plugin; - setMinimumArguments(2); - setOnlyPlayerExecutable(); - } + public CommandRename(final ResidenceMain plugin) { + super("rename"); + this.plugin = plugin; + setMinimumArguments(2); + setOnlyPlayerExecutable(); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final boolean resadmin = (command != null); - final ResidenceManager rmanager = plugin.getResidenceManager(); + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final boolean resadmin = (command != null); + final ResidenceManager rmanager = plugin.getResidenceManager(); - rmanager.renameResidence(player, args[0], args[1], resadmin); - } + rmanager.renameResidence(player, args[0], args[1], resadmin); + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandRenameArea.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandRenameArea.java index 0591e7e..5471ea4 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandRenameArea.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandRenameArea.java @@ -14,28 +14,28 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.text.Language; public class CommandRenameArea extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandRenameArea(final ResidenceMain plugin) { - super("renamearea"); - this.plugin = plugin; - setMinimumArguments(3); - setOnlyPlayerExecutable(); - } + public CommandRenameArea(final ResidenceMain plugin) { + super("renamearea"); + this.plugin = plugin; + setMinimumArguments(3); + setOnlyPlayerExecutable(); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final boolean resadmin = (command != null); - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final boolean resadmin = (command != null); + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); - final ClaimedResidence res = rmanager.getByName(args[0]); - if (res == null) { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); - return; - } - res.renameArea(player, args[1], args[2], resadmin); - } + final ClaimedResidence res = rmanager.getByName(args[0]); + if (res == null) { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); + return; + } + res.renameArea(player, args[1], args[2], resadmin); + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandSelect.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandSelect.java index 45e8197..84369ee 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandSelect.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandSelect.java @@ -21,147 +21,147 @@ import cn.citycraft.Residence.selection.SelectionManager; import cn.citycraft.Residence.text.Language; public class CommandSelect extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandSelect(final ResidenceMain plugin) { - super("select"); - this.plugin = plugin; - setMinimumArguments(1); - setOnlyPlayerExecutable(); - setPermission("residence.select"); - setPossibleArguments("请使用/res select ? 查看帮助"); - } + public CommandSelect(final ResidenceMain plugin) { + super("select"); + this.plugin = plugin; + setMinimumArguments(1); + setOnlyPlayerExecutable(); + setPermission("residence.select"); + setPossibleArguments("请使用/res select ? 查看帮助"); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final boolean resadmin = (command != null); - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); - final PermissionGroup group = plugin.getPermissionManager().getGroup(player); - final SelectionManager smanager = plugin.getSelectionManager(); + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final boolean resadmin = (command != null); + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); + final PermissionGroup group = plugin.getPermissionManager().getGroup(player); + final SelectionManager smanager = plugin.getSelectionManager(); - if (!group.selectCommandAccess() && !resadmin) { - player.sendMessage(ChatColor.RED + language.getPhrase("SelectDiabled")); - return; - } - if (!group.canCreateResidences() && group.getMaxSubzoneDepth() <= 0 && !resadmin) { - player.sendMessage(ChatColor.RED + language.getPhrase("SelectDiabled")); - return; - } + if (!group.selectCommandAccess() && !resadmin) { + player.sendMessage(ChatColor.RED + language.getPhrase("SelectDiabled")); + return; + } + if (!group.canCreateResidences() && group.getMaxSubzoneDepth() <= 0 && !resadmin) { + player.sendMessage(ChatColor.RED + language.getPhrase("SelectDiabled")); + return; + } - final String subcmd = args[0]; - switch (args.length) { - case 1: - switch (subcmd) { - case "size": - case "cost": - if (smanager.hasPlacedBoth(player.getName())) { - try { - smanager.showSelectionInfo(player); - return; - } catch (final Exception ex) { - Logger.getLogger(ResidenceMain.class.getName()).log(Level.SEVERE, null, ex); - return; - } - } else if (smanager.worldEdit(player)) { - try { - smanager.showSelectionInfo(player); - return; - } catch (final Exception ex) { - Logger.getLogger(ResidenceMain.class.getName()).log(Level.SEVERE, null, ex); - return; - } - } - return; - case "vert": - smanager.vert(player, resadmin); - return; - case "sky": - smanager.sky(player, resadmin); - return; - case "bedrock": - smanager.bedrock(player, resadmin); - return; - case "coords": - final Location playerLoc1 = smanager.getPlayerLoc1(player.getName()); - if (playerLoc1 != null) { - player.sendMessage(ChatColor.GREEN + language.getPhrase("Primary.Selection") + ":" + ChatColor.AQUA + " (" + playerLoc1.getBlockX() + ", " + playerLoc1.getBlockY() + ", " - + playerLoc1.getBlockZ() + ")"); - } - final Location playerLoc2 = smanager.getPlayerLoc2(player.getName()); - if (playerLoc2 != null) { - player.sendMessage(ChatColor.GREEN + language.getPhrase("Secondary.Selection") + ":" + ChatColor.AQUA + " (" + playerLoc2.getBlockX() + ", " + playerLoc2.getBlockY() + ", " - + playerLoc2.getBlockZ() + ")"); - } - return; - case "chunk": - smanager.selectChunk(player); - return; - case "worldedit": - if (smanager.worldEdit(player)) { - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("SelectionSuccess")); - } - return; - } - return; - case 2: - int amount; - try { - amount = Integer.parseInt(args[1]); - } catch (final Exception ex) { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidAmount")); - return; - } - switch (subcmd) { - case "expand": - smanager.modify(player, false, amount); - return; - case "shift": - smanager.modify(player, true, amount); - return; - } - return; - case 3: - try { - smanager.selectBySize(player, Integer.parseInt(args[0]), Integer.parseInt(args[1]), Integer.parseInt(args[2])); - } catch (final Exception ex) { - player.sendMessage(ChatColor.RED + language.getPhrase("SelectionFail")); - } - return; - default: - if (args.length > 0) { - String resName; - String areaName; - ClaimedResidence res = null; - if (args.length > 1) { - res = rmanager.getByName(args[0]); - } else { - res = rmanager.getByLoc(player.getLocation()); - } - if (res == null) { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); - return; - } - resName = res.getName(); - CuboidArea area = null; - if (args.length > 2) { - area = res.getArea(args[1]); - areaName = args[1]; - } else { - areaName = res.getAreaIDbyLoc(player.getLocation()); - area = res.getArea(areaName); - } - if (area != null) { - smanager.placeLoc1(player, area.getHighLoc()); - smanager.placeLoc2(player, area.getLowLoc()); - player.sendMessage(ChatColor.GREEN + language.getPhrase("SelectionArea", ChatColor.GOLD + areaName + ChatColor.GREEN + "." + ChatColor.GOLD + resName + ChatColor.GREEN)); - } else { - player.sendMessage(ChatColor.RED + language.getPhrase("AreaNonExist")); - } - } - return; - } - } + final String subcmd = args[0]; + switch (args.length) { + case 1: + switch (subcmd) { + case "size": + case "cost": + if (smanager.hasPlacedBoth(player.getName())) { + try { + smanager.showSelectionInfo(player); + return; + } catch (final Exception ex) { + Logger.getLogger(ResidenceMain.class.getName()).log(Level.SEVERE, null, ex); + return; + } + } else if (smanager.worldEdit(player)) { + try { + smanager.showSelectionInfo(player); + return; + } catch (final Exception ex) { + Logger.getLogger(ResidenceMain.class.getName()).log(Level.SEVERE, null, ex); + return; + } + } + return; + case "vert": + smanager.vert(player, resadmin); + return; + case "sky": + smanager.sky(player, resadmin); + return; + case "bedrock": + smanager.bedrock(player, resadmin); + return; + case "coords": + final Location playerLoc1 = smanager.getPlayerLoc1(player.getName()); + if (playerLoc1 != null) { + player.sendMessage(ChatColor.GREEN + language.getPhrase("Primary.Selection") + ":" + ChatColor.AQUA + " (" + playerLoc1.getBlockX() + ", " + playerLoc1.getBlockY() + ", " + + playerLoc1.getBlockZ() + ")"); + } + final Location playerLoc2 = smanager.getPlayerLoc2(player.getName()); + if (playerLoc2 != null) { + player.sendMessage(ChatColor.GREEN + language.getPhrase("Secondary.Selection") + ":" + ChatColor.AQUA + " (" + playerLoc2.getBlockX() + ", " + playerLoc2.getBlockY() + ", " + + playerLoc2.getBlockZ() + ")"); + } + return; + case "chunk": + smanager.selectChunk(player); + return; + case "worldedit": + if (smanager.worldEdit(player)) { + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("SelectionSuccess")); + } + return; + } + return; + case 2: + int amount; + try { + amount = Integer.parseInt(args[1]); + } catch (final Exception ex) { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidAmount")); + return; + } + switch (subcmd) { + case "expand": + smanager.modify(player, false, amount); + return; + case "shift": + smanager.modify(player, true, amount); + return; + } + return; + case 3: + try { + smanager.selectBySize(player, Integer.parseInt(args[0]), Integer.parseInt(args[1]), Integer.parseInt(args[2])); + } catch (final Exception ex) { + player.sendMessage(ChatColor.RED + language.getPhrase("SelectionFail")); + } + return; + default: + if (args.length > 0) { + String resName; + String areaName; + ClaimedResidence res = null; + if (args.length > 1) { + res = rmanager.getByName(args[0]); + } else { + res = rmanager.getByLoc(player.getLocation()); + } + if (res == null) { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); + return; + } + resName = res.getName(); + CuboidArea area = null; + if (args.length > 2) { + area = res.getArea(args[1]); + areaName = args[1]; + } else { + areaName = res.getAreaIDbyLoc(player.getLocation()); + area = res.getArea(areaName); + } + if (area != null) { + smanager.placeLoc1(player, area.getHighLoc()); + smanager.placeLoc2(player, area.getLowLoc()); + player.sendMessage(ChatColor.GREEN + language.getPhrase("SelectionArea", ChatColor.GOLD + areaName + ChatColor.GREEN + "." + ChatColor.GOLD + resName + ChatColor.GREEN)); + } else { + player.sendMessage(ChatColor.RED + language.getPhrase("AreaNonExist")); + } + } + return; + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandServer.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandServer.java index 6711044..4f6d2fd 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandServer.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandServer.java @@ -14,34 +14,34 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.text.Language; public class CommandServer extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandServer(final ResidenceMain plugin) { - super("server"); - this.plugin = plugin; - setMinimumArguments(1); - setOnlyPlayerExecutable(); - } + public CommandServer(final ResidenceMain plugin) { + super("server"); + this.plugin = plugin; + setMinimumArguments(1); + setOnlyPlayerExecutable(); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final boolean resadmin = (command != null); - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final boolean resadmin = (command != null); + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); - if (!resadmin) { - player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission")); - return; - } - final ClaimedResidence res = rmanager.getByName(args[0]); - if (res == null) { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); - return; - } - res.getPermissions().setOwner("Server Land", false); - player.sendMessage(ChatColor.GREEN + language.getPhrase("ResidenceOwnerChange", ChatColor.YELLOW + args[0] + ChatColor.GREEN + "." + ChatColor.YELLOW + "Server Land" + ChatColor.GREEN)); + if (!resadmin) { + player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission")); + return; + } + final ClaimedResidence res = rmanager.getByName(args[0]); + if (res == null) { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); + return; + } + res.getPermissions().setOwner("Server Land", false); + player.sendMessage(ChatColor.GREEN + language.getPhrase("ResidenceOwnerChange", ChatColor.YELLOW + args[0] + ChatColor.GREEN + "." + ChatColor.YELLOW + "Server Land" + ChatColor.GREEN)); - } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandSet.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandSet.java index 7503289..f99444a 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandSet.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandSet.java @@ -14,38 +14,38 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.text.Language; public class CommandSet extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandSet(final ResidenceMain plugin) { - super("set"); - this.plugin = plugin; - setMinimumArguments(2); - setOnlyPlayerExecutable(); - setPossibleArguments(" [flag] [true/false/remove]"); - } + public CommandSet(final ResidenceMain plugin) { + super("set"); + this.plugin = plugin; + setMinimumArguments(2); + setOnlyPlayerExecutable(); + setPossibleArguments(" [flag] [true/false/remove]"); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final boolean resadmin = (command != null); - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final boolean resadmin = (command != null); + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); - if (args.length == 2) { - final String res = rmanager.getNameByLoc(player.getLocation()); - if (res != null) { - rmanager.getByName(res).getPermissions().setFlag(player, args[0], args[1], resadmin); - } else { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); - } - } else if (args.length == 3) { - final ClaimedResidence res = rmanager.getByName(args[0]); - if (res != null) { - res.getPermissions().setFlag(player, args[1], args[2], resadmin); - } else { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); - } - } - } + if (args.length == 2) { + final String res = rmanager.getNameByLoc(player.getLocation()); + if (res != null) { + rmanager.getByName(res).getPermissions().setFlag(player, args[0], args[1], resadmin); + } else { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); + } + } else if (args.length == 3) { + final ClaimedResidence res = rmanager.getByName(args[0]); + if (res != null) { + res.getPermissions().setFlag(player, args[1], args[2], resadmin); + } else { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); + } + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandSetOwner.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandSetOwner.java index 21d2767..744f36f 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandSetOwner.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandSetOwner.java @@ -13,36 +13,36 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.text.Language; public class CommandSetOwner extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandSetOwner(final ResidenceMain plugin) { - super("setowner"); - this.plugin = plugin; - setMinimumArguments(2); - setPossibleArguments("[领地名] [玩家]"); - } + public CommandSetOwner(final ResidenceMain plugin) { + super("setowner"); + this.plugin = plugin; + setMinimumArguments(2); + setPossibleArguments("[领地名] [玩家]"); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final boolean resadmin = (command != null); - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); - if (!resadmin) { - sender.sendMessage(ChatColor.RED + language.getPhrase("NoPermission")); - } - final ClaimedResidence area = rmanager.getByName(args[0]); - if (area != null) { - area.getPermissions().setOwner(args[1], true); - if (area.getParent() == null) { - sender.sendMessage( - ChatColor.GREEN + language.getPhrase("ResidenceOwnerChange", ChatColor.YELLOW + " " + args[0] + " " + ChatColor.GREEN + "." + ChatColor.YELLOW + args[1] + ChatColor.GREEN)); - } else { - sender.sendMessage(ChatColor.GREEN + language.getPhrase("SubzoneOwnerChange", - ChatColor.YELLOW + " " + args[0].split("\\.")[args[1].split("\\.").length - 1] + " " + ChatColor.GREEN + "." + ChatColor.YELLOW + args[1] + ChatColor.GREEN)); - } - } else { - sender.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); - } - } + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final boolean resadmin = (command != null); + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); + if (!resadmin) { + sender.sendMessage(ChatColor.RED + language.getPhrase("NoPermission")); + } + final ClaimedResidence area = rmanager.getByName(args[0]); + if (area != null) { + area.getPermissions().setOwner(args[1], true); + if (area.getParent() == null) { + sender.sendMessage( + ChatColor.GREEN + language.getPhrase("ResidenceOwnerChange", ChatColor.YELLOW + " " + args[0] + " " + ChatColor.GREEN + "." + ChatColor.YELLOW + args[1] + ChatColor.GREEN)); + } else { + sender.sendMessage(ChatColor.GREEN + language.getPhrase("SubzoneOwnerChange", + ChatColor.YELLOW + " " + args[0].split("\\.")[args[1].split("\\.").length - 1] + " " + ChatColor.GREEN + "." + ChatColor.YELLOW + args[1] + ChatColor.GREEN)); + } + } else { + sender.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandSubList.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandSubList.java index 2b22c2d..b80be6f 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandSubList.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandSubList.java @@ -14,41 +14,41 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.text.Language; public class CommandSubList extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandSubList(final ResidenceMain plugin) { - super("sublist"); - this.plugin = plugin; - setOnlyPlayerExecutable(); - } + public CommandSubList(final ResidenceMain plugin) { + super("sublist"); + this.plugin = plugin; + setOnlyPlayerExecutable(); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); - int page = 1; - try { - if (args.length > 0) { - page = Integer.parseInt(args[args.length - 1]); - } - } catch (final Exception ex) { - } - if (args.length == 1 || args.length == 2) { - ClaimedResidence res; - if (args.length == 0) { - res = rmanager.getByLoc(player.getLocation()); - } else { - res = rmanager.getByName(args[0]); - } - if (res != null) { - res.printSubzoneList(player, page); - } else { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); - } - return; - } - return; - } + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); + int page = 1; + try { + if (args.length > 0) { + page = Integer.parseInt(args[args.length - 1]); + } + } catch (final Exception ex) { + } + if (args.length == 1 || args.length == 2) { + ClaimedResidence res; + if (args.length == 0) { + res = rmanager.getByLoc(player.getLocation()); + } else { + res = rmanager.getByName(args[0]); + } + if (res != null) { + res.printSubzoneList(player, page); + } else { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); + } + return; + } + return; + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandSubZone.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandSubZone.java index 0922f96..d10d5dd 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandSubZone.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandSubZone.java @@ -17,51 +17,51 @@ import cn.citycraft.Residence.selection.SelectionManager; import cn.citycraft.Residence.text.Language; public class CommandSubZone extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandSubZone(final ResidenceMain plugin) { - super("subzone", "sz"); - this.plugin = plugin; - setMinimumArguments(1); - setOnlyPlayerExecutable(); - setPossibleArguments("<领地名> [附属领地名]"); - } + public CommandSubZone(final ResidenceMain plugin) { + super("subzone", "sz"); + this.plugin = plugin; + setMinimumArguments(1); + setOnlyPlayerExecutable(); + setPossibleArguments("<领地名> [附属领地名]"); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final boolean resadmin = (command != null); - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); - final SelectionManager smanager = plugin.getSelectionManager(); - if (args.length != 2 && args.length != 3) { - return; - } - String zname; - String parent; - if (args.length == 1) { - parent = rmanager.getNameByLoc(player.getLocation()); - zname = args[0]; - } else { - parent = args[0]; - zname = args[1]; - } - final WorldEditPlugin wep = (WorldEditPlugin) Bukkit.getServer().getPluginManager().getPlugin("WorldEdit"); - if (wep != null) { - if (wep.getConfig().getInt("wand-item") == plugin.getConfigManager().getSelectionTooldID()) { - smanager.worldEdit(player); - } - } - if (smanager.hasPlacedBoth(player.getName())) { - final ClaimedResidence res = rmanager.getByName(parent); - if (res == null) { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); - return; - } - res.addSubzone(player, smanager.getPlayerLoc1(player.getName()), smanager.getPlayerLoc2(player.getName()), zname, resadmin); - } else { - player.sendMessage(ChatColor.RED + language.getPhrase("SelectPoints")); - } - } + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final boolean resadmin = (command != null); + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); + final SelectionManager smanager = plugin.getSelectionManager(); + if (args.length != 2 && args.length != 3) { + return; + } + String zname; + String parent; + if (args.length == 1) { + parent = rmanager.getNameByLoc(player.getLocation()); + zname = args[0]; + } else { + parent = args[0]; + zname = args[1]; + } + final WorldEditPlugin wep = (WorldEditPlugin) Bukkit.getServer().getPluginManager().getPlugin("WorldEdit"); + if (wep != null) { + if (wep.getConfig().getInt("wand-item") == plugin.getConfigManager().getSelectionTooldID()) { + smanager.worldEdit(player); + } + } + if (smanager.hasPlacedBoth(player.getName())) { + final ClaimedResidence res = rmanager.getByName(parent); + if (res == null) { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); + return; + } + res.addSubzone(player, smanager.getPlayerLoc1(player.getName()), smanager.getPlayerLoc2(player.getName()), zname, resadmin); + } else { + player.sendMessage(ChatColor.RED + language.getPhrase("SelectPoints")); + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandTool.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandTool.java index adcff77..397cf57 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandTool.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandTool.java @@ -13,23 +13,23 @@ import cn.citycraft.Residence.manager.ConfigManager; import cn.citycraft.Residence.text.Language; public class CommandTool extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandTool(final ResidenceMain plugin) { - super("tool"); - this.plugin = plugin; - setOnlyPlayerExecutable(); - } + public CommandTool(final ResidenceMain plugin) { + super("tool"); + this.plugin = plugin; + setOnlyPlayerExecutable(); + } - @SuppressWarnings("deprecation") - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final Language language = plugin.getLanguage(); - final ConfigManager cmanager = plugin.getConfigManager(); - player.sendMessage(ChatColor.YELLOW + language.getPhrase("SelectionTool") + ":" + ChatColor.GREEN + Material.getMaterial(cmanager.getSelectionTooldID())); - player.sendMessage(ChatColor.YELLOW + language.getPhrase("InfoTool") + ": " + ChatColor.GREEN + Material.getMaterial(cmanager.getInfoToolID())); + @SuppressWarnings("deprecation") + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final Language language = plugin.getLanguage(); + final ConfigManager cmanager = plugin.getConfigManager(); + player.sendMessage(ChatColor.YELLOW + language.getPhrase("SelectionTool") + ":" + ChatColor.GREEN + Material.getMaterial(cmanager.getSelectionTooldID())); + player.sendMessage(ChatColor.YELLOW + language.getPhrase("InfoTool") + ": " + ChatColor.GREEN + Material.getMaterial(cmanager.getInfoToolID())); - } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandTp.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandTp.java index 791140b..97382ba 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandTp.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandTp.java @@ -14,27 +14,27 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.text.Language; public class CommandTp extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandTp(final ResidenceMain plugin) { - super("tp"); - this.plugin = plugin; - setMinimumArguments(1); - setOnlyPlayerExecutable(); - } + public CommandTp(final ResidenceMain plugin) { + super("tp"); + this.plugin = plugin; + setMinimumArguments(1); + setOnlyPlayerExecutable(); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final boolean resadmin = (command != null); - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); - final ClaimedResidence res = rmanager.getByName(args[0]); - if (res == null) { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); - return; - } - res.tpToResidence(player, player, resadmin); - } + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final boolean resadmin = (command != null); + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); + final ClaimedResidence res = rmanager.getByName(args[0]); + if (res == null) { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); + return; + } + res.tpToResidence(player, player, resadmin); + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandTpSet.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandTpSet.java index 998a88e..9f04123 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandTpSet.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandTpSet.java @@ -14,28 +14,28 @@ import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.text.Language; public class CommandTpSet extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandTpSet(final ResidenceMain plugin) { - super("tpset"); - this.plugin = plugin; - setOnlyPlayerExecutable(); - } + public CommandTpSet(final ResidenceMain plugin) { + super("tpset"); + this.plugin = plugin; + setOnlyPlayerExecutable(); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; - final boolean resadmin = (command != null); - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); + final boolean resadmin = (command != null); + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); - final ClaimedResidence res = rmanager.getByLoc(player.getLocation()); - if (res != null) { - res.setTpLoc(player, resadmin); - } else { - player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); - } - } + final ClaimedResidence res = rmanager.getByLoc(player.getLocation()); + if (res != null) { + res.setTpLoc(player, resadmin); + } else { + player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence")); + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandUnStuck.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandUnStuck.java index 4df8007..95b3def 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandUnStuck.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandUnStuck.java @@ -16,33 +16,33 @@ import cn.citycraft.Residence.permissions.PermissionManager; import cn.citycraft.Residence.text.Language; public class CommandUnStuck extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandUnStuck(final ResidenceMain plugin) { - super("unstuck"); - this.plugin = plugin; - setOnlyPlayerExecutable(); - } + public CommandUnStuck(final ResidenceMain plugin) { + super("unstuck"); + this.plugin = plugin; + setOnlyPlayerExecutable(); + } - @Override - public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { - final Player player = (Player) sender; - final ResidenceManager rmanager = plugin.getResidenceManager(); - final Language language = plugin.getLanguage(); - final PermissionManager gmanager = plugin.getPermissionManager(); - final PermissionGroup group = gmanager.getGroup(player); + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final Player player = (Player) sender; + final ResidenceManager rmanager = plugin.getResidenceManager(); + final Language language = plugin.getLanguage(); + final PermissionManager gmanager = plugin.getPermissionManager(); + final PermissionGroup group = gmanager.getGroup(player); - if (!group.hasUnstuckAccess()) { - player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission")); - return; - } - final ClaimedResidence res = rmanager.getByLoc(player.getLocation()); - if (res == null) { - player.sendMessage(ChatColor.RED + language.getPhrase("NotInResidence")); - } else { - player.sendMessage(ChatColor.YELLOW + language.getPhrase("Moved") + "..."); - player.teleport(res.getOutsideFreeLoc(player.getLocation())); - } - } + if (!group.hasUnstuckAccess()) { + player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission")); + return; + } + final ClaimedResidence res = rmanager.getByLoc(player.getLocation()); + if (res == null) { + player.sendMessage(ChatColor.RED + language.getPhrase("NotInResidence")); + } else { + player.sendMessage(ChatColor.YELLOW + language.getPhrase("Moved") + "..."); + player.teleport(res.getOutsideFreeLoc(player.getLocation())); + } + } } diff --git a/src/main/java/cn/citycraft/Residence/commandsub/CommandVersion.java b/src/main/java/cn/citycraft/Residence/commandsub/CommandVersion.java index 1a50b27..212239a 100644 --- a/src/main/java/cn/citycraft/Residence/commandsub/CommandVersion.java +++ b/src/main/java/cn/citycraft/Residence/commandsub/CommandVersion.java @@ -11,33 +11,33 @@ import cn.citycraft.PluginHelper.commands.BaseCommand; import cn.citycraft.Residence.ResidenceMain; public class CommandVersion extends BaseCommand { - ResidenceMain plugin; + ResidenceMain plugin; - public CommandVersion(ResidenceMain plugin) { - super("version"); - this.plugin = plugin; - } + public CommandVersion(ResidenceMain plugin) { + super("version"); + this.plugin = plugin; + } - @Override - public void execute(CommandSender sender, Command command, String label, String[] args) throws CommandException { - sender.sendMessage(ChatColor.GRAY + "------------------------------------"); - sender.sendMessage(ChatColor.RED + "当前服务器运行的 " + ChatColor.GOLD + "Residence" + ChatColor.RED + " 版本: " + ChatColor.BLUE + plugin.getDescription().getVersion()); - sender.sendMessage(ChatColor.GREEN + "创建者: " + ChatColor.YELLOW + "bekvon"); - sender.sendMessage(ChatColor.GREEN + "升级到 1.8 by: " + ChatColor.YELLOW + "DartCZ"); - sender.sendMessage(ChatColor.RED + "升级到最新无UUID版本 by: " + ChatColor.YELLOW + "喵♂呜"); - String names = null; - List authlist = plugin.getDescription().getAuthors(); - for (String auth : authlist) - if (names == null) - names = auth; - else - names = names + ", " + auth; - sender.sendMessage(ChatColor.GREEN + "作者: " + ChatColor.YELLOW + names); - sender.sendMessage(ChatColor.DARK_AQUA + "插件命令列表,帮助, 请查看wiki:"); - sender.sendMessage(ChatColor.GREEN + "http://residencebukkitmod.wikispaces.com/"); - sender.sendMessage(ChatColor.AQUA + "重制版本请查看Jenkins:"); - sender.sendMessage(ChatColor.BLUE + plugin.getDescription().getWebsite()); - sender.sendMessage(ChatColor.GRAY + "------------------------------------"); - } + @Override + public void execute(CommandSender sender, Command command, String label, String[] args) throws CommandException { + sender.sendMessage(ChatColor.GRAY + "------------------------------------"); + sender.sendMessage(ChatColor.RED + "当前服务器运行的 " + ChatColor.GOLD + "Residence" + ChatColor.RED + " 版本: " + ChatColor.BLUE + plugin.getDescription().getVersion()); + sender.sendMessage(ChatColor.GREEN + "创建者: " + ChatColor.YELLOW + "bekvon"); + sender.sendMessage(ChatColor.GREEN + "升级到 1.8 by: " + ChatColor.YELLOW + "DartCZ"); + sender.sendMessage(ChatColor.RED + "升级到最新无UUID版本 by: " + ChatColor.YELLOW + "喵♂呜"); + String names = null; + List authlist = plugin.getDescription().getAuthors(); + for (String auth : authlist) + if (names == null) + names = auth; + else + names = names + ", " + auth; + sender.sendMessage(ChatColor.GREEN + "作者: " + ChatColor.YELLOW + names); + sender.sendMessage(ChatColor.DARK_AQUA + "插件命令列表,帮助, 请查看wiki:"); + sender.sendMessage(ChatColor.GREEN + "http://residencebukkitmod.wikispaces.com/"); + sender.sendMessage(ChatColor.AQUA + "重制版本请查看Jenkins:"); + sender.sendMessage(ChatColor.BLUE + plugin.getDescription().getWebsite()); + sender.sendMessage(ChatColor.GRAY + "------------------------------------"); + } } diff --git a/src/main/java/cn/citycraft/Residence/economy/EconomyInterface.java b/src/main/java/cn/citycraft/Residence/economy/EconomyInterface.java index 0a97f73..54b5e7b 100644 --- a/src/main/java/cn/citycraft/Residence/economy/EconomyInterface.java +++ b/src/main/java/cn/citycraft/Residence/economy/EconomyInterface.java @@ -2,9 +2,14 @@ package cn.citycraft.Residence.economy; public interface EconomyInterface { public double getBalance(String playerName); + public boolean canAfford(String playerName, double amount); + public boolean add(String playerName, double amount); + public boolean subtract(String playerName, double amount); + public boolean transfer(String playerFrom, String playerTo, double amount); + public String getName(); } diff --git a/src/main/java/cn/citycraft/Residence/economy/EssentialsEcoAdapter.java b/src/main/java/cn/citycraft/Residence/economy/EssentialsEcoAdapter.java index 1e3104a..8439ce5 100644 --- a/src/main/java/cn/citycraft/Residence/economy/EssentialsEcoAdapter.java +++ b/src/main/java/cn/citycraft/Residence/economy/EssentialsEcoAdapter.java @@ -16,90 +16,90 @@ import com.earth2me.essentials.api.UserDoesNotExistException; */ public class EssentialsEcoAdapter implements EconomyInterface { - Essentials plugin; + Essentials plugin; - public EssentialsEcoAdapter(final Essentials p) { - plugin = p; - final String serverland = "Server Land"; - if (!Economy.playerExists(serverland)) { - Economy.createNPC(serverland); - } - } + public EssentialsEcoAdapter(final Essentials p) { + plugin = p; + final String serverland = "Server Land"; + if (!Economy.playerExists(serverland)) { + Economy.createNPC(serverland); + } + } - @Override - public boolean add(final String playerName, final double amount) { - if (Economy.playerExists(playerName)) { - try { - Economy.add(playerName, amount); - return true; - } catch (final UserDoesNotExistException ex) { - return false; - } catch (final NoLoanPermittedException ex) { - return false; - } - } - return false; - } + @Override + public boolean add(final String playerName, final double amount) { + if (Economy.playerExists(playerName)) { + try { + Economy.add(playerName, amount); + return true; + } catch (final UserDoesNotExistException ex) { + return false; + } catch (final NoLoanPermittedException ex) { + return false; + } + } + return false; + } - @Override - public boolean canAfford(final String playerName, final double amount) { - try { - if (Economy.playerExists(playerName)) { - return Economy.hasEnough(playerName, amount); - } - return false; - } catch (final UserDoesNotExistException ex) { - return false; - } - } + @Override + public boolean canAfford(final String playerName, final double amount) { + try { + if (Economy.playerExists(playerName)) { + return Economy.hasEnough(playerName, amount); + } + return false; + } catch (final UserDoesNotExistException ex) { + return false; + } + } - @Override - public double getBalance(final String playerName) { - try { - if (Economy.playerExists(playerName)) { - return Economy.getMoney(playerName); - } - } catch (final UserDoesNotExistException ex) { - } - return 0; - } + @Override + public double getBalance(final String playerName) { + try { + if (Economy.playerExists(playerName)) { + return Economy.getMoney(playerName); + } + } catch (final UserDoesNotExistException ex) { + } + return 0; + } - @Override - public String getName() { - return "EssentialsEconomy"; - } + @Override + public String getName() { + return "EssentialsEconomy"; + } - @Override - public boolean subtract(final String playerName, final double amount) { - if (Economy.playerExists(playerName)) { - try { - Economy.subtract(playerName, amount); - return true; - } catch (final UserDoesNotExistException ex) { - return false; - } catch (final NoLoanPermittedException ex) { - return false; - } - } - return false; - } + @Override + public boolean subtract(final String playerName, final double amount) { + if (Economy.playerExists(playerName)) { + try { + Economy.subtract(playerName, amount); + return true; + } catch (final UserDoesNotExistException ex) { + return false; + } catch (final NoLoanPermittedException ex) { + return false; + } + } + return false; + } - @Override - public boolean transfer(final String playerFrom, final String playerTo, final double amount) { - try { - if (Economy.playerExists(playerFrom) && Economy.playerExists(playerTo) && Economy.hasEnough(playerFrom, amount)) { - if (!subtract(playerFrom, amount)) - return false; - if (!add(playerTo, amount)) { - add(playerFrom, amount); - return false; - } - return true; - } - } catch (final UserDoesNotExistException ex) { - return false; - } - return false; - } + @Override + public boolean transfer(final String playerFrom, final String playerTo, final double amount) { + try { + if (Economy.playerExists(playerFrom) && Economy.playerExists(playerTo) && Economy.hasEnough(playerFrom, amount)) { + if (!subtract(playerFrom, amount)) + return false; + if (!add(playerTo, amount)) { + add(playerFrom, amount); + return false; + } + return true; + } + } catch (final UserDoesNotExistException ex) { + return false; + } + return false; + } } diff --git a/src/main/java/cn/citycraft/Residence/economy/ResidenceBank.java b/src/main/java/cn/citycraft/Residence/economy/ResidenceBank.java index 8df67db..0089b90 100644 --- a/src/main/java/cn/citycraft/Residence/economy/ResidenceBank.java +++ b/src/main/java/cn/citycraft/Residence/economy/ResidenceBank.java @@ -17,75 +17,75 @@ import cn.citycraft.Residence.ResidenceMain; * @author Administrator */ public class ResidenceBank { - ResidenceMain plugin; - ClaimedResidence res; - int storedMoney; + ResidenceMain plugin; + ClaimedResidence res; + int storedMoney; - public ResidenceBank(final ResidenceMain plugin, final ClaimedResidence parent) { - this.plugin = plugin; - storedMoney = 0; - res = parent; - } + public ResidenceBank(final ResidenceMain plugin, final ClaimedResidence parent) { + this.plugin = plugin; + storedMoney = 0; + res = parent; + } - public void add(final int amount) { - storedMoney = storedMoney + amount; - } + public void add(final int amount) { + storedMoney = storedMoney + amount; + } - public void deposit(final Player player, final int amount, final boolean resadmin) { - if (!plugin.getConfigManager().enableEconomy()) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("MarketDisabled")); - } - if (!resadmin && !res.getPermissions().playerHas(player.getName(), "bank", false)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoBankAccess")); - return; - } - if (!plugin.getEconomyManager().canAfford(player.getName(), amount)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NotEnoughMoney")); - return; - } - if (plugin.getEconomyManager().subtract(player.getName(), amount)) { - this.add(amount); - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("BankDeposit", ChatColor.YELLOW + String.format("%d", amount) + ChatColor.GREEN)); - } - } + public void deposit(final Player player, final int amount, final boolean resadmin) { + if (!plugin.getConfigManager().enableEconomy()) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("MarketDisabled")); + } + if (!resadmin && !res.getPermissions().playerHas(player.getName(), "bank", false)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoBankAccess")); + return; + } + if (!plugin.getEconomyManager().canAfford(player.getName(), amount)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NotEnoughMoney")); + return; + } + if (plugin.getEconomyManager().subtract(player.getName(), amount)) { + this.add(amount); + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("BankDeposit", ChatColor.YELLOW + String.format("%d", amount) + ChatColor.GREEN)); + } + } - public int getStoredMoney() { - return storedMoney; - } + public int getStoredMoney() { + return storedMoney; + } - public boolean hasEnough(final int amount) { - if (storedMoney >= amount) { - return true; - } - return false; - } + public boolean hasEnough(final int amount) { + if (storedMoney >= amount) { + return true; + } + return false; + } - public void setStoredMoney(final int amount) { - storedMoney = amount; - } + public void setStoredMoney(final int amount) { + storedMoney = amount; + } - public void subtract(final int amount) { - storedMoney = storedMoney - amount; - if (storedMoney < 0) { - storedMoney = 0; - } - } + public void subtract(final int amount) { + storedMoney = storedMoney - amount; + if (storedMoney < 0) { + storedMoney = 0; + } + } - public void withdraw(final Player player, final int amount, final boolean resadmin) { - if (!plugin.getConfigManager().enableEconomy()) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("MarketDisabled")); - } - if (!resadmin && !res.getPermissions().playerHas(player.getName(), "bank", false)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoBankAccess")); - return; - } - if (!hasEnough(amount)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("BankNoMoney")); - return; - } - if (plugin.getEconomyManager().add(player.getName(), amount)) { - this.subtract(amount); - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("BankWithdraw", ChatColor.YELLOW + String.format("%d", amount) + ChatColor.GREEN)); - } - } + public void withdraw(final Player player, final int amount, final boolean resadmin) { + if (!plugin.getConfigManager().enableEconomy()) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("MarketDisabled")); + } + if (!resadmin && !res.getPermissions().playerHas(player.getName(), "bank", false)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoBankAccess")); + return; + } + if (!hasEnough(amount)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("BankNoMoney")); + return; + } + if (plugin.getEconomyManager().add(player.getName(), amount)) { + this.subtract(amount); + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("BankWithdraw", ChatColor.YELLOW + String.format("%d", amount) + ChatColor.GREEN)); + } + } } diff --git a/src/main/java/cn/citycraft/Residence/economy/TransactionManager.java b/src/main/java/cn/citycraft/Residence/economy/TransactionManager.java index f808862..ba13306 100644 --- a/src/main/java/cn/citycraft/Residence/economy/TransactionManager.java +++ b/src/main/java/cn/citycraft/Residence/economy/TransactionManager.java @@ -28,245 +28,245 @@ import cn.citycraft.Residence.permissions.PermissionManager; * @author Administrator */ public class TransactionManager { - private Map sellAmount; - PermissionManager gmanager; - ResidenceManager manager; - ResidenceMain plugin; + private Map sellAmount; + PermissionManager gmanager; + ResidenceManager manager; + ResidenceMain plugin; - public TransactionManager(final ResidenceMain plugin, final ResidenceManager m, final PermissionManager g) { - this.plugin = plugin; - gmanager = g; - manager = m; - sellAmount = Collections.synchronizedMap(new HashMap()); - } + public TransactionManager(final ResidenceMain plugin, final ResidenceManager m, final PermissionManager g) { + this.plugin = plugin; + gmanager = g; + manager = m; + sellAmount = Collections.synchronizedMap(new HashMap()); + } - public static boolean chargeEconomyMoney(final ResidenceMain plugin, final Player player, final int amount) { - final EconomyInterface econ = plugin.getEconomyManager(); - if (econ == null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("MarketDisabled")); - return false; - } - if (!econ.canAfford(player.getName(), amount)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NotEnoughMoney")); - return false; - } - econ.subtract(player.getName(), amount); - player.sendMessage(ChatColor.GREEN - + plugin.getLanguage().getPhrase("MoneyCharged", ChatColor.YELLOW + String.format("%d", amount) + ChatColor.GREEN + "." + ChatColor.YELLOW + econ.getName() + ChatColor.GREEN)); - return true; - } + public static boolean chargeEconomyMoney(final ResidenceMain plugin, final Player player, final int amount) { + final EconomyInterface econ = plugin.getEconomyManager(); + if (econ == null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("MarketDisabled")); + return false; + } + if (!econ.canAfford(player.getName(), amount)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NotEnoughMoney")); + return false; + } + econ.subtract(player.getName(), amount); + player.sendMessage(ChatColor.GREEN + + plugin.getLanguage().getPhrase("MoneyCharged", ChatColor.YELLOW + String.format("%d", amount) + ChatColor.GREEN + "." + ChatColor.YELLOW + econ.getName() + ChatColor.GREEN)); + return true; + } - @SuppressWarnings({ "unchecked", "rawtypes" }) - public static TransactionManager load(final ResidenceMain plugin, final Map root, final PermissionManager p, final ResidenceManager r) { - final TransactionManager tman = new TransactionManager(plugin, r, p); - if (root != null) { - tman.sellAmount = root; - } - return tman; - } + @SuppressWarnings({ "unchecked", "rawtypes" }) + public static TransactionManager load(final ResidenceMain plugin, final Map root, final PermissionManager p, final ResidenceManager r) { + final TransactionManager tman = new TransactionManager(plugin, r, p); + if (root != null) { + tman.sellAmount = root; + } + return tman; + } - public void buyPlot(final String areaname, final Player player, final boolean resadmin) { - final PermissionGroup group = gmanager.getGroup(player); - if (!resadmin) { - if (!plugin.getConfigManager().enableEconomy() || plugin.getEconomyManager() == null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("MarketDisabled")); - return; - } - final boolean canbuy = group.canBuyLand() || player.hasPermission("plugin.buy"); - if (!canbuy && !resadmin) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - return; - } - } - if (isForSale(areaname)) { - final ClaimedResidence res = manager.getByName(areaname); - if (res == null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidArea")); - sellAmount.remove(areaname); - return; - } - if (res.getPermissions().getOwner().equals(player.getName())) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("OwnerBuyFail")); - return; - } - if (plugin.getResidenceManager().getOwnedZoneCount(player.getName()) >= group.getMaxZones() && !resadmin) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceTooMany")); - return; - } - final int amount = sellAmount.get(areaname); - if (!resadmin) { - if (!group.buyLandIgnoreLimits()) { - final CuboidArea[] areas = res.getAreaArray(); - for (final CuboidArea thisarea : areas) { - if (!group.inLimits(thisarea)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceBuyTooBig")); - return; - } - } - } - } - final EconomyInterface econ = plugin.getEconomyManager(); - if (econ == null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("MarketDisabled")); - return; - } - final String buyerName = player.getName(); - String sellerName = res.getPermissions().getOwner(); - final Player sellerNameFix = plugin.getServer().getPlayer(sellerName); - if (sellerNameFix != null) { - sellerName = sellerNameFix.getName(); - } - if (econ.canAfford(buyerName, amount)) { - if (!econ.transfer(buyerName, sellerName, amount)) { - player.sendMessage(ChatColor.RED + "Error, could not transfer " + amount + " from " + buyerName + " to " + sellerName); - return; - } - res.getPermissions().setOwner(player.getName(), true); - res.getPermissions().applyDefaultFlags(); - this.removeFromSale(areaname); - player.sendMessage(ChatColor.GREEN - + plugin.getLanguage().getPhrase("MoneyCharged", ChatColor.YELLOW + String.format("%d", amount) + ChatColor.GREEN + "." + ChatColor.YELLOW + econ.getName() + ChatColor.GREEN)); - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("ResidenceBought", ChatColor.GREEN + areaname + ChatColor.YELLOW)); - final Player seller = plugin.getServer().getPlayer(sellerName); - if (seller != null && seller.isOnline()) { - seller.sendMessage(ChatColor.GREEN - + plugin.getLanguage().getPhrase("ResidenceBuy", ChatColor.YELLOW + player.getName() + ChatColor.GREEN + "." + ChatColor.YELLOW + areaname + ChatColor.GREEN)); - seller.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("MoneyCredit", - ChatColor.YELLOW + String.format("%d", amount) + ChatColor.GREEN + "." + ChatColor.YELLOW + econ.getName() + ChatColor.GREEN)); - } - } else { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NotEnoughMoney")); - } - } else { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidResidence")); - } - } + public void buyPlot(final String areaname, final Player player, final boolean resadmin) { + final PermissionGroup group = gmanager.getGroup(player); + if (!resadmin) { + if (!plugin.getConfigManager().enableEconomy() || plugin.getEconomyManager() == null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("MarketDisabled")); + return; + } + final boolean canbuy = group.canBuyLand() || player.hasPermission("plugin.buy"); + if (!canbuy && !resadmin) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + return; + } + } + if (isForSale(areaname)) { + final ClaimedResidence res = manager.getByName(areaname); + if (res == null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidArea")); + sellAmount.remove(areaname); + return; + } + if (res.getPermissions().getOwner().equals(player.getName())) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("OwnerBuyFail")); + return; + } + if (plugin.getResidenceManager().getOwnedZoneCount(player.getName()) >= group.getMaxZones() && !resadmin) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceTooMany")); + return; + } + final int amount = sellAmount.get(areaname); + if (!resadmin) { + if (!group.buyLandIgnoreLimits()) { + final CuboidArea[] areas = res.getAreaArray(); + for (final CuboidArea thisarea : areas) { + if (!group.inLimits(thisarea)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceBuyTooBig")); + return; + } + } + } + } + final EconomyInterface econ = plugin.getEconomyManager(); + if (econ == null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("MarketDisabled")); + return; + } + final String buyerName = player.getName(); + String sellerName = res.getPermissions().getOwner(); + final Player sellerNameFix = plugin.getServer().getPlayer(sellerName); + if (sellerNameFix != null) { + sellerName = sellerNameFix.getName(); + } + if (econ.canAfford(buyerName, amount)) { + if (!econ.transfer(buyerName, sellerName, amount)) { + player.sendMessage(ChatColor.RED + "Error, could not transfer " + amount + " from " + buyerName + " to " + sellerName); + return; + } + res.getPermissions().setOwner(player.getName(), true); + res.getPermissions().applyDefaultFlags(); + this.removeFromSale(areaname); + player.sendMessage(ChatColor.GREEN + + plugin.getLanguage().getPhrase("MoneyCharged", ChatColor.YELLOW + String.format("%d", amount) + ChatColor.GREEN + "." + ChatColor.YELLOW + econ.getName() + ChatColor.GREEN)); + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("ResidenceBought", ChatColor.GREEN + areaname + ChatColor.YELLOW)); + final Player seller = plugin.getServer().getPlayer(sellerName); + if (seller != null && seller.isOnline()) { + seller.sendMessage(ChatColor.GREEN + + plugin.getLanguage().getPhrase("ResidenceBuy", ChatColor.YELLOW + player.getName() + ChatColor.GREEN + "." + ChatColor.YELLOW + areaname + ChatColor.GREEN)); + seller.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("MoneyCredit", + ChatColor.YELLOW + String.format("%d", amount) + ChatColor.GREEN + "." + ChatColor.YELLOW + econ.getName() + ChatColor.GREEN)); + } + } else { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NotEnoughMoney")); + } + } else { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidResidence")); + } + } - public void clearSales() { - sellAmount.clear(); - System.out.println("[Residence] - ReInit land selling."); - } + public void clearSales() { + sellAmount.clear(); + System.out.println("[Residence] - ReInit land selling."); + } - public int getSaleAmount(final String name) { - return sellAmount.get(name); - } + public int getSaleAmount(final String name) { + return sellAmount.get(name); + } - public boolean isForSale(final String areaname) { - return sellAmount.containsKey(areaname); - } + public boolean isForSale(final String areaname) { + return sellAmount.containsKey(areaname); + } - public void printForSaleResidences(final Player player) { - final Set> set = sellAmount.entrySet(); - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("LandForSale") + ":"); - final StringBuilder sbuild = new StringBuilder(); - sbuild.append(ChatColor.GREEN); - boolean firstadd = true; - for (final Entry land : set) { - if (!firstadd) { - sbuild.append(", "); - } else { - firstadd = false; - } - sbuild.append(land.getKey()); - } - player.sendMessage(sbuild.toString()); - } + public void printForSaleResidences(final Player player) { + final Set> set = sellAmount.entrySet(); + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("LandForSale") + ":"); + final StringBuilder sbuild = new StringBuilder(); + sbuild.append(ChatColor.GREEN); + boolean firstadd = true; + for (final Entry land : set) { + if (!firstadd) { + sbuild.append(", "); + } else { + firstadd = false; + } + sbuild.append(land.getKey()); + } + player.sendMessage(sbuild.toString()); + } - public boolean putForSale(final String areaname, final int amount) { - if (plugin.getConfigManager().enabledRentSystem()) { - if (plugin.getRentManager().isForRent(areaname)) { - return false; - } - } - final ClaimedResidence area = manager.getByName(areaname); - if (area == null) { - return false; - } - if (sellAmount.containsKey(areaname)) { - return false; - } - sellAmount.put(areaname, amount); - return true; - } + public boolean putForSale(final String areaname, final int amount) { + if (plugin.getConfigManager().enabledRentSystem()) { + if (plugin.getRentManager().isForRent(areaname)) { + return false; + } + } + final ClaimedResidence area = manager.getByName(areaname); + if (area == null) { + return false; + } + if (sellAmount.containsKey(areaname)) { + return false; + } + sellAmount.put(areaname, amount); + return true; + } - public void putForSale(final String areaname, final Player player, final int amount, final boolean resadmin) { - if (plugin.getConfigManager().enabledRentSystem()) { - if (plugin.getRentManager().isForRent(areaname)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("RentSellFail")); - return; - } - } - if (!resadmin) { - if (!plugin.getConfigManager().enableEconomy() || plugin.getEconomyManager() == null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("MarketDisabled")); - return; - } - final boolean cansell = plugin.getPermissionManager().getGroup(player).canSellLand() || player.hasPermission("plugin.sell"); - if (!cansell && !resadmin) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - return; - } - if (amount <= 0) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidAmount")); - return; - } - } - final String pname = player.getName(); - final ClaimedResidence area = manager.getByName(areaname); - if (area == null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidResidence")); - return; - } - if (!area.getPermissions().getOwner().equals(pname) && !resadmin) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - return; - } - if (sellAmount.containsKey(areaname)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AlreadySellFail")); - return; - } - sellAmount.put(areaname, amount); - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("ResidenceForSale", ChatColor.YELLOW + areaname + ChatColor.GREEN + "." + ChatColor.YELLOW + amount + ChatColor.GREEN)); - } + public void putForSale(final String areaname, final Player player, final int amount, final boolean resadmin) { + if (plugin.getConfigManager().enabledRentSystem()) { + if (plugin.getRentManager().isForRent(areaname)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("RentSellFail")); + return; + } + } + if (!resadmin) { + if (!plugin.getConfigManager().enableEconomy() || plugin.getEconomyManager() == null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("MarketDisabled")); + return; + } + final boolean cansell = plugin.getPermissionManager().getGroup(player).canSellLand() || player.hasPermission("plugin.sell"); + if (!cansell && !resadmin) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + return; + } + if (amount <= 0) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidAmount")); + return; + } + } + final String pname = player.getName(); + final ClaimedResidence area = manager.getByName(areaname); + if (area == null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidResidence")); + return; + } + if (!area.getPermissions().getOwner().equals(pname) && !resadmin) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + return; + } + if (sellAmount.containsKey(areaname)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AlreadySellFail")); + return; + } + sellAmount.put(areaname, amount); + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("ResidenceForSale", ChatColor.YELLOW + areaname + ChatColor.GREEN + "." + ChatColor.YELLOW + amount + ChatColor.GREEN)); + } - public void removeFromSale(final Player player, final String areaname, final boolean resadmin) { - final ClaimedResidence area = manager.getByName(areaname); - if (area != null) { - if (!isForSale(areaname)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceNotForSale")); - return; - } - if (area.getPermissions().getOwner().equals(player.getName()) || resadmin) { - removeFromSale(areaname); - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("ResidenceStopSelling")); - } else { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - } - } else { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidArea")); - } - } + public void removeFromSale(final Player player, final String areaname, final boolean resadmin) { + final ClaimedResidence area = manager.getByName(areaname); + if (area != null) { + if (!isForSale(areaname)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceNotForSale")); + return; + } + if (area.getPermissions().getOwner().equals(player.getName()) || resadmin) { + removeFromSale(areaname); + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("ResidenceStopSelling")); + } else { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + } + } else { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidArea")); + } + } - public void removeFromSale(final String areaname) { - sellAmount.remove(areaname); - } + public void removeFromSale(final String areaname) { + sellAmount.remove(areaname); + } - public Map save() { - return sellAmount; - } + public Map save() { + return sellAmount; + } - public void viewSaleInfo(final String areaname, final Player player) { - if (sellAmount.containsKey(areaname)) { - player.sendMessage("------------------------"); - player.sendMessage(ChatColor.YELLOW + "Name:" + ChatColor.DARK_GREEN + " " + areaname); - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("SellAmount") + ":" + ChatColor.RED + " " + sellAmount.get(areaname)); - if (plugin.getConfigManager().useLeases()) { - final Date etime = plugin.getLeaseManager().getExpireTime(areaname); - if (etime != null) { - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("LeaseExpire") + ":" + ChatColor.GREEN + " " + etime.toString()); - } - } - player.sendMessage("------------------------"); - } - } + public void viewSaleInfo(final String areaname, final Player player) { + if (sellAmount.containsKey(areaname)) { + player.sendMessage("------------------------"); + player.sendMessage(ChatColor.YELLOW + "Name:" + ChatColor.DARK_GREEN + " " + areaname); + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("SellAmount") + ":" + ChatColor.RED + " " + sellAmount.get(areaname)); + if (plugin.getConfigManager().useLeases()) { + final Date etime = plugin.getLeaseManager().getExpireTime(areaname); + if (etime != null) { + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("LeaseExpire") + ":" + ChatColor.GREEN + " " + etime.toString()); + } + } + player.sendMessage("------------------------"); + } + } } diff --git a/src/main/java/cn/citycraft/Residence/economy/rent/RentManager.java b/src/main/java/cn/citycraft/Residence/economy/rent/RentManager.java index 305ffb5..96a78b9 100644 --- a/src/main/java/cn/citycraft/Residence/economy/rent/RentManager.java +++ b/src/main/java/cn/citycraft/Residence/economy/rent/RentManager.java @@ -29,411 +29,411 @@ import cn.citycraft.Residence.permissions.PermissionGroup; * @author Administrator */ public class RentManager { - protected ResidenceMain plugin; - protected PluginManager pm; - protected Map rentableLand; - protected Map rentedLand; + protected ResidenceMain plugin; + protected PluginManager pm; + protected Map rentableLand; + protected Map rentedLand; - public RentManager(final ResidenceMain plugin) { - this.plugin = plugin; - pm = plugin.getServer().getPluginManager(); - rentedLand = new HashMap(); - rentableLand = new HashMap(); - } + public RentManager(final ResidenceMain plugin) { + this.plugin = plugin; + pm = plugin.getServer().getPluginManager(); + rentedLand = new HashMap(); + rentableLand = new HashMap(); + } - @SuppressWarnings("unchecked") - public static RentManager load(final ResidenceMain plugin, final Map root) { - final RentManager rentManager = new RentManager(plugin); - if (root != null) { - final Map rentables = (Map) root.get("Rentables"); - for (final Entry rent : rentables.entrySet()) { - rentManager.rentableLand.put(rent.getKey(), RentableLand.load((Map) rent.getValue())); - } - final Map rented = (Map) root.get("Rented"); - for (final Entry rent : rented.entrySet()) { - rentManager.rentedLand.put(rent.getKey(), RentedLand.load((Map) rent.getValue())); - } - } - return rentManager; - } + @SuppressWarnings("unchecked") + public static RentManager load(final ResidenceMain plugin, final Map root) { + final RentManager rentManager = new RentManager(plugin); + if (root != null) { + final Map rentables = (Map) root.get("Rentables"); + for (final Entry rent : rentables.entrySet()) { + rentManager.rentableLand.put(rent.getKey(), RentableLand.load((Map) rent.getValue())); + } + final Map rented = (Map) root.get("Rented"); + for (final Entry rent : rented.entrySet()) { + rentManager.rentedLand.put(rent.getKey(), RentedLand.load((Map) rent.getValue())); + } + } + return rentManager; + } - public void checkCurrentRents() { - final Iterator> it = rentedLand.entrySet().iterator(); - while (it.hasNext()) { - final Entry next = it.next(); - final RentedLand land = next.getValue(); - if (land.endTime <= System.currentTimeMillis()) { - final ClaimedResidence res = plugin.getResidenceManager().getByName(next.getKey()); - if (plugin.getConfigManager().debugEnabled()) { - System.out.println("Rent Check: " + next.getKey()); - } - if (res != null) { - final ResidenceRentEvent revent = new ResidenceRentEvent(res, null, RentEventType.RENT_EXPIRE); - pm.callEvent(revent); - if (!revent.isCancelled()) { - final RentableLand rentable = rentableLand.get(next.getKey()); - if (!rentable.repeatable) { - rentableLand.remove(next.getKey()); - it.remove(); - res.getPermissions().applyDefaultFlags(); - } else if (land.autoRefresh) { - if (!plugin.getEconomyManager().canAfford(land.player, rentable.cost)) { - it.remove(); - res.getPermissions().applyDefaultFlags(); - } else if (!plugin.getEconomyManager().transfer(land.player, res.getPermissions().getOwner(), rentable.cost)) { - it.remove(); - res.getPermissions().applyDefaultFlags(); - } else { - land.endTime = System.currentTimeMillis() + this.daysToMs(rentable.days); - } - } else { - res.getPermissions().applyDefaultFlags(); - it.remove(); - } - } - } else { - rentableLand.remove(next.getKey()); - it.remove(); - } - } - } - } + public void checkCurrentRents() { + final Iterator> it = rentedLand.entrySet().iterator(); + while (it.hasNext()) { + final Entry next = it.next(); + final RentedLand land = next.getValue(); + if (land.endTime <= System.currentTimeMillis()) { + final ClaimedResidence res = plugin.getResidenceManager().getByName(next.getKey()); + if (plugin.getConfigManager().debugEnabled()) { + System.out.println("Rent Check: " + next.getKey()); + } + if (res != null) { + final ResidenceRentEvent revent = new ResidenceRentEvent(res, null, RentEventType.RENT_EXPIRE); + pm.callEvent(revent); + if (!revent.isCancelled()) { + final RentableLand rentable = rentableLand.get(next.getKey()); + if (!rentable.repeatable) { + rentableLand.remove(next.getKey()); + it.remove(); + res.getPermissions().applyDefaultFlags(); + } else if (land.autoRefresh) { + if (!plugin.getEconomyManager().canAfford(land.player, rentable.cost)) { + it.remove(); + res.getPermissions().applyDefaultFlags(); + } else if (!plugin.getEconomyManager().transfer(land.player, res.getPermissions().getOwner(), rentable.cost)) { + it.remove(); + res.getPermissions().applyDefaultFlags(); + } else { + land.endTime = System.currentTimeMillis() + this.daysToMs(rentable.days); + } + } else { + res.getPermissions().applyDefaultFlags(); + it.remove(); + } + } + } else { + rentableLand.remove(next.getKey()); + it.remove(); + } + } + } + } - public int getCostOfRent(final String landName) { - return rentableLand.containsKey(landName) ? rentableLand.get(landName).cost : 0; - } + public int getCostOfRent(final String landName) { + return rentableLand.containsKey(landName) ? rentableLand.get(landName).cost : 0; + } - public int getRentableCount(final String player) { - final Set set = rentableLand.keySet(); - int count = 0; - for (final String land : set) { - final ClaimedResidence res = plugin.getResidenceManager().getByName(land); - if (res != null) { - if (res.getPermissions().getOwner().equalsIgnoreCase(player)) { - count++; - } - } - } - return count; - } + public int getRentableCount(final String player) { + final Set set = rentableLand.keySet(); + int count = 0; + for (final String land : set) { + final ClaimedResidence res = plugin.getResidenceManager().getByName(land); + if (res != null) { + if (res.getPermissions().getOwner().equalsIgnoreCase(player)) { + count++; + } + } + } + return count; + } - public boolean getRentableRepeatable(final String landName) { - return rentableLand.containsKey(landName) ? rentableLand.get(landName).repeatable : false; - } + public boolean getRentableRepeatable(final String landName) { + return rentableLand.containsKey(landName) ? rentableLand.get(landName).repeatable : false; + } - public int getRentCount(final String player) { - final Set> set = rentedLand.entrySet(); - int count = 0; - for (final Entry land : set) { - if (land.getValue().player.equalsIgnoreCase(player)) { - count++; - } - } - return count; - } + public int getRentCount(final String player) { + final Set> set = rentedLand.entrySet(); + int count = 0; + for (final Entry land : set) { + if (land.getValue().player.equalsIgnoreCase(player)) { + count++; + } + } + return count; + } - public int getRentDays(final String landName) { - return rentableLand.containsKey(landName) ? rentableLand.get(landName).days : 0; - } + public int getRentDays(final String landName) { + return rentableLand.containsKey(landName) ? rentableLand.get(landName).days : 0; + } - public boolean getRentedAutoRepeats(final String landName) { - return getRentableRepeatable(landName) ? (rentedLand.containsKey(landName) ? rentedLand.get(landName).autoRefresh : false) : false; - } + public boolean getRentedAutoRepeats(final String landName) { + return getRentableRepeatable(landName) ? (rentedLand.containsKey(landName) ? rentedLand.get(landName).autoRefresh : false) : false; + } - public String getRentingPlayer(final String landName) { - return rentedLand.containsKey(landName) ? rentedLand.get(landName).player : null; - } + public String getRentingPlayer(final String landName) { + return rentedLand.containsKey(landName) ? rentedLand.get(landName).player : null; + } - public boolean isForRent(final String landName) { - return rentableLand.containsKey(landName); - } + public boolean isForRent(final String landName) { + return rentableLand.containsKey(landName); + } - public boolean isRented(final String landName) { - return rentedLand.containsKey(landName); - } + public boolean isRented(final String landName) { + return rentedLand.containsKey(landName); + } - public void printRentableResidences(final Player player) { - final Set> set = rentableLand.entrySet(); - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("RentableLand") + ":"); - final StringBuilder sbuild = new StringBuilder(); - sbuild.append(ChatColor.GREEN); - boolean firstadd = true; - for (final Entry land : set) { - if (!this.isRented(land.getKey())) { - if (!firstadd) { - sbuild.append(", "); - } else { - firstadd = false; - } - sbuild.append(land.getKey()); - } - } - player.sendMessage(sbuild.toString()); - } + public void printRentableResidences(final Player player) { + final Set> set = rentableLand.entrySet(); + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("RentableLand") + ":"); + final StringBuilder sbuild = new StringBuilder(); + sbuild.append(ChatColor.GREEN); + boolean firstadd = true; + for (final Entry land : set) { + if (!this.isRented(land.getKey())) { + if (!firstadd) { + sbuild.append(", "); + } else { + firstadd = false; + } + sbuild.append(land.getKey()); + } + } + player.sendMessage(sbuild.toString()); + } - public void printRentInfo(final Player player, final String landName) { - final RentableLand rentable = rentableLand.get(landName); - final RentedLand rented = rentedLand.get(landName); - if (rentable != null) { - player.sendMessage(ChatColor.GOLD + plugin.getLanguage().getPhrase("Land") + ":" + ChatColor.DARK_GREEN + landName); - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Cost") + ": " + ChatColor.DARK_AQUA + rentable.cost + " per " + rentable.days + " days"); - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("RentableAutoRenew") + ":" + ChatColor.DARK_AQUA + rentable.repeatable); - if (rented != null) { - player.sendMessage(ChatColor.GOLD + plugin.getLanguage().getPhrase("Status") + ":" + ChatColor.YELLOW + " " - + plugin.getLanguage().getPhrase("ResidenceRentedBy", ChatColor.RED + rented.player + ChatColor.YELLOW)); - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("RentExpire") + ":" + ChatColor.GREEN + new Date(rented.endTime)); - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("RentAutoRenew") + ":" + ChatColor.DARK_AQUA + rented.autoRefresh); - } else { - player.sendMessage(ChatColor.GOLD + plugin.getLanguage().getPhrase("Status") + ":" + ChatColor.GREEN + " " + plugin.getLanguage().getPhrase("Available")); - } - } else { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceNotForRent")); - } - } + public void printRentInfo(final Player player, final String landName) { + final RentableLand rentable = rentableLand.get(landName); + final RentedLand rented = rentedLand.get(landName); + if (rentable != null) { + player.sendMessage(ChatColor.GOLD + plugin.getLanguage().getPhrase("Land") + ":" + ChatColor.DARK_GREEN + landName); + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Cost") + ": " + ChatColor.DARK_AQUA + rentable.cost + " per " + rentable.days + " days"); + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("RentableAutoRenew") + ":" + ChatColor.DARK_AQUA + rentable.repeatable); + if (rented != null) { + player.sendMessage(ChatColor.GOLD + plugin.getLanguage().getPhrase("Status") + ":" + ChatColor.YELLOW + " " + + plugin.getLanguage().getPhrase("ResidenceRentedBy", ChatColor.RED + rented.player + ChatColor.YELLOW)); + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("RentExpire") + ":" + ChatColor.GREEN + new Date(rented.endTime)); + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("RentAutoRenew") + ":" + ChatColor.DARK_AQUA + rented.autoRefresh); + } else { + player.sendMessage(ChatColor.GOLD + plugin.getLanguage().getPhrase("Status") + ":" + ChatColor.GREEN + " " + plugin.getLanguage().getPhrase("Available")); + } + } else { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceNotForRent")); + } + } - public void removeFromForRent(final Player player, final String landName, final boolean resadmin) { - final RentedLand rent = rentedLand.get(landName); - if (rent == null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceNotRented")); - return; - } - if (resadmin || rent.player.equalsIgnoreCase(player.getName())) { - final ResidenceRentEvent revent = new ResidenceRentEvent(plugin.getResidenceManager().getByName(landName), player, RentEventType.UNRENTABLE); - pm.callEvent(revent); - if (revent.isCancelled()) { - return; - } - rentedLand.remove(landName); - if (!rentableLand.get(landName).repeatable) { - rentableLand.remove(landName); - } - final ClaimedResidence res = plugin.getResidenceManager().getByName(landName); - if (res != null) { - res.getPermissions().applyDefaultFlags(); - } - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("ResidenceUnrent", ChatColor.YELLOW + landName + ChatColor.GREEN)); - } else { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - } - } + public void removeFromForRent(final Player player, final String landName, final boolean resadmin) { + final RentedLand rent = rentedLand.get(landName); + if (rent == null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceNotRented")); + return; + } + if (resadmin || rent.player.equalsIgnoreCase(player.getName())) { + final ResidenceRentEvent revent = new ResidenceRentEvent(plugin.getResidenceManager().getByName(landName), player, RentEventType.UNRENTABLE); + pm.callEvent(revent); + if (revent.isCancelled()) { + return; + } + rentedLand.remove(landName); + if (!rentableLand.get(landName).repeatable) { + rentableLand.remove(landName); + } + final ClaimedResidence res = plugin.getResidenceManager().getByName(landName); + if (res != null) { + res.getPermissions().applyDefaultFlags(); + } + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("ResidenceUnrent", ChatColor.YELLOW + landName + ChatColor.GREEN)); + } else { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + } + } - public void removeFromRent(final String landName) { - rentedLand.remove(landName); - } + public void removeFromRent(final String landName) { + rentedLand.remove(landName); + } - public void removeRentable(final String landName) { - removeFromRent(landName); - rentableLand.remove(landName); - } + public void removeRentable(final String landName) { + removeFromRent(landName); + rentableLand.remove(landName); + } - public void rent(final Player player, final String landName, final boolean repeat, final boolean resadmin) { - if (!plugin.getConfigManager().enabledRentSystem()) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("RentDisabled")); - return; - } - final ClaimedResidence res = plugin.getResidenceManager().getByName(landName); - if (res != null) { - if (res.getPermissions().getOwner().equalsIgnoreCase(player.getName())) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("OwnerRentFail")); - return; - } - } else { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidResidence")); - return; - } - final PermissionGroup group = plugin.getPermissionManager().getGroup(player); - if (!resadmin && this.getRentCount(player.getName()) >= group.getMaxRents()) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceMaxRent")); - return; - } - if (!this.isForRent(landName)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceNotForRent")); - return; - } - if (this.isRented(landName)) { - final String[] split = landName.split("\\."); - if (split.length != 0) { - player.sendMessage(plugin.getLanguage().getPhrase("ResidenceAlreadyRented", - ChatColor.YELLOW + split[split.length - 1] + ChatColor.RED + "." + ChatColor.YELLOW + this.getRentingPlayer(landName))); - } - return; - } - final RentableLand land = rentableLand.get(landName); - if (plugin.getEconomyManager().canAfford(player.getName(), land.cost)) { - final ResidenceRentEvent revent = new ResidenceRentEvent(res, player, RentEventType.RENT); - pm.callEvent(revent); - if (revent.isCancelled()) { - return; - } - if (plugin.getEconomyManager().transfer(player.getName(), res.getPermissions().getOwner(), land.cost)) { - final RentedLand newrent = new RentedLand(); - newrent.player = player.getName(); - newrent.startTime = System.currentTimeMillis(); - newrent.endTime = System.currentTimeMillis() + daysToMs(land.days); - newrent.autoRefresh = repeat; - rentedLand.put(landName, newrent); - res.getPermissions().copyUserPermissions(res.getPermissions().getOwner(), player.getName()); - res.getPermissions().clearPlayersFlags(res.getPermissions().getOwner()); - res.getPermissions().setPlayerFlag(player.getName(), "admin", FlagState.TRUE); - final String[] split = landName.split("\\."); - if (split.length != 0) { - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("ResidenceRentSuccess", - ChatColor.YELLOW + split[split.length - 1] + ChatColor.GREEN + "." + ChatColor.YELLOW + land.days + ChatColor.GREEN)); - } - } else { - player.sendMessage(ChatColor.RED + "Error, unable to transfer money..."); - } - } else { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NotEnoughMoney")); - } - } + public void rent(final Player player, final String landName, final boolean repeat, final boolean resadmin) { + if (!plugin.getConfigManager().enabledRentSystem()) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("RentDisabled")); + return; + } + final ClaimedResidence res = plugin.getResidenceManager().getByName(landName); + if (res != null) { + if (res.getPermissions().getOwner().equalsIgnoreCase(player.getName())) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("OwnerRentFail")); + return; + } + } else { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidResidence")); + return; + } + final PermissionGroup group = plugin.getPermissionManager().getGroup(player); + if (!resadmin && this.getRentCount(player.getName()) >= group.getMaxRents()) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceMaxRent")); + return; + } + if (!this.isForRent(landName)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceNotForRent")); + return; + } + if (this.isRented(landName)) { + final String[] split = landName.split("\\."); + if (split.length != 0) { + player.sendMessage(plugin.getLanguage().getPhrase("ResidenceAlreadyRented", + ChatColor.YELLOW + split[split.length - 1] + ChatColor.RED + "." + ChatColor.YELLOW + this.getRentingPlayer(landName))); + } + return; + } + final RentableLand land = rentableLand.get(landName); + if (plugin.getEconomyManager().canAfford(player.getName(), land.cost)) { + final ResidenceRentEvent revent = new ResidenceRentEvent(res, player, RentEventType.RENT); + pm.callEvent(revent); + if (revent.isCancelled()) { + return; + } + if (plugin.getEconomyManager().transfer(player.getName(), res.getPermissions().getOwner(), land.cost)) { + final RentedLand newrent = new RentedLand(); + newrent.player = player.getName(); + newrent.startTime = System.currentTimeMillis(); + newrent.endTime = System.currentTimeMillis() + daysToMs(land.days); + newrent.autoRefresh = repeat; + rentedLand.put(landName, newrent); + res.getPermissions().copyUserPermissions(res.getPermissions().getOwner(), player.getName()); + res.getPermissions().clearPlayersFlags(res.getPermissions().getOwner()); + res.getPermissions().setPlayerFlag(player.getName(), "admin", FlagState.TRUE); + final String[] split = landName.split("\\."); + if (split.length != 0) { + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("ResidenceRentSuccess", + ChatColor.YELLOW + split[split.length - 1] + ChatColor.GREEN + "." + ChatColor.YELLOW + land.days + ChatColor.GREEN)); + } + } else { + player.sendMessage(ChatColor.RED + "Error, unable to transfer money..."); + } + } else { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NotEnoughMoney")); + } + } - public Map save() { - final Map root = new HashMap(); - final Map rentables = new HashMap(); - for (final Entry rent : rentableLand.entrySet()) { - rentables.put(rent.getKey(), rent.getValue().save()); - } - final Map rented = new HashMap(); - for (final Entry rent : rentedLand.entrySet()) { - rented.put(rent.getKey(), rent.getValue().save()); - } - root.put("Rentables", rentables); - root.put("Rented", rented); - return root; - } + public Map save() { + final Map root = new HashMap(); + final Map rentables = new HashMap(); + for (final Entry rent : rentableLand.entrySet()) { + rentables.put(rent.getKey(), rent.getValue().save()); + } + final Map rented = new HashMap(); + for (final Entry rent : rentedLand.entrySet()) { + rented.put(rent.getKey(), rent.getValue().save()); + } + root.put("Rentables", rentables); + root.put("Rented", rented); + return root; + } - public void setForRent(final Player player, final String landName, final int amount, final int days, final boolean repeatable, final boolean resadmin) { - if (!plugin.getConfigManager().enabledRentSystem()) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("MarketDisabled")); - return; - } - if (plugin.getTransactionManager().isForSale(landName)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SellRentFail")); - return; - } - final ClaimedResidence res = plugin.getResidenceManager().getByName(landName); - if (res == null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidResidence")); - return; - } - if (!resadmin) { - if (!res.getPermissions().hasResidencePermission(player, true)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - return; - } - final PermissionGroup group = plugin.getPermissionManager().getGroup(player); - if (this.getRentableCount(player.getName()) >= group.getMaxRentables()) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceMaxRent")); - return; - } - } - if (!rentableLand.containsKey(landName)) { - final ResidenceRentEvent revent = new ResidenceRentEvent(res, player, RentEventType.RENTABLE); - pm.callEvent(revent); - if (revent.isCancelled()) { - return; - } - final RentableLand newrent = new RentableLand(); - newrent.days = days; - newrent.cost = amount; - newrent.repeatable = repeatable; - rentableLand.put(landName, newrent); - final String[] split = landName.split("\\."); - if (split.length != 0) { - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("ResidenceForRentSuccess", - ChatColor.YELLOW + split[split.length - 1] + ChatColor.GREEN + "." + ChatColor.YELLOW + amount + ChatColor.GREEN + "." + ChatColor.YELLOW + days + ChatColor.GREEN)); - } - } else { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceAlreadyRent")); - } - } + public void setForRent(final Player player, final String landName, final int amount, final int days, final boolean repeatable, final boolean resadmin) { + if (!plugin.getConfigManager().enabledRentSystem()) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("MarketDisabled")); + return; + } + if (plugin.getTransactionManager().isForSale(landName)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SellRentFail")); + return; + } + final ClaimedResidence res = plugin.getResidenceManager().getByName(landName); + if (res == null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidResidence")); + return; + } + if (!resadmin) { + if (!res.getPermissions().hasResidencePermission(player, true)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + return; + } + final PermissionGroup group = plugin.getPermissionManager().getGroup(player); + if (this.getRentableCount(player.getName()) >= group.getMaxRentables()) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceMaxRent")); + return; + } + } + if (!rentableLand.containsKey(landName)) { + final ResidenceRentEvent revent = new ResidenceRentEvent(res, player, RentEventType.RENTABLE); + pm.callEvent(revent); + if (revent.isCancelled()) { + return; + } + final RentableLand newrent = new RentableLand(); + newrent.days = days; + newrent.cost = amount; + newrent.repeatable = repeatable; + rentableLand.put(landName, newrent); + final String[] split = landName.split("\\."); + if (split.length != 0) { + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("ResidenceForRentSuccess", + ChatColor.YELLOW + split[split.length - 1] + ChatColor.GREEN + "." + ChatColor.YELLOW + amount + ChatColor.GREEN + "." + ChatColor.YELLOW + days + ChatColor.GREEN)); + } + } else { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceAlreadyRent")); + } + } - public void setRentedRepeatable(final Player player, final String landName, final boolean value, final boolean resadmin) { - final String[] split = landName.split("\\."); - final RentedLand land = rentedLand.get(landName); - if (land != null && (land.player.equals(player.getName()) || resadmin)) { - land.autoRefresh = value; - if (value && split.length != 0) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("RentEnableRenew", ChatColor.YELLOW + split[split.length - 1] + ChatColor.RED)); - } else if (split.length != 0) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("RentDisableRenew", ChatColor.YELLOW + split[split.length - 1] + ChatColor.RED)); - } - } - } + public void setRentedRepeatable(final Player player, final String landName, final boolean value, final boolean resadmin) { + final String[] split = landName.split("\\."); + final RentedLand land = rentedLand.get(landName); + if (land != null && (land.player.equals(player.getName()) || resadmin)) { + land.autoRefresh = value; + if (value && split.length != 0) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("RentEnableRenew", ChatColor.YELLOW + split[split.length - 1] + ChatColor.RED)); + } else if (split.length != 0) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("RentDisableRenew", ChatColor.YELLOW + split[split.length - 1] + ChatColor.RED)); + } + } + } - public void setRentRepeatable(final Player player, final String landName, final boolean value, final boolean resadmin) { - final String[] split = landName.split("\\."); - final RentableLand land = rentableLand.get(landName); - final ClaimedResidence res = plugin.getResidenceManager().getByName(landName); - if (land != null && res != null && (res.getPermissions().getOwner().equalsIgnoreCase(player.getName()) || resadmin)) { - land.repeatable = value; - if (!value && this.isRented(landName)) { - rentedLand.get(landName).autoRefresh = false; - } - if (value && split.length != 0) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("RentableEnableRenew", ChatColor.YELLOW + split[split.length - 1] + ChatColor.RED)); - } else if (split.length != 0) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("RentableDisableRenew", ChatColor.YELLOW + split[split.length - 1] + ChatColor.RED)); - } - } - } + public void setRentRepeatable(final Player player, final String landName, final boolean value, final boolean resadmin) { + final String[] split = landName.split("\\."); + final RentableLand land = rentableLand.get(landName); + final ClaimedResidence res = plugin.getResidenceManager().getByName(landName); + if (land != null && res != null && (res.getPermissions().getOwner().equalsIgnoreCase(player.getName()) || resadmin)) { + land.repeatable = value; + if (!value && this.isRented(landName)) { + rentedLand.get(landName).autoRefresh = false; + } + if (value && split.length != 0) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("RentableEnableRenew", ChatColor.YELLOW + split[split.length - 1] + ChatColor.RED)); + } else if (split.length != 0) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("RentableDisableRenew", ChatColor.YELLOW + split[split.length - 1] + ChatColor.RED)); + } + } + } - public void unrent(final Player player, final String landName, final boolean resadmin) { - final String[] split = landName.split("\\."); - final ClaimedResidence res = plugin.getResidenceManager().getByName(landName); - if (res == null) { - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("InvalidResidence")); - return; - } - if (!res.getPermissions().hasResidencePermission(player, true) && !resadmin) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - return; - } - if (rentedLand.containsKey(landName) && !resadmin) { - if (split.length != 0) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceAlreadyRented", - ChatColor.YELLOW + split[split.length - 1] + ChatColor.RED + "." + ChatColor.YELLOW + rentedLand.get(landName).player) + ChatColor.YELLOW); - } - return; - } - if (rentableLand.containsKey(landName)) { - final ResidenceRentEvent revent = new ResidenceRentEvent(res, player, RentEventType.UNRENT); - pm.callEvent(revent); - if (revent.isCancelled()) { - return; - } - rentableLand.remove(landName); - if (rentedLand.containsKey(landName)) { - rentedLand.remove(landName); - res.getPermissions().applyDefaultFlags(); - } - if (split.length != 0) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceRemoveRentable", ChatColor.YELLOW + split[split.length - 1] + ChatColor.RED)); - } + public void unrent(final Player player, final String landName, final boolean resadmin) { + final String[] split = landName.split("\\."); + final ClaimedResidence res = plugin.getResidenceManager().getByName(landName); + if (res == null) { + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("InvalidResidence")); + return; + } + if (!res.getPermissions().hasResidencePermission(player, true) && !resadmin) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + return; + } + if (rentedLand.containsKey(landName) && !resadmin) { + if (split.length != 0) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceAlreadyRented", + ChatColor.YELLOW + split[split.length - 1] + ChatColor.RED + "." + ChatColor.YELLOW + rentedLand.get(landName).player) + ChatColor.YELLOW); + } + return; + } + if (rentableLand.containsKey(landName)) { + final ResidenceRentEvent revent = new ResidenceRentEvent(res, player, RentEventType.UNRENT); + pm.callEvent(revent); + if (revent.isCancelled()) { + return; + } + rentableLand.remove(landName); + if (rentedLand.containsKey(landName)) { + rentedLand.remove(landName); + res.getPermissions().applyDefaultFlags(); + } + if (split.length != 0) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceRemoveRentable", ChatColor.YELLOW + split[split.length - 1] + ChatColor.RED)); + } - } else { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceNotForRent")); - } - } + } else { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceNotForRent")); + } + } - public void updateRentableName(final String oldName, final String newName) { - if (rentableLand.containsKey(oldName)) { - rentableLand.put(newName, rentableLand.get(oldName)); - rentableLand.remove(oldName); - } - if (rentedLand.containsKey(oldName)) { - rentedLand.put(newName, rentedLand.get(oldName)); - rentedLand.remove(oldName); - } - } + public void updateRentableName(final String oldName, final String newName) { + if (rentableLand.containsKey(oldName)) { + rentableLand.put(newName, rentableLand.get(oldName)); + rentableLand.remove(oldName); + } + if (rentedLand.containsKey(oldName)) { + rentedLand.put(newName, rentedLand.get(oldName)); + rentedLand.remove(oldName); + } + } - private long daysToMs(final int days) { - return ((days) * 24L * 60L * 60L * 1000L); - } + private long daysToMs(final int days) { + return ((days) * 24L * 60L * 60L * 1000L); + } - @SuppressWarnings("unused") - private int msToDays(final long ms) { - return (int) Math.ceil((((ms / 1000D) / 60D) / 60D) / 24D); - } + @SuppressWarnings("unused") + private int msToDays(final long ms) { + return (int) Math.ceil((((ms / 1000D) / 60D) / 60D) / 24D); + } } diff --git a/src/main/java/cn/citycraft/Residence/economy/rent/RentableLand.java b/src/main/java/cn/citycraft/Residence/economy/rent/RentableLand.java index b217d5d..7589618 100644 --- a/src/main/java/cn/citycraft/Residence/economy/rent/RentableLand.java +++ b/src/main/java/cn/citycraft/Residence/economy/rent/RentableLand.java @@ -28,9 +28,9 @@ public class RentableLand { public static RentableLand load(Map map) { RentableLand newland = new RentableLand(); - newland.cost = (Integer)map.get("Cost"); - newland.days = (Integer)map.get("Days"); - newland.repeatable = (Boolean)map.get("Repeatable"); + newland.cost = (Integer) map.get("Cost"); + newland.days = (Integer) map.get("Days"); + newland.repeatable = (Boolean) map.get("Repeatable"); return newland; } } diff --git a/src/main/java/cn/citycraft/Residence/economy/rent/RentedLand.java b/src/main/java/cn/citycraft/Residence/economy/rent/RentedLand.java index 8852c94..3576996 100644 --- a/src/main/java/cn/citycraft/Residence/economy/rent/RentedLand.java +++ b/src/main/java/cn/citycraft/Residence/economy/rent/RentedLand.java @@ -27,13 +27,13 @@ public class RentedLand { rentables.put("AutoRefresh", autoRefresh); return rentables; } - public static RentedLand load(Map map) - { + + public static RentedLand load(Map map) { RentedLand newland = new RentedLand(); newland.player = (String) map.get("Player"); - newland.startTime = (Long)map.get("StartTime"); - newland.endTime = (Long)map.get("EndTime"); - newland.autoRefresh = (Boolean)map.get("AutoRefresh"); + newland.startTime = (Long) map.get("StartTime"); + newland.endTime = (Long) map.get("EndTime"); + newland.autoRefresh = (Boolean) map.get("AutoRefresh"); return newland; } } diff --git a/src/main/java/cn/citycraft/Residence/itemlist/ItemList.java b/src/main/java/cn/citycraft/Residence/itemlist/ItemList.java index 5429336..0c8a9b0 100644 --- a/src/main/java/cn/citycraft/Residence/itemlist/ItemList.java +++ b/src/main/java/cn/citycraft/Residence/itemlist/ItemList.java @@ -21,166 +21,166 @@ import org.bukkit.entity.Player; */ public class ItemList { - public static enum ListType { - BLACKLIST, - WHITELIST, - IGNORELIST, - OTHER - } + public static enum ListType { + BLACKLIST, + WHITELIST, + IGNORELIST, + OTHER + } - protected List list; + protected List list; - protected ListType type; + protected ListType type; - public ItemList(final ListType listType) { - this(); - type = listType; - } + public ItemList(final ListType listType) { + this(); + type = listType; + } - protected ItemList() { - list = new ArrayList(); - } + protected ItemList() { + list = new ArrayList(); + } - public static ItemList load(final Map map) { - final ItemList newlist = new ItemList(); - return load(map, newlist); - } + public static ItemList load(final Map map) { + final ItemList newlist = new ItemList(); + return load(map, newlist); + } - public static ItemList readList(final ConfigurationSection node) { - return ItemList.readList(node, new ItemList()); - } + public static ItemList readList(final ConfigurationSection node) { + return ItemList.readList(node, new ItemList()); + } - @SuppressWarnings("unchecked") - protected static ItemList load(final Map map, final ItemList newlist) { - try { - newlist.type = ListType.valueOf((String) map.get("Type")); - final List list = (List) map.get("ItemList"); - for (final String item : list) { - newlist.add(Material.valueOf(item)); - } - } catch (final Exception ex) { - } - return newlist; - } + @SuppressWarnings("unchecked") + protected static ItemList load(final Map map, final ItemList newlist) { + try { + newlist.type = ListType.valueOf((String) map.get("Type")); + final List list = (List) map.get("ItemList"); + for (final String item : list) { + newlist.add(Material.valueOf(item)); + } + } catch (final Exception ex) { + } + return newlist; + } - @SuppressWarnings("deprecation") - protected static ItemList readList(final ConfigurationSection node, final ItemList list) { - final ListType type = ListType.valueOf(node.getString("Type", "").toUpperCase()); - list.type = type; - final List items = node.getStringList("Items"); - if (items != null) { - for (final String item : items) { - int parse = -1; - try { - parse = Integer.parseInt(item); - } catch (final Exception ex) { - } - if (parse == -1) { - try { - list.add(Material.valueOf(item.toUpperCase())); - } catch (final Exception ex) { - } - } else { - try { - list.add(Material.getMaterial(parse)); - } catch (final Exception ex) { - } - } - } - } - return list; - } + @SuppressWarnings("deprecation") + protected static ItemList readList(final ConfigurationSection node, final ItemList list) { + final ListType type = ListType.valueOf(node.getString("Type", "").toUpperCase()); + list.type = type; + final List items = node.getStringList("Items"); + if (items != null) { + for (final String item : items) { + int parse = -1; + try { + parse = Integer.parseInt(item); + } catch (final Exception ex) { + } + if (parse == -1) { + try { + list.add(Material.valueOf(item.toUpperCase())); + } catch (final Exception ex) { + } + } else { + try { + list.add(Material.getMaterial(parse)); + } catch (final Exception ex) { + } + } + } + } + return list; + } - public void add(final Material mat) { - if (!list.contains(mat)) - list.add(mat); - } + public void add(final Material mat) { + if (!list.contains(mat)) + list.add(mat); + } - public boolean contains(final Material mat) { - return list.contains(mat); - } + public boolean contains(final Material mat) { + return list.contains(mat); + } - public int getListSize() { - return list.size(); - } + public int getListSize() { + return list.size(); + } - public ListType getType() { - return type; - } + public ListType getType() { + return type; + } - public boolean isAllowed(final Material mat) { - if (type == ListType.BLACKLIST) { - if (list.contains(mat)) { - return false; - } - return true; - } else if (type == ListType.WHITELIST) { - if (list.contains(mat)) { - return true; - } - return false; - } - return true; - } + public boolean isAllowed(final Material mat) { + if (type == ListType.BLACKLIST) { + if (list.contains(mat)) { + return false; + } + return true; + } else if (type == ListType.WHITELIST) { + if (list.contains(mat)) { + return true; + } + return false; + } + return true; + } - public boolean isIgnored(final Material mat) { - if (type == ListType.IGNORELIST) { - if (list.contains(mat)) { - return true; - } - } - return false; - } + public boolean isIgnored(final Material mat) { + if (type == ListType.IGNORELIST) { + if (list.contains(mat)) { + return true; + } + } + return false; + } - public boolean isListed(final Material mat) { - return this.contains(mat); - } + public boolean isListed(final Material mat) { + return this.contains(mat); + } - public void printList(final Player player) { - final StringBuilder builder = new StringBuilder(); - boolean first = true; - for (final Material mat : list) { - if (!first) - builder.append(", "); - else - builder.append(ChatColor.YELLOW); - builder.append(mat); - first = false; - } - player.sendMessage(builder.toString()); - } + public void printList(final Player player) { + final StringBuilder builder = new StringBuilder(); + boolean first = true; + for (final Material mat : list) { + if (!first) + builder.append(", "); + else + builder.append(ChatColor.YELLOW); + builder.append(mat); + first = false; + } + player.sendMessage(builder.toString()); + } - public void remove(final Material mat) { - list.remove(mat); - } + public void remove(final Material mat) { + list.remove(mat); + } - public Map save() { - final Map saveMap = new LinkedHashMap(); - saveMap.put("Type", type.toString()); - final List saveList = new ArrayList(); - for (final Material mat : list) { - saveList.add(mat.toString()); - } - saveMap.put("ItemList", saveList); - return saveMap; - } + public Map save() { + final Map saveMap = new LinkedHashMap(); + saveMap.put("Type", type.toString()); + final List saveList = new ArrayList(); + for (final Material mat : list) { + saveList.add(mat.toString()); + } + saveMap.put("ItemList", saveList); + return saveMap; + } - public Material[] toArray() { - final Material mats[] = new Material[list.size()]; - int i = 0; - for (final Material mat : list) { - mats[i] = mat; - i++; - } - return mats; - } + public Material[] toArray() { + final Material mats[] = new Material[list.size()]; + int i = 0; + for (final Material mat : list) { + mats[i] = mat; + i++; + } + return mats; + } - public boolean toggle(final Material mat) { - if (list.contains(mat)) { - list.remove(mat); - return false; - } - list.add(mat); - return true; - } + public boolean toggle(final Material mat) { + if (list.contains(mat)) { + list.remove(mat); + return false; + } + list.add(mat); + return true; + } } diff --git a/src/main/java/cn/citycraft/Residence/itemlist/ResidenceItemList.java b/src/main/java/cn/citycraft/Residence/itemlist/ResidenceItemList.java index 7c52c78..d709ff8 100644 --- a/src/main/java/cn/citycraft/Residence/itemlist/ResidenceItemList.java +++ b/src/main/java/cn/citycraft/Residence/itemlist/ResidenceItemList.java @@ -21,37 +21,37 @@ import cn.citycraft.Residence.permissions.PermissionGroup; * @author Administrator */ public class ResidenceItemList extends ItemList { - ResidenceMain plugin; - ClaimedResidence res; + ResidenceMain plugin; + ClaimedResidence res; - public ResidenceItemList(final ResidenceMain plugin, final ClaimedResidence parent, final ListType type) { - super(type); - this.plugin = plugin; - res = parent; - } + public ResidenceItemList(final ResidenceMain plugin, final ClaimedResidence parent, final ListType type) { + super(type); + this.plugin = plugin; + res = parent; + } - private ResidenceItemList(final ResidenceMain plugin) { - this.plugin = plugin; - } + private ResidenceItemList(final ResidenceMain plugin) { + this.plugin = plugin; + } - public static ResidenceItemList load(final ResidenceMain plugin, final ClaimedResidence parent, final Map map) { - final ResidenceItemList newlist = new ResidenceItemList(plugin); - newlist.res = parent; - return (ResidenceItemList) ItemList.load(map, newlist); - } + public static ResidenceItemList load(final ResidenceMain plugin, final ClaimedResidence parent, final Map map) { + final ResidenceItemList newlist = new ResidenceItemList(plugin); + newlist.res = parent; + return (ResidenceItemList) ItemList.load(map, newlist); + } - public void playerListChange(final Player player, final Material mat, final boolean resadmin) { - final PermissionGroup group = plugin.getPermissionManager().getGroup(player); - if (resadmin || (res.getPermissions().hasResidencePermission(player, true) && group.itemListAccess())) { - if (super.toggle(mat)) { - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("ListMaterialAdd", - ChatColor.GREEN + mat.toString() + ChatColor.YELLOW + "." + ChatColor.GREEN + type.toString().toLowerCase() + ChatColor.YELLOW)); - } else { - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("ListMaterialRemove", - ChatColor.GREEN + mat.toString() + ChatColor.YELLOW + "." + ChatColor.GREEN + type.toString().toLowerCase() + ChatColor.YELLOW)); - } - } else { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - } - } + public void playerListChange(final Player player, final Material mat, final boolean resadmin) { + final PermissionGroup group = plugin.getPermissionManager().getGroup(player); + if (resadmin || (res.getPermissions().hasResidencePermission(player, true) && group.itemListAccess())) { + if (super.toggle(mat)) { + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("ListMaterialAdd", + ChatColor.GREEN + mat.toString() + ChatColor.YELLOW + "." + ChatColor.GREEN + type.toString().toLowerCase() + ChatColor.YELLOW)); + } else { + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("ListMaterialRemove", + ChatColor.GREEN + mat.toString() + ChatColor.YELLOW + "." + ChatColor.GREEN + type.toString().toLowerCase() + ChatColor.YELLOW)); + } + } else { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + } + } } diff --git a/src/main/java/cn/citycraft/Residence/itemlist/WorldItemList.java b/src/main/java/cn/citycraft/Residence/itemlist/WorldItemList.java index 87249de..3c39919 100644 --- a/src/main/java/cn/citycraft/Residence/itemlist/WorldItemList.java +++ b/src/main/java/cn/citycraft/Residence/itemlist/WorldItemList.java @@ -15,50 +15,43 @@ import org.bukkit.configuration.ConfigurationSection; public class WorldItemList extends ItemList { protected String world; - protected String group; + protected String group; - public WorldItemList(ListType listType) - { + public WorldItemList(ListType listType) { super(listType); } - protected WorldItemList() - { - + protected WorldItemList() { + } - public String getWorld() - { + public String getWorld() { return world; } - public String getGroup() - { + public String getGroup() { return group; } public boolean isAllowed(Material mat, String inworld, String ingroup) { - if(!listApplicable(inworld,ingroup)) + if (!listApplicable(inworld, ingroup)) return true; return super.isAllowed(mat); } - public boolean isIgnored(Material mat, String inworld, String ingroup) - { - if(!listApplicable(inworld,ingroup)) + public boolean isIgnored(Material mat, String inworld, String ingroup) { + if (!listApplicable(inworld, ingroup)) return false; return super.isIgnored(mat); } - public boolean isListed(Material mat, String inworld, String ingroup) - { - if(!listApplicable(inworld,ingroup)) + public boolean isListed(Material mat, String inworld, String ingroup) { + if (!listApplicable(inworld, ingroup)) return false; return super.isListed(mat); } - public boolean listApplicable(String inworld, String ingroup) - { + public boolean listApplicable(String inworld, String ingroup) { if (world != null) { if (!world.equalsIgnoreCase(inworld)) { return false; @@ -72,12 +65,11 @@ public class WorldItemList extends ItemList { return true; } - public static WorldItemList readList(ConfigurationSection node) - { + public static WorldItemList readList(ConfigurationSection node) { WorldItemList list = new WorldItemList(); ItemList.readList(node, list); - list.world = node.getString("World",null); - list.group = node.getString("Group",null); + list.world = node.getString("World", null); + list.group = node.getString("Group", null); return list; } } diff --git a/src/main/java/cn/citycraft/Residence/itemlist/WorldItemManager.java b/src/main/java/cn/citycraft/Residence/itemlist/WorldItemManager.java index 1e9cbae..b9a2abc 100644 --- a/src/main/java/cn/citycraft/Residence/itemlist/WorldItemManager.java +++ b/src/main/java/cn/citycraft/Residence/itemlist/WorldItemManager.java @@ -18,8 +18,7 @@ import org.bukkit.configuration.file.FileConfiguration; public class WorldItemManager { protected List lists; - public WorldItemManager(FileConfiguration config) - { + public WorldItemManager(FileConfiguration config) { lists = new ArrayList(); this.readLists(config); } @@ -33,8 +32,7 @@ public class WorldItemManager { return true; } - public boolean isIgnored(Material mat, String group, String world) - { + public boolean isIgnored(Material mat, String group, String world) { for (WorldItemList list : lists) { if (list.isIgnored(mat, world, group)) { return true; @@ -50,7 +48,7 @@ public class WorldItemManager { try { WorldItemList list = WorldItemList.readList(config.getConfigurationSection("ItemList." + key)); lists.add(list); - //System.out.println("Debug: read list " + key + " world: " + list.getWorld() + " group: " + list.getGroup() + " itemcount:" + list.getListSize()); + // System.out.println("Debug: read list " + key + " world: " + list.getWorld() + " group: " + list.getGroup() + " itemcount:" + list.getListSize()); } catch (Exception ex) { System.out.println("Failed to load item list:" + key); } diff --git a/src/main/java/cn/citycraft/Residence/listeners/ResidenceBlockListener.java b/src/main/java/cn/citycraft/Residence/listeners/ResidenceBlockListener.java index 7c4964a..8d6fa70 100644 --- a/src/main/java/cn/citycraft/Residence/listeners/ResidenceBlockListener.java +++ b/src/main/java/cn/citycraft/Residence/listeners/ResidenceBlockListener.java @@ -34,186 +34,186 @@ import org.bukkit.event.block.BlockSpreadEvent; * @author Administrator */ public class ResidenceBlockListener implements Listener { - ResidenceMain plugin; + ResidenceMain plugin; - public ResidenceBlockListener(final ResidenceMain plugin) { - this.plugin = plugin; - } + public ResidenceBlockListener(final ResidenceMain plugin) { + this.plugin = plugin; + } - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void onBlockBreak(final BlockBreakEvent event) { - final Player player = event.getPlayer(); - if (plugin.isResAdminOn(player)) { - return; - } - final Material mat = event.getBlock().getType(); - final String world = event.getBlock().getWorld().getName(); - final String group = plugin.getPermissionManager().getGroupNameByPlayer(player); - if (plugin.getItemManager().isIgnored(mat, group, world)) { - return; - } - final ClaimedResidence res = plugin.getResidenceManager().getByLoc(event.getBlock().getLocation()); - if (plugin.getConfigManager().enabledRentSystem()) { - if (res != null) { - final String resname = res.getName(); - if (plugin.getConfigManager().preventRentModify() && plugin.getRentManager().isRented(resname)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("RentedModifyDeny")); - event.setCancelled(true); - return; - } - } - } - final FlagPermissions perms = plugin.getPermsByLocForPlayer(event.getBlock().getLocation(), player); - final String pname = player.getName(); - if (res != null) { - if (res.getItemIgnoreList().isListed(mat)) { - return; - } - } - final boolean hasdestroy = perms.playerHas(pname, player.getWorld().getName(), "destroy", perms.playerHas(pname, player.getWorld().getName(), "build", true)); - final boolean hasContainer = perms.playerHas(pname, player.getWorld().getName(), "container", true); - if (!hasdestroy || (!hasContainer && mat == Material.CHEST)) { - event.setCancelled(true); - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - return; - } - } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onBlockBreak(final BlockBreakEvent event) { + final Player player = event.getPlayer(); + if (plugin.isResAdminOn(player)) { + return; + } + final Material mat = event.getBlock().getType(); + final String world = event.getBlock().getWorld().getName(); + final String group = plugin.getPermissionManager().getGroupNameByPlayer(player); + if (plugin.getItemManager().isIgnored(mat, group, world)) { + return; + } + final ClaimedResidence res = plugin.getResidenceManager().getByLoc(event.getBlock().getLocation()); + if (plugin.getConfigManager().enabledRentSystem()) { + if (res != null) { + final String resname = res.getName(); + if (plugin.getConfigManager().preventRentModify() && plugin.getRentManager().isRented(resname)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("RentedModifyDeny")); + event.setCancelled(true); + return; + } + } + } + final FlagPermissions perms = plugin.getPermsByLocForPlayer(event.getBlock().getLocation(), player); + final String pname = player.getName(); + if (res != null) { + if (res.getItemIgnoreList().isListed(mat)) { + return; + } + } + final boolean hasdestroy = perms.playerHas(pname, player.getWorld().getName(), "destroy", perms.playerHas(pname, player.getWorld().getName(), "build", true)); + final boolean hasContainer = perms.playerHas(pname, player.getWorld().getName(), "container", true); + if (!hasdestroy || (!hasContainer && mat == Material.CHEST)) { + event.setCancelled(true); + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + return; + } + } - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void onBlockBurn(final BlockBurnEvent event) { - final FlagPermissions perms = plugin.getPermsByLoc(event.getBlock().getLocation()); - if (!perms.has("firespread", true)) { - event.setCancelled(true); - } - } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onBlockBurn(final BlockBurnEvent event) { + final FlagPermissions perms = plugin.getPermsByLoc(event.getBlock().getLocation()); + if (!perms.has("firespread", true)) { + event.setCancelled(true); + } + } - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void onBlockFromTo(final BlockFromToEvent event) { - final FlagPermissions perms = plugin.getPermsByLoc(event.getToBlock().getLocation()); - final boolean hasflow = perms.has("flow", true); - final Material mat = event.getBlock().getType(); - if (!hasflow) { - event.setCancelled(true); - return; - } - if (mat == Material.LAVA || mat == Material.STATIONARY_LAVA) { - if (!perms.has("lavaflow", hasflow)) { - event.setCancelled(true); - } - return; - } - if (mat == Material.WATER || mat == Material.STATIONARY_WATER) { - if (!perms.has("waterflow", hasflow)) { - event.setCancelled(true); - } - return; - } - } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onBlockFromTo(final BlockFromToEvent event) { + final FlagPermissions perms = plugin.getPermsByLoc(event.getToBlock().getLocation()); + final boolean hasflow = perms.has("flow", true); + final Material mat = event.getBlock().getType(); + if (!hasflow) { + event.setCancelled(true); + return; + } + if (mat == Material.LAVA || mat == Material.STATIONARY_LAVA) { + if (!perms.has("lavaflow", hasflow)) { + event.setCancelled(true); + } + return; + } + if (mat == Material.WATER || mat == Material.STATIONARY_WATER) { + if (!perms.has("waterflow", hasflow)) { + event.setCancelled(true); + } + return; + } + } - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void onBlockIgnite(final BlockIgniteEvent event) { - final FlagPermissions perms = plugin.getPermsByLocForPlayer(event.getBlock().getLocation(), event.getPlayer()); - final IgniteCause cause = event.getCause(); - if (cause == IgniteCause.SPREAD) { - if (!perms.has("firespread", true)) { - event.setCancelled(true); - } - } else if (cause == IgniteCause.FLINT_AND_STEEL) { - final Player player = event.getPlayer(); - if (player != null && !perms.playerHas(player.getName(), player.getWorld().getName(), "ignite", true) && !plugin.isResAdminOn(player)) { - event.setCancelled(true); - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - } - } else { - if (!perms.has("ignite", true)) { - event.setCancelled(true); - } - } - } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onBlockIgnite(final BlockIgniteEvent event) { + final FlagPermissions perms = plugin.getPermsByLocForPlayer(event.getBlock().getLocation(), event.getPlayer()); + final IgniteCause cause = event.getCause(); + if (cause == IgniteCause.SPREAD) { + if (!perms.has("firespread", true)) { + event.setCancelled(true); + } + } else if (cause == IgniteCause.FLINT_AND_STEEL) { + final Player player = event.getPlayer(); + if (player != null && !perms.playerHas(player.getName(), player.getWorld().getName(), "ignite", true) && !plugin.isResAdminOn(player)) { + event.setCancelled(true); + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + } + } else { + if (!perms.has("ignite", true)) { + event.setCancelled(true); + } + } + } - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void onBlockPistonExtend(final BlockPistonExtendEvent event) { - final FlagPermissions perms = plugin.getPermsByLoc(event.getBlock().getLocation()); - if (!perms.has("piston", true)) { - event.setCancelled(true); - } - for (final Block block : event.getBlocks()) { - final FlagPermissions blockpermsfrom = plugin.getPermsByLoc(block.getLocation()); - final Location blockto = block.getLocation(); - blockto.setX(blockto.getX() + event.getDirection().getModX()); - blockto.setY(blockto.getY() + event.getDirection().getModY()); - blockto.setZ(blockto.getZ() + event.getDirection().getModZ()); - final FlagPermissions blockpermsto = plugin.getPermsByLoc(blockto); - if (!blockpermsfrom.has("piston", true) || !blockpermsto.has("piston", true)) { - event.setCancelled(true); - return; - } - } - } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onBlockPistonExtend(final BlockPistonExtendEvent event) { + final FlagPermissions perms = plugin.getPermsByLoc(event.getBlock().getLocation()); + if (!perms.has("piston", true)) { + event.setCancelled(true); + } + for (final Block block : event.getBlocks()) { + final FlagPermissions blockpermsfrom = plugin.getPermsByLoc(block.getLocation()); + final Location blockto = block.getLocation(); + blockto.setX(blockto.getX() + event.getDirection().getModX()); + blockto.setY(blockto.getY() + event.getDirection().getModY()); + blockto.setZ(blockto.getZ() + event.getDirection().getModZ()); + final FlagPermissions blockpermsto = plugin.getPermsByLoc(blockto); + if (!blockpermsfrom.has("piston", true) || !blockpermsto.has("piston", true)) { + event.setCancelled(true); + return; + } + } + } - @SuppressWarnings("deprecation") - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void onBlockPistonRetract(final BlockPistonRetractEvent event) { - final FlagPermissions perms = plugin.getPermsByLoc(event.getBlock().getLocation()); - if (!perms.has("piston", true)) { - event.setCancelled(true); - return; - } - if (event.isSticky()) { - final Location location = event.getRetractLocation(); - final FlagPermissions blockperms = plugin.getPermsByLoc(location); - if (!blockperms.has("piston", true)) { - event.setCancelled(true); - } - } - } + @SuppressWarnings("deprecation") + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onBlockPistonRetract(final BlockPistonRetractEvent event) { + final FlagPermissions perms = plugin.getPermsByLoc(event.getBlock().getLocation()); + if (!perms.has("piston", true)) { + event.setCancelled(true); + return; + } + if (event.isSticky()) { + final Location location = event.getRetractLocation(); + final FlagPermissions blockperms = plugin.getPermsByLoc(location); + if (!blockperms.has("piston", true)) { + event.setCancelled(true); + } + } + } - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void onBlockPlace(final BlockPlaceEvent event) { - final Player player = event.getPlayer(); - if (plugin.isResAdminOn(player)) { - return; - } - final Material mat = event.getBlock().getType(); - final String world = event.getBlock().getWorld().getName(); - final String group = plugin.getPermissionManager().getGroupNameByPlayer(player); - if (plugin.getItemManager().isIgnored(mat, group, world)) { - return; - } - final ClaimedResidence res = plugin.getResidenceManager().getByLoc(event.getBlock().getLocation()); - if (plugin.getConfigManager().enabledRentSystem()) { - if (res != null) { - final String resname = res.getName(); - if (plugin.getConfigManager().preventRentModify() && plugin.getRentManager().isRented(resname)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("RentedModifyDeny")); - event.setCancelled(true); - return; - } - } - } - final String pname = player.getName(); - if (res != null) { - if (!res.getItemBlacklist().isAllowed(mat)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ItemBlacklisted")); - event.setCancelled(true); - return; - } - } - final FlagPermissions perms = plugin.getPermsByLocForPlayer(event.getBlock().getLocation(), player); - final boolean hasplace = perms.playerHas(pname, player.getWorld().getName(), "place", perms.playerHas(pname, player.getWorld().getName(), "build", true)); - if (!hasplace) { - event.setCancelled(true); - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - return; - } - } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onBlockPlace(final BlockPlaceEvent event) { + final Player player = event.getPlayer(); + if (plugin.isResAdminOn(player)) { + return; + } + final Material mat = event.getBlock().getType(); + final String world = event.getBlock().getWorld().getName(); + final String group = plugin.getPermissionManager().getGroupNameByPlayer(player); + if (plugin.getItemManager().isIgnored(mat, group, world)) { + return; + } + final ClaimedResidence res = plugin.getResidenceManager().getByLoc(event.getBlock().getLocation()); + if (plugin.getConfigManager().enabledRentSystem()) { + if (res != null) { + final String resname = res.getName(); + if (plugin.getConfigManager().preventRentModify() && plugin.getRentManager().isRented(resname)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("RentedModifyDeny")); + event.setCancelled(true); + return; + } + } + } + final String pname = player.getName(); + if (res != null) { + if (!res.getItemBlacklist().isAllowed(mat)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ItemBlacklisted")); + event.setCancelled(true); + return; + } + } + final FlagPermissions perms = plugin.getPermsByLocForPlayer(event.getBlock().getLocation(), player); + final boolean hasplace = perms.playerHas(pname, player.getWorld().getName(), "place", perms.playerHas(pname, player.getWorld().getName(), "build", true)); + if (!hasplace) { + event.setCancelled(true); + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + return; + } + } - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void onBlockSpread(final BlockSpreadEvent event) { - final Location loc = event.getBlock().getLocation(); - final FlagPermissions perms = plugin.getPermsByLoc(loc); - if (!perms.has("spread", true)) { - event.setCancelled(true); - } - } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onBlockSpread(final BlockSpreadEvent event) { + final Location loc = event.getBlock().getLocation(); + final FlagPermissions perms = plugin.getPermsByLoc(loc); + if (!perms.has("spread", true)) { + event.setCancelled(true); + } + } } diff --git a/src/main/java/cn/citycraft/Residence/listeners/ResidenceEntityListener.java b/src/main/java/cn/citycraft/Residence/listeners/ResidenceEntityListener.java index fca6ea6..8c8b7e5 100644 --- a/src/main/java/cn/citycraft/Residence/listeners/ResidenceEntityListener.java +++ b/src/main/java/cn/citycraft/Residence/listeners/ResidenceEntityListener.java @@ -48,320 +48,320 @@ import cn.citycraft.Residence.manager.EntityManager; * @author Administrator */ public class ResidenceEntityListener implements Listener { - EntityManager entitymanager; - ResidenceMain plugin; + EntityManager entitymanager; + ResidenceMain plugin; - public ResidenceEntityListener(final ResidenceMain plugin) { - this.plugin = plugin; - this.entitymanager = plugin.getEntityManager(); - } + public ResidenceEntityListener(final ResidenceMain plugin) { + this.plugin = plugin; + 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 (entitymanager.isAnimal(ent)) { - if (!perms.has("animals", true)) { - event.setCancelled(true); - } - } else if (!perms.has("monsters", true) && entitymanager.isMonster(ent)) { - event.setCancelled(true); - } - } + @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 (entitymanager.isAnimal(ent)) { + if (!perms.has("animals", true)) { + event.setCancelled(true); + } + } else if (!perms.has("monsters", true) && entitymanager.isMonster(ent)) { + event.setCancelled(true); + } + } - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void onEndermanChangeBlock(final EntityChangeBlockEvent event) { - if (event.getEntityType() != EntityType.ENDERMAN && event.getEntityType() != EntityType.WITHER) { - return; - } - final FlagPermissions perms = plugin.getPermsByLoc(event.getBlock().getLocation()); - final FlagPermissions world = plugin.getWorldFlags().getPerms(event.getBlock().getWorld().getName()); - if (event.getEntityType() == EntityType.WITHER) { - if (!perms.has("wither", perms.has("explode", world.has("wither", world.has("explode", true))))) { - event.setCancelled(true); - } - } else if (!perms.has("build", true)) { - event.setCancelled(true); - } - } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onEndermanChangeBlock(final EntityChangeBlockEvent event) { + if (event.getEntityType() != EntityType.ENDERMAN && event.getEntityType() != EntityType.WITHER) { + return; + } + final FlagPermissions perms = plugin.getPermsByLoc(event.getBlock().getLocation()); + final FlagPermissions world = plugin.getWorldFlags().getPerms(event.getBlock().getWorld().getName()); + if (event.getEntityType() == EntityType.WITHER) { + if (!perms.has("wither", perms.has("explode", world.has("wither", world.has("explode", true))))) { + event.setCancelled(true); + } + } else if (!perms.has("build", true)) { + event.setCancelled(true); + } + } - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void onEntityCombust(final EntityCombustEvent event) { - final FlagPermissions perms = plugin.getPermsByLoc(event.getEntity().getLocation()); - if (!perms.has("burn", true)) { - event.setCancelled(true); - } - } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onEntityCombust(final EntityCombustEvent event) { + final FlagPermissions perms = plugin.getPermsByLoc(event.getEntity().getLocation()); + if (!perms.has("burn", true)) { + event.setCancelled(true); + } + } - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void onEntityDamage(final EntityDamageEvent event) { - Entity ent = event.getEntity(); - if (ent.hasMetadata("NPC")) { - return; - } - final boolean tamedWolf = ent instanceof Wolf ? ((Wolf) ent).isTamed() : false; - final ClaimedResidence area = plugin.getResidenceManager().getByLoc(ent.getLocation()); - /* Living Entities */ - if (event instanceof EntityDamageByEntityEvent) { - final EntityDamageByEntityEvent attackevent = (EntityDamageByEntityEvent) event; - final Entity damager = attackevent.getDamager(); - ClaimedResidence srcarea = null; - if (damager != null) { - srcarea = plugin.getResidenceManager().getByLoc(damager.getLocation()); - } - boolean srcpvp = true; - if (srcarea != null) { - srcpvp = srcarea.getPermissions().has("pvp", true); - } - ent = attackevent.getEntity(); - if ((ent instanceof Player || tamedWolf) && (damager instanceof Player || (damager instanceof Arrow && (((Arrow) damager).getShooter() instanceof Player)))) { - Player attacker = null; - if (damager instanceof Player) { - attacker = (Player) damager; - } else if (damager instanceof Arrow) { - attacker = (Player) ((Arrow) damager).getShooter(); - } - if (!srcpvp) { - if (attacker != null) { - attacker.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPVPZone")); - } - event.setCancelled(true); - return; - } - /* Check for Player vs Player */ - if (area == null) { - /* World PvP */ - if (damager != null) { - if (!plugin.getWorldFlags().getPerms(damager.getWorld().getName()).has("pvp", true)) { - if (attacker != null) { - attacker.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("WorldPVPDisabled")); - } - event.setCancelled(true); - } - } - } else /* Normal PvP */ - if (!area.getPermissions().has("pvp", true)) { - if (attacker != null) { - attacker.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPVPZone")); - } - event.setCancelled(true); - } - return; - } else if ((ent instanceof Player || tamedWolf) && (damager instanceof Creeper)) { - if (area == null) { - if (!plugin.getWorldFlags().getPerms(damager.getWorld().getName()).has("creeper", true)) { - event.setCancelled(true); - } - } else if (!area.getPermissions().has("creeper", true)) { - event.setCancelled(true); - } - } - } - if (area == null) { - if (!plugin.getWorldFlags().getPerms(ent.getWorld().getName()).has("damage", true) && (ent instanceof Player || tamedWolf)) { - event.setCancelled(true); - } - } else if (!area.getPermissions().has("damage", true) && (ent instanceof Player || tamedWolf)) { - event.setCancelled(true); - } - if (event.isCancelled()) { - /* Put out a fire on a player */ - if ((ent instanceof Player || tamedWolf) && (event.getCause() == EntityDamageEvent.DamageCause.FIRE || event.getCause() == EntityDamageEvent.DamageCause.FIRE_TICK)) { - ent.setFireTicks(0); - } - } - } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onEntityDamage(final EntityDamageEvent event) { + Entity ent = event.getEntity(); + if (ent.hasMetadata("NPC")) { + return; + } + final boolean tamedWolf = ent instanceof Wolf ? ((Wolf) ent).isTamed() : false; + final ClaimedResidence area = plugin.getResidenceManager().getByLoc(ent.getLocation()); + /* Living Entities */ + if (event instanceof EntityDamageByEntityEvent) { + final EntityDamageByEntityEvent attackevent = (EntityDamageByEntityEvent) event; + final Entity damager = attackevent.getDamager(); + ClaimedResidence srcarea = null; + if (damager != null) { + srcarea = plugin.getResidenceManager().getByLoc(damager.getLocation()); + } + boolean srcpvp = true; + if (srcarea != null) { + srcpvp = srcarea.getPermissions().has("pvp", true); + } + ent = attackevent.getEntity(); + if ((ent instanceof Player || tamedWolf) && (damager instanceof Player || (damager instanceof Arrow && (((Arrow) damager).getShooter() instanceof Player)))) { + Player attacker = null; + if (damager instanceof Player) { + attacker = (Player) damager; + } else if (damager instanceof Arrow) { + attacker = (Player) ((Arrow) damager).getShooter(); + } + if (!srcpvp) { + if (attacker != null) { + attacker.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPVPZone")); + } + event.setCancelled(true); + return; + } + /* Check for Player vs Player */ + if (area == null) { + /* World PvP */ + if (damager != null) { + if (!plugin.getWorldFlags().getPerms(damager.getWorld().getName()).has("pvp", true)) { + if (attacker != null) { + attacker.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("WorldPVPDisabled")); + } + event.setCancelled(true); + } + } + } else /* Normal PvP */ + if (!area.getPermissions().has("pvp", true)) { + if (attacker != null) { + attacker.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPVPZone")); + } + event.setCancelled(true); + } + return; + } else if ((ent instanceof Player || tamedWolf) && (damager instanceof Creeper)) { + if (area == null) { + if (!plugin.getWorldFlags().getPerms(damager.getWorld().getName()).has("creeper", true)) { + event.setCancelled(true); + } + } else if (!area.getPermissions().has("creeper", true)) { + event.setCancelled(true); + } + } + } + if (area == null) { + if (!plugin.getWorldFlags().getPerms(ent.getWorld().getName()).has("damage", true) && (ent instanceof Player || tamedWolf)) { + event.setCancelled(true); + } + } else if (!area.getPermissions().has("damage", true) && (ent instanceof Player || tamedWolf)) { + event.setCancelled(true); + } + if (event.isCancelled()) { + /* Put out a fire on a player */ + if ((ent instanceof Player || tamedWolf) && (event.getCause() == EntityDamageEvent.DamageCause.FIRE || event.getCause() == EntityDamageEvent.DamageCause.FIRE_TICK)) { + ent.setFireTicks(0); + } + } + } - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void onEntityDamageByEntityEvent(final EntityDamageByEntityEvent event) { - if (event.getEntityType() == EntityType.ITEM_FRAME || (plugin.isGt1_8() && event.getEntityType() == EntityType.ARMOR_STAND)) { - final Entity dmgr = event.getDamager(); - Player player; - if (dmgr instanceof Player) { - player = (Player) event.getDamager(); - } else if (dmgr instanceof Projectile && ((Projectile) dmgr).getShooter() instanceof Player) { - player = (Player) ((Projectile) dmgr).getShooter(); - } else { - return; - } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onEntityDamageByEntityEvent(final EntityDamageByEntityEvent event) { + if (event.getEntityType() == EntityType.ITEM_FRAME || (plugin.isGt1_8() && event.getEntityType() == EntityType.ARMOR_STAND)) { + final Entity dmgr = event.getDamager(); + Player player; + if (dmgr instanceof Player) { + player = (Player) event.getDamager(); + } else if (dmgr instanceof Projectile && ((Projectile) dmgr).getShooter() instanceof Player) { + player = (Player) ((Projectile) dmgr).getShooter(); + } else { + return; + } - if (plugin.isResAdminOn(player)) { - return; - } + if (plugin.isResAdminOn(player)) { + return; + } - // Note: Location of entity, not player; otherwise player could - // stand outside of res and still damage - final Location loc = event.getEntity().getLocation(); - final ClaimedResidence res = plugin.getResidenceManager().getByLoc(loc); - if (res != null) { - if (!res.getPermissions().has("container", false)) { - if (entitymanager.isMonster(dmgr)) { - event.setCancelled(true); - return; - } - } + // Note: Location of entity, not player; otherwise player could + // stand outside of res and still damage + final Location loc = event.getEntity().getLocation(); + final ClaimedResidence res = plugin.getResidenceManager().getByLoc(loc); + if (res != null) { + if (!res.getPermissions().has("container", false)) { + if (entitymanager.isMonster(dmgr)) { + event.setCancelled(true); + return; + } + } - if (!res.getPermissions().playerHas(player.getName(), "container", false)) { - event.setCancelled(true); - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "container")); - } - } - } - } + if (!res.getPermissions().playerHas(player.getName(), "container", false)) { + event.setCancelled(true); + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "container")); + } + } + } + } - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void onEntityExplode(final EntityExplodeEvent event) { - if (event.isCancelled() || event.getEntity() == null) { - return; - } - Boolean cancel = false; - final EntityType entity = event.getEntityType(); - final FlagPermissions perms = plugin.getPermsByLoc(event.getEntity().getLocation()); - final FlagPermissions world = plugin.getWorldFlags().getPerms(event.getEntity().getWorld().getName()); - if (entity == EntityType.CREEPER) { - if (!perms.has("creeper", perms.has("explode", true))) { - cancel = true; - } - } - if (entity == EntityType.PRIMED_TNT || entity == EntityType.MINECART_TNT) { - if (!perms.has("tnt", perms.has("explode", true))) { - cancel = true; - } - } - if (entity == EntityType.FIREBALL) { - if (!perms.has("fireball", perms.has("explode", true))) { - cancel = true; - } - } - if (entity == EntityType.SMALL_FIREBALL) { - if (!perms.has("fireball", perms.has("explode", true))) { - cancel = true; - } - } - if (entity == EntityType.WITHER_SKULL || entity == EntityType.WITHER) { - if (!perms.has("wither", perms.has("explode", world.has("wither", world.has("explode", true))))) { - cancel = true; - } - } - if (cancel) { - event.setCancelled(true); - event.getEntity().remove(); - } else { - final List preserve = new ArrayList(); - for (final Block block : event.blockList()) { - final FlagPermissions blockperms = plugin.getPermsByLoc(block.getLocation()); - if ((!blockperms.has("wither", blockperms.has("explode", world.has("wither", world.has("explode", true)))) && (entity == EntityType.WITHER || entity == EntityType.WITHER_SKULL) - || (!blockperms.has("fireball", blockperms.has("explode", true)) && (entity == EntityType.FIREBALL || entity == EntityType.SMALL_FIREBALL)) - || (!blockperms.has("tnt", blockperms.has("explode", true)) && (entity == EntityType.PRIMED_TNT || entity == EntityType.MINECART_TNT)) - || (!blockperms.has("creeper", blockperms.has("explode", true)) && entity == EntityType.CREEPER))) { - preserve.add(block); - } - } - for (final Block block : preserve) { - event.blockList().remove(block); - } - } - } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onEntityExplode(final EntityExplodeEvent event) { + if (event.isCancelled() || event.getEntity() == null) { + return; + } + Boolean cancel = false; + final EntityType entity = event.getEntityType(); + final FlagPermissions perms = plugin.getPermsByLoc(event.getEntity().getLocation()); + final FlagPermissions world = plugin.getWorldFlags().getPerms(event.getEntity().getWorld().getName()); + if (entity == EntityType.CREEPER) { + if (!perms.has("creeper", perms.has("explode", true))) { + cancel = true; + } + } + if (entity == EntityType.PRIMED_TNT || entity == EntityType.MINECART_TNT) { + if (!perms.has("tnt", perms.has("explode", true))) { + cancel = true; + } + } + if (entity == EntityType.FIREBALL) { + if (!perms.has("fireball", perms.has("explode", true))) { + cancel = true; + } + } + if (entity == EntityType.SMALL_FIREBALL) { + if (!perms.has("fireball", perms.has("explode", true))) { + cancel = true; + } + } + if (entity == EntityType.WITHER_SKULL || entity == EntityType.WITHER) { + if (!perms.has("wither", perms.has("explode", world.has("wither", world.has("explode", true))))) { + cancel = true; + } + } + if (cancel) { + event.setCancelled(true); + event.getEntity().remove(); + } else { + final List preserve = new ArrayList(); + for (final Block block : event.blockList()) { + final FlagPermissions blockperms = plugin.getPermsByLoc(block.getLocation()); + if ((!blockperms.has("wither", blockperms.has("explode", world.has("wither", world.has("explode", true)))) && (entity == EntityType.WITHER || entity == EntityType.WITHER_SKULL) + || (!blockperms.has("fireball", blockperms.has("explode", true)) && (entity == EntityType.FIREBALL || entity == EntityType.SMALL_FIREBALL)) + || (!blockperms.has("tnt", blockperms.has("explode", true)) && (entity == EntityType.PRIMED_TNT || entity == EntityType.MINECART_TNT)) + || (!blockperms.has("creeper", blockperms.has("explode", true)) && entity == EntityType.CREEPER))) { + preserve.add(block); + } + } + for (final Block block : preserve) { + event.blockList().remove(block); + } + } + } - @EventHandler(priority = EventPriority.LOWEST) - public void onEntityInteract(final EntityInteractEvent event) { - final Block block = event.getBlock(); - final Material mat = block.getType(); - final Entity entity = event.getEntity(); - final FlagPermissions perms = plugin.getPermsByLoc(block.getLocation()); - final boolean hastrample = perms.has("trample", perms.has("hasbuild", true)); - if (!hastrample && !(entity.getType() == EntityType.FALLING_BLOCK) && (mat == Material.SOIL || mat == Material.SOUL_SAND)) { - event.setCancelled(true); - } - } + @EventHandler(priority = EventPriority.LOWEST) + public void onEntityInteract(final EntityInteractEvent event) { + final Block block = event.getBlock(); + final Material mat = block.getType(); + final Entity entity = event.getEntity(); + final FlagPermissions perms = plugin.getPermsByLoc(block.getLocation()); + final boolean hastrample = perms.has("trample", perms.has("hasbuild", true)); + if (!hastrample && !(entity.getType() == EntityType.FALLING_BLOCK) && (mat == Material.SOIL || mat == Material.SOUL_SAND)) { + event.setCancelled(true); + } + } - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void onExplosionPrime(final ExplosionPrimeEvent event) { - final EntityType entity = event.getEntityType(); - final FlagPermissions perms = plugin.getPermsByLoc(event.getEntity().getLocation()); - if (entity == EntityType.CREEPER) { - if (!perms.has("creeper", perms.has("explode", true))) { - event.setCancelled(true); - event.getEntity().remove(); - } - } - if (entity == EntityType.PRIMED_TNT || entity == EntityType.MINECART_TNT) { - if (!perms.has("tnt", perms.has("explode", true))) { - event.setCancelled(true); - event.getEntity().remove(); - } - } - if (entity == EntityType.FIREBALL) { - if (!perms.has("fireball", perms.has("explode", true))) { - event.setCancelled(true); - event.getEntity().remove(); - } - } - if (entity == EntityType.SMALL_FIREBALL) { - if (!perms.has("fireball", perms.has("explode", true))) { - event.setCancelled(true); - event.getEntity().remove(); - } - } - if (entity == EntityType.WITHER_SKULL) { - if (!perms.has("witherdamage", perms.has("damage", true))) { - event.setCancelled(true); - event.getEntity().remove(); - } - } - } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onExplosionPrime(final ExplosionPrimeEvent event) { + final EntityType entity = event.getEntityType(); + final FlagPermissions perms = plugin.getPermsByLoc(event.getEntity().getLocation()); + if (entity == EntityType.CREEPER) { + if (!perms.has("creeper", perms.has("explode", true))) { + event.setCancelled(true); + event.getEntity().remove(); + } + } + if (entity == EntityType.PRIMED_TNT || entity == EntityType.MINECART_TNT) { + if (!perms.has("tnt", perms.has("explode", true))) { + event.setCancelled(true); + event.getEntity().remove(); + } + } + if (entity == EntityType.FIREBALL) { + if (!perms.has("fireball", perms.has("explode", true))) { + event.setCancelled(true); + event.getEntity().remove(); + } + } + if (entity == EntityType.SMALL_FIREBALL) { + if (!perms.has("fireball", perms.has("explode", true))) { + event.setCancelled(true); + event.getEntity().remove(); + } + } + if (entity == EntityType.WITHER_SKULL) { + if (!perms.has("witherdamage", perms.has("damage", true))) { + event.setCancelled(true); + event.getEntity().remove(); + } + } + } - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void onHangingBreak(final HangingBreakEvent event) { - if (event instanceof HangingBreakByEntityEvent) { - final HangingBreakByEntityEvent evt = (HangingBreakByEntityEvent) event; - if (evt.getRemover() instanceof Player) { - final Player player = (Player) evt.getRemover(); - if (plugin.isResAdminOn(player)) { - return; - } - final String pname = player.getName(); - final FlagPermissions perms = plugin.getPermsByLocForPlayer(event.getEntity().getLocation(), player); - final String world = event.getEntity().getWorld().getName(); - if (!perms.playerHas(pname, world, "destroy", perms.playerHas(pname, world, "build", true))) { - event.setCancelled(true); - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - } - } - } - } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onHangingBreak(final HangingBreakEvent event) { + if (event instanceof HangingBreakByEntityEvent) { + final HangingBreakByEntityEvent evt = (HangingBreakByEntityEvent) event; + if (evt.getRemover() instanceof Player) { + final Player player = (Player) evt.getRemover(); + if (plugin.isResAdminOn(player)) { + return; + } + final String pname = player.getName(); + final FlagPermissions perms = plugin.getPermsByLocForPlayer(event.getEntity().getLocation(), player); + final String world = event.getEntity().getWorld().getName(); + if (!perms.playerHas(pname, world, "destroy", perms.playerHas(pname, world, "build", true))) { + event.setCancelled(true); + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + } + } + } + } - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void onHangingPlace(final HangingPlaceEvent event) { - final Player player = event.getPlayer(); - if (plugin.isResAdminOn(player)) { - return; - } - final FlagPermissions perms = plugin.getPermsByLocForPlayer(event.getEntity().getLocation(), player); - final String pname = player.getName(); - final String world = player.getWorld().getName(); - if (!perms.playerHas(pname, world, "place", perms.playerHas(pname, world, "build", true))) { - event.setCancelled(true); - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - } - } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onHangingPlace(final HangingPlaceEvent event) { + final Player player = event.getPlayer(); + if (plugin.isResAdminOn(player)) { + return; + } + final FlagPermissions perms = plugin.getPermsByLocForPlayer(event.getEntity().getLocation(), player); + final String pname = player.getName(); + final String world = player.getWorld().getName(); + if (!perms.playerHas(pname, world, "place", perms.playerHas(pname, world, "build", true))) { + event.setCancelled(true); + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + } + } - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void onSplashPotion(final PotionSplashEvent event) { - if (event.isCancelled()) { - return; - } - final Entity ent = event.getEntity(); - final boolean srcpvp = plugin.getPermsByLoc(ent.getLocation()).has("pvp", true); - final Iterator it = event.getAffectedEntities().iterator(); - while (it.hasNext()) { - final LivingEntity target = it.next(); - if (target.getType() == EntityType.PLAYER) { - final Boolean tgtpvp = plugin.getPermsByLoc(target.getLocation()).has("pvp", true); - if (!srcpvp || !tgtpvp) { - event.setIntensity(target, 0); - } - } - } - } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onSplashPotion(final PotionSplashEvent event) { + if (event.isCancelled()) { + return; + } + final Entity ent = event.getEntity(); + final boolean srcpvp = plugin.getPermsByLoc(ent.getLocation()).has("pvp", true); + final Iterator it = event.getAffectedEntities().iterator(); + while (it.hasNext()) { + final LivingEntity target = it.next(); + if (target.getType() == EntityType.PLAYER) { + final Boolean tgtpvp = plugin.getPermsByLoc(target.getLocation()).has("pvp", true); + if (!srcpvp || !tgtpvp) { + event.setIntensity(target, 0); + } + } + } + } } diff --git a/src/main/java/cn/citycraft/Residence/listeners/ResidencePlayerListener.java b/src/main/java/cn/citycraft/Residence/listeners/ResidencePlayerListener.java index 676ad3b..d1cf290 100644 --- a/src/main/java/cn/citycraft/Residence/listeners/ResidencePlayerListener.java +++ b/src/main/java/cn/citycraft/Residence/listeners/ResidencePlayerListener.java @@ -41,6 +41,7 @@ import com.bekvon.bukkit.residence.protection.FlagPermissions; import com.sk89q.worldedit.bukkit.WorldEditPlugin; import cn.citycraft.PluginHelper.utils.ActionBar; +import cn.citycraft.PluginHelper.utils.CompatibleUtil; import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.chat.ChatChannel; import cn.citycraft.Residence.permissions.PermissionGroup; @@ -52,494 +53,494 @@ import cn.citycraft.Residence.permissions.PermissionGroup; @SuppressWarnings("deprecation") public class ResidencePlayerListener implements Listener { - protected boolean chatenabled; - protected Map currentRes; - protected Map lastOutsideLoc; - protected Map lastUpdate; - protected int minUpdateTime; - protected List playerToggleChat; - ResidenceMain plugin; + protected boolean chatenabled; + protected Map currentRes; + protected Map lastOutsideLoc; + protected Map lastUpdate; + protected int minUpdateTime; + protected List playerToggleChat; + ResidenceMain plugin; - public ResidencePlayerListener(final ResidenceMain plugin) { - this.plugin = plugin; - currentRes = new HashMap<>(); - lastUpdate = new HashMap<>(); - lastOutsideLoc = new HashMap<>(); - playerToggleChat = new ArrayList<>(); - minUpdateTime = plugin.getConfigManager().getMinMoveUpdateInterval(); - chatenabled = plugin.getConfigManager().chatEnabled(); - for (final Player player : Bukkit.getServer().getOnlinePlayers()) { - lastUpdate.put(player.getName(), System.currentTimeMillis()); - } - } + public ResidencePlayerListener(final ResidenceMain plugin) { + this.plugin = plugin; + currentRes = new HashMap<>(); + lastUpdate = new HashMap<>(); + lastOutsideLoc = new HashMap<>(); + playerToggleChat = new ArrayList<>(); + minUpdateTime = plugin.getConfigManager().getMinMoveUpdateInterval(); + chatenabled = plugin.getConfigManager().chatEnabled(); + for (final Player player : CompatibleUtil.getOnlinePlayers()) { + lastUpdate.put(player.getName(), System.currentTimeMillis()); + } + } - public String getCurrentResidenceName(final String player) { - return currentRes.get(player); - } + public String getCurrentResidenceName(final String player) { + return currentRes.get(player); + } - public void handleNewLocation(final Player player, final Location loc, final boolean move) { - final String pname = player.getName(); + public void handleNewLocation(final Player player, final Location loc, final boolean move) { + final String pname = player.getName(); - ClaimedResidence res = plugin.getResidenceManager().getByLoc(loc); - String areaname = null; - boolean chatchange = false; - String subzone = null; - if (res != null) { - areaname = plugin.getResidenceManager().getNameByLoc(loc); - while (res.getSubzoneByLoc(player.getLocation()) != null) { - subzone = res.getSubzoneNameByLoc(player.getLocation()); - res = res.getSubzoneByLoc(player.getLocation()); - areaname = areaname + "." + subzone; - } - } - ClaimedResidence ResOld = null; - if (currentRes.containsKey(pname)) { - ResOld = plugin.getResidenceManager().getByName(currentRes.get(pname)); - if (ResOld == null) { - currentRes.remove(pname); - } - } - if (res == null) { - lastOutsideLoc.put(pname, loc); - if (ResOld != null) { - final String leave = ResOld.getLeaveMessage(); - final ResidenceChangedEvent chgEvent = new ResidenceChangedEvent(ResOld, null, player); - plugin.getServer().getPluginManager().callEvent(chgEvent); + ClaimedResidence res = plugin.getResidenceManager().getByLoc(loc); + String areaname = null; + boolean chatchange = false; + String subzone = null; + if (res != null) { + areaname = plugin.getResidenceManager().getNameByLoc(loc); + while (res.getSubzoneByLoc(player.getLocation()) != null) { + subzone = res.getSubzoneNameByLoc(player.getLocation()); + res = res.getSubzoneByLoc(player.getLocation()); + areaname = areaname + "." + subzone; + } + } + ClaimedResidence ResOld = null; + if (currentRes.containsKey(pname)) { + ResOld = plugin.getResidenceManager().getByName(currentRes.get(pname)); + if (ResOld == null) { + currentRes.remove(pname); + } + } + if (res == null) { + lastOutsideLoc.put(pname, loc); + if (ResOld != null) { + final String leave = ResOld.getLeaveMessage(); + final ResidenceChangedEvent chgEvent = new ResidenceChangedEvent(ResOld, null, player); + plugin.getServer().getPluginManager().callEvent(chgEvent); - if (leave != null && !leave.equals("")) { - if (plugin.getConfigManager().useActionBar()) { - ActionBar.send(player, ChatColor.YELLOW + insertMessages(player, ResOld.getName(), ResOld, leave)); - } else { - player.sendMessage(ChatColor.YELLOW + insertMessages(player, ResOld.getName(), ResOld, leave)); - } - } - currentRes.remove(pname); - plugin.getChatManager().removeFromChannel(pname); - } - return; - } - if (move && !res.getPermissions().playerHas(pname, "move", true) && !plugin.isResAdminOn(player) && !player.hasPermission("residence.admin.move")) { - final Location lastLoc = lastOutsideLoc.get(pname); - if (lastLoc != null) { - player.teleport(lastLoc); - } else { - player.teleport(res.getOutsideFreeLoc(loc)); - } - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceMoveDeny", res.getName().split("\\.")[res.getName().split("\\.").length - 1])); - return; - } - lastOutsideLoc.put(pname, loc); - if (!currentRes.containsKey(pname) || ResOld != res) { - currentRes.put(pname, areaname); - if (subzone == null) { - chatchange = true; - } - ClaimedResidence chgFrom = null; - if (ResOld != res && ResOld != null) { - final String leave = ResOld.getLeaveMessage(); - chgFrom = ResOld; + if (leave != null && !leave.equals("")) { + if (plugin.getConfigManager().useActionBar()) { + ActionBar.send(player, ChatColor.YELLOW + insertMessages(player, ResOld.getName(), ResOld, leave)); + } else { + player.sendMessage(ChatColor.YELLOW + insertMessages(player, ResOld.getName(), ResOld, leave)); + } + } + currentRes.remove(pname); + plugin.getChatManager().removeFromChannel(pname); + } + return; + } + if (move && !res.getPermissions().playerHas(pname, "move", true) && !plugin.isResAdminOn(player) && !player.hasPermission("residence.admin.move")) { + final Location lastLoc = lastOutsideLoc.get(pname); + if (lastLoc != null) { + player.teleport(lastLoc); + } else { + player.teleport(res.getOutsideFreeLoc(loc)); + } + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceMoveDeny", res.getName().split("\\.")[res.getName().split("\\.").length - 1])); + return; + } + lastOutsideLoc.put(pname, loc); + if (!currentRes.containsKey(pname) || ResOld != res) { + currentRes.put(pname, areaname); + if (subzone == null) { + chatchange = true; + } + ClaimedResidence chgFrom = null; + if (ResOld != res && ResOld != null) { + final String leave = ResOld.getLeaveMessage(); + chgFrom = ResOld; - if (leave != null && !leave.equals("") && ResOld != res.getParent()) { - if (plugin.getConfigManager().useActionBar()) { - ActionBar.send(player, ChatColor.YELLOW + insertMessages(player, ResOld.getName(), ResOld, leave)); - } else { - player.sendMessage(ChatColor.YELLOW + insertMessages(player, ResOld.getName(), ResOld, leave)); - } - } - } - final String enterMessage = res.getEnterMessage(); - final ResidenceChangedEvent chgEvent = new ResidenceChangedEvent(chgFrom, res, player); - plugin.getServer().getPluginManager().callEvent(chgEvent); + if (leave != null && !leave.equals("") && ResOld != res.getParent()) { + if (plugin.getConfigManager().useActionBar()) { + ActionBar.send(player, ChatColor.YELLOW + insertMessages(player, ResOld.getName(), ResOld, leave)); + } else { + player.sendMessage(ChatColor.YELLOW + insertMessages(player, ResOld.getName(), ResOld, leave)); + } + } + } + final String enterMessage = res.getEnterMessage(); + final ResidenceChangedEvent chgEvent = new ResidenceChangedEvent(chgFrom, res, player); + plugin.getServer().getPluginManager().callEvent(chgEvent); - if (enterMessage != null && !enterMessage.equals("") && !(ResOld != null && res == ResOld.getParent())) { - if (plugin.getConfigManager().useActionBar()) { - ActionBar.send(player, ChatColor.YELLOW + insertMessages(player, areaname, res, enterMessage)); - } else { - player.sendMessage(ChatColor.YELLOW + insertMessages(player, areaname, res, enterMessage)); - } - } - } - if (chatchange && chatenabled) { - plugin.getChatManager().setChannel(pname, areaname); - } - } + if (enterMessage != null && !enterMessage.equals("") && !(ResOld != null && res == ResOld.getParent())) { + if (plugin.getConfigManager().useActionBar()) { + ActionBar.send(player, ChatColor.YELLOW + insertMessages(player, areaname, res, enterMessage)); + } else { + player.sendMessage(ChatColor.YELLOW + insertMessages(player, areaname, res, enterMessage)); + } + } + } + if (chatchange && chatenabled) { + plugin.getChatManager().setChannel(pname, areaname); + } + } - public String insertMessages(final Player player, final String areaname, final ClaimedResidence res, String message) { - try { - message = message.replaceAll("%player", player.getName()); - message = message.replaceAll("%owner", res.getPermissions().getOwner()); - message = message.replaceAll("%residence", areaname); - message = ChatColor.translateAlternateColorCodes('&', message); - } catch (final Exception ex) { - return ""; - } - return message; - } + public String insertMessages(final Player player, final String areaname, final ClaimedResidence res, String message) { + try { + message = message.replaceAll("%player", player.getName()); + message = message.replaceAll("%owner", res.getPermissions().getOwner()); + message = message.replaceAll("%residence", areaname); + message = ChatColor.translateAlternateColorCodes('&', message); + } catch (final Exception ex) { + return ""; + } + return message; + } - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void onPlayerBucketEmpty(final PlayerBucketEmptyEvent event) { - final Player player = event.getPlayer(); - if (plugin.isResAdminOn(player)) { - return; - } - final String pname = player.getName(); - final ClaimedResidence res = plugin.getResidenceManager().getByLoc(event.getBlockClicked().getLocation()); - if (res != null) { - if (plugin.getConfigManager().preventRentModify() && plugin.getConfigManager().enabledRentSystem()) { - if (plugin.getRentManager().isRented(res.getName())) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("RentedModifyDeny")); - event.setCancelled(true); - return; - } - } - } - final FlagPermissions perms = plugin.getPermsByLocForPlayer(event.getBlockClicked().getLocation(), player); - if (!perms.playerHas(pname, player.getWorld().getName(), "bucket", perms.playerHas(pname, player.getWorld().getName(), "build", true))) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "bucket")); - event.setCancelled(true); - } - } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onPlayerBucketEmpty(final PlayerBucketEmptyEvent event) { + final Player player = event.getPlayer(); + if (plugin.isResAdminOn(player)) { + return; + } + final String pname = player.getName(); + final ClaimedResidence res = plugin.getResidenceManager().getByLoc(event.getBlockClicked().getLocation()); + if (res != null) { + if (plugin.getConfigManager().preventRentModify() && plugin.getConfigManager().enabledRentSystem()) { + if (plugin.getRentManager().isRented(res.getName())) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("RentedModifyDeny")); + event.setCancelled(true); + return; + } + } + } + final FlagPermissions perms = plugin.getPermsByLocForPlayer(event.getBlockClicked().getLocation(), player); + if (!perms.playerHas(pname, player.getWorld().getName(), "bucket", perms.playerHas(pname, player.getWorld().getName(), "build", true))) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "bucket")); + event.setCancelled(true); + } + } - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void onPlayerBucketFill(final PlayerBucketFillEvent event) { - final Player player = event.getPlayer(); - final String pname = player.getName(); - if (plugin.isResAdminOn(player)) { - return; - } - final ClaimedResidence res = plugin.getResidenceManager().getByLoc(event.getBlockClicked().getLocation()); - if (res != null) { - if (plugin.getConfigManager().preventRentModify() && plugin.getConfigManager().enabledRentSystem()) { - if (plugin.getRentManager().isRented(res.getName())) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("RentedModifyDeny")); - event.setCancelled(true); - return; - } - } - } - final FlagPermissions perms = plugin.getPermsByLocForPlayer(event.getBlockClicked().getLocation(), player); - final boolean hasbucket = perms.playerHas(pname, player.getWorld().getName(), "bucket", perms.playerHas(pname, player.getWorld().getName(), "build", true)); - if (!hasbucket) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "bucket")); - event.setCancelled(true); - } - } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onPlayerBucketFill(final PlayerBucketFillEvent event) { + final Player player = event.getPlayer(); + final String pname = player.getName(); + if (plugin.isResAdminOn(player)) { + return; + } + final ClaimedResidence res = plugin.getResidenceManager().getByLoc(event.getBlockClicked().getLocation()); + if (res != null) { + if (plugin.getConfigManager().preventRentModify() && plugin.getConfigManager().enabledRentSystem()) { + if (plugin.getRentManager().isRented(res.getName())) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("RentedModifyDeny")); + event.setCancelled(true); + return; + } + } + } + final FlagPermissions perms = plugin.getPermsByLocForPlayer(event.getBlockClicked().getLocation(), player); + final boolean hasbucket = perms.playerHas(pname, player.getWorld().getName(), "bucket", perms.playerHas(pname, player.getWorld().getName(), "build", true)); + if (!hasbucket) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "bucket")); + event.setCancelled(true); + } + } - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void onPlayerChat(final AsyncPlayerChatEvent event) { - final String pname = event.getPlayer().getName(); - if (chatenabled && playerToggleChat.contains(pname)) { - final String area = currentRes.get(pname); - if (area != null) { - final ChatChannel channel = plugin.getChatManager().getChannel(area); - if (channel != null) { - channel.chat(pname, event.getMessage()); - } - event.setCancelled(true); - } - } - } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onPlayerChat(final AsyncPlayerChatEvent event) { + final String pname = event.getPlayer().getName(); + if (chatenabled && playerToggleChat.contains(pname)) { + final String area = currentRes.get(pname); + if (area != null) { + final ChatChannel channel = plugin.getChatManager().getChannel(area); + if (channel != null) { + channel.chat(pname, event.getMessage()); + } + event.setCancelled(true); + } + } + } - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void onPlayerInteract(final PlayerInteractEvent event) { - final Player player = event.getPlayer(); - final Material heldItem = player.getItemInHand().getType(); - final Block block = event.getClickedBlock(); - if (block == null) { - return; - } - final Material mat = block.getType(); - if (!((isContainer(mat, block) || isCanUseEntity_RClickOnly(mat, block)) && event.getAction() == Action.RIGHT_CLICK_BLOCK || isCanUseEntity_BothClick(mat, block) - || event.getAction() == Action.PHYSICAL)) { - final int typeId = player.getItemInHand().getTypeId(); - if (typeId != plugin.getConfigManager().getSelectionTooldID() && typeId != plugin.getConfigManager().getInfoToolID() && typeId != 351 && typeId != 416) { - return; - } - } - FlagPermissions perms = plugin.getPermsByLocForPlayer(block.getLocation(), player); - final String world = player.getWorld().getName(); - final String permgroup = plugin.getPermissionManager().getGroupNameByPlayer(player); - final boolean resadmin = plugin.isResAdminOn(player); - if (event.getAction() == Action.PHYSICAL) { - if (!resadmin) { - final boolean hasuse = perms.playerHas(player.getName(), world, "use", true); - final boolean haspressure = perms.playerHas(player.getName(), world, "pressure", hasuse); - if ((!hasuse && !haspressure || !haspressure) && (mat == Material.STONE_PLATE || mat == Material.WOOD_PLATE)) { - event.setCancelled(true); - return; - } - } - if (!perms.playerHas(player.getName(), world, "trample", perms.playerHas(player.getName(), world, "build", true)) && (mat == Material.SOIL || mat == Material.SOUL_SAND)) { - event.setCancelled(true); - return; - } - return; - } - if (!resadmin && !plugin.getItemManager().isAllowed(heldItem, permgroup, world)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ItemBlacklisted")); - event.setCancelled(true); - return; - } - if (event.getAction() == Action.LEFT_CLICK_BLOCK || event.getAction() == Action.RIGHT_CLICK_BLOCK) { - if (player.getItemInHand().getTypeId() == plugin.getConfigManager().getSelectionTooldID()) { - final Plugin wep = Bukkit.getPluginManager().getPlugin("WorldEdit"); - if (wep != null) { - if (((WorldEditPlugin) wep).getConfig().getInt("wand-item") == plugin.getConfigManager().getSelectionTooldID()) { - return; - } - } - final PermissionGroup group = plugin.getPermissionManager().getGroup(player); - if (player.hasPermission("residence.select") || player.hasPermission("residence.create") && !player.isPermissionSet("residence.select") - || group.canCreateResidences() && !player.isPermissionSet("residence.create") && !player.isPermissionSet("residence.select") || resadmin) { - if (event.getAction() == Action.LEFT_CLICK_BLOCK) { - final Location loc = block.getLocation(); - plugin.getSelectionManager().placeLoc1(player, loc); - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("SelectPoint", plugin.getLanguage().getPhrase("Primary")) + ChatColor.RED + "(" + loc.getBlockX() + "," - + loc.getBlockY() + "," + loc.getBlockZ() + ")" + ChatColor.GREEN + "!"); - event.setCancelled(true); - } else if (event.getAction() == Action.RIGHT_CLICK_BLOCK) { - final Location loc = block.getLocation(); - plugin.getSelectionManager().placeLoc2(player, loc); - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("SelectPoint", plugin.getLanguage().getPhrase("Secondary")) + ChatColor.RED + "(" + loc.getBlockX() + "," - + loc.getBlockY() + "," + loc.getBlockZ() + ")" + ChatColor.GREEN + "!"); - } - } - } - if (player.getItemInHand().getTypeId() == plugin.getConfigManager().getInfoToolID()) { - if (event.getAction() == Action.LEFT_CLICK_BLOCK) { - final Location loc = block.getLocation(); - final String res = plugin.getResidenceManager().getNameByLoc(loc); - if (res != null) { - plugin.getResidenceManager().printAreaInfo(res, player); - event.setCancelled(true); - } else { - event.setCancelled(true); - player.sendMessage(plugin.getLanguage().getPhrase("NoResHere")); - } - } - } - if (!resadmin) { - if (heldItem != null) { - if (event.getAction() == Action.RIGHT_CLICK_BLOCK) { - if (player.getItemInHand().getTypeId() == 351) { - if (player.getItemInHand().getData().getData() == 15 && block.getType() == Material.GRASS || player.getItemInHand().getData().getData() == 3 && block.getTypeId() == 17 - && (block.getData() == 3 || block.getData() == 7 || block.getData() == 11 || block.getData() == 15)) { - perms = plugin.getPermsByLocForPlayer(block.getRelative(event.getBlockFace()).getLocation(), player); - if (!perms.playerHas(player.getName(), world, "build", true)) { - event.setCancelled(true); - return; - } - } - } - if (plugin.isGt1_8()) { - if (heldItem == Material.ARMOR_STAND) { - perms = plugin.getPermsByLocForPlayer(block.getRelative(event.getBlockFace()).getLocation(), player); - if (!perms.playerHas(player.getName(), world, "build", true)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - event.setCancelled(true); - return; - } - } - } - } - } - if (isContainer(mat, block) || isCanUseEntity(mat, block)) { - final boolean hasuse = perms.playerHas(player.getName(), world, "use", true); - for (final Entry checkMat : FlagPermissions.getMaterialUseFlagList().entrySet()) { - if (mat == checkMat.getKey()) { - if (!perms.playerHas(player.getName(), world, checkMat.getValue(), hasuse)) { - if (hasuse || checkMat.getValue().equals("container")) { - event.setCancelled(true); - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", checkMat.getValue())); - } else { - event.setCancelled(true); - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "use")); - } - } - } - } - if (plugin.getConfigManager().getCustomContainers().contains(block.getTypeId())) { - if (!perms.playerHas(player.getName(), world, "container", hasuse)) { - event.setCancelled(true); - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "container")); - return; - } - } - if (plugin.getConfigManager().getCustomBothClick().contains(block.getTypeId())) { - if (!hasuse) { - event.setCancelled(true); - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "use")); - return; - } - } - if (event.getAction() == Action.RIGHT_CLICK_BLOCK) { - if (plugin.getConfigManager().getCustomRightClick().contains(block.getTypeId())) { - if (!hasuse) { - event.setCancelled(true); - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "use")); - } - } - } - } - } - } - } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onPlayerInteract(final PlayerInteractEvent event) { + final Player player = event.getPlayer(); + final Material heldItem = player.getItemInHand().getType(); + final Block block = event.getClickedBlock(); + if (block == null) { + return; + } + final Material mat = block.getType(); + if (!((isContainer(mat, block) || isCanUseEntity_RClickOnly(mat, block)) && event.getAction() == Action.RIGHT_CLICK_BLOCK || isCanUseEntity_BothClick(mat, block) + || event.getAction() == Action.PHYSICAL)) { + final int typeId = player.getItemInHand().getTypeId(); + if (typeId != plugin.getConfigManager().getSelectionTooldID() && typeId != plugin.getConfigManager().getInfoToolID() && typeId != 351 && typeId != 416) { + return; + } + } + FlagPermissions perms = plugin.getPermsByLocForPlayer(block.getLocation(), player); + final String world = player.getWorld().getName(); + final String permgroup = plugin.getPermissionManager().getGroupNameByPlayer(player); + final boolean resadmin = plugin.isResAdminOn(player); + if (event.getAction() == Action.PHYSICAL) { + if (!resadmin) { + final boolean hasuse = perms.playerHas(player.getName(), world, "use", true); + final boolean haspressure = perms.playerHas(player.getName(), world, "pressure", hasuse); + if ((!hasuse && !haspressure || !haspressure) && (mat == Material.STONE_PLATE || mat == Material.WOOD_PLATE)) { + event.setCancelled(true); + return; + } + } + if (!perms.playerHas(player.getName(), world, "trample", perms.playerHas(player.getName(), world, "build", true)) && (mat == Material.SOIL || mat == Material.SOUL_SAND)) { + event.setCancelled(true); + return; + } + return; + } + if (!resadmin && !plugin.getItemManager().isAllowed(heldItem, permgroup, world)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ItemBlacklisted")); + event.setCancelled(true); + return; + } + if (event.getAction() == Action.LEFT_CLICK_BLOCK || event.getAction() == Action.RIGHT_CLICK_BLOCK) { + if (player.getItemInHand().getTypeId() == plugin.getConfigManager().getSelectionTooldID()) { + final Plugin wep = Bukkit.getPluginManager().getPlugin("WorldEdit"); + if (wep != null) { + if (((WorldEditPlugin) wep).getConfig().getInt("wand-item") == plugin.getConfigManager().getSelectionTooldID()) { + return; + } + } + final PermissionGroup group = plugin.getPermissionManager().getGroup(player); + if (player.hasPermission("residence.select") || player.hasPermission("residence.create") && !player.isPermissionSet("residence.select") + || group.canCreateResidences() && !player.isPermissionSet("residence.create") && !player.isPermissionSet("residence.select") || resadmin) { + if (event.getAction() == Action.LEFT_CLICK_BLOCK) { + final Location loc = block.getLocation(); + plugin.getSelectionManager().placeLoc1(player, loc); + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("SelectPoint", plugin.getLanguage().getPhrase("Primary")) + ChatColor.RED + "(" + loc.getBlockX() + "," + + loc.getBlockY() + "," + loc.getBlockZ() + ")" + ChatColor.GREEN + "!"); + event.setCancelled(true); + } else if (event.getAction() == Action.RIGHT_CLICK_BLOCK) { + final Location loc = block.getLocation(); + plugin.getSelectionManager().placeLoc2(player, loc); + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("SelectPoint", plugin.getLanguage().getPhrase("Secondary")) + ChatColor.RED + "(" + loc.getBlockX() + "," + + loc.getBlockY() + "," + loc.getBlockZ() + ")" + ChatColor.GREEN + "!"); + } + } + } + if (player.getItemInHand().getTypeId() == plugin.getConfigManager().getInfoToolID()) { + if (event.getAction() == Action.LEFT_CLICK_BLOCK) { + final Location loc = block.getLocation(); + final String res = plugin.getResidenceManager().getNameByLoc(loc); + if (res != null) { + plugin.getResidenceManager().printAreaInfo(res, player); + event.setCancelled(true); + } else { + event.setCancelled(true); + player.sendMessage(plugin.getLanguage().getPhrase("NoResHere")); + } + } + } + if (!resadmin) { + if (heldItem != null) { + if (event.getAction() == Action.RIGHT_CLICK_BLOCK) { + if (player.getItemInHand().getTypeId() == 351) { + if (player.getItemInHand().getData().getData() == 15 && block.getType() == Material.GRASS || player.getItemInHand().getData().getData() == 3 && block.getTypeId() == 17 + && (block.getData() == 3 || block.getData() == 7 || block.getData() == 11 || block.getData() == 15)) { + perms = plugin.getPermsByLocForPlayer(block.getRelative(event.getBlockFace()).getLocation(), player); + if (!perms.playerHas(player.getName(), world, "build", true)) { + event.setCancelled(true); + return; + } + } + } + if (plugin.isGt1_8()) { + if (heldItem == Material.ARMOR_STAND) { + perms = plugin.getPermsByLocForPlayer(block.getRelative(event.getBlockFace()).getLocation(), player); + if (!perms.playerHas(player.getName(), world, "build", true)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + event.setCancelled(true); + return; + } + } + } + } + } + if (isContainer(mat, block) || isCanUseEntity(mat, block)) { + final boolean hasuse = perms.playerHas(player.getName(), world, "use", true); + for (final Entry checkMat : FlagPermissions.getMaterialUseFlagList().entrySet()) { + if (mat == checkMat.getKey()) { + if (!perms.playerHas(player.getName(), world, checkMat.getValue(), hasuse)) { + if (hasuse || checkMat.getValue().equals("container")) { + event.setCancelled(true); + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", checkMat.getValue())); + } else { + event.setCancelled(true); + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "use")); + } + } + } + } + if (plugin.getConfigManager().getCustomContainers().contains(block.getTypeId())) { + if (!perms.playerHas(player.getName(), world, "container", hasuse)) { + event.setCancelled(true); + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "container")); + return; + } + } + if (plugin.getConfigManager().getCustomBothClick().contains(block.getTypeId())) { + if (!hasuse) { + event.setCancelled(true); + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "use")); + return; + } + } + if (event.getAction() == Action.RIGHT_CLICK_BLOCK) { + if (plugin.getConfigManager().getCustomRightClick().contains(block.getTypeId())) { + if (!hasuse) { + event.setCancelled(true); + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "use")); + } + } + } + } + } + } + } - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void onPlayerInteractEntity(final PlayerInteractEntityEvent event) { - final Player player = event.getPlayer(); - if (plugin.isResAdminOn(player)) { - return; - } - final Entity ent = event.getRightClicked(); - /* Trade */ - if (ent.getType() == EntityType.VILLAGER) { - final ClaimedResidence res = plugin.getResidenceManager().getByLoc(event.getPlayer().getLocation()); + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onPlayerInteractEntity(final PlayerInteractEntityEvent event) { + final Player player = event.getPlayer(); + if (plugin.isResAdminOn(player)) { + return; + } + final Entity ent = event.getRightClicked(); + /* Trade */ + if (ent.getType() == EntityType.VILLAGER) { + final ClaimedResidence res = plugin.getResidenceManager().getByLoc(event.getPlayer().getLocation()); - if (res != null && !res.getPermissions().playerHas(player.getName(), "trade", true)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - event.setCancelled(true); - } - } - /* Container - ItemFrame protection */ - final Material heldItem = player.getItemInHand().getType(); - if (!(ent instanceof Hanging)) { - return; - } - final Hanging hanging = (Hanging) ent; - if (hanging.getType() != EntityType.ITEM_FRAME) { - return; - } - final FlagPermissions perms = plugin.getPermsByLocForPlayer(ent.getLocation(), player); - final String world = player.getWorld().getName(); - final String permgroup = plugin.getPermissionManager().getGroupNameByPlayer(player); - if (!plugin.getItemManager().isAllowed(heldItem, permgroup, world)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ItemBlacklisted")); - event.setCancelled(true); - return; - } - if (!perms.playerHas(player.getName(), world, "container", perms.playerHas(player.getName(), world, "use", true))) { - event.setCancelled(true); - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "container")); - } - } + if (res != null && !res.getPermissions().playerHas(player.getName(), "trade", true)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + event.setCancelled(true); + } + } + /* Container - ItemFrame protection */ + final Material heldItem = player.getItemInHand().getType(); + if (!(ent instanceof Hanging)) { + return; + } + final Hanging hanging = (Hanging) ent; + if (hanging.getType() != EntityType.ITEM_FRAME) { + return; + } + final FlagPermissions perms = plugin.getPermsByLocForPlayer(ent.getLocation(), player); + final String world = player.getWorld().getName(); + final String permgroup = plugin.getPermissionManager().getGroupNameByPlayer(player); + if (!plugin.getItemManager().isAllowed(heldItem, permgroup, world)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ItemBlacklisted")); + event.setCancelled(true); + return; + } + if (!perms.playerHas(player.getName(), world, "container", perms.playerHas(player.getName(), world, "use", true))) { + event.setCancelled(true); + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "container")); + } + } - @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) - public void onPlayerJoin(final PlayerJoinEvent event) { - final Player player = event.getPlayer(); - lastUpdate.put(player.getName(), 0L); - if (plugin.getPermissionManager().isResidenceAdmin(player)) { - plugin.turnResAdminOn(player); - } - handleNewLocation(player, player.getLocation(), false); - } + @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) + public void onPlayerJoin(final PlayerJoinEvent event) { + final Player player = event.getPlayer(); + lastUpdate.put(player.getName(), 0L); + if (plugin.getPermissionManager().isResidenceAdmin(player)) { + plugin.turnResAdminOn(player); + } + handleNewLocation(player, player.getLocation(), false); + } - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void onPlayerMove(final PlayerMoveEvent event) { - final Player player = event.getPlayer(); - if (player == null) { - return; - } - final long now = System.currentTimeMillis(); - if (!lastUpdate.containsKey(player.getName())) { - lastUpdate.put(player.getName(), now); - return; - } - final long last = lastUpdate.get(player.getName()); - if (now - last < plugin.getConfigManager().getMinMoveUpdateInterval()) { - return; - } - lastUpdate.put(player.getName(), now); - if (event.getFrom().getWorld() == event.getTo().getWorld()) { - if (event.getFrom().distance(event.getTo()) == 0) { - return; - } - } - handleNewLocation(player, event.getTo(), true); - } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onPlayerMove(final PlayerMoveEvent event) { + final Player player = event.getPlayer(); + if (player == null) { + return; + } + final long now = System.currentTimeMillis(); + if (!lastUpdate.containsKey(player.getName())) { + lastUpdate.put(player.getName(), now); + return; + } + final long last = lastUpdate.get(player.getName()); + if (now - last < plugin.getConfigManager().getMinMoveUpdateInterval()) { + return; + } + lastUpdate.put(player.getName(), now); + if (event.getFrom().getWorld() == event.getTo().getWorld()) { + if (event.getFrom().distance(event.getTo()) == 0) { + return; + } + } + handleNewLocation(player, event.getTo(), true); + } - @EventHandler(priority = EventPriority.MONITOR) - public void onPlayerQuit(final PlayerQuitEvent event) { - final String pname = event.getPlayer().getName(); - currentRes.remove(pname); - lastUpdate.remove(pname); - lastOutsideLoc.remove(pname); - plugin.getChatManager().removeFromChannel(pname); - } + @EventHandler(priority = EventPriority.MONITOR) + public void onPlayerQuit(final PlayerQuitEvent event) { + final String pname = event.getPlayer().getName(); + currentRes.remove(pname); + lastUpdate.remove(pname); + lastOutsideLoc.remove(pname); + plugin.getChatManager().removeFromChannel(pname); + } - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void onPlayerSpawn(final PlayerRespawnEvent event) { - Location loc = event.getRespawnLocation(); - final Boolean bed = event.isBedSpawn(); - final Player player = event.getPlayer(); - ClaimedResidence res = plugin.getResidenceManager().getByLoc(loc); - if (res == null) { - return; - } - if (res.getPermissions().playerHas(player.getName(), "move", true)) { - return; - } - if (bed) { - loc = player.getWorld().getSpawnLocation(); - } - res = plugin.getResidenceManager().getByLoc(loc); - if (res != null) { - if (!res.getPermissions().playerHas(player.getName(), "move", true)) { - loc = res.getOutsideFreeLoc(loc); - } - } - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoSpawn")); - event.setRespawnLocation(loc); - } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onPlayerSpawn(final PlayerRespawnEvent event) { + Location loc = event.getRespawnLocation(); + final Boolean bed = event.isBedSpawn(); + final Player player = event.getPlayer(); + ClaimedResidence res = plugin.getResidenceManager().getByLoc(loc); + if (res == null) { + return; + } + if (res.getPermissions().playerHas(player.getName(), "move", true)) { + return; + } + if (bed) { + loc = player.getWorld().getSpawnLocation(); + } + res = plugin.getResidenceManager().getByLoc(loc); + if (res != null) { + if (!res.getPermissions().playerHas(player.getName(), "move", true)) { + loc = res.getOutsideFreeLoc(loc); + } + } + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoSpawn")); + event.setRespawnLocation(loc); + } - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void onPlayerTeleport(final PlayerTeleportEvent event) { - final Location loc = event.getTo(); - final Player player = event.getPlayer(); - final ClaimedResidence res = plugin.getResidenceManager().getByLoc(loc); - if (res != null) { - if (plugin.isResAdminOn(player) || ((res.getPermissions().playerHas(player.getName(), "tp", true) || player.hasPermission("residence.admin.tp")) - && (res.getPermissions().playerHas(player.getName(), "move", true) || player.hasPermission("residence.admin.move")))) { - handleNewLocation(player, loc, false); - } else { - final String areaname = res.getName(); - event.setCancelled(true); - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("TeleportDeny", areaname)); - } - } - } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onPlayerTeleport(final PlayerTeleportEvent event) { + final Location loc = event.getTo(); + final Player player = event.getPlayer(); + final ClaimedResidence res = plugin.getResidenceManager().getByLoc(loc); + if (res != null) { + if (plugin.isResAdminOn(player) || ((res.getPermissions().playerHas(player.getName(), "tp", true) || player.hasPermission("residence.admin.tp")) + && (res.getPermissions().playerHas(player.getName(), "move", true) || player.hasPermission("residence.admin.move")))) { + handleNewLocation(player, loc, false); + } else { + final String areaname = res.getName(); + event.setCancelled(true); + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("TeleportDeny", areaname)); + } + } + } - public void tooglePlayerResidenceChat(final Player player) { - final String pname = player.getName(); - if (playerToggleChat.contains(pname)) { - playerToggleChat.remove(pname); - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("ResidenceChat", ChatColor.RED + "OFF" + ChatColor.YELLOW + "!")); - } else { - playerToggleChat.add(pname); - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("ResidenceChat", ChatColor.RED + "ON" + ChatColor.YELLOW + "!")); - } - } + public void tooglePlayerResidenceChat(final Player player) { + final String pname = player.getName(); + if (playerToggleChat.contains(pname)) { + playerToggleChat.remove(pname); + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("ResidenceChat", ChatColor.RED + "OFF" + ChatColor.YELLOW + "!")); + } else { + playerToggleChat.add(pname); + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("ResidenceChat", ChatColor.RED + "ON" + ChatColor.YELLOW + "!")); + } + } - private boolean isCanUseEntity(final Material mat, final Block block) { - return isCanUseEntity_BothClick(mat, block) || isCanUseEntity_RClickOnly(mat, block); - } + private boolean isCanUseEntity(final Material mat, final Block block) { + return isCanUseEntity_BothClick(mat, block) || isCanUseEntity_RClickOnly(mat, block); + } - private boolean isCanUseEntity_BothClick(final Material mat, final Block block) { - return mat == Material.LEVER || mat == Material.STONE_BUTTON || mat == Material.WOOD_BUTTON || mat == Material.WOODEN_DOOR || mat == Material.TRAP_DOOR || mat == Material.FENCE_GATE - || mat == Material.PISTON_BASE || mat == Material.PISTON_STICKY_BASE || mat == Material.DRAGON_EGG || plugin.getConfigManager().getCustomBothClick().contains(block.getTypeId()) - || (plugin.isGt1_8() && (mat == Material.SPRUCE_DOOR || mat == Material.BIRCH_DOOR || mat == Material.JUNGLE_DOOR || mat == Material.ACACIA_DOOR || mat == Material.DARK_OAK_DOOR - || mat == Material.SPRUCE_FENCE_GATE || mat == Material.BIRCH_FENCE_GATE || mat == Material.JUNGLE_FENCE_GATE || mat == Material.ACACIA_FENCE_GATE - || mat == Material.DARK_OAK_FENCE_GATE)); - } + private boolean isCanUseEntity_BothClick(final Material mat, final Block block) { + return mat == Material.LEVER || mat == Material.STONE_BUTTON || mat == Material.WOOD_BUTTON || mat == Material.WOODEN_DOOR || mat == Material.TRAP_DOOR || mat == Material.FENCE_GATE + || mat == Material.PISTON_BASE || mat == Material.PISTON_STICKY_BASE || mat == Material.DRAGON_EGG || plugin.getConfigManager().getCustomBothClick().contains(block.getTypeId()) + || (plugin.isGt1_8() && (mat == Material.SPRUCE_DOOR || mat == Material.BIRCH_DOOR || mat == Material.JUNGLE_DOOR || mat == Material.ACACIA_DOOR || mat == Material.DARK_OAK_DOOR + || mat == Material.SPRUCE_FENCE_GATE || mat == Material.BIRCH_FENCE_GATE || mat == Material.JUNGLE_FENCE_GATE || mat == Material.ACACIA_FENCE_GATE + || mat == Material.DARK_OAK_FENCE_GATE)); + } - private boolean isCanUseEntity_RClickOnly(final Material mat, final Block block) { - return mat == Material.ITEM_FRAME || mat == Material.BEACON || mat == Material.FLOWER_POT || mat == Material.COMMAND || mat == Material.ANVIL || mat == Material.CAKE_BLOCK - || mat == Material.NOTE_BLOCK || mat == Material.DIODE || mat == Material.DIODE_BLOCK_OFF || mat == Material.DIODE_BLOCK_ON || mat == Material.BED_BLOCK || mat == Material.WORKBENCH - || mat == Material.BREWING_STAND || mat == Material.ENCHANTMENT_TABLE || plugin.getConfigManager().getCustomRightClick().contains(block.getTypeId()); - } + private boolean isCanUseEntity_RClickOnly(final Material mat, final Block block) { + return mat == Material.ITEM_FRAME || mat == Material.BEACON || mat == Material.FLOWER_POT || mat == Material.COMMAND || mat == Material.ANVIL || mat == Material.CAKE_BLOCK + || mat == Material.NOTE_BLOCK || mat == Material.DIODE || mat == Material.DIODE_BLOCK_OFF || mat == Material.DIODE_BLOCK_ON || mat == Material.BED_BLOCK || mat == Material.WORKBENCH + || mat == Material.BREWING_STAND || mat == Material.ENCHANTMENT_TABLE || plugin.getConfigManager().getCustomRightClick().contains(block.getTypeId()); + } - private boolean isContainer(final Material mat, final Block block) { - return FlagPermissions.getMaterialUseFlagList().containsKey(mat) && FlagPermissions.getMaterialUseFlagList().get(mat).equals("container") - || plugin.getConfigManager().getCustomContainers().contains(block.getTypeId()); - } + private boolean isContainer(final Material mat, final Block block) { + return FlagPermissions.getMaterialUseFlagList().containsKey(mat) && FlagPermissions.getMaterialUseFlagList().get(mat).equals("container") + || plugin.getConfigManager().getCustomContainers().contains(block.getTypeId()); + } } diff --git a/src/main/java/cn/citycraft/Residence/listeners/ResidencePlayerListener_1_8.java b/src/main/java/cn/citycraft/Residence/listeners/ResidencePlayerListener_1_8.java index b2d082d..4ddc6b9 100644 --- a/src/main/java/cn/citycraft/Residence/listeners/ResidencePlayerListener_1_8.java +++ b/src/main/java/cn/citycraft/Residence/listeners/ResidencePlayerListener_1_8.java @@ -23,31 +23,31 @@ import cn.citycraft.Residence.ResidenceMain; * @author Administrator */ public class ResidencePlayerListener_1_8 implements Listener { - ResidenceMain plugin; + ResidenceMain plugin; - public ResidencePlayerListener_1_8(final ResidenceMain plugin) { - this.plugin = plugin; - } + public ResidencePlayerListener_1_8(final ResidenceMain plugin) { + this.plugin = plugin; + } - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void onPlayerInteractAtEntity(final PlayerInteractAtEntityEvent event) { - final Player player = event.getPlayer(); - if (plugin.isResAdminOn(player)) { - return; - } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onPlayerInteractAtEntity(final PlayerInteractAtEntityEvent event) { + final Player player = event.getPlayer(); + if (plugin.isResAdminOn(player)) { + return; + } - final Entity ent = event.getRightClicked(); - if (ent.getType() != EntityType.ARMOR_STAND) { - return; - } + final Entity ent = event.getRightClicked(); + if (ent.getType() != EntityType.ARMOR_STAND) { + return; + } - final FlagPermissions perms = plugin.getPermsByLocForPlayer(ent.getLocation(), player); - final String world = player.getWorld().getName(); + final FlagPermissions perms = plugin.getPermsByLocForPlayer(ent.getLocation(), player); + final String world = player.getWorld().getName(); - if (!perms.playerHas(player.getName(), world, "container", perms.playerHas(player.getName(), world, "use", true))) { - event.setCancelled(true); - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "container")); - } - } + if (!perms.playerHas(player.getName(), world, "container", perms.playerHas(player.getName(), world, "use", true))) { + event.setCancelled(true); + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "container")); + } + } } diff --git a/src/main/java/cn/citycraft/Residence/listeners/bugfix/ResidenceBugFix.java b/src/main/java/cn/citycraft/Residence/listeners/bugfix/ResidenceBugFix.java index e98ce00..24ce6c5 100644 --- a/src/main/java/cn/citycraft/Residence/listeners/bugfix/ResidenceBugFix.java +++ b/src/main/java/cn/citycraft/Residence/listeners/bugfix/ResidenceBugFix.java @@ -18,117 +18,117 @@ import com.bekvon.bukkit.residence.protection.FlagPermissions; import cn.citycraft.Residence.ResidenceMain; public class ResidenceBugFix implements Listener { - ResidenceMain plugin; + ResidenceMain plugin; - public ResidenceBugFix(final ResidenceMain plugin) { - this.plugin = plugin; - plugin.getLogger().info("防刷甘蔗补丁已加载..."); - plugin.getLogger().info("防刷单元补丁已加载..."); - plugin.getLogger().info("防刷铁轨补丁已加载..."); - plugin.getLogger().info("防刷生物补丁已加载..."); - } + public ResidenceBugFix(final ResidenceMain plugin) { + this.plugin = plugin; + plugin.getLogger().info("防刷甘蔗补丁已加载..."); + plugin.getLogger().info("防刷单元补丁已加载..."); + plugin.getLogger().info("防刷铁轨补丁已加载..."); + plugin.getLogger().info("防刷生物补丁已加载..."); + } - public Block getPlaceBlock(final PlayerInteractEvent e) { - final Player p = e.getPlayer(); - final ItemStack it = p.getItemInHand(); - if (it == null || it.getType() == Material.AIR) { - return null; - } - final Block b = e.getClickedBlock(); - final BlockFace bf = e.getBlockFace(); - if (bf == null) { - return null; - } - return b.getRelative(bf, 1); - } + public Block getPlaceBlock(final PlayerInteractEvent e) { + final Player p = e.getPlayer(); + final ItemStack it = p.getItemInHand(); + if (it == null || it.getType() == Material.AIR) { + return null; + } + final Block b = e.getClickedBlock(); + final BlockFace bf = e.getBlockFace(); + if (bf == null) { + return null; + } + return b.getRelative(bf, 1); + } - public Block getPlaceBlockDown(final PlayerInteractEvent e) { - final Block b = this.getPlaceBlock(e); - return b.getRelative(BlockFace.DOWN); - } + public Block getPlaceBlockDown(final PlayerInteractEvent e) { + final Block b = this.getPlaceBlock(e); + return b.getRelative(BlockFace.DOWN); + } - public boolean hasPerm(final ClaimedResidence res, final Player p) { - final FlagPermissions perms = res.getPermissions(); - final String world = p.getWorld().getName(); - return perms.playerHas(p.getName(), world, "place", perms.playerHas(p.getName(), world, "build", false)); - } + public boolean hasPerm(final ClaimedResidence res, final Player p) { + final FlagPermissions perms = res.getPermissions(); + final String world = p.getWorld().getName(); + return perms.playerHas(p.getName(), world, "place", perms.playerHas(p.getName(), world, "build", false)); + } - @EventHandler - 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 Block b = this.getPlaceBlockDown(e); - if (b == null) { - return; - } - final Player p = e.getPlayer(); - final ItemStack it = p.getItemInHand(); - 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)) { - if (!hasPerm(res, p)) { - e.setCancelled(true); - p.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission") + ChatColor.DARK_RED + " 当前区域不允许放置!"); - } - } - } catch (final Exception e2) { - } - } + @EventHandler + 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 Block b = this.getPlaceBlockDown(e); + if (b == null) { + return; + } + final Player p = e.getPlayer(); + final ItemStack it = p.getItemInHand(); + 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)) { + if (!hasPerm(res, p)) { + e.setCancelled(true); + p.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission") + ChatColor.DARK_RED + " 当前区域不允许放置!"); + } + } + } catch (final Exception e2) { + } + } - @EventHandler - public void onPlace(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 BlockFace bf = e.getBlockFace(); - if (bf == null || bf != BlockFace.UP) { - return; - } - final Block b1 = b.getRelative(bf, 1); - final Block b2 = b.getRelative(bf, 2); - final ClaimedResidence res = plugin.getResidenceManager().getByLoc(b1.getLocation()); - if (res == null) { - return; - } - if (b1.getType() != Material.AIR && b1.getType() != Material.TORCH && b2.getType() == Material.AIR && checkAround(b2)) { - if (!hasPerm(res, p)) { - e.setCancelled(true); - p.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission") + ChatColor.DARK_RED + " 当前区域不允许此操作!"); - } - } - } catch (final Exception e2) { - } - } + @EventHandler + public void onPlace(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 BlockFace bf = e.getBlockFace(); + if (bf == null || bf != BlockFace.UP) { + return; + } + final Block b1 = b.getRelative(bf, 1); + final Block b2 = b.getRelative(bf, 2); + final ClaimedResidence res = plugin.getResidenceManager().getByLoc(b1.getLocation()); + if (res == null) { + return; + } + if (b1.getType() != Material.AIR && b1.getType() != Material.TORCH && b2.getType() == Material.AIR && checkAround(b2)) { + if (!hasPerm(res, p)) { + e.setCancelled(true); + p.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission") + ChatColor.DARK_RED + " 当前区域不允许此操作!"); + } + } + } catch (final Exception e2) { + } + } - @EventHandler - 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 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 onSugarCanePhysics(final BlockPhysicsEvent e) { - } + @EventHandler + public void onSugarCanePhysics(final BlockPhysicsEvent e) { + } - private boolean checkAround(final Block b) { - final Block be = b.getRelative(BlockFace.EAST); - final Block bw = b.getRelative(BlockFace.WEST); - final Block bn = b.getRelative(BlockFace.NORTH); - final Block bs = b.getRelative(BlockFace.SOUTH); - return (be.getType() != Material.AIR || bw.getType() != Material.AIR || bn.getType() != Material.AIR || bs.getType() != Material.AIR); - } + private boolean checkAround(final Block b) { + final Block be = b.getRelative(BlockFace.EAST); + final Block bw = b.getRelative(BlockFace.WEST); + final Block bn = b.getRelative(BlockFace.NORTH); + final Block bs = b.getRelative(BlockFace.SOUTH); + return (be.getType() != Material.AIR || bw.getType() != Material.AIR || bn.getType() != Material.AIR || bs.getType() != Material.AIR); + } } diff --git a/src/main/java/cn/citycraft/Residence/manager/ConfigManager.java b/src/main/java/cn/citycraft/Residence/manager/ConfigManager.java index 86c1849..57bc757 100644 --- a/src/main/java/cn/citycraft/Residence/manager/ConfigManager.java +++ b/src/main/java/cn/citycraft/Residence/manager/ConfigManager.java @@ -24,257 +24,257 @@ import cn.citycraft.Residence.ResidenceMain; * @author Administrator */ public class ConfigManager { - private boolean enforceAreaInsideArea; - protected boolean actionBar; - protected boolean adminOps; - protected boolean adminsOnly; - protected boolean allowEmptyResidences; - protected int autoSaveInt; - protected ChatColor chatColor; - protected boolean chatEnable; - protected List customBothClick; - protected List customContainers; - protected List customRightClick; - protected String defaultGroup; - protected String economySystem; - protected boolean enableDebug; - protected boolean enableEconomy; - protected boolean enableLeaseMoneyAccount; - protected boolean enableRentSystem; - protected boolean flagsInherit; - protected FlagPermissions globalCreatorDefaults; - protected Map globalGroupDefaults; - protected FlagPermissions globalResidenceDefaults; - protected int infoToolId; - protected String language; - protected boolean leaseAutoRenew; - protected int leaseCheckInterval; - protected boolean legacyperms; - protected int minMoveUpdate; - protected String multiworldPlugin; - protected String namefix; - protected ResidenceMain plugin; - protected boolean preventBuildInRent; - protected int rentCheckInterval; - protected int selectionToolId; - protected boolean showIntervalMessages; - protected boolean spoutEnable; - protected boolean stopOnSaveError; - protected boolean useLeases; + private boolean enforceAreaInsideArea; + protected boolean actionBar; + protected boolean adminOps; + protected boolean adminsOnly; + protected boolean allowEmptyResidences; + protected int autoSaveInt; + protected ChatColor chatColor; + protected boolean chatEnable; + protected List customBothClick; + protected List customContainers; + protected List customRightClick; + protected String defaultGroup; + protected String economySystem; + protected boolean enableDebug; + protected boolean enableEconomy; + protected boolean enableLeaseMoneyAccount; + protected boolean enableRentSystem; + protected boolean flagsInherit; + protected FlagPermissions globalCreatorDefaults; + protected Map globalGroupDefaults; + protected FlagPermissions globalResidenceDefaults; + protected int infoToolId; + protected String language; + protected boolean leaseAutoRenew; + protected int leaseCheckInterval; + protected boolean legacyperms; + protected int minMoveUpdate; + protected String multiworldPlugin; + protected String namefix; + protected ResidenceMain plugin; + protected boolean preventBuildInRent; + protected int rentCheckInterval; + protected int selectionToolId; + protected boolean showIntervalMessages; + protected boolean spoutEnable; + protected boolean stopOnSaveError; + protected boolean useLeases; - public ConfigManager(final ResidenceMain plugin) { - this.plugin = plugin; - globalCreatorDefaults = new FlagPermissions(); - globalResidenceDefaults = new FlagPermissions(); - globalGroupDefaults = new HashMap(); - this.load(plugin.getConfig()); - } + public ConfigManager(final ResidenceMain plugin) { + this.plugin = plugin; + globalCreatorDefaults = new FlagPermissions(); + globalResidenceDefaults = new FlagPermissions(); + globalGroupDefaults = new HashMap(); + this.load(plugin.getConfig()); + } - public boolean allowAdminsOnly() { - return adminsOnly; - } + public boolean allowAdminsOnly() { + return adminsOnly; + } - public boolean allowEmptyResidences() { - return allowEmptyResidences; - } + public boolean allowEmptyResidences() { + return allowEmptyResidences; + } - public boolean autoRenewLeases() { - return leaseAutoRenew; - } + public boolean autoRenewLeases() { + return leaseAutoRenew; + } - public boolean chatEnabled() { - return chatEnable; - } + public boolean chatEnabled() { + return chatEnable; + } - public boolean debugEnabled() { - return enableDebug; - } + public boolean debugEnabled() { + return enableDebug; + } - public boolean enabledRentSystem() { - return enableRentSystem && enableEconomy(); - } + public boolean enabledRentSystem() { + return enableRentSystem && enableEconomy(); + } - public boolean enableEconomy() { - return enableEconomy && plugin.getEconomyManager() != null; - } + public boolean enableEconomy() { + return enableEconomy && plugin.getEconomyManager() != null; + } - public boolean enableLeaseMoneyAccount() { - return enableLeaseMoneyAccount; - } + public boolean enableLeaseMoneyAccount() { + return enableLeaseMoneyAccount; + } - public boolean enableSpout() { - return spoutEnable; - } + public boolean enableSpout() { + return spoutEnable; + } - public boolean flagsInherit() { - return flagsInherit; - } + public boolean flagsInherit() { + return flagsInherit; + } - public int getAutoSaveInterval() { - return autoSaveInt; - } + public int getAutoSaveInterval() { + return autoSaveInt; + } - public ChatColor getChatColor() { - return chatColor; - } + public ChatColor getChatColor() { + return chatColor; + } - public List getCustomBothClick() { - return customBothClick; - } + public List getCustomBothClick() { + return customBothClick; + } - public List getCustomContainers() { - return customContainers; - } + public List getCustomContainers() { + return customContainers; + } - public List getCustomRightClick() { - return customRightClick; - } + public List getCustomRightClick() { + return customRightClick; + } - public String getDefaultGroup() { - return defaultGroup; - } + public String getDefaultGroup() { + return defaultGroup; + } - public String getEconomySystem() { - return economySystem; - } + public String getEconomySystem() { + return economySystem; + } - public boolean getEnforceAreaInsideArea() { - return enforceAreaInsideArea; - } + public boolean getEnforceAreaInsideArea() { + return enforceAreaInsideArea; + } - public FlagPermissions getGlobalCreatorDefaultFlags() { - return globalCreatorDefaults; - } + public FlagPermissions getGlobalCreatorDefaultFlags() { + return globalCreatorDefaults; + } - public Map getGlobalGroupDefaultFlags() { - return globalGroupDefaults; - } + public Map getGlobalGroupDefaultFlags() { + return globalGroupDefaults; + } - public FlagPermissions getGlobalResidenceDefaultFlags() { - return globalResidenceDefaults; - } + public FlagPermissions getGlobalResidenceDefaultFlags() { + return globalResidenceDefaults; + } - public int getInfoToolID() { - return infoToolId; - } + public int getInfoToolID() { + return infoToolId; + } - public String getLanguage() { - return language; - } + public String getLanguage() { + return language; + } - public int getLeaseCheckInterval() { - return leaseCheckInterval; - } + public int getLeaseCheckInterval() { + return leaseCheckInterval; + } - public int getMinMoveUpdateInterval() { - return minMoveUpdate; - } + public int getMinMoveUpdateInterval() { + return minMoveUpdate; + } - public String getMultiworldPlugin() { - return multiworldPlugin; - } + public String getMultiworldPlugin() { + return multiworldPlugin; + } - public boolean getOpsAreAdmins() { - return adminOps; - } + public boolean getOpsAreAdmins() { + return adminOps; + } - public int getRentCheckInterval() { - return rentCheckInterval; - } + public int getRentCheckInterval() { + return rentCheckInterval; + } - public String getResidenceNameRegex() { - return namefix; - } + public String getResidenceNameRegex() { + return namefix; + } - public int getSelectionTooldID() { - return selectionToolId; - } + public int getSelectionTooldID() { + return selectionToolId; + } - public boolean preventRentModify() { - return preventBuildInRent; - } + public boolean preventRentModify() { + return preventBuildInRent; + } - public boolean showIntervalMessages() { - return showIntervalMessages; - } + public boolean showIntervalMessages() { + return showIntervalMessages; + } - public boolean stopOnSaveError() { - return stopOnSaveError; - } + public boolean stopOnSaveError() { + return stopOnSaveError; + } - public boolean useActionBar() { - return actionBar; - } + public boolean useActionBar() { + return actionBar; + } - public boolean useLeases() { - return useLeases; - } + public boolean useLeases() { + return useLeases; + } - public boolean useLegacyPermissions() { - return legacyperms; - } + public boolean useLegacyPermissions() { + return legacyperms; + } - @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); - leaseAutoRenew = config.getBoolean("Global.LeaseAutoRenew", true); - enableEconomy = config.getBoolean("Global.EnableEconomy", false); - economySystem = config.getString("Global.EconomySystem", "iConomy"); - infoToolId = config.getInt("Global.InfoToolId", Material.STRING.getId()); - selectionToolId = config.getInt("Global.SelectionToolId", Material.WOOD_AXE.getId()); - adminOps = config.getBoolean("Global.AdminOPs", true); - multiworldPlugin = config.getString("Global.MultiWorldPlugin"); - enableRentSystem = config.getBoolean("Global.EnableRentSystem", false); - rentCheckInterval = config.getInt("Global.RentCheckInterval", 10); - leaseCheckInterval = config.getInt("Global.LeaseCheckInterval", 10); - autoSaveInt = config.getInt("Global.SaveInterval", 10); - flagsInherit = config.getBoolean("Global.ResidenceFlagsInherit", false); - minMoveUpdate = config.getInt("Global.MoveCheckInterval", 500); - chatEnable = config.getBoolean("Global.ResidenceChatEnable", true); - actionBar = config.getBoolean("Global.UseActionBar", true); - enforceAreaInsideArea = config.getBoolean("Global.EnforceAreaInsideArea", false); - language = config.getString("Global.Language", "English"); - globalCreatorDefaults = FlagPermissions.parseFromConfigNode("CreatorDefault", config.getConfigurationSection("Global")); - globalResidenceDefaults = FlagPermissions.parseFromConfigNode("ResidenceDefault", config.getConfigurationSection("Global")); - preventBuildInRent = config.getBoolean("Global.PreventRentModify", true); - stopOnSaveError = config.getBoolean("Global.StopOnSaveFault", true); - legacyperms = config.getBoolean("Global.LegacyPermissions", false); - 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); - enableDebug = config.getBoolean("Global.EnableDebug", false); - customContainers = config.getIntegerList("Global.CustomContainers"); - customBothClick = config.getIntegerList("Global.CustomBothClick"); - customRightClick = config.getIntegerList("Global.CustomRightClick"); - } catch (final Exception e) { - throw new RuntimeException("领地配置文件载入错误...", e); - } - if (actionBar && plugin.isGt1_8()) { - actionBar = ActionBar.init(); - } else { - actionBar = false; - } - final ConfigurationSection node = config.getConfigurationSection("Global.GroupDefault"); - if (node != null) { - final Set keys = node.getConfigurationSection(defaultGroup).getKeys(false); - if (keys != null) { - for (final String key : keys) { - globalGroupDefaults.put(key, FlagPermissions.parseFromConfigNode(key, config.getConfigurationSection("Global.GroupDefault"))); - } - } - } - try { - chatColor = ChatColor.valueOf(config.getString("Global.ResidenceChatColor", "DARK_PURPLE")); - } catch (final Exception ex) { - chatColor = ChatColor.DARK_PURPLE; - } - } + @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); + leaseAutoRenew = config.getBoolean("Global.LeaseAutoRenew", true); + enableEconomy = config.getBoolean("Global.EnableEconomy", false); + economySystem = config.getString("Global.EconomySystem", "iConomy"); + infoToolId = config.getInt("Global.InfoToolId", Material.STRING.getId()); + selectionToolId = config.getInt("Global.SelectionToolId", Material.WOOD_AXE.getId()); + adminOps = config.getBoolean("Global.AdminOPs", true); + multiworldPlugin = config.getString("Global.MultiWorldPlugin"); + enableRentSystem = config.getBoolean("Global.EnableRentSystem", false); + rentCheckInterval = config.getInt("Global.RentCheckInterval", 10); + leaseCheckInterval = config.getInt("Global.LeaseCheckInterval", 10); + autoSaveInt = config.getInt("Global.SaveInterval", 10); + flagsInherit = config.getBoolean("Global.ResidenceFlagsInherit", false); + minMoveUpdate = config.getInt("Global.MoveCheckInterval", 500); + chatEnable = config.getBoolean("Global.ResidenceChatEnable", true); + actionBar = config.getBoolean("Global.UseActionBar", true); + enforceAreaInsideArea = config.getBoolean("Global.EnforceAreaInsideArea", false); + language = config.getString("Global.Language", "English"); + globalCreatorDefaults = FlagPermissions.parseFromConfigNode("CreatorDefault", config.getConfigurationSection("Global")); + globalResidenceDefaults = FlagPermissions.parseFromConfigNode("ResidenceDefault", config.getConfigurationSection("Global")); + preventBuildInRent = config.getBoolean("Global.PreventRentModify", true); + stopOnSaveError = config.getBoolean("Global.StopOnSaveFault", true); + legacyperms = config.getBoolean("Global.LegacyPermissions", false); + 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); + enableDebug = config.getBoolean("Global.EnableDebug", false); + customContainers = config.getIntegerList("Global.CustomContainers"); + customBothClick = config.getIntegerList("Global.CustomBothClick"); + customRightClick = config.getIntegerList("Global.CustomRightClick"); + } catch (final Exception e) { + throw new RuntimeException("领地配置文件载入错误...", e); + } + if (actionBar && plugin.isGt1_8()) { + actionBar = ActionBar.init(); + } else { + actionBar = false; + } + final ConfigurationSection node = config.getConfigurationSection("Global.GroupDefault"); + if (node != null) { + final Set keys = node.getConfigurationSection(defaultGroup).getKeys(false); + if (keys != null) { + for (final String key : keys) { + globalGroupDefaults.put(key, FlagPermissions.parseFromConfigNode(key, config.getConfigurationSection("Global.GroupDefault"))); + } + } + } + try { + chatColor = ChatColor.valueOf(config.getString("Global.ResidenceChatColor", "DARK_PURPLE")); + } catch (final Exception ex) { + chatColor = ChatColor.DARK_PURPLE; + } + } } diff --git a/src/main/java/cn/citycraft/Residence/manager/EntityManager.java b/src/main/java/cn/citycraft/Residence/manager/EntityManager.java index 5c2b80e..a59656c 100644 --- a/src/main/java/cn/citycraft/Residence/manager/EntityManager.java +++ b/src/main/java/cn/citycraft/Residence/manager/EntityManager.java @@ -21,18 +21,18 @@ import org.bukkit.entity.Wolf; import cn.citycraft.Residence.ResidenceMain; public class EntityManager { - ResidenceMain plugin; + ResidenceMain plugin; - public EntityManager(final ResidenceMain plugin) { - this.plugin = plugin; - } + public EntityManager(final ResidenceMain plugin) { + this.plugin = plugin; + } - public 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.isGt1_8() && ent instanceof Rabbit)); - } + public 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.isGt1_8() && ent instanceof Rabbit)); + } - public boolean isMonster(final Entity ent) { - return (ent instanceof Monster || ent instanceof Slime || ent instanceof Ghast); - } + public boolean isMonster(final Entity ent) { + return (ent instanceof Monster || ent instanceof Slime || ent instanceof Ghast); + } } diff --git a/src/main/java/cn/citycraft/Residence/permissions/PermissionGroup.java b/src/main/java/cn/citycraft/Residence/permissions/PermissionGroup.java index c5501b1..1414782 100644 --- a/src/main/java/cn/citycraft/Residence/permissions/PermissionGroup.java +++ b/src/main/java/cn/citycraft/Residence/permissions/PermissionGroup.java @@ -28,298 +28,298 @@ import cn.citycraft.Residence.ResidenceMain; * changed by inori 03/17/2012 line 91:limits MaxHeight changed to 255 */ public class PermissionGroup { - protected boolean buyIgnoreLimits; - protected boolean canBuy; - protected boolean cancreate; - protected boolean canSell; - protected double costperarea; - protected Map creatorDefaultFlags; - protected String defaultEnterMessage; - protected String defaultLeaveMessage; - protected FlagPermissions flagPerms; - protected Map> groupDefaultFlags; - protected String groupname; - protected boolean itemListAccess; - protected boolean kick; - protected int leaseGiveTime; - protected int maxHeight; - protected int maxLeaseTime; - protected int maxPhysical; - protected int maxRentables; - protected int maxRents; - protected boolean messageperms; - protected int minHeight; - protected double renewcostperarea; - protected Map residenceDefaultFlags; - protected int resmax; - protected boolean selectCommandAccess; - protected int subzonedepth; - protected boolean tpaccess; - protected boolean unstuck; - protected int xmax; - protected int ymax; - protected int zmax; + protected boolean buyIgnoreLimits; + protected boolean canBuy; + protected boolean cancreate; + protected boolean canSell; + protected double costperarea; + protected Map creatorDefaultFlags; + protected String defaultEnterMessage; + protected String defaultLeaveMessage; + protected FlagPermissions flagPerms; + protected Map> groupDefaultFlags; + protected String groupname; + protected boolean itemListAccess; + protected boolean kick; + protected int leaseGiveTime; + protected int maxHeight; + protected int maxLeaseTime; + protected int maxPhysical; + protected int maxRentables; + protected int maxRents; + protected boolean messageperms; + protected int minHeight; + protected double renewcostperarea; + protected Map residenceDefaultFlags; + protected int resmax; + protected boolean selectCommandAccess; + protected int subzonedepth; + protected boolean tpaccess; + protected boolean unstuck; + protected int xmax; + protected int ymax; + protected int zmax; - public PermissionGroup(final String name) { - flagPerms = new FlagPermissions(); - creatorDefaultFlags = new HashMap(); - residenceDefaultFlags = new HashMap(); - groupDefaultFlags = new HashMap>(); - groupname = name; - } + public PermissionGroup(final String name) { + flagPerms = new FlagPermissions(); + creatorDefaultFlags = new HashMap(); + residenceDefaultFlags = new HashMap(); + groupDefaultFlags = new HashMap>(); + groupname = name; + } - public PermissionGroup(final String name, final ConfigurationSection node) { - this(name); - this.parseGroup(node); - } + public PermissionGroup(final String name, final ConfigurationSection node) { + this(name); + this.parseGroup(node); + } - public PermissionGroup(final String name, final ConfigurationSection node, final FlagPermissions parentFlagPerms) { - this(name, node); - flagPerms.setParent(parentFlagPerms); - } + public PermissionGroup(final String name, final ConfigurationSection node, final FlagPermissions parentFlagPerms) { + this(name, node); + flagPerms.setParent(parentFlagPerms); + } - public boolean buyLandIgnoreLimits() { - return buyIgnoreLimits; - } + public boolean buyLandIgnoreLimits() { + return buyIgnoreLimits; + } - public boolean canBuyLand() { - return canBuy; - } + public boolean canBuyLand() { + return canBuy; + } - public boolean canCreateResidences() { - return cancreate; - } + public boolean canCreateResidences() { + return cancreate; + } - public boolean canSellLand() { - return canSell; - } + public boolean canSellLand() { + return canSell; + } - public boolean canSetEnterLeaveMessages() { - return messageperms; - } + public boolean canSetEnterLeaveMessages() { + return messageperms; + } - public double getCostPerBlock() { - return costperarea; - } + public double getCostPerBlock() { + return costperarea; + } - public Set> getDefaultCreatorFlags() { - return creatorDefaultFlags.entrySet(); - } + public Set> getDefaultCreatorFlags() { + return creatorDefaultFlags.entrySet(); + } - public String getDefaultEnterMessage() { - return defaultEnterMessage; - } + public String getDefaultEnterMessage() { + return defaultEnterMessage; + } - public Set>> getDefaultGroupFlags() { - return groupDefaultFlags.entrySet(); - } + public Set>> getDefaultGroupFlags() { + return groupDefaultFlags.entrySet(); + } - public String getDefaultLeaveMessage() { - return defaultLeaveMessage; - } + public String getDefaultLeaveMessage() { + return defaultLeaveMessage; + } - public Set> getDefaultResidenceFlags() { - return residenceDefaultFlags.entrySet(); - } + public Set> getDefaultResidenceFlags() { + return residenceDefaultFlags.entrySet(); + } - public int getLeaseGiveTime() { - return leaseGiveTime; - } + public int getLeaseGiveTime() { + return leaseGiveTime; + } - public double getLeaseRenewCost() { - return renewcostperarea; - } + public double getLeaseRenewCost() { + return renewcostperarea; + } - public int getMaxHeight() { - return maxHeight; - } + public int getMaxHeight() { + return maxHeight; + } - public int getMaxLeaseTime() { - return maxLeaseTime; - } + public int getMaxLeaseTime() { + return maxLeaseTime; + } - public int getMaxPhysicalPerResidence() { - return maxPhysical; - } + public int getMaxPhysicalPerResidence() { + return maxPhysical; + } - public int getMaxRentables() { - return maxRentables; - } + public int getMaxRentables() { + return maxRentables; + } - public int getMaxRents() { - return maxRents; - } + public int getMaxRents() { + return maxRents; + } - public int getMaxSubzoneDepth() { - return subzonedepth; - } + public int getMaxSubzoneDepth() { + return subzonedepth; + } - public int getMaxX() { - return xmax; - } + public int getMaxX() { + return xmax; + } - public int getMaxY() { - return ymax; - } + public int getMaxY() { + return ymax; + } - public int getMaxZ() { - return zmax; - } + public int getMaxZ() { + return zmax; + } - public int getMaxZones() { - return resmax; - } + public int getMaxZones() { + return resmax; + } - public int getMinHeight() { - return minHeight; - } + public int getMinHeight() { + return minHeight; + } - public boolean hasFlagAccess(final String flag) { - return flagPerms.has(flag, false); - } + public boolean hasFlagAccess(final String flag) { + return flagPerms.has(flag, false); + } - public boolean hasKickAccess() { - return kick; - } + public boolean hasKickAccess() { + return kick; + } - public boolean hasTpAccess() { - return tpaccess; - } + public boolean hasTpAccess() { + return tpaccess; + } - public boolean hasUnstuckAccess() { - return unstuck; - } + public boolean hasUnstuckAccess() { + return unstuck; + } - public boolean inLimits(final CuboidArea area) { - if (area.getXSize() > xmax || area.getYSize() > ymax || area.getZSize() > zmax) { - return false; - } - return true; - } + public boolean inLimits(final CuboidArea area) { + if (area.getXSize() > xmax || area.getYSize() > ymax || area.getZSize() > zmax) { + return false; + } + return true; + } - public boolean itemListAccess() { - return itemListAccess; - } + public boolean itemListAccess() { + return itemListAccess; + } - public void printLimits(final Player player) { - final ResidenceMain plugin = ResidenceMain.getInstance(); - player.sendMessage(ChatColor.GRAY + "---------------------------"); - player.sendMessage(ChatColor.YELLOW + "权限 组:" + ChatColor.DARK_AQUA + " " + plugin.getPermissionManager().getPermissionsGroup(player)); - player.sendMessage(ChatColor.YELLOW + "领地 组:" + ChatColor.DARK_AQUA + " " + groupname); - player.sendMessage(ChatColor.YELLOW + "领地 管理:" + ChatColor.DARK_AQUA + " " + plugin.getPermissionManager().isResidenceAdmin(player)); - player.sendMessage(ChatColor.YELLOW + "允许创建领地:" + ChatColor.DARK_AQUA + " " + cancreate); - player.sendMessage(ChatColor.YELLOW + "最大领地个数:" + ChatColor.DARK_AQUA + " " + resmax); - player.sendMessage(ChatColor.YELLOW + "X轴最大长度:" + ChatColor.DARK_AQUA + " " + xmax); - player.sendMessage(ChatColor.YELLOW + "Z轴最大长度:" + ChatColor.DARK_AQUA + " " + zmax); - player.sendMessage(ChatColor.YELLOW + "Y轴最大高度:" + ChatColor.DARK_AQUA + " " + ymax); - player.sendMessage(ChatColor.YELLOW + "高度限制:" + ChatColor.DARK_AQUA + " " + minHeight + " - " + maxHeight); - player.sendMessage(ChatColor.YELLOW + "最大子领地深度:" + ChatColor.DARK_AQUA + " " + subzonedepth); - player.sendMessage(ChatColor.YELLOW + "是否允许设置进出消息:" + ChatColor.DARK_AQUA + " " + messageperms); - player.sendMessage(ChatColor.YELLOW + "你所拥有的领地:" + ChatColor.DARK_AQUA + " " + plugin.getResidenceManager().getOwnedZoneCount(player.getName())); - if (plugin.getEconomyManager() != null) { - player.sendMessage(ChatColor.YELLOW + "每个方块需要金钱:" + ChatColor.DARK_AQUA + " " + costperarea); - } - player.sendMessage(ChatColor.YELLOW + "Flag 权限:" + ChatColor.DARK_AQUA + " " + flagPerms.listFlags()); - if (plugin.getConfigManager().useLeases()) { - player.sendMessage(ChatColor.YELLOW + "最大租赁日:" + ChatColor.DARK_AQUA + " " + maxLeaseTime); - player.sendMessage(ChatColor.YELLOW + "续租日期:" + ChatColor.DARK_AQUA + " " + leaseGiveTime); - player.sendMessage(ChatColor.YELLOW + "续租方块需要金钱:" + ChatColor.DARK_AQUA + " " + renewcostperarea); - } - player.sendMessage(ChatColor.GRAY + "---------------------------"); - } + public void printLimits(final Player player) { + final ResidenceMain plugin = ResidenceMain.getInstance(); + player.sendMessage(ChatColor.GRAY + "---------------------------"); + player.sendMessage(ChatColor.YELLOW + "权限 组:" + ChatColor.DARK_AQUA + " " + plugin.getPermissionManager().getPermissionsGroup(player)); + player.sendMessage(ChatColor.YELLOW + "领地 组:" + ChatColor.DARK_AQUA + " " + groupname); + player.sendMessage(ChatColor.YELLOW + "领地 管理:" + ChatColor.DARK_AQUA + " " + plugin.getPermissionManager().isResidenceAdmin(player)); + player.sendMessage(ChatColor.YELLOW + "允许创建领地:" + ChatColor.DARK_AQUA + " " + cancreate); + player.sendMessage(ChatColor.YELLOW + "最大领地个数:" + ChatColor.DARK_AQUA + " " + resmax); + player.sendMessage(ChatColor.YELLOW + "X轴最大长度:" + ChatColor.DARK_AQUA + " " + xmax); + player.sendMessage(ChatColor.YELLOW + "Z轴最大长度:" + ChatColor.DARK_AQUA + " " + zmax); + player.sendMessage(ChatColor.YELLOW + "Y轴最大高度:" + ChatColor.DARK_AQUA + " " + ymax); + player.sendMessage(ChatColor.YELLOW + "高度限制:" + ChatColor.DARK_AQUA + " " + minHeight + " - " + maxHeight); + player.sendMessage(ChatColor.YELLOW + "最大子领地深度:" + ChatColor.DARK_AQUA + " " + subzonedepth); + player.sendMessage(ChatColor.YELLOW + "是否允许设置进出消息:" + ChatColor.DARK_AQUA + " " + messageperms); + player.sendMessage(ChatColor.YELLOW + "你所拥有的领地:" + ChatColor.DARK_AQUA + " " + plugin.getResidenceManager().getOwnedZoneCount(player.getName())); + if (plugin.getEconomyManager() != null) { + player.sendMessage(ChatColor.YELLOW + "每个方块需要金钱:" + ChatColor.DARK_AQUA + " " + costperarea); + } + player.sendMessage(ChatColor.YELLOW + "Flag 权限:" + ChatColor.DARK_AQUA + " " + flagPerms.listFlags()); + if (plugin.getConfigManager().useLeases()) { + player.sendMessage(ChatColor.YELLOW + "最大租赁日:" + ChatColor.DARK_AQUA + " " + maxLeaseTime); + player.sendMessage(ChatColor.YELLOW + "续租日期:" + ChatColor.DARK_AQUA + " " + leaseGiveTime); + player.sendMessage(ChatColor.YELLOW + "续租方块需要金钱:" + ChatColor.DARK_AQUA + " " + renewcostperarea); + } + player.sendMessage(ChatColor.GRAY + "---------------------------"); + } - public boolean selectCommandAccess() { - return selectCommandAccess; - } + public boolean selectCommandAccess() { + return selectCommandAccess; + } - private void parseGroup(final ConfigurationSection limits) { - if (limits == null) { - return; - } - cancreate = limits.getBoolean("Residence.CanCreate", false); - resmax = limits.getInt("Residence.MaxResidences", 0); - maxPhysical = limits.getInt("Residence.MaxAreasPerResidence", 2); - xmax = limits.getInt("Residence.MaxEastWest", 0); - ymax = limits.getInt("Residence.MaxUpDown", 0); - zmax = limits.getInt("Residence.MaxNorthSouth", 0); - minHeight = limits.getInt("Residence.MinHeight", 0); - maxHeight = limits.getInt("Residence.MaxHeight", 255); - tpaccess = limits.getBoolean("Residence.CanTeleport", false); - subzonedepth = limits.getInt("Residence.SubzoneDepth", 0); - messageperms = limits.getBoolean("Messaging.CanChange", false); - defaultEnterMessage = limits.getString("Messaging.DefaultEnter", null); - defaultLeaveMessage = limits.getString("Messaging.DefaultLeave", null); - maxLeaseTime = limits.getInt("Lease.MaxDays", 16); - leaseGiveTime = limits.getInt("Lease.RenewIncrement", 14); - maxRents = limits.getInt("Rent.MaxRents", 0); - maxRentables = limits.getInt("Rent.MaxRentables", 0); - renewcostperarea = limits.getDouble("Economy.RenewCost", 0.02D); - canBuy = limits.getBoolean("Economy.CanBuy", false); - canSell = limits.getBoolean("Economy.CanSell", false); - buyIgnoreLimits = limits.getBoolean("Economy.IgnoreLimits", false); - costperarea = limits.getDouble("Economy.BuyCost", 0); - unstuck = limits.getBoolean("Residence.Unstuck", false); - kick = limits.getBoolean("Residence.Kick", false); - selectCommandAccess = limits.getBoolean("Residence.SelectCommandAccess", true); - itemListAccess = limits.getBoolean("Residence.ItemListAccess", true); - ConfigurationSection node = limits.getConfigurationSection("Flags.Permission"); - Set flags = null; - if (node != null) { - flags = node.getKeys(false); - } - if (flags != null) { - final Iterator flagit = flags.iterator(); - while (flagit.hasNext()) { - final String flagname = flagit.next(); - final boolean access = limits.getBoolean("Flags.Permission." + flagname, false); - flagPerms.setFlag(flagname, access ? FlagState.TRUE : FlagState.FALSE); - } - } - node = limits.getConfigurationSection("Flags.CreatorDefault"); - if (node != null) { - flags = node.getKeys(false); - } - if (flags != null) { - final Iterator flagit = flags.iterator(); - while (flagit.hasNext()) { - final String flagname = flagit.next(); - final boolean access = limits.getBoolean("Flags.CreatorDefault." + flagname, false); - creatorDefaultFlags.put(flagname, access); - } + private void parseGroup(final ConfigurationSection limits) { + if (limits == null) { + return; + } + cancreate = limits.getBoolean("Residence.CanCreate", false); + resmax = limits.getInt("Residence.MaxResidences", 0); + maxPhysical = limits.getInt("Residence.MaxAreasPerResidence", 2); + xmax = limits.getInt("Residence.MaxEastWest", 0); + ymax = limits.getInt("Residence.MaxUpDown", 0); + zmax = limits.getInt("Residence.MaxNorthSouth", 0); + minHeight = limits.getInt("Residence.MinHeight", 0); + maxHeight = limits.getInt("Residence.MaxHeight", 255); + tpaccess = limits.getBoolean("Residence.CanTeleport", false); + subzonedepth = limits.getInt("Residence.SubzoneDepth", 0); + messageperms = limits.getBoolean("Messaging.CanChange", false); + defaultEnterMessage = limits.getString("Messaging.DefaultEnter", null); + defaultLeaveMessage = limits.getString("Messaging.DefaultLeave", null); + maxLeaseTime = limits.getInt("Lease.MaxDays", 16); + leaseGiveTime = limits.getInt("Lease.RenewIncrement", 14); + maxRents = limits.getInt("Rent.MaxRents", 0); + maxRentables = limits.getInt("Rent.MaxRentables", 0); + renewcostperarea = limits.getDouble("Economy.RenewCost", 0.02D); + canBuy = limits.getBoolean("Economy.CanBuy", false); + canSell = limits.getBoolean("Economy.CanSell", false); + buyIgnoreLimits = limits.getBoolean("Economy.IgnoreLimits", false); + costperarea = limits.getDouble("Economy.BuyCost", 0); + unstuck = limits.getBoolean("Residence.Unstuck", false); + kick = limits.getBoolean("Residence.Kick", false); + selectCommandAccess = limits.getBoolean("Residence.SelectCommandAccess", true); + itemListAccess = limits.getBoolean("Residence.ItemListAccess", true); + ConfigurationSection node = limits.getConfigurationSection("Flags.Permission"); + Set flags = null; + if (node != null) { + flags = node.getKeys(false); + } + if (flags != null) { + final Iterator flagit = flags.iterator(); + while (flagit.hasNext()) { + final String flagname = flagit.next(); + final boolean access = limits.getBoolean("Flags.Permission." + flagname, false); + flagPerms.setFlag(flagname, access ? FlagState.TRUE : FlagState.FALSE); + } + } + node = limits.getConfigurationSection("Flags.CreatorDefault"); + if (node != null) { + flags = node.getKeys(false); + } + if (flags != null) { + final Iterator flagit = flags.iterator(); + while (flagit.hasNext()) { + final String flagname = flagit.next(); + final boolean access = limits.getBoolean("Flags.CreatorDefault." + flagname, false); + creatorDefaultFlags.put(flagname, access); + } - } - node = limits.getConfigurationSection("Flags.Default"); - if (node != null) { - flags = node.getKeys(false); - } - if (flags != null) { - final Iterator flagit = flags.iterator(); - while (flagit.hasNext()) { - final String flagname = flagit.next(); - final boolean access = limits.getBoolean("Flags.Default." + flagname, false); - residenceDefaultFlags.put(flagname, access); - } - } - node = limits.getConfigurationSection("Flags.GroupDefault"); - Set groupDef = null; - if (node != null) { - groupDef = node.getKeys(false); - } - if (groupDef != null) { - final Iterator groupit = groupDef.iterator(); - while (groupit.hasNext()) { - final String name = groupit.next(); - final Map gflags = new HashMap(); - flags = limits.getConfigurationSection("Flags.GroupDefault." + name).getKeys(false); - final Iterator flagit = flags.iterator(); - while (flagit.hasNext()) { - final String flagname = flagit.next(); - final boolean access = limits.getBoolean("Flags.GroupDefault." + name + "." + flagname, false); - gflags.put(flagname, access); - } - groupDefaultFlags.put(name, gflags); - } - } - } + } + node = limits.getConfigurationSection("Flags.Default"); + if (node != null) { + flags = node.getKeys(false); + } + if (flags != null) { + final Iterator flagit = flags.iterator(); + while (flagit.hasNext()) { + final String flagname = flagit.next(); + final boolean access = limits.getBoolean("Flags.Default." + flagname, false); + residenceDefaultFlags.put(flagname, access); + } + } + node = limits.getConfigurationSection("Flags.GroupDefault"); + Set groupDef = null; + if (node != null) { + groupDef = node.getKeys(false); + } + if (groupDef != null) { + final Iterator groupit = groupDef.iterator(); + while (groupit.hasNext()) { + final String name = groupit.next(); + final Map gflags = new HashMap(); + flags = limits.getConfigurationSection("Flags.GroupDefault." + name).getKeys(false); + final Iterator flagit = flags.iterator(); + while (flagit.hasNext()) { + final String flagname = flagit.next(); + final boolean access = limits.getBoolean("Flags.GroupDefault." + name + "." + flagname, false); + gflags.put(flagname, access); + } + groupDefaultFlags.put(name, gflags); + } + } + } } diff --git a/src/main/java/cn/citycraft/Residence/permissions/PermissionManager.java b/src/main/java/cn/citycraft/Residence/permissions/PermissionManager.java index 333f60c..6be531f 100644 --- a/src/main/java/cn/citycraft/Residence/permissions/PermissionManager.java +++ b/src/main/java/cn/citycraft/Residence/permissions/PermissionManager.java @@ -26,131 +26,131 @@ import cn.citycraft.Residence.vaultinterface.ResidenceVaultAdapter; * @author Administrator */ public class PermissionManager { - protected static PermissionsInterface perms; - protected FlagPermissions globalFlagPerms; - protected Map groups; - protected Map playersGroup; - ResidenceMain plugin; + protected static PermissionsInterface perms; + protected FlagPermissions globalFlagPerms; + protected Map groups; + protected Map playersGroup; + ResidenceMain plugin; - public PermissionManager(final ResidenceMain plugin) { - try { - this.plugin = plugin; - groups = Collections.synchronizedMap(new HashMap()); - playersGroup = Collections.synchronizedMap(new HashMap()); - globalFlagPerms = new FlagPermissions(); - this.readConfig(plugin.getConfig()); - final boolean enable = plugin.getConfig().getBoolean("Global.EnablePermissions", true); - if (enable) { - this.checkPermissions(); - } - } catch (final Exception ex) { - plugin.getLogger().warning("权限管理载入失败,请报告以下错误给作者,谢谢!"); - plugin.getLogger().warning("错误: " + ex); - } - } + public PermissionManager(final ResidenceMain plugin) { + try { + this.plugin = plugin; + groups = Collections.synchronizedMap(new HashMap()); + playersGroup = Collections.synchronizedMap(new HashMap()); + globalFlagPerms = new FlagPermissions(); + this.readConfig(plugin.getConfig()); + final boolean enable = plugin.getConfig().getBoolean("Global.EnablePermissions", true); + if (enable) { + this.checkPermissions(); + } + } catch (final Exception ex) { + plugin.getLogger().warning("权限管理载入失败,请报告以下错误给作者,谢谢!"); + plugin.getLogger().warning("错误: " + ex); + } + } - public PermissionGroup getGroup(final Player player) { - return groups.get(this.getGroupNameByPlayer(player)); - } + public PermissionGroup getGroup(final Player player) { + return groups.get(this.getGroupNameByPlayer(player)); + } - public PermissionGroup getGroup(final String player, final String world) { - return groups.get(this.getGroupNameByPlayer(player, world)); - } + public PermissionGroup getGroup(final String player, final String world) { + return groups.get(this.getGroupNameByPlayer(player, world)); + } - public PermissionGroup getGroupByName(String group) { - group = group.toLowerCase(); - if (!groups.containsKey(group)) { - return groups.get(plugin.getConfigManager().getDefaultGroup()); - } - return groups.get(group); - } + public PermissionGroup getGroupByName(String group) { + group = group.toLowerCase(); + if (!groups.containsKey(group)) { + return groups.get(plugin.getConfigManager().getDefaultGroup()); + } + return groups.get(group); + } - public String getGroupNameByPlayer(final Player player) { - return this.getGroupNameByPlayer(player.getName(), player.getWorld().getName()); - } + public String getGroupNameByPlayer(final Player player) { + return this.getGroupNameByPlayer(player.getName(), player.getWorld().getName()); + } - public String getGroupNameByPlayer(String player, final String world) { - player = player.toLowerCase(); - if (playersGroup.containsKey(player)) { - String group = playersGroup.get(player); - if (group != null) { - group = group.toLowerCase(); - if (group != null && groups.containsKey(group)) { - return group; - } - } - } - final String group = this.getPermissionsGroup(player, world); - if (group == null || !groups.containsKey(group)) { - return plugin.getConfigManager().getDefaultGroup().toLowerCase(); - } - return group; - } + public String getGroupNameByPlayer(String player, final String world) { + player = player.toLowerCase(); + if (playersGroup.containsKey(player)) { + String group = playersGroup.get(player); + if (group != null) { + group = group.toLowerCase(); + if (group != null && groups.containsKey(group)) { + return group; + } + } + } + final String group = this.getPermissionsGroup(player, world); + if (group == null || !groups.containsKey(group)) { + return plugin.getConfigManager().getDefaultGroup().toLowerCase(); + } + return group; + } - public String getPermissionsGroup(final Player player) { - return this.getPermissionsGroup(player.getName(), player.getWorld().getName()); - } + public String getPermissionsGroup(final Player player) { + return this.getPermissionsGroup(player.getName(), player.getWorld().getName()); + } - public String getPermissionsGroup(final String player, final String world) { - if (perms == null) { - return plugin.getConfigManager().getDefaultGroup(); - } - return perms.getPlayerGroup(player, world); - } + public String getPermissionsGroup(final String player, final String world) { + if (perms == null) { + return plugin.getConfigManager().getDefaultGroup(); + } + return perms.getPlayerGroup(player, world); + } - public PermissionsInterface getPermissionsPlugin() { - return perms; - } + public PermissionsInterface getPermissionsPlugin() { + return perms; + } - public boolean hasGroup(String group) { - group = group.toLowerCase(); - return groups.containsKey(group); - } + public boolean hasGroup(String group) { + group = group.toLowerCase(); + return groups.containsKey(group); + } - public boolean isResidenceAdmin(final Player player) { - return (player.hasPermission("residence.admin") || (player.isOp() && plugin.getConfigManager().getOpsAreAdmins())); - } + public boolean isResidenceAdmin(final Player player) { + return (player.hasPermission("residence.admin") || (player.isOp() && plugin.getConfigManager().getOpsAreAdmins())); + } - private void checkPermissions() { - final Server server = plugin.getServer(); - final Plugin p = server.getPluginManager().getPlugin("Vault"); - if (p != null) { - final ResidenceVaultAdapter vault = new ResidenceVaultAdapter(server); - if (vault.permissionsOK()) { - perms = vault; - plugin.getLogger().info("发现 Vault 使用权限系统: " + vault.getPermissionsName()); - return; - } - plugin.getLogger().info("发现 Vault, 但是 Vault 未找到权限系统..."); - } - } + private void checkPermissions() { + final Server server = plugin.getServer(); + final Plugin p = server.getPluginManager().getPlugin("Vault"); + if (p != null) { + final ResidenceVaultAdapter vault = new ResidenceVaultAdapter(server); + if (vault.permissionsOK()) { + perms = vault; + plugin.getLogger().info("发现 Vault 使用权限系统: " + vault.getPermissionsName()); + return; + } + plugin.getLogger().info("发现 Vault, 但是 Vault 未找到权限系统..."); + } + } - private void readConfig(final FileConfiguration config) { - final String defaultGroup = plugin.getConfigManager().getDefaultGroup(); - globalFlagPerms = FlagPermissions.parseFromConfigNode("FlagPermission", config.getConfigurationSection("Global")); - final ConfigurationSection nodes = config.getConfigurationSection("Groups"); - if (nodes != null) { - final Set entrys = nodes.getKeys(false); - for (final String key : entrys) { - try { - groups.put(key.toLowerCase(), new PermissionGroup(key.toLowerCase(), nodes.getConfigurationSection(key), globalFlagPerms)); - final List mirrors = nodes.getConfigurationSection(key).getStringList("Mirror"); - for (final String group : mirrors) { - groups.put(group.toLowerCase(), new PermissionGroup(key.toLowerCase(), nodes.getConfigurationSection(key), globalFlagPerms)); - } - } catch (final Exception ex) { - plugin.getLogger().info("错误 从配置文件读取:" + key + " 抛出异常:" + ex); - } - } - } - if (!groups.containsKey(defaultGroup)) { - groups.put(defaultGroup, new PermissionGroup(defaultGroup)); - } - final Set keys = config.getConfigurationSection("GroupAssignments").getKeys(false); - if (keys != null) { - for (final String key : keys) { - playersGroup.put(key.toLowerCase(), config.getString("GroupAssignments." + key, defaultGroup).toLowerCase()); - } - } - } + private void readConfig(final FileConfiguration config) { + final String defaultGroup = plugin.getConfigManager().getDefaultGroup(); + globalFlagPerms = FlagPermissions.parseFromConfigNode("FlagPermission", config.getConfigurationSection("Global")); + final ConfigurationSection nodes = config.getConfigurationSection("Groups"); + if (nodes != null) { + final Set entrys = nodes.getKeys(false); + for (final String key : entrys) { + try { + groups.put(key.toLowerCase(), new PermissionGroup(key.toLowerCase(), nodes.getConfigurationSection(key), globalFlagPerms)); + final List mirrors = nodes.getConfigurationSection(key).getStringList("Mirror"); + for (final String group : mirrors) { + groups.put(group.toLowerCase(), new PermissionGroup(key.toLowerCase(), nodes.getConfigurationSection(key), globalFlagPerms)); + } + } catch (final Exception ex) { + plugin.getLogger().info("错误 从配置文件读取:" + key + " 抛出异常:" + ex); + } + } + } + if (!groups.containsKey(defaultGroup)) { + groups.put(defaultGroup, new PermissionGroup(defaultGroup)); + } + final Set keys = config.getConfigurationSection("GroupAssignments").getKeys(false); + if (keys != null) { + for (final String key : keys) { + playersGroup.put(key.toLowerCase(), config.getString("GroupAssignments." + key, defaultGroup).toLowerCase()); + } + } + } } diff --git a/src/main/java/cn/citycraft/Residence/permissions/PermissionsInterface.java b/src/main/java/cn/citycraft/Residence/permissions/PermissionsInterface.java index a266e66..062312b 100644 --- a/src/main/java/cn/citycraft/Residence/permissions/PermissionsInterface.java +++ b/src/main/java/cn/citycraft/Residence/permissions/PermissionsInterface.java @@ -13,5 +13,6 @@ import org.bukkit.entity.Player; */ public interface PermissionsInterface { public String getPlayerGroup(Player player); + public String getPlayerGroup(String player, String world); } diff --git a/src/main/java/cn/citycraft/Residence/persistance/YMLSaveHelper.java b/src/main/java/cn/citycraft/Residence/persistance/YMLSaveHelper.java index 9dadd4f..2064735 100644 --- a/src/main/java/cn/citycraft/Residence/persistance/YMLSaveHelper.java +++ b/src/main/java/cn/citycraft/Residence/persistance/YMLSaveHelper.java @@ -26,23 +26,21 @@ public class YMLSaveHelper { File f; Yaml yml; - Map root; + Map root; - public YMLSaveHelper(File ymlfile) throws IOException - { + public YMLSaveHelper(File ymlfile) throws IOException { DumperOptions options = new DumperOptions(); options.setDefaultFlowStyle(FlowStyle.BLOCK); yml = new Yaml(options); - - root = new LinkedHashMap(); - if(ymlfile == null) + + root = new LinkedHashMap(); + if (ymlfile == null) throw new IOException("YMLSaveHelper: null file..."); f = ymlfile; } - public void save() throws IOException - { - if(f.isFile()) + public void save() throws IOException { + if (f.isFile()) f.delete(); FileOutputStream fout = new FileOutputStream(f); OutputStreamWriter osw = new OutputStreamWriter(fout, "UTF8"); @@ -51,16 +49,14 @@ public class YMLSaveHelper { } @SuppressWarnings("unchecked") - public void load() throws IOException - { + public void load() throws IOException { FileInputStream fis = new FileInputStream(f); InputStreamReader isr = new InputStreamReader(fis, "UTF8"); - root = (Map) yml.load(isr); + root = (Map) yml.load(isr); isr.close(); } - public Map getRoot() - { + public Map getRoot() { return root; } diff --git a/src/main/java/cn/citycraft/Residence/runnable/AutoSaveTask.java b/src/main/java/cn/citycraft/Residence/runnable/AutoSaveTask.java index f94c946..8a8487f 100644 --- a/src/main/java/cn/citycraft/Residence/runnable/AutoSaveTask.java +++ b/src/main/java/cn/citycraft/Residence/runnable/AutoSaveTask.java @@ -5,21 +5,21 @@ import org.bukkit.Bukkit; import cn.citycraft.Residence.ResidenceMain; public class AutoSaveTask implements Runnable { - ResidenceMain res; + ResidenceMain res; - public AutoSaveTask(final ResidenceMain res) { - this.res = res; - } + public AutoSaveTask(final ResidenceMain res) { + this.res = res; + } - @Override - public void run() { - try { - if (res.isInit()) { - res.saveYml(); - } - } catch (final Exception ex) { - Bukkit.getLogger().warning("领地数据保存错误,可能造成部分领地丢失,请尝试恢复备份文件!"); - } - } + @Override + public void run() { + try { + if (res.isInit()) { + res.saveYml(); + } + } catch (final Exception ex) { + Bukkit.getLogger().warning("领地数据保存错误,可能造成部分领地丢失,请尝试恢复备份文件!"); + } + } } diff --git a/src/main/java/cn/citycraft/Residence/runnable/HealTask.java b/src/main/java/cn/citycraft/Residence/runnable/HealTask.java index f392f17..a5e621c 100644 --- a/src/main/java/cn/citycraft/Residence/runnable/HealTask.java +++ b/src/main/java/cn/citycraft/Residence/runnable/HealTask.java @@ -1,39 +1,39 @@ package cn.citycraft.Residence.runnable; -import org.bukkit.Bukkit; import org.bukkit.entity.Damageable; import org.bukkit.entity.Player; import com.bekvon.bukkit.residence.protection.ClaimedResidence; +import cn.citycraft.PluginHelper.utils.CompatibleUtil; import cn.citycraft.Residence.ResidenceMain; public class HealTask implements Runnable { - ResidenceMain plugin; + ResidenceMain plugin; - public HealTask(final ResidenceMain plugin) { - this.plugin = plugin; - } + public HealTask(final ResidenceMain plugin) { + this.plugin = plugin; + } - @Override - public void run() { - try { - for (final Player player : Bukkit.getServer().getOnlinePlayers()) { - final String resname = plugin.getPlayerListener().getCurrentResidenceName(player.getName()); - ClaimedResidence res = null; - if (resname != null) { - res = plugin.getResidenceManager().getByName(resname); - } - if (res != null && res.getPermissions().has("healing", false)) { - final Damageable damage = player; - final double health = damage.getHealth(); - if (health < 20 && !player.isDead()) { - player.setHealth(health + 1); - } - } - } - } catch (final Exception ex) { - } - } + @Override + public void run() { + try { + for (final Player player : CompatibleUtil.getOnlinePlayers()) { + final String resname = plugin.getPlayerListener().getCurrentResidenceName(player.getName()); + ClaimedResidence res = null; + if (resname != null) { + res = plugin.getResidenceManager().getByName(resname); + } + if (res != null && res.getPermissions().has("healing", false)) { + final Damageable damage = player; + final double health = damage.getHealth(); + if (health < 20 && !player.isDead()) { + player.setHealth(health + 1); + } + } + } + } catch (final Exception ex) { + } + } } diff --git a/src/main/java/cn/citycraft/Residence/runnable/LeaseTask.java b/src/main/java/cn/citycraft/Residence/runnable/LeaseTask.java index 3ad607d..2f3fda3 100644 --- a/src/main/java/cn/citycraft/Residence/runnable/LeaseTask.java +++ b/src/main/java/cn/citycraft/Residence/runnable/LeaseTask.java @@ -3,17 +3,17 @@ package cn.citycraft.Residence.runnable; import cn.citycraft.Residence.ResidenceMain; public class LeaseTask implements Runnable { - ResidenceMain plugin; + ResidenceMain plugin; - public LeaseTask(final ResidenceMain plugin) { - this.plugin = plugin; - } + public LeaseTask(final ResidenceMain plugin) { + this.plugin = plugin; + } - @Override - public void run() { - plugin.getLeaseManager().doExpirations(); - if (plugin.getConfigManager().showIntervalMessages()) { - plugin.getLogger().info(" - Lease Expirations checked!"); - } - } + @Override + public void run() { + plugin.getLeaseManager().doExpirations(); + if (plugin.getConfigManager().showIntervalMessages()) { + plugin.getLogger().info(" - Lease Expirations checked!"); + } + } } diff --git a/src/main/java/cn/citycraft/Residence/runnable/RentTask.java b/src/main/java/cn/citycraft/Residence/runnable/RentTask.java index 6f5bc6d..365e73e 100644 --- a/src/main/java/cn/citycraft/Residence/runnable/RentTask.java +++ b/src/main/java/cn/citycraft/Residence/runnable/RentTask.java @@ -3,17 +3,17 @@ package cn.citycraft.Residence.runnable; import cn.citycraft.Residence.ResidenceMain; public class RentTask implements Runnable { - ResidenceMain plugin; + ResidenceMain plugin; - public RentTask(final ResidenceMain plugin) { - this.plugin = plugin; - } + public RentTask(final ResidenceMain plugin) { + this.plugin = plugin; + } - @Override - public void run() { - plugin.getRentManager().checkCurrentRents(); - if (plugin.getConfigManager().showIntervalMessages()) { - plugin.getLogger().info(" - Rent Expirations checked!"); - } - } + @Override + public void run() { + plugin.getRentManager().checkCurrentRents(); + if (plugin.getConfigManager().showIntervalMessages()) { + plugin.getLogger().info(" - Rent Expirations checked!"); + } + } } diff --git a/src/main/java/cn/citycraft/Residence/runnable/TaskManager.java b/src/main/java/cn/citycraft/Residence/runnable/TaskManager.java index 4276dbd..0755302 100644 --- a/src/main/java/cn/citycraft/Residence/runnable/TaskManager.java +++ b/src/main/java/cn/citycraft/Residence/runnable/TaskManager.java @@ -7,21 +7,21 @@ import org.bukkit.plugin.Plugin; import org.bukkit.scheduler.BukkitTask; public class TaskManager { - Plugin plugin; + Plugin plugin; - List tasklist; + List tasklist; - public TaskManager(Plugin plugin) { - this.plugin = plugin; - this.tasklist = new ArrayList(); - } + public TaskManager(Plugin plugin) { + this.plugin = plugin; + this.tasklist = new ArrayList(); + } - public void add(BukkitTask task) { - tasklist.add(task); - } + public void add(BukkitTask task) { + tasklist.add(task); + } - public void cancelall() { - for (BukkitTask bukkitTask : tasklist) - bukkitTask.cancel(); - } + public void cancelall() { + for (BukkitTask bukkitTask : tasklist) + bukkitTask.cancel(); + } } diff --git a/src/main/java/cn/citycraft/Residence/selection/SelectionManager.java b/src/main/java/cn/citycraft/Residence/selection/SelectionManager.java index fec60c7..fc8b02c 100644 --- a/src/main/java/cn/citycraft/Residence/selection/SelectionManager.java +++ b/src/main/java/cn/citycraft/Residence/selection/SelectionManager.java @@ -26,302 +26,302 @@ import cn.citycraft.Residence.permissions.PermissionGroup; * @author Administrator */ public class SelectionManager { - public static final int MAX_HEIGHT = 255, MIN_HEIGHT = 0; - protected Map playerLoc1; - protected Map playerLoc2; - protected Server server; - ResidenceMain plugin; + public static final int MAX_HEIGHT = 255, MIN_HEIGHT = 0; + protected Map playerLoc1; + protected Map playerLoc2; + protected Server server; + ResidenceMain plugin; - public SelectionManager(final ResidenceMain plugin) { - this.plugin = plugin; - this.server = Bukkit.getServer(); - playerLoc1 = Collections.synchronizedMap(new HashMap()); - playerLoc2 = Collections.synchronizedMap(new HashMap()); - } + public SelectionManager(final ResidenceMain plugin) { + this.plugin = plugin; + this.server = Bukkit.getServer(); + playerLoc1 = Collections.synchronizedMap(new HashMap()); + playerLoc2 = Collections.synchronizedMap(new HashMap()); + } - public void bedrock(final Player player, final boolean resadmin) { - if (hasPlacedBoth(player.getName())) { - final PermissionGroup group = plugin.getPermissionManager().getGroup(player); - final int y1 = playerLoc1.get(player.getName()).getBlockY(); - final int y2 = playerLoc2.get(player.getName()).getBlockY(); - if (y1 < y2) { - int newy = MIN_HEIGHT; - if (!resadmin) { - if (newy < group.getMinHeight()) { - newy = group.getMinHeight(); - } - if (y2 - newy > (group.getMaxY() - 1)) { - newy = y2 - (group.getMaxY() - 1); - } - } - playerLoc1.get(player.getName()).setY(newy); - } else { - int newy = MIN_HEIGHT; - if (!resadmin) { - if (newy < group.getMinHeight()) { - newy = group.getMinHeight(); - } - if (y1 - newy > (group.getMaxY() - 1)) { - newy = y1 - (group.getMaxY() - 1); - } - } - playerLoc2.get(player.getName()).setY(newy); - } - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("SelectionBedrock")); - } else { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SelectPoints")); - } - } + public void bedrock(final Player player, final boolean resadmin) { + if (hasPlacedBoth(player.getName())) { + final PermissionGroup group = plugin.getPermissionManager().getGroup(player); + final int y1 = playerLoc1.get(player.getName()).getBlockY(); + final int y2 = playerLoc2.get(player.getName()).getBlockY(); + if (y1 < y2) { + int newy = MIN_HEIGHT; + if (!resadmin) { + if (newy < group.getMinHeight()) { + newy = group.getMinHeight(); + } + if (y2 - newy > (group.getMaxY() - 1)) { + newy = y2 - (group.getMaxY() - 1); + } + } + playerLoc1.get(player.getName()).setY(newy); + } else { + int newy = MIN_HEIGHT; + if (!resadmin) { + if (newy < group.getMinHeight()) { + newy = group.getMinHeight(); + } + if (y1 - newy > (group.getMaxY() - 1)) { + newy = y1 - (group.getMaxY() - 1); + } + } + playerLoc2.get(player.getName()).setY(newy); + } + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("SelectionBedrock")); + } else { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SelectPoints")); + } + } - public void clearSelection(final Player player) { - playerLoc1.remove(player.getName()); - playerLoc2.remove(player.getName()); - } + public void clearSelection(final Player player) { + playerLoc1.remove(player.getName()); + playerLoc2.remove(player.getName()); + } - public Location getPlayerLoc1(final String player) { - return playerLoc1.get(player); - } + public Location getPlayerLoc1(final String player) { + return playerLoc1.get(player); + } - public Location getPlayerLoc2(final String player) { - return playerLoc2.get(player); - } + public Location getPlayerLoc2(final String player) { + return playerLoc2.get(player); + } - public boolean hasPlacedBoth(final String player) { - return (playerLoc1.containsKey(player) && playerLoc2.containsKey(player)); - } + public boolean hasPlacedBoth(final String player) { + return (playerLoc1.containsKey(player) && playerLoc2.containsKey(player)); + } - public void modify(final Player player, final boolean shift, final int amount) { - if (!this.hasPlacedBoth(player.getName())) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SelectPoints")); - return; - } - final Direction d = this.getDirection(player); - if (d == null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidDirection")); - } - final CuboidArea area = new CuboidArea(playerLoc1.get(player.getName()), playerLoc2.get(player.getName())); - if (d == Direction.UP) { - int oldy = area.getHighLoc().getBlockY(); - oldy = oldy + amount; - if (oldy > MAX_HEIGHT) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SelectTooHigh")); - oldy = MAX_HEIGHT; - } - area.getHighLoc().setY(oldy); - if (shift) { - int oldy2 = area.getLowLoc().getBlockY(); - oldy2 = oldy2 + amount; - area.getLowLoc().setY(oldy2); - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Shifting.Up") + "..."); - } else { - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Expanding.Up") + "..."); - } - } - if (d == Direction.DOWN) { - int oldy = area.getLowLoc().getBlockY(); - oldy = oldy - amount; - if (oldy < MIN_HEIGHT) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SelectTooLow")); - oldy = MIN_HEIGHT; - } - area.getLowLoc().setY(oldy); - if (shift) { - int oldy2 = area.getHighLoc().getBlockY(); - oldy2 = oldy2 - amount; - area.getHighLoc().setY(oldy2); - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Shifting.Down") + "..."); - } else { - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Expanding.Down") + "..."); - } - } - if (d == Direction.MINUSX) { - int oldx = area.getLowLoc().getBlockX(); - oldx = oldx - amount; - area.getLowLoc().setX(oldx); - if (shift) { - int oldx2 = area.getHighLoc().getBlockX(); - oldx2 = oldx2 - amount; - area.getHighLoc().setX(oldx2); - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Shifting") + " -X..."); - } else { - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Expanding") + " -X..."); - } - } - if (d == Direction.PLUSX) { - int oldx = area.getHighLoc().getBlockX(); - oldx = oldx + amount; - area.getHighLoc().setX(oldx); - if (shift) { - int oldx2 = area.getLowLoc().getBlockX(); - oldx2 = oldx2 + amount; - area.getLowLoc().setX(oldx2); - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Shifting") + " +X..."); - } else { - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Expanding") + " +X..."); - } - } - if (d == Direction.MINUSZ) { - int oldz = area.getLowLoc().getBlockZ(); - oldz = oldz - amount; - area.getLowLoc().setZ(oldz); - if (shift) { - int oldz2 = area.getHighLoc().getBlockZ(); - oldz2 = oldz2 - amount; - area.getHighLoc().setZ(oldz2); - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Shifting") + " -Z..."); - } else { - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Expanding") + " -Z..."); - } - } - if (d == Direction.PLUSZ) { - int oldz = area.getHighLoc().getBlockZ(); - oldz = oldz + amount; - area.getHighLoc().setZ(oldz); - if (shift) { - int oldz2 = area.getLowLoc().getBlockZ(); - oldz2 = oldz2 + amount; - area.getLowLoc().setZ(oldz2); - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Shifting") + " +Z..."); - } else { - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Expanding") + " +Z..."); - } - } - playerLoc1.put(player.getName(), area.getHighLoc()); - playerLoc2.put(player.getName(), area.getLowLoc()); - } + public void modify(final Player player, final boolean shift, final int amount) { + if (!this.hasPlacedBoth(player.getName())) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SelectPoints")); + return; + } + final Direction d = this.getDirection(player); + if (d == null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidDirection")); + } + final CuboidArea area = new CuboidArea(playerLoc1.get(player.getName()), playerLoc2.get(player.getName())); + if (d == Direction.UP) { + int oldy = area.getHighLoc().getBlockY(); + oldy = oldy + amount; + if (oldy > MAX_HEIGHT) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SelectTooHigh")); + oldy = MAX_HEIGHT; + } + area.getHighLoc().setY(oldy); + if (shift) { + int oldy2 = area.getLowLoc().getBlockY(); + oldy2 = oldy2 + amount; + area.getLowLoc().setY(oldy2); + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Shifting.Up") + "..."); + } else { + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Expanding.Up") + "..."); + } + } + if (d == Direction.DOWN) { + int oldy = area.getLowLoc().getBlockY(); + oldy = oldy - amount; + if (oldy < MIN_HEIGHT) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SelectTooLow")); + oldy = MIN_HEIGHT; + } + area.getLowLoc().setY(oldy); + if (shift) { + int oldy2 = area.getHighLoc().getBlockY(); + oldy2 = oldy2 - amount; + area.getHighLoc().setY(oldy2); + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Shifting.Down") + "..."); + } else { + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Expanding.Down") + "..."); + } + } + if (d == Direction.MINUSX) { + int oldx = area.getLowLoc().getBlockX(); + oldx = oldx - amount; + area.getLowLoc().setX(oldx); + if (shift) { + int oldx2 = area.getHighLoc().getBlockX(); + oldx2 = oldx2 - amount; + area.getHighLoc().setX(oldx2); + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Shifting") + " -X..."); + } else { + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Expanding") + " -X..."); + } + } + if (d == Direction.PLUSX) { + int oldx = area.getHighLoc().getBlockX(); + oldx = oldx + amount; + area.getHighLoc().setX(oldx); + if (shift) { + int oldx2 = area.getLowLoc().getBlockX(); + oldx2 = oldx2 + amount; + area.getLowLoc().setX(oldx2); + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Shifting") + " +X..."); + } else { + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Expanding") + " +X..."); + } + } + if (d == Direction.MINUSZ) { + int oldz = area.getLowLoc().getBlockZ(); + oldz = oldz - amount; + area.getLowLoc().setZ(oldz); + if (shift) { + int oldz2 = area.getHighLoc().getBlockZ(); + oldz2 = oldz2 - amount; + area.getHighLoc().setZ(oldz2); + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Shifting") + " -Z..."); + } else { + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Expanding") + " -Z..."); + } + } + if (d == Direction.PLUSZ) { + int oldz = area.getHighLoc().getBlockZ(); + oldz = oldz + amount; + area.getHighLoc().setZ(oldz); + if (shift) { + int oldz2 = area.getLowLoc().getBlockZ(); + oldz2 = oldz2 + amount; + area.getLowLoc().setZ(oldz2); + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Shifting") + " +Z..."); + } else { + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Expanding") + " +Z..."); + } + } + playerLoc1.put(player.getName(), area.getHighLoc()); + playerLoc2.put(player.getName(), area.getLowLoc()); + } - public void placeLoc1(final Player player, final Location loc) { - if (loc != null) { - playerLoc1.put(player.getName(), loc); - } - } + public void placeLoc1(final Player player, final Location loc) { + if (loc != null) { + playerLoc1.put(player.getName(), loc); + } + } - public void placeLoc2(final Player player, final Location loc) { - if (loc != null) { - playerLoc2.put(player.getName(), loc); - } - } + public void placeLoc2(final Player player, final Location loc) { + if (loc != null) { + playerLoc2.put(player.getName(), loc); + } + } - public void selectBySize(final Player player, final int xsize, final int ysize, final int zsize) { - final Location myloc = player.getLocation(); - final Location loc1 = new Location(myloc.getWorld(), myloc.getBlockX() + xsize, myloc.getBlockY() + ysize, myloc.getBlockZ() + zsize); - final Location loc2 = new Location(myloc.getWorld(), myloc.getBlockX() - xsize, myloc.getBlockY() - ysize, myloc.getBlockZ() - zsize); - placeLoc1(player, loc1); - placeLoc2(player, loc2); - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("SelectionSuccess")); - showSelectionInfo(player); - } + public void selectBySize(final Player player, final int xsize, final int ysize, final int zsize) { + final Location myloc = player.getLocation(); + final Location loc1 = new Location(myloc.getWorld(), myloc.getBlockX() + xsize, myloc.getBlockY() + ysize, myloc.getBlockZ() + zsize); + final Location loc2 = new Location(myloc.getWorld(), myloc.getBlockX() - xsize, myloc.getBlockY() - ysize, myloc.getBlockZ() - zsize); + placeLoc1(player, loc1); + placeLoc2(player, loc2); + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("SelectionSuccess")); + showSelectionInfo(player); + } - public void selectChunk(final Player player) { - final Chunk chunk = player.getWorld().getChunkAt(player.getLocation()); - final int xcoord = chunk.getX() * 16; - final int zcoord = chunk.getZ() * 16; - final int ycoord = MIN_HEIGHT; - final int xmax = xcoord + 15; - final int zmax = zcoord + 15; - final int ymax = MAX_HEIGHT; - this.playerLoc1.put(player.getName(), new Location(player.getWorld(), xcoord, ycoord, zcoord)); - this.playerLoc2.put(player.getName(), new Location(player.getWorld(), xmax, ymax, zmax)); - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("SelectionSuccess")); - } + public void selectChunk(final Player player) { + final Chunk chunk = player.getWorld().getChunkAt(player.getLocation()); + final int xcoord = chunk.getX() * 16; + final int zcoord = chunk.getZ() * 16; + final int ycoord = MIN_HEIGHT; + final int xmax = xcoord + 15; + final int zmax = zcoord + 15; + final int ymax = MAX_HEIGHT; + this.playerLoc1.put(player.getName(), new Location(player.getWorld(), xcoord, ycoord, zcoord)); + this.playerLoc2.put(player.getName(), new Location(player.getWorld(), xmax, ymax, zmax)); + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("SelectionSuccess")); + } - public void showSelectionInfo(final Player player) { - final String pname = player.getName(); - if (this.hasPlacedBoth(pname)) { - final CuboidArea cuboidArea = new CuboidArea(getPlayerLoc1(pname), getPlayerLoc2(pname)); - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Selection.Total.Size") + ":" + ChatColor.DARK_AQUA + " " + cuboidArea.getSize()); - final PermissionGroup group = plugin.getPermissionManager().getGroup(player); - if (plugin.getConfigManager().enableEconomy()) { - player.sendMessage( - ChatColor.YELLOW + plugin.getLanguage().getPhrase("Land.Cost") + ":" + ChatColor.DARK_AQUA + " " + ((int) Math.ceil(cuboidArea.getSize() * group.getCostPerBlock()))); - } - player.sendMessage(ChatColor.YELLOW + "X" + plugin.getLanguage().getPhrase("Size") + ":" + ChatColor.DARK_AQUA + " " + cuboidArea.getXSize()); - player.sendMessage(ChatColor.YELLOW + "Y" + plugin.getLanguage().getPhrase("Size") + ":" + ChatColor.DARK_AQUA + " " + cuboidArea.getYSize()); - player.sendMessage(ChatColor.YELLOW + "Z" + plugin.getLanguage().getPhrase("Size") + ":" + ChatColor.DARK_AQUA + " " + cuboidArea.getZSize()); - } else { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SelectPoints")); - } - } + public void showSelectionInfo(final Player player) { + final String pname = player.getName(); + if (this.hasPlacedBoth(pname)) { + final CuboidArea cuboidArea = new CuboidArea(getPlayerLoc1(pname), getPlayerLoc2(pname)); + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Selection.Total.Size") + ":" + ChatColor.DARK_AQUA + " " + cuboidArea.getSize()); + final PermissionGroup group = plugin.getPermissionManager().getGroup(player); + if (plugin.getConfigManager().enableEconomy()) { + player.sendMessage( + ChatColor.YELLOW + plugin.getLanguage().getPhrase("Land.Cost") + ":" + ChatColor.DARK_AQUA + " " + ((int) Math.ceil(cuboidArea.getSize() * group.getCostPerBlock()))); + } + player.sendMessage(ChatColor.YELLOW + "X" + plugin.getLanguage().getPhrase("Size") + ":" + ChatColor.DARK_AQUA + " " + cuboidArea.getXSize()); + player.sendMessage(ChatColor.YELLOW + "Y" + plugin.getLanguage().getPhrase("Size") + ":" + ChatColor.DARK_AQUA + " " + cuboidArea.getYSize()); + player.sendMessage(ChatColor.YELLOW + "Z" + plugin.getLanguage().getPhrase("Size") + ":" + ChatColor.DARK_AQUA + " " + cuboidArea.getZSize()); + } else { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SelectPoints")); + } + } - public void sky(final Player player, final boolean resadmin) { - if (hasPlacedBoth(player.getName())) { - final PermissionGroup group = plugin.getPermissionManager().getGroup(player); - final int y1 = playerLoc1.get(player.getName()).getBlockY(); - final int y2 = playerLoc2.get(player.getName()).getBlockY(); - if (y1 > y2) { - int newy = MAX_HEIGHT; - if (!resadmin) { - if (group.getMaxHeight() < newy) { - newy = group.getMaxHeight(); - } - if (newy - y2 > (group.getMaxY() - 1)) { - newy = y2 + (group.getMaxY() - 1); - } - } - playerLoc1.get(player.getName()).setY(newy); - } else { - int newy = MAX_HEIGHT; - if (!resadmin) { - if (group.getMaxHeight() < newy) { - newy = group.getMaxHeight(); - } - if (newy - y1 > (group.getMaxY() - 1)) { - newy = y1 + (group.getMaxY() - 1); - } - } - playerLoc2.get(player.getName()).setY(newy); - } - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("SelectionSky")); - } else { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SelectPoints")); - } - } + public void sky(final Player player, final boolean resadmin) { + if (hasPlacedBoth(player.getName())) { + final PermissionGroup group = plugin.getPermissionManager().getGroup(player); + final int y1 = playerLoc1.get(player.getName()).getBlockY(); + final int y2 = playerLoc2.get(player.getName()).getBlockY(); + if (y1 > y2) { + int newy = MAX_HEIGHT; + if (!resadmin) { + if (group.getMaxHeight() < newy) { + newy = group.getMaxHeight(); + } + if (newy - y2 > (group.getMaxY() - 1)) { + newy = y2 + (group.getMaxY() - 1); + } + } + playerLoc1.get(player.getName()).setY(newy); + } else { + int newy = MAX_HEIGHT; + if (!resadmin) { + if (group.getMaxHeight() < newy) { + newy = group.getMaxHeight(); + } + if (newy - y1 > (group.getMaxY() - 1)) { + newy = y1 + (group.getMaxY() - 1); + } + } + playerLoc2.get(player.getName()).setY(newy); + } + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("SelectionSky")); + } else { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SelectPoints")); + } + } - public void vert(final Player player, final boolean resadmin) { - if (hasPlacedBoth(player.getName())) { - this.sky(player, resadmin); - this.bedrock(player, resadmin); - } else { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SelectPoints")); - } - } + public void vert(final Player player, final boolean resadmin) { + if (hasPlacedBoth(player.getName())) { + this.sky(player, resadmin); + this.bedrock(player, resadmin); + } else { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SelectPoints")); + } + } - public boolean worldEdit(final Player player) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("WorldEditNotFound")); - return false; - } + public boolean worldEdit(final Player player) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("WorldEditNotFound")); + return false; + } - private Direction getDirection(final Player player) { - final float pitch = player.getLocation().getPitch(); - final float yaw = player.getLocation().getYaw(); - if (pitch < -50) { - return Direction.UP; - } - if (pitch > 50) { - return Direction.DOWN; - } - if ((yaw > 45 && yaw < 135) || (yaw < -45 && yaw > -135)) { - return Direction.MINUSX; - } - if ((yaw > 225 && yaw < 315) || (yaw < -225 && yaw > -315)) { - return Direction.PLUSX; - } - if ((yaw > 135 && yaw < 225) || (yaw < -135 && yaw > -225)) { - return Direction.MINUSZ; - } - if ((yaw < 45 || yaw > 315) || (yaw > -45 || yaw < -315)) { - return Direction.PLUSZ; - } - return null; - } + private Direction getDirection(final Player player) { + final float pitch = player.getLocation().getPitch(); + final float yaw = player.getLocation().getYaw(); + if (pitch < -50) { + return Direction.UP; + } + if (pitch > 50) { + return Direction.DOWN; + } + if ((yaw > 45 && yaw < 135) || (yaw < -45 && yaw > -135)) { + return Direction.MINUSX; + } + if ((yaw > 225 && yaw < 315) || (yaw < -225 && yaw > -315)) { + return Direction.PLUSX; + } + if ((yaw > 135 && yaw < 225) || (yaw < -135 && yaw > -225)) { + return Direction.MINUSZ; + } + if ((yaw < 45 || yaw > 315) || (yaw > -45 || yaw < -315)) { + return Direction.PLUSZ; + } + return null; + } - public enum Direction { - DOWN, - MINUSX, - MINUSZ, - PLUSX, - PLUSZ, - UP - } + public enum Direction { + DOWN, + MINUSX, + MINUSZ, + PLUSX, + PLUSZ, + UP + } } diff --git a/src/main/java/cn/citycraft/Residence/selection/WECUI.java b/src/main/java/cn/citycraft/Residence/selection/WECUI.java index d60650d..dba6061 100644 --- a/src/main/java/cn/citycraft/Residence/selection/WECUI.java +++ b/src/main/java/cn/citycraft/Residence/selection/WECUI.java @@ -16,9 +16,9 @@ import com.sk89q.worldedit.bukkit.selections.Selection; * */ public class WECUI { - public static void UPDATESELECT(final ClaimedResidence res, final Player player) { - final WorldEditPlugin wep = (WorldEditPlugin) Bukkit.getServer().getPluginManager().getPlugin("WorldEdit"); - final Selection selection = new CuboidSelection(Bukkit.getWorld(res.getWorld()), res.getAreaByLoc(player.getLocation()).getLowLoc(), res.getAreaByLoc(player.getLocation()).getHighLoc()); - wep.setSelection(player, selection); - } + public static void UPDATESELECT(final ClaimedResidence res, final Player player) { + final WorldEditPlugin wep = (WorldEditPlugin) Bukkit.getServer().getPluginManager().getPlugin("WorldEdit"); + final Selection selection = new CuboidSelection(Bukkit.getWorld(res.getWorld()), res.getAreaByLoc(player.getLocation()).getLowLoc(), res.getAreaByLoc(player.getLocation()).getHighLoc()); + wep.setSelection(player, selection); + } } \ No newline at end of file diff --git a/src/main/java/cn/citycraft/Residence/selection/WorldEditSelectionManager.java b/src/main/java/cn/citycraft/Residence/selection/WorldEditSelectionManager.java index db3c293..a427e82 100644 --- a/src/main/java/cn/citycraft/Residence/selection/WorldEditSelectionManager.java +++ b/src/main/java/cn/citycraft/Residence/selection/WorldEditSelectionManager.java @@ -20,87 +20,87 @@ import cn.citycraft.Residence.ResidenceMain; * @author Administrator */ public class WorldEditSelectionManager extends SelectionManager { - ResidenceMain plugin; + ResidenceMain plugin; - public WorldEditSelectionManager(final ResidenceMain plugin) { - super(plugin); - this.plugin = plugin; - } + public WorldEditSelectionManager(final ResidenceMain plugin) { + super(plugin); + this.plugin = plugin; + } - @Override - public void bedrock(final Player player, final boolean resadmin) { - this.worldEdit(player); - super.bedrock(player, resadmin); - afterSelectionUpdate(player); - } + @Override + public void bedrock(final Player player, final boolean resadmin) { + this.worldEdit(player); + super.bedrock(player, resadmin); + afterSelectionUpdate(player); + } - @Override - public void modify(final Player player, final boolean shift, final int amount) { - this.worldEdit(player); - super.modify(player, shift, amount); - afterSelectionUpdate(player); - } + @Override + public void modify(final Player player, final boolean shift, final int amount) { + this.worldEdit(player); + super.modify(player, shift, amount); + afterSelectionUpdate(player); + } - @Override - public void placeLoc1(final Player player, final Location loc) { - this.worldEdit(player); - super.placeLoc1(player, loc); - this.afterSelectionUpdate(player); - } + @Override + public void placeLoc1(final Player player, final Location loc) { + this.worldEdit(player); + super.placeLoc1(player, loc); + this.afterSelectionUpdate(player); + } - @Override - public void placeLoc2(final Player player, final Location loc) { - this.worldEdit(player); - super.placeLoc2(player, loc); - this.afterSelectionUpdate(player); - } + @Override + public void placeLoc2(final Player player, final Location loc) { + this.worldEdit(player); + super.placeLoc2(player, loc); + this.afterSelectionUpdate(player); + } - @Override - public void selectChunk(final Player player) { - this.worldEdit(player); - super.selectChunk(player); - afterSelectionUpdate(player); - } + @Override + public void selectChunk(final Player player) { + this.worldEdit(player); + super.selectChunk(player); + afterSelectionUpdate(player); + } - @Override - public void showSelectionInfo(final Player player) { - this.worldEdit(player); - super.showSelectionInfo(player); - } + @Override + public void showSelectionInfo(final Player player) { + this.worldEdit(player); + super.showSelectionInfo(player); + } - @Override - public void sky(final Player player, final boolean resadmin) { - this.worldEdit(player); - super.sky(player, resadmin); - afterSelectionUpdate(player); - } + @Override + public void sky(final Player player, final boolean resadmin) { + this.worldEdit(player); + super.sky(player, resadmin); + afterSelectionUpdate(player); + } - @Override - public boolean worldEdit(final Player player) { - final WorldEditPlugin wep = (WorldEditPlugin) server.getPluginManager().getPlugin("WorldEdit"); - final Selection sel = wep.getSelection(player); - if (sel != null) { - Location pos1 = sel.getMinimumPoint(); - Location pos2 = sel.getMaximumPoint(); - try { - final CuboidRegion region = (CuboidRegion) sel.getRegionSelector().getRegion(); - pos1 = new Location(player.getWorld(), region.getPos1().getX(), region.getPos1().getY(), region.getPos1().getZ()); - pos2 = new Location(player.getWorld(), region.getPos2().getX(), region.getPos2().getY(), region.getPos2().getZ()); - } catch (final Exception e) { - } - this.playerLoc1.put(player.getName(), pos1); - this.playerLoc2.put(player.getName(), pos2); - return true; - } - return false; - } + @Override + public boolean worldEdit(final Player player) { + final WorldEditPlugin wep = (WorldEditPlugin) server.getPluginManager().getPlugin("WorldEdit"); + final Selection sel = wep.getSelection(player); + if (sel != null) { + Location pos1 = sel.getMinimumPoint(); + Location pos2 = sel.getMaximumPoint(); + try { + final CuboidRegion region = (CuboidRegion) sel.getRegionSelector().getRegion(); + pos1 = new Location(player.getWorld(), region.getPos1().getX(), region.getPos1().getY(), region.getPos1().getZ()); + pos2 = new Location(player.getWorld(), region.getPos2().getX(), region.getPos2().getY(), region.getPos2().getZ()); + } catch (final Exception e) { + } + this.playerLoc1.put(player.getName(), pos1); + this.playerLoc2.put(player.getName(), pos2); + return true; + } + return false; + } - private void afterSelectionUpdate(final Player player) { - if (hasPlacedBoth(player.getName())) { - final WorldEditPlugin wep = (WorldEditPlugin) server.getPluginManager().getPlugin("WorldEdit"); - final World world = playerLoc1.get(player.getName()).getWorld(); - final Selection selection = new CuboidSelection(world, playerLoc1.get(player.getName()), playerLoc2.get(player.getName())); - wep.setSelection(player, selection); - } - } + private void afterSelectionUpdate(final Player player) { + if (hasPlacedBoth(player.getName())) { + final WorldEditPlugin wep = (WorldEditPlugin) server.getPluginManager().getPlugin("WorldEdit"); + final World world = playerLoc1.get(player.getName()).getWorld(); + final Selection selection = new CuboidSelection(world, playerLoc1.get(player.getName()), playerLoc2.get(player.getName())); + wep.setSelection(player, selection); + } + } } diff --git a/src/main/java/cn/citycraft/Residence/text/Language.java b/src/main/java/cn/citycraft/Residence/text/Language.java index 39396bb..c384a40 100644 --- a/src/main/java/cn/citycraft/Residence/text/Language.java +++ b/src/main/java/cn/citycraft/Residence/text/Language.java @@ -16,67 +16,67 @@ import org.bukkit.configuration.file.FileConfiguration; * @author Administrator */ public class Language { - public Map text; + public Map text; - public Language() { - text = new HashMap(); - } + public Language() { + text = new HashMap(); + } - public static Language parseText(final FileConfiguration node, final String topkey) { - final Language newholder = new Language(); - final Set keys = node.getConfigurationSection(topkey).getKeys(false); - for (final String key : keys) { - newholder.text.put(key, node.getString(topkey + "." + key)); - } - return newholder; - } + public static Language parseText(final FileConfiguration node, final String topkey) { + final Language newholder = new Language(); + final Set keys = node.getConfigurationSection(topkey).getKeys(false); + for (final String key : keys) { + newholder.text.put(key, node.getString(topkey + "." + key)); + } + return newholder; + } - public String getPhrase(final String key) { - final String[] split = key.split("\\."); - return getPhrase(split); - } + public String getPhrase(final String key) { + final String[] split = key.split("\\."); + return getPhrase(split); + } - public String getPhrase(final String key, final String words) { - return this.getPhrase(key.split("\\."), words); - } + public String getPhrase(final String key, final String words) { + return this.getPhrase(key.split("\\."), words); + } - public String getPhrase(final String[] keys) { - return this.getPhrase(keys, (String[]) null); - } + public String getPhrase(final String[] keys) { + return this.getPhrase(keys, (String[]) null); + } - public String getPhrase(final String[] keys, final String words) { - if (words == null) { - return this.getPhrase(keys, (String[]) null); - } - return this.getPhrase(keys, words.split("\\.")); - } + public String getPhrase(final String[] keys, final String words) { + if (words == null) { + return this.getPhrase(keys, (String[]) null); + } + return this.getPhrase(keys, words.split("\\.")); + } - public String getPhrase(final String[] keys, final String[] words) { - String sentence = ""; - for (final String key : keys) { - if (sentence.length() == 0) { - sentence = this.getText(key); - } else { - sentence = sentence + " " + this.getText(key).toLowerCase(); - } - } - if (words != null) { - for (int i = 0; i < words.length; i++) { - sentence = sentence.replaceAll("%" + (i + 1), words[i]); - } - } - return sentence; - } + public String getPhrase(final String[] keys, final String[] words) { + String sentence = ""; + for (final String key : keys) { + if (sentence.length() == 0) { + sentence = this.getText(key); + } else { + sentence = sentence + " " + this.getText(key).toLowerCase(); + } + } + if (words != null) { + for (int i = 0; i < words.length; i++) { + sentence = sentence.replaceAll("%" + (i + 1), words[i]); + } + } + return sentence; + } - public void setText(final String key, final String intext) { - text.put(key, intext); - } + public void setText(final String key, final String intext) { + text.put(key, intext); + } - private String getText(final String key) { - String t = text.get(key); - if (t == null) { - t = ""; - } - return t; - } + private String getText(final String key) { + String t = text.get(key); + if (t == null) { + t = ""; + } + return t; + } } diff --git a/src/main/java/cn/citycraft/Residence/text/help/HelpEntry.java b/src/main/java/cn/citycraft/Residence/text/help/HelpEntry.java index 6dd08b4..4e0038d 100644 --- a/src/main/java/cn/citycraft/Residence/text/help/HelpEntry.java +++ b/src/main/java/cn/citycraft/Residence/text/help/HelpEntry.java @@ -22,173 +22,173 @@ import cn.citycraft.Residence.ResidenceMain; * @author Administrator */ public class HelpEntry { - protected static int linesPerPage = 7; - protected String desc; - protected String[] lines; - protected String name; - protected List subentrys; - ResidenceMain plugin; + protected static int linesPerPage = 7; + protected String desc; + protected String[] lines; + protected String name; + protected List subentrys; + ResidenceMain plugin; - public HelpEntry(final ResidenceMain plugin, final String entryname) { - this.plugin = plugin; - name = entryname; - subentrys = new ArrayList(); - lines = new String[0]; - } + public HelpEntry(final ResidenceMain plugin, final String entryname) { + this.plugin = plugin; + name = entryname; + subentrys = new ArrayList(); + lines = new String[0]; + } - public static int getLinesPerPage() { - return linesPerPage; - } + public static int getLinesPerPage() { + return linesPerPage; + } - public static HelpEntry parseHelp(final ResidenceMain plugin, final FileConfiguration node, final String key) { - final String split[] = key.split("\\."); - final String thisname = split[split.length - 1]; - final HelpEntry entry = new HelpEntry(plugin, thisname); - final ConfigurationSection keysnode = node.getConfigurationSection(key); - Set keys = null; - if (keysnode != null) { - keys = keysnode.getKeys(false); - } - if (keys != null) { - if (keys.contains("Info")) { - final List stringList = node.getStringList(key + ".Info"); - if (stringList != null) { - entry.lines = new String[stringList.size()]; - for (int i = 0; i < stringList.size(); i++) { - entry.lines[i] = "- " + stringList.get(i); - } - } - } - if (keys.contains("Description")) { - entry.desc = node.getString(key + ".Description"); - } - if (keys.contains("SubCommands")) { - final Set subcommandkeys = node.getConfigurationSection(key + ".SubCommands").getKeys(false); - for (final String subkey : subcommandkeys) { - entry.subentrys.add(HelpEntry.parseHelp(plugin, node, key + ".SubCommands." + subkey)); - } - } - } - return entry; - } + public static HelpEntry parseHelp(final ResidenceMain plugin, final FileConfiguration node, final String key) { + final String split[] = key.split("\\."); + final String thisname = split[split.length - 1]; + final HelpEntry entry = new HelpEntry(plugin, thisname); + final ConfigurationSection keysnode = node.getConfigurationSection(key); + Set keys = null; + if (keysnode != null) { + keys = keysnode.getKeys(false); + } + if (keys != null) { + if (keys.contains("Info")) { + final List stringList = node.getStringList(key + ".Info"); + if (stringList != null) { + entry.lines = new String[stringList.size()]; + for (int i = 0; i < stringList.size(); i++) { + entry.lines[i] = "- " + stringList.get(i); + } + } + } + if (keys.contains("Description")) { + entry.desc = node.getString(key + ".Description"); + } + if (keys.contains("SubCommands")) { + final Set subcommandkeys = node.getConfigurationSection(key + ".SubCommands").getKeys(false); + for (final String subkey : subcommandkeys) { + entry.subentrys.add(HelpEntry.parseHelp(plugin, node, key + ".SubCommands." + subkey)); + } + } + } + return entry; + } - public static void setLinesPerPage(final int lines) { - linesPerPage = lines; - } + public static void setLinesPerPage(final int lines) { + linesPerPage = lines; + } - public void addSubEntry(final HelpEntry entry) { - if (!subentrys.contains(entry)) { - subentrys.add(entry); - } - } + public void addSubEntry(final HelpEntry entry) { + if (!subentrys.contains(entry)) { + subentrys.add(entry); + } + } - public boolean containesEntry(final String name) { - return this.getSubEntry(name) != null; - } + public boolean containesEntry(final String name) { + return this.getSubEntry(name) != null; + } - public String getDescription() { - if (desc == null) { - return ""; - } - return desc; - } + public String getDescription() { + if (desc == null) { + return ""; + } + return desc; + } - public String getName() { - if (name == null) { - return ""; - } - return name; - } + public String getName() { + if (name == null) { + return ""; + } + return name; + } - public HelpEntry getSubEntry(final String name) { - final String[] split = name.split("\\."); - HelpEntry entry = this; - for (final String entryname : split) { - entry = entry.findSubEntry(entryname); - if (entry == null) { - return null; - } - } - return entry; - } + public HelpEntry getSubEntry(final String name) { + final String[] split = name.split("\\."); + HelpEntry entry = this; + for (final String entryname : split) { + entry = entry.findSubEntry(entryname); + if (entry == null) { + return null; + } + } + return entry; + } - public int getSubEntryCount() { - return subentrys.size(); - } + public int getSubEntryCount() { + return subentrys.size(); + } - public void printHelp(final CommandSender sender, final int page) { - final List helplines = this.getHelpData(); - final int pagecount = (int) Math.ceil((double) helplines.size() / (double) linesPerPage); - if (page > pagecount || page < 1) { - sender.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidHelp")); - return; - } - sender.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("HelpPageHeader", - ChatColor.YELLOW + name + ChatColor.RED + "." + ChatColor.YELLOW + page + ChatColor.RED + "." + ChatColor.YELLOW + pagecount + ChatColor.RED)); - sender.sendMessage(ChatColor.DARK_AQUA + plugin.getLanguage().getPhrase("Description") + ": " + ChatColor.GREEN + desc); - final int start = linesPerPage * (page - 1); - final int end = start + linesPerPage; - boolean alternatecolor = false; - for (int i = start; i < end; i++) { - if (helplines.size() > i) { - if (alternatecolor) { - sender.sendMessage(ChatColor.YELLOW + helplines.get(i)); - alternatecolor = false; - } else { - sender.sendMessage(ChatColor.GOLD + helplines.get(i)); - alternatecolor = true; - } - } - } - if (page < pagecount) { - sender.sendMessage(ChatColor.GRAY + "---<" + plugin.getLanguage().getPhrase("NextPage") + ">---"); - } else { - sender.sendMessage(ChatColor.GRAY + "-----------------------"); - } - } + public void printHelp(final CommandSender sender, final int page) { + final List helplines = this.getHelpData(); + final int pagecount = (int) Math.ceil((double) helplines.size() / (double) linesPerPage); + if (page > pagecount || page < 1) { + sender.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidHelp")); + return; + } + sender.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("HelpPageHeader", + ChatColor.YELLOW + name + ChatColor.RED + "." + ChatColor.YELLOW + page + ChatColor.RED + "." + ChatColor.YELLOW + pagecount + ChatColor.RED)); + sender.sendMessage(ChatColor.DARK_AQUA + plugin.getLanguage().getPhrase("Description") + ": " + ChatColor.GREEN + desc); + final int start = linesPerPage * (page - 1); + final int end = start + linesPerPage; + boolean alternatecolor = false; + for (int i = start; i < end; i++) { + if (helplines.size() > i) { + if (alternatecolor) { + sender.sendMessage(ChatColor.YELLOW + helplines.get(i)); + alternatecolor = false; + } else { + sender.sendMessage(ChatColor.GOLD + helplines.get(i)); + alternatecolor = true; + } + } + } + if (page < pagecount) { + sender.sendMessage(ChatColor.GRAY + "---<" + plugin.getLanguage().getPhrase("NextPage") + ">---"); + } else { + sender.sendMessage(ChatColor.GRAY + "-----------------------"); + } + } - public void printHelp(final CommandSender sender, final int page, final String path) { - final HelpEntry subEntry = this.getSubEntry(path); - if (subEntry != null) { - subEntry.printHelp(sender, page); - } else { - sender.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidHelp")); - } - } + public void printHelp(final CommandSender sender, final int page, final String path) { + final HelpEntry subEntry = this.getSubEntry(path); + if (subEntry != null) { + subEntry.printHelp(sender, page); + } else { + sender.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidHelp")); + } + } - public void removeSubEntry(final HelpEntry entry) { - if (subentrys.contains(entry)) { - subentrys.remove(entry); - } - } + public void removeSubEntry(final HelpEntry entry) { + if (subentrys.contains(entry)) { + subentrys.remove(entry); + } + } - public void setDescription(final String description) { - desc = description; - } + public void setDescription(final String description) { + desc = description; + } - public void setName(final String inname) { - name = inname; - } + public void setName(final String inname) { + name = inname; + } - private HelpEntry findSubEntry(final String name) { - for (final HelpEntry entry : subentrys) { - if (entry.getName().equalsIgnoreCase(name)) { - return entry; - } - } - return null; - } + private HelpEntry findSubEntry(final String name) { + for (final HelpEntry entry : subentrys) { + if (entry.getName().equalsIgnoreCase(name)) { + return entry; + } + } + return null; + } - private List getHelpData() { - final List helplines = new ArrayList(); - helplines.addAll(Arrays.asList(lines)); - if (subentrys.size() > 0) { - helplines.add(ChatColor.LIGHT_PURPLE + "---" + plugin.getLanguage().getPhrase("SubCommands") + "---"); - } - for (final HelpEntry entry : subentrys) { - helplines.add(ChatColor.GREEN + entry.getName() + ChatColor.YELLOW + " - " + entry.getDescription()); - } - return helplines; - } + private List getHelpData() { + final List helplines = new ArrayList(); + helplines.addAll(Arrays.asList(lines)); + if (subentrys.size() > 0) { + helplines.add(ChatColor.LIGHT_PURPLE + "---" + plugin.getLanguage().getPhrase("SubCommands") + "---"); + } + for (final HelpEntry entry : subentrys) { + helplines.add(ChatColor.GREEN + entry.getName() + ChatColor.YELLOW + " - " + entry.getDescription()); + } + return helplines; + } } diff --git a/src/main/java/cn/citycraft/Residence/text/help/InformationPager.java b/src/main/java/cn/citycraft/Residence/text/help/InformationPager.java index 4b44529..117115e 100644 --- a/src/main/java/cn/citycraft/Residence/text/help/InformationPager.java +++ b/src/main/java/cn/citycraft/Residence/text/help/InformationPager.java @@ -19,44 +19,44 @@ import cn.citycraft.Residence.ResidenceMain; */ public class InformationPager { - public static int linesPerPage = 7; + public static int linesPerPage = 7; - public static int getLinesPerPage() { - return linesPerPage; - } + public static int getLinesPerPage() { + return linesPerPage; + } - public static void printInfo(final ResidenceMain plugin, final CommandSender sender, final String title, final List lines, final int page) { - final int perPage = 6; - final int start = (page - 1) * perPage; - final int end = start + perPage; - int pagecount = (int) Math.ceil((double) lines.size() / (double) perPage); - if (pagecount == 0) { - pagecount = 1; - } - if (page > pagecount) { - sender.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidPage")); - return; - } - sender.sendMessage(ChatColor.YELLOW + "---<" + ChatColor.GREEN + title + ChatColor.YELLOW + ">---"); - sender.sendMessage(ChatColor.YELLOW + "---<" - + plugin.getLanguage().getPhrase("GenericPage", ChatColor.GREEN + String.format("%d", page) + ChatColor.YELLOW + "." + ChatColor.GREEN + pagecount + ChatColor.YELLOW) + ">---"); - for (int i = start; i < end; i++) { - if (lines.size() > i) { - sender.sendMessage(ChatColor.GREEN + lines.get(i)); - } - } - if (pagecount > page) { - sender.sendMessage(ChatColor.GRAY + "---<" + plugin.getLanguage().getPhrase("NextPage") + ">---"); - } else { - sender.sendMessage(ChatColor.GRAY + "-----------------------"); - } - } + public static void printInfo(final ResidenceMain plugin, final CommandSender sender, final String title, final List lines, final int page) { + final int perPage = 6; + final int start = (page - 1) * perPage; + final int end = start + perPage; + int pagecount = (int) Math.ceil((double) lines.size() / (double) perPage); + if (pagecount == 0) { + pagecount = 1; + } + if (page > pagecount) { + sender.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidPage")); + return; + } + sender.sendMessage(ChatColor.YELLOW + "---<" + ChatColor.GREEN + title + ChatColor.YELLOW + ">---"); + sender.sendMessage(ChatColor.YELLOW + "---<" + + plugin.getLanguage().getPhrase("GenericPage", ChatColor.GREEN + String.format("%d", page) + ChatColor.YELLOW + "." + ChatColor.GREEN + pagecount + ChatColor.YELLOW) + ">---"); + for (int i = start; i < end; i++) { + if (lines.size() > i) { + sender.sendMessage(ChatColor.GREEN + lines.get(i)); + } + } + if (pagecount > page) { + sender.sendMessage(ChatColor.GRAY + "---<" + plugin.getLanguage().getPhrase("NextPage") + ">---"); + } else { + sender.sendMessage(ChatColor.GRAY + "-----------------------"); + } + } - public static void printInfo(final ResidenceMain plugin, final CommandSender sender, final String title, final String[] lines, final int page) { - InformationPager.printInfo(plugin, sender, title, Arrays.asList(lines), page); - } + public static void printInfo(final ResidenceMain plugin, final CommandSender sender, final String title, final String[] lines, final int page) { + InformationPager.printInfo(plugin, sender, title, Arrays.asList(lines), page); + } - public static void setLinesPerPage(final int lines) { - linesPerPage = lines; - } + public static void setLinesPerPage(final int lines) { + linesPerPage = lines; + } } diff --git a/src/main/java/cn/citycraft/Residence/utils/DataBackup.java b/src/main/java/cn/citycraft/Residence/utils/DataBackup.java index dcbdec7..c7e7260 100644 --- a/src/main/java/cn/citycraft/Residence/utils/DataBackup.java +++ b/src/main/java/cn/citycraft/Residence/utils/DataBackup.java @@ -18,101 +18,101 @@ import org.bukkit.World; import cn.citycraft.Residence.ResidenceMain; public class DataBackup { - private final File BackupDir; + private final File BackupDir; - ResidenceMain plugin; + ResidenceMain plugin; - public DataBackup(final ResidenceMain plugin) { - this.plugin = plugin; - BackupDir = new File(plugin.getDataLocation(), "Backup"); - } + public DataBackup(final ResidenceMain plugin) { + this.plugin = plugin; + BackupDir = new File(plugin.getDataLocation(), "Backup"); + } - public void backup() throws IOException { - try { - BackupDir.mkdir(); - final Date date = new Date(); - final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss"); - final File fileZip = new File(BackupDir, dateFormat.format(date) + ".zip"); + public void backup() throws IOException { + try { + BackupDir.mkdir(); + final Date date = new Date(); + final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss"); + final File fileZip = new File(BackupDir, dateFormat.format(date) + ".zip"); - // Create the Source List, and add directories/etc to the file. - final List sources = new ArrayList(); + // Create the Source List, and add directories/etc to the file. + final List sources = new ArrayList(); - final File saveFolder = new File(plugin.getDataLocation(), "Save"); - final File worldFolder = new File(saveFolder, "Worlds"); - if (!saveFolder.isDirectory()) { - return; - } - File saveFile; - for (final World world : Bukkit.getServer().getWorlds()) { - saveFile = new File(worldFolder, "res_" + world.getName() + ".yml"); - if (saveFile.isFile()) { - sources.add(saveFile); - } - } - packZip(fileZip, sources); - } catch (final Exception e) { - e.printStackTrace(); - return; - } - } + final File saveFolder = new File(plugin.getDataLocation(), "Save"); + final File worldFolder = new File(saveFolder, "Worlds"); + if (!saveFolder.isDirectory()) { + return; + } + File saveFile; + for (final World world : Bukkit.getServer().getWorlds()) { + saveFile = new File(worldFolder, "res_" + world.getName() + ".yml"); + if (saveFile.isFile()) { + sources.add(saveFile); + } + } + packZip(fileZip, sources); + } catch (final Exception e) { + e.printStackTrace(); + return; + } + } - private String buildPath(final String path, final String file) { - if (path == null || path.isEmpty()) { - return file; - } + private String buildPath(final String path, final String file) { + if (path == null || path.isEmpty()) { + return file; + } - return path + File.separator + file; - } + return path + File.separator + file; + } - private void packZip(final File output, final List sources) throws IOException { - final ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(output)); - zipOut.setLevel(Deflater.DEFAULT_COMPRESSION); + private void packZip(final File output, final List sources) throws IOException { + final ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(output)); + zipOut.setLevel(Deflater.DEFAULT_COMPRESSION); - for (final File source : sources) { - if (source.isDirectory()) { - zipDir(zipOut, "", source); - } else { - zipFile(zipOut, "", source); - } - } + for (final File source : sources) { + if (source.isDirectory()) { + zipDir(zipOut, "", source); + } else { + zipFile(zipOut, "", source); + } + } - zipOut.flush(); - zipOut.close(); - } + zipOut.flush(); + zipOut.close(); + } - private void zipDir(final ZipOutputStream zos, String path, final File dir) throws IOException { - if (!dir.canRead()) { - return; - } + private void zipDir(final ZipOutputStream zos, String path, final File dir) throws IOException { + if (!dir.canRead()) { + return; + } - final File[] files = dir.listFiles(); - path = buildPath(path, dir.getName()); + final File[] files = dir.listFiles(); + path = buildPath(path, dir.getName()); - for (final File source : files) { - if (source.isDirectory()) { - zipDir(zos, path, source); - } else { - zipFile(zos, path, source); - } - } - } + for (final File source : files) { + if (source.isDirectory()) { + zipDir(zos, path, source); + } else { + zipFile(zos, path, source); + } + } + } - private void zipFile(final ZipOutputStream zos, final String path, final File file) throws IOException { - if (!file.canRead()) { - return; - } + private void zipFile(final ZipOutputStream zos, final String path, final File file) throws IOException { + if (!file.canRead()) { + return; + } - zos.putNextEntry(new ZipEntry(buildPath(path, file.getName()))); + zos.putNextEntry(new ZipEntry(buildPath(path, file.getName()))); - final FileInputStream fis = new FileInputStream(file); - final byte[] buffer = new byte[4092]; - int byteCount = 0; + final FileInputStream fis = new FileInputStream(file); + final byte[] buffer = new byte[4092]; + int byteCount = 0; - while ((byteCount = fis.read(buffer)) != -1) { - zos.write(buffer, 0, byteCount); - } + while ((byteCount = fis.read(buffer)) != -1) { + zos.write(buffer, 0, byteCount); + } - fis.close(); - zos.closeEntry(); - } + fis.close(); + zos.closeEntry(); + } } diff --git a/src/main/java/cn/citycraft/Residence/vaultinterface/ResidenceVaultAdapter.java b/src/main/java/cn/citycraft/Residence/vaultinterface/ResidenceVaultAdapter.java index 3db6c9b..aa4b6e8 100644 --- a/src/main/java/cn/citycraft/Residence/vaultinterface/ResidenceVaultAdapter.java +++ b/src/main/java/cn/citycraft/Residence/vaultinterface/ResidenceVaultAdapter.java @@ -21,127 +21,127 @@ import net.milkbowl.vault.permission.Permission; */ public class ResidenceVaultAdapter implements EconomyInterface, PermissionsInterface { - public static Permission permissions = null; - public static Economy economy = null; - public static Chat chat = null; + public static Permission permissions = null; + public static Economy economy = null; + public static Chat chat = null; - public ResidenceVaultAdapter(final Server s) { - this.setupPermissions(s); - this.setupEconomy(s); - this.setupChat(s); - } + public ResidenceVaultAdapter(final Server s) { + this.setupPermissions(s); + this.setupEconomy(s); + this.setupChat(s); + } - @SuppressWarnings("deprecation") - @Override - public boolean add(final String playerName, final double amount) { - return economy.depositPlayer(playerName, amount).transactionSuccess(); - } + @SuppressWarnings("deprecation") + @Override + public boolean add(final String playerName, final double amount) { + return economy.depositPlayer(playerName, amount).transactionSuccess(); + } - @SuppressWarnings("deprecation") - @Override - public boolean canAfford(final String playerName, final double amount) { - return economy.has(playerName, amount); - } + @SuppressWarnings("deprecation") + @Override + public boolean canAfford(final String playerName, final double amount) { + return economy.has(playerName, amount); + } - public boolean chatOK() { - return chat != null; - } + public boolean chatOK() { + return chat != null; + } - public boolean economyOK() { - return economy != null; - } + public boolean economyOK() { + return economy != null; + } - @SuppressWarnings("deprecation") - @Override - public double getBalance(final String playerName) { - return economy.getBalance(playerName); - } + @SuppressWarnings("deprecation") + @Override + public double getBalance(final String playerName) { + return economy.getBalance(playerName); + } - public String getChatName() { - if (chat != null) - return chat.getName(); - return ""; - } + public String getChatName() { + if (chat != null) + return chat.getName(); + return ""; + } - public String getEconomyName() { - if (economy != null) - return economy.getName(); - return ""; - } + public String getEconomyName() { + if (economy != null) + return economy.getName(); + return ""; + } - @Override - public String getName() { - return "Vault"; - } + @Override + public String getName() { + return "Vault"; + } - public String getPermissionsName() { - if (permissions != null) - return permissions.getName(); - return ""; - } + public String getPermissionsName() { + if (permissions != null) + return permissions.getName(); + return ""; + } - @Override - public String getPlayerGroup(final Player player) { - final String group = permissions.getPrimaryGroup(player).toLowerCase(); - if (group == null) - return group; - return group.toLowerCase(); - } + @Override + public String getPlayerGroup(final Player player) { + final String group = permissions.getPrimaryGroup(player).toLowerCase(); + if (group == null) + return group; + return group.toLowerCase(); + } - @Override - @SuppressWarnings("deprecation") - public String getPlayerGroup(final String player, final String world) { - final String group = permissions.getPrimaryGroup(world, player); - if (group == null) - return group; - return group.toLowerCase(); - } + @Override + @SuppressWarnings("deprecation") + public String getPlayerGroup(final String player, final String world) { + final String group = permissions.getPrimaryGroup(world, player); + if (group == null) + return group; + return group.toLowerCase(); + } - public boolean permissionsOK() { - if (permissions != null && !permissions.getName().equalsIgnoreCase("SuperPerms")) - return true; - return false; - } + public boolean permissionsOK() { + if (permissions != null && !permissions.getName().equalsIgnoreCase("SuperPerms")) + return true; + return false; + } - @SuppressWarnings("deprecation") - @Override - public boolean subtract(final String playerName, final double amount) { - return economy.withdrawPlayer(playerName, amount).transactionSuccess(); - } + @SuppressWarnings("deprecation") + @Override + public boolean subtract(final String playerName, final double amount) { + return economy.withdrawPlayer(playerName, amount).transactionSuccess(); + } - @SuppressWarnings("deprecation") - @Override - public boolean transfer(final String playerFrom, final String playerTo, final double amount) { - if (economy.withdrawPlayer(playerFrom, amount).transactionSuccess()) { - if (economy.depositPlayer(playerTo, amount).transactionSuccess()) - return true; - economy.depositPlayer(playerFrom, amount); - } - return false; - } + @SuppressWarnings("deprecation") + @Override + public boolean transfer(final String playerFrom, final String playerTo, final double amount) { + if (economy.withdrawPlayer(playerFrom, amount).transactionSuccess()) { + if (economy.depositPlayer(playerTo, amount).transactionSuccess()) + return true; + economy.depositPlayer(playerFrom, amount); + } + return false; + } - private boolean setupChat(final Server s) { - final RegisteredServiceProvider chatProvider = s.getServicesManager().getRegistration(net.milkbowl.vault.chat.Chat.class); - if (chatProvider != null) { - chat = chatProvider.getProvider(); - } - return (chat != null); - } + private boolean setupChat(final Server s) { + final RegisteredServiceProvider chatProvider = s.getServicesManager().getRegistration(net.milkbowl.vault.chat.Chat.class); + if (chatProvider != null) { + chat = chatProvider.getProvider(); + } + return (chat != null); + } - private boolean setupEconomy(final Server s) { - final RegisteredServiceProvider economyProvider = s.getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class); - if (economyProvider != null) { - economy = economyProvider.getProvider(); - } - return (economy != null); - } + private boolean setupEconomy(final Server s) { + final RegisteredServiceProvider economyProvider = s.getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class); + if (economyProvider != null) { + economy = economyProvider.getProvider(); + } + return (economy != null); + } - private boolean setupPermissions(final Server s) { - final RegisteredServiceProvider permissionProvider = s.getServicesManager().getRegistration(net.milkbowl.vault.permission.Permission.class); - if (permissionProvider != null) { - permissions = permissionProvider.getProvider(); - } - return (permissions != null); - } + private boolean setupPermissions(final Server s) { + final RegisteredServiceProvider permissionProvider = s.getServicesManager().getRegistration(net.milkbowl.vault.permission.Permission.class); + if (permissionProvider != null) { + permissions = permissionProvider.getProvider(); + } + return (permissions != null); + } } \ No newline at end of file diff --git a/src/main/java/com/bekvon/bukkit/residence/Residence.java b/src/main/java/com/bekvon/bukkit/residence/Residence.java index 25c7e57..7f17806 100644 --- a/src/main/java/com/bekvon/bukkit/residence/Residence.java +++ b/src/main/java/com/bekvon/bukkit/residence/Residence.java @@ -27,117 +27,117 @@ import cn.citycraft.Residence.text.Language; import cn.citycraft.Residence.text.help.HelpEntry; public class Residence { - static ResidenceMain instance; + static ResidenceMain instance; - public Residence(final ResidenceMain instance) { - Residence.instance = instance; - } + public Residence(final ResidenceMain instance) { + Residence.instance = instance; + } - public static ChatManager getChatManager() { - return instance.getChatManager(); - } + public static ChatManager getChatManager() { + return instance.getChatManager(); + } - public static ConfigManager getConfigManager() { - return instance.getConfigManager(); - } + public static ConfigManager getConfigManager() { + return instance.getConfigManager(); + } - public static File getDataLocation() { - return instance.getDataFolder(); - } + public static File getDataLocation() { + return instance.getDataFolder(); + } - public static Map getDeleteConfirm() { - return instance.getDeleteConfirm(); - } + public static Map getDeleteConfirm() { + return instance.getDeleteConfirm(); + } - public static EconomyInterface getEconomyManager() { - return instance.getEconomyManager(); - } + public static EconomyInterface getEconomyManager() { + return instance.getEconomyManager(); + } - public static EntityManager getEntityManager() { - return instance.getEntityManager(); - } + public static EntityManager getEntityManager() { + return instance.getEntityManager(); + } - public static HelpEntry getHelppages() { - return instance.getHelppages(); - } + public static HelpEntry getHelppages() { + return instance.getHelppages(); + } - public static WorldItemManager getItemManager() { - return instance.getItemManager(); - } + public static WorldItemManager getItemManager() { + return instance.getItemManager(); + } - public static Language getLanguage() { - if (instance.getLanguage() == null) { - instance.setLanguage(new Language()); - } - return instance.getLanguage(); - } + public static Language getLanguage() { + if (instance.getLanguage() == null) { + instance.setLanguage(new Language()); + } + return instance.getLanguage(); + } - public static LeaseManager getLeaseManager() { - return instance.getLeaseManager(); - } + public static LeaseManager getLeaseManager() { + return instance.getLeaseManager(); + } - public static PermissionListManager getPermissionListManager() { - return instance.getPermissionListManager(); - } + public static PermissionListManager getPermissionListManager() { + return instance.getPermissionListManager(); + } - public static PermissionManager getPermissionManager() { - return instance.getPermissionManager(); - } + public static PermissionManager getPermissionManager() { + return instance.getPermissionManager(); + } - public static FlagPermissions getPermsByLoc(final Location loc) { - final ClaimedResidence res = getResidenceManager().getByLoc(loc); - if (res != null) { - return res.getPermissions(); - } - return getWorldFlags().getPerms(loc.getWorld().getName()); - } + public static FlagPermissions getPermsByLoc(final Location loc) { + final ClaimedResidence res = getResidenceManager().getByLoc(loc); + if (res != null) { + return res.getPermissions(); + } + return getWorldFlags().getPerms(loc.getWorld().getName()); + } - public static FlagPermissions getPermsByLocForPlayer(final Location loc, final Player player) { - final ClaimedResidence res = getResidenceManager().getByLoc(loc); - if (res != null) { - return res.getPermissions(); - } else if (player != null) { - return getWorldFlags().getPerms(player); - } else { - return getWorldFlags().getPerms(loc.getWorld().getName()); - } - } + public static FlagPermissions getPermsByLocForPlayer(final Location loc, final Player player) { + final ClaimedResidence res = getResidenceManager().getByLoc(loc); + if (res != null) { + return res.getPermissions(); + } else if (player != null) { + return getWorldFlags().getPerms(player); + } else { + return getWorldFlags().getPerms(loc.getWorld().getName()); + } + } - public static RentManager getRentManager() { - return instance.getRentManager(); - } + public static RentManager getRentManager() { + return instance.getRentManager(); + } - public static ResidenceManager getResidenceManager() { - return instance.getResidenceManager(); - } + public static ResidenceManager getResidenceManager() { + return instance.getResidenceManager(); + } - public static SelectionManager getSelectionManager() { - return instance.getSelectionManager(); - } + public static SelectionManager getSelectionManager() { + return instance.getSelectionManager(); + } - public static TransactionManager getTransactionManager() { - return instance.getTransactionManager(); - } + public static TransactionManager getTransactionManager() { + return instance.getTransactionManager(); + } - public static WorldFlagManager getWorldFlags() { - return instance.getWorldFlags(); - } + public static WorldFlagManager getWorldFlags() { + return instance.getWorldFlags(); + } - public static boolean isResAdminOn(final Player player) { - if (instance.getResadminToggle().contains(player.getName())) { - return true; - } - return false; - } + public static boolean isResAdminOn(final Player player) { + if (instance.getResadminToggle().contains(player.getName())) { + return true; + } + return false; + } - public static boolean isResAdminOn(final String player) { - if (instance.getResadminToggle().contains(player.toLowerCase())) { - return true; - } - return false; - } + public static boolean isResAdminOn(final String player) { + if (instance.getResadminToggle().contains(player.toLowerCase())) { + return true; + } + return false; + } - public static boolean isUseWorldEdit() { - return instance.isUseWorldEdit(); - } + public static boolean isUseWorldEdit() { + return instance.isUseWorldEdit(); + } } diff --git a/src/main/java/com/bekvon/bukkit/residence/event/CancellableResidenceEvent.java b/src/main/java/com/bekvon/bukkit/residence/event/CancellableResidenceEvent.java index 6cccc8a..f210d43 100644 --- a/src/main/java/com/bekvon/bukkit/residence/event/CancellableResidenceEvent.java +++ b/src/main/java/com/bekvon/bukkit/residence/event/CancellableResidenceEvent.java @@ -15,21 +15,20 @@ import com.bekvon.bukkit.residence.protection.ClaimedResidence; */ public class CancellableResidenceEvent extends ResidenceEvent implements Cancellable { - protected boolean cancelled; + protected boolean cancelled; - public CancellableResidenceEvent(String eventName, ClaimedResidence resref) - { - super(eventName,resref); - } + public CancellableResidenceEvent(String eventName, ClaimedResidence resref) { + super(eventName, resref); + } - @Override - public boolean isCancelled() { - return cancelled; - } + @Override + public boolean isCancelled() { + return cancelled; + } - @Override - public void setCancelled(boolean bln) { - cancelled = bln; - } + @Override + public void setCancelled(boolean bln) { + cancelled = bln; + } } diff --git a/src/main/java/com/bekvon/bukkit/residence/event/CancellableResidencePlayerEvent.java b/src/main/java/com/bekvon/bukkit/residence/event/CancellableResidencePlayerEvent.java index bce7a30..e63d4fc 100644 --- a/src/main/java/com/bekvon/bukkit/residence/event/CancellableResidencePlayerEvent.java +++ b/src/main/java/com/bekvon/bukkit/residence/event/CancellableResidencePlayerEvent.java @@ -16,22 +16,21 @@ import com.bekvon.bukkit.residence.protection.ClaimedResidence; */ public class CancellableResidencePlayerEvent extends ResidencePlayerEvent implements Cancellable { - protected boolean cancelled; + protected boolean cancelled; - public CancellableResidencePlayerEvent(String eventName, ClaimedResidence resref, Player player) - { - super(eventName, resref, player); - cancelled = false; - } + public CancellableResidencePlayerEvent(String eventName, ClaimedResidence resref, Player player) { + super(eventName, resref, player); + cancelled = false; + } - @Override - public boolean isCancelled() { - return cancelled; - } + @Override + public boolean isCancelled() { + return cancelled; + } - @Override - public void setCancelled(boolean bln) { - cancelled = bln; - } + @Override + public void setCancelled(boolean bln) { + cancelled = bln; + } } diff --git a/src/main/java/com/bekvon/bukkit/residence/event/CancellableResidencePlayerFlagEvent.java b/src/main/java/com/bekvon/bukkit/residence/event/CancellableResidencePlayerFlagEvent.java index 99da572..ead4bf7 100644 --- a/src/main/java/com/bekvon/bukkit/residence/event/CancellableResidencePlayerFlagEvent.java +++ b/src/main/java/com/bekvon/bukkit/residence/event/CancellableResidencePlayerFlagEvent.java @@ -16,21 +16,20 @@ import com.bekvon.bukkit.residence.protection.ClaimedResidence; */ public class CancellableResidencePlayerFlagEvent extends ResidencePlayerFlagEvent implements Cancellable { - protected boolean cancelled; + protected boolean cancelled; - public CancellableResidencePlayerFlagEvent(String eventName, ClaimedResidence resref, Player player, String flag, FlagType type, String target) - { - super(eventName, resref, player, flag, type, target); - } + public CancellableResidencePlayerFlagEvent(String eventName, ClaimedResidence resref, Player player, String flag, FlagType type, String target) { + super(eventName, resref, player, flag, type, target); + } - @Override - public boolean isCancelled() { - return cancelled; - } + @Override + public boolean isCancelled() { + return cancelled; + } - @Override - public void setCancelled(boolean bln) { - cancelled = bln; - } + @Override + public void setCancelled(boolean bln) { + cancelled = bln; + } } diff --git a/src/main/java/com/bekvon/bukkit/residence/event/ResidenceChangedEvent.java b/src/main/java/com/bekvon/bukkit/residence/event/ResidenceChangedEvent.java index 3834ab7..2de82bc 100644 --- a/src/main/java/com/bekvon/bukkit/residence/event/ResidenceChangedEvent.java +++ b/src/main/java/com/bekvon/bukkit/residence/event/ResidenceChangedEvent.java @@ -29,7 +29,7 @@ import com.bekvon.bukkit.residence.protection.ClaimedResidence; */ public class ResidenceChangedEvent extends ResidencePlayerEvent { private static final HandlerList handlers = new HandlerList(); - + private ClaimedResidence from = null; private ClaimedResidence to = null; @@ -37,38 +37,41 @@ public class ResidenceChangedEvent extends ResidencePlayerEvent { * Constructs a {@link ResidenceChangedEvent} to identify a residence transition for the * given player * - * @param from the residence that the player left or {@code null} if coming from an - * unprotected area. - * @param to the residence that the player entered or {@code null} if entering an - * unprotected area. - * @param player player involved in the transition + * @param from + * the residence that the player left or {@code null} if coming from an + * unprotected area. + * @param to + * the residence that the player entered or {@code null} if entering an + * unprotected area. + * @param player + * player involved in the transition */ public ResidenceChangedEvent(ClaimedResidence from, ClaimedResidence to, Player player) { super("RESIDENCE_CHANGE", null, player); this.from = from; this.to = to; } - + /** * Returns the residence from which player came. * * @return the residence from which player came or {@code null} if player came from an - * unprotected area + * unprotected area */ public ClaimedResidence getFrom() { - return from; + return from; } - + /** * Returns the residence that player has entered. * * @return the residence that player has entered or {@code null} if player enters an - * unprotected area + * unprotected area */ public ClaimedResidence getTo() { - return to; + return to; } - + @Override public HandlerList getHandlers() { return handlers; diff --git a/src/main/java/com/bekvon/bukkit/residence/event/ResidenceChatEvent.java b/src/main/java/com/bekvon/bukkit/residence/event/ResidenceChatEvent.java index dd013e3..b76a699 100644 --- a/src/main/java/com/bekvon/bukkit/residence/event/ResidenceChatEvent.java +++ b/src/main/java/com/bekvon/bukkit/residence/event/ResidenceChatEvent.java @@ -17,6 +17,7 @@ import com.bekvon.bukkit.residence.protection.ClaimedResidence; public class ResidenceChatEvent extends CancellableResidencePlayerEvent { private static final HandlerList handlers = new HandlerList(); + @Override public HandlerList getHandlers() { return handlers; @@ -28,30 +29,26 @@ public class ResidenceChatEvent extends CancellableResidencePlayerEvent { protected String message; ChatColor color; - + public ResidenceChatEvent(ClaimedResidence resref, Player player, String message, ChatColor color) { super("RESIDENCE_CHAT_EVENT", resref, player); this.message = message; this.color = color; } - - public String getChatMessage() - { + + public String getChatMessage() { return message; } - - public void setChatMessage(String newmessage) - { + + public void setChatMessage(String newmessage) { message = newmessage; } - - public ChatColor getColor() - { + + public ChatColor getColor() { return color; } - - public void setColor(ChatColor c) - { + + public void setColor(ChatColor c) { color = c; } } diff --git a/src/main/java/com/bekvon/bukkit/residence/event/ResidenceCommandEvent.java b/src/main/java/com/bekvon/bukkit/residence/event/ResidenceCommandEvent.java index e36f7c2..4818245 100644 --- a/src/main/java/com/bekvon/bukkit/residence/event/ResidenceCommandEvent.java +++ b/src/main/java/com/bekvon/bukkit/residence/event/ResidenceCommandEvent.java @@ -16,53 +16,51 @@ import org.bukkit.event.HandlerList; */ public class ResidenceCommandEvent extends Event implements Cancellable { - private static final HandlerList handlers = new HandlerList(); - public static HandlerList getHandlerList() { - return handlers; - } + private static final HandlerList handlers = new HandlerList(); - protected boolean cancelled; + public static HandlerList getHandlerList() { + return handlers; + } - protected String cmd; - protected String arglist[]; - CommandSender commandsender; - public ResidenceCommandEvent(String command, String args[], CommandSender sender) - { - super(); - cancelled = false; - arglist = args; - cmd = command; - commandsender = sender; - } + protected boolean cancelled; - public String[] getArgs() - { - return arglist; - } + protected String cmd; + protected String arglist[]; + CommandSender commandsender; - public String getCommand() - { - return cmd; - } + public ResidenceCommandEvent(String command, String args[], CommandSender sender) { + super(); + cancelled = false; + arglist = args; + cmd = command; + commandsender = sender; + } - @Override - public HandlerList getHandlers() { - return handlers; - } + public String[] getArgs() { + return arglist; + } - public CommandSender getSender() - { - return commandsender; - } + public String getCommand() { + return cmd; + } - @Override - public boolean isCancelled() { - return cancelled; - } + @Override + public HandlerList getHandlers() { + return handlers; + } - @Override - public void setCancelled(boolean bln) { - cancelled = bln; - } + public CommandSender getSender() { + return commandsender; + } + + @Override + public boolean isCancelled() { + return cancelled; + } + + @Override + public void setCancelled(boolean bln) { + cancelled = bln; + } } diff --git a/src/main/java/com/bekvon/bukkit/residence/event/ResidenceCreationEvent.java b/src/main/java/com/bekvon/bukkit/residence/event/ResidenceCreationEvent.java index 5d5e73a..67e8666 100644 --- a/src/main/java/com/bekvon/bukkit/residence/event/ResidenceCreationEvent.java +++ b/src/main/java/com/bekvon/bukkit/residence/event/ResidenceCreationEvent.java @@ -18,6 +18,7 @@ import com.bekvon.bukkit.residence.protection.CuboidArea; public class ResidenceCreationEvent extends CancellableResidencePlayerEvent { private static final HandlerList handlers = new HandlerList(); + @Override public HandlerList getHandlers() { return handlers; @@ -30,30 +31,25 @@ public class ResidenceCreationEvent extends CancellableResidencePlayerEvent { protected String resname; CuboidArea area; - public ResidenceCreationEvent(Player player, String newname, ClaimedResidence resref, CuboidArea resarea) - { - super("RESIDENCE_CREATE",resref,player); + public ResidenceCreationEvent(Player player, String newname, ClaimedResidence resref, CuboidArea resarea) { + super("RESIDENCE_CREATE", resref, player); resname = newname; area = resarea; } - public String getResidenceName() - { + public String getResidenceName() { return resname; } - public void setResidenceName(String name) - { + public void setResidenceName(String name) { resname = name; } - public CuboidArea getPhysicalArea() - { + public CuboidArea getPhysicalArea() { return area; } - public void setPhysicalArea(CuboidArea newarea) - { + public void setPhysicalArea(CuboidArea newarea) { area = newarea; } } diff --git a/src/main/java/com/bekvon/bukkit/residence/event/ResidenceDeleteEvent.java b/src/main/java/com/bekvon/bukkit/residence/event/ResidenceDeleteEvent.java index e0b9ad2..3236409 100644 --- a/src/main/java/com/bekvon/bukkit/residence/event/ResidenceDeleteEvent.java +++ b/src/main/java/com/bekvon/bukkit/residence/event/ResidenceDeleteEvent.java @@ -28,19 +28,19 @@ public class ResidenceDeleteEvent extends CancellableResidencePlayerEvent { } public enum DeleteCause { - LEASE_EXPIRE,PLAYER_DELETE,OTHER + LEASE_EXPIRE, + PLAYER_DELETE, + OTHER } - + DeleteCause cause; - public ResidenceDeleteEvent(Player player, ClaimedResidence resref, DeleteCause delcause) - { + public ResidenceDeleteEvent(Player player, ClaimedResidence resref, DeleteCause delcause) { super("RESIDENCE_DELETE", resref, player); cause = delcause; } - public DeleteCause getCause() - { + public DeleteCause getCause() { return cause; } diff --git a/src/main/java/com/bekvon/bukkit/residence/event/ResidenceEvent.java b/src/main/java/com/bekvon/bukkit/residence/event/ResidenceEvent.java index c63567e..4380351 100644 --- a/src/main/java/com/bekvon/bukkit/residence/event/ResidenceEvent.java +++ b/src/main/java/com/bekvon/bukkit/residence/event/ResidenceEvent.java @@ -16,32 +16,31 @@ import com.bekvon.bukkit.residence.protection.ClaimedResidence; */ public class ResidenceEvent extends Event { - private static final HandlerList handlers = new HandlerList(); - public static HandlerList getHandlerList() { - return handlers; - } + private static final HandlerList handlers = new HandlerList(); - private String message; + public static HandlerList getHandlerList() { + return handlers; + } - ClaimedResidence res; + private String message; - public ResidenceEvent(String eventName, ClaimedResidence resref) - { - message = eventName; - res = resref; - } + ClaimedResidence res; - @Override - public HandlerList getHandlers() { - return handlers; - } + public ResidenceEvent(String eventName, ClaimedResidence resref) { + message = eventName; + res = resref; + } - public String getMessage() { - return message; - } + @Override + public HandlerList getHandlers() { + return handlers; + } - public ClaimedResidence getResidence() - { - return res; - } + public String getMessage() { + return message; + } + + public ClaimedResidence getResidence() { + return res; + } } diff --git a/src/main/java/com/bekvon/bukkit/residence/event/ResidenceFlagChangeEvent.java b/src/main/java/com/bekvon/bukkit/residence/event/ResidenceFlagChangeEvent.java index 6d68a22..d789cc3 100644 --- a/src/main/java/com/bekvon/bukkit/residence/event/ResidenceFlagChangeEvent.java +++ b/src/main/java/com/bekvon/bukkit/residence/event/ResidenceFlagChangeEvent.java @@ -18,6 +18,7 @@ import com.bekvon.bukkit.residence.protection.FlagPermissions.FlagState; public class ResidenceFlagChangeEvent extends CancellableResidencePlayerFlagEvent { private static final HandlerList handlers = new HandlerList(); + @Override public HandlerList getHandlers() { return handlers; @@ -29,14 +30,12 @@ public class ResidenceFlagChangeEvent extends CancellableResidencePlayerFlagEven FlagState newstate; - public ResidenceFlagChangeEvent(ClaimedResidence resref, Player player, String flag, FlagType type,FlagState newState, String target) - { + public ResidenceFlagChangeEvent(ClaimedResidence resref, Player player, String flag, FlagType type, FlagState newState, String target) { super("RESIDENCE_FLAG_CHANGE", resref, player, flag, type, target); newstate = newState; } - public FlagState getNewState() - { + public FlagState getNewState() { return newstate; } diff --git a/src/main/java/com/bekvon/bukkit/residence/event/ResidenceFlagCheckEvent.java b/src/main/java/com/bekvon/bukkit/residence/event/ResidenceFlagCheckEvent.java index 3952420..b864f55 100644 --- a/src/main/java/com/bekvon/bukkit/residence/event/ResidenceFlagCheckEvent.java +++ b/src/main/java/com/bekvon/bukkit/residence/event/ResidenceFlagCheckEvent.java @@ -14,46 +14,42 @@ import com.bekvon.bukkit.residence.protection.ClaimedResidence; * @author Administrator */ public class ResidenceFlagCheckEvent extends ResidenceFlagEvent { - private static final HandlerList handlers = new HandlerList(); + private static final HandlerList handlers = new HandlerList(); - public static HandlerList getHandlerList() { - return handlers; - } + public static HandlerList getHandlerList() { + return handlers; + } - private boolean override; + private boolean override; - private boolean overridevalue; - boolean defaultvalue; - public ResidenceFlagCheckEvent(ClaimedResidence resref, String flag, FlagType type, String target, boolean defaultValue) - { - super("RESIDENCE_FLAG_CHECK", resref, flag, type, target); - defaultvalue = defaultValue; - override = false; - } + private boolean overridevalue; + boolean defaultvalue; - public boolean getDefaultValue() - { - return defaultvalue; - } + public ResidenceFlagCheckEvent(ClaimedResidence resref, String flag, FlagType type, String target, boolean defaultValue) { + super("RESIDENCE_FLAG_CHECK", resref, flag, type, target); + defaultvalue = defaultValue; + override = false; + } - @Override - public HandlerList getHandlers() { - return handlers; - } + public boolean getDefaultValue() { + return defaultvalue; + } - public boolean getOverrideValue() - { - return overridevalue; - } + @Override + public HandlerList getHandlers() { + return handlers; + } - public boolean isOverriden() - { - return override; - } + public boolean getOverrideValue() { + return overridevalue; + } - public void overrideCheck(boolean flagval) - { - overridevalue = flagval; - override=true; - } + public boolean isOverriden() { + return override; + } + + public void overrideCheck(boolean flagval) { + overridevalue = flagval; + override = true; + } } diff --git a/src/main/java/com/bekvon/bukkit/residence/event/ResidenceFlagEvent.java b/src/main/java/com/bekvon/bukkit/residence/event/ResidenceFlagEvent.java index f4e28f8..831c2c3 100644 --- a/src/main/java/com/bekvon/bukkit/residence/event/ResidenceFlagEvent.java +++ b/src/main/java/com/bekvon/bukkit/residence/event/ResidenceFlagEvent.java @@ -17,6 +17,7 @@ import com.bekvon.bukkit.residence.protection.FlagPermissions.FlagState; public class ResidenceFlagEvent extends ResidenceEvent { private static final HandlerList handlers = new HandlerList(); + @Override public HandlerList getHandlers() { return handlers; @@ -25,10 +26,11 @@ public class ResidenceFlagEvent extends ResidenceEvent { public static HandlerList getHandlerList() { return handlers; } - - public enum FlagType - { - RESIDENCE,GROUP,PLAYER + + public enum FlagType { + RESIDENCE, + GROUP, + PLAYER } String flagname; @@ -36,26 +38,22 @@ public class ResidenceFlagEvent extends ResidenceEvent { FlagState flagstate; String flagtarget; - public ResidenceFlagEvent(String eventName, ClaimedResidence resref, String flag, FlagType type, String target) - { + public ResidenceFlagEvent(String eventName, ClaimedResidence resref, String flag, FlagType type, String target) { super(eventName, resref); flagname = flag; flagtype = type; flagtarget = target; } - public String getFlag() - { + public String getFlag() { return flagname; } - public FlagType getFlagType() - { + public FlagType getFlagType() { return flagtype; } - public String getFlagTargetPlayerOrGroup() - { + public String getFlagTargetPlayerOrGroup() { return flagtarget; } } diff --git a/src/main/java/com/bekvon/bukkit/residence/event/ResidenceOwnerChangeEvent.java b/src/main/java/com/bekvon/bukkit/residence/event/ResidenceOwnerChangeEvent.java index 70ab37d..5a39892 100644 --- a/src/main/java/com/bekvon/bukkit/residence/event/ResidenceOwnerChangeEvent.java +++ b/src/main/java/com/bekvon/bukkit/residence/event/ResidenceOwnerChangeEvent.java @@ -4,6 +4,7 @@ */ package com.bekvon.bukkit.residence.event; + import org.bukkit.event.HandlerList; import com.bekvon.bukkit.residence.protection.ClaimedResidence; @@ -15,6 +16,7 @@ import com.bekvon.bukkit.residence.protection.ClaimedResidence; public class ResidenceOwnerChangeEvent extends ResidenceEvent { private static final HandlerList handlers = new HandlerList(); + @Override public HandlerList getHandlers() { return handlers; @@ -26,14 +28,12 @@ public class ResidenceOwnerChangeEvent extends ResidenceEvent { protected String newowner; - public ResidenceOwnerChangeEvent(ClaimedResidence resref, String newOwner) - { - super("RESIDENCE_OWNER_CHANGE",resref); + public ResidenceOwnerChangeEvent(ClaimedResidence resref, String newOwner) { + super("RESIDENCE_OWNER_CHANGE", resref); newowner = newOwner; } - public String getNewOwner() - { + public String getNewOwner() { return newowner; } } diff --git a/src/main/java/com/bekvon/bukkit/residence/event/ResidencePlayerEvent.java b/src/main/java/com/bekvon/bukkit/residence/event/ResidencePlayerEvent.java index b8db4c5..e55a9c6 100644 --- a/src/main/java/com/bekvon/bukkit/residence/event/ResidencePlayerEvent.java +++ b/src/main/java/com/bekvon/bukkit/residence/event/ResidencePlayerEvent.java @@ -15,29 +15,29 @@ import com.bekvon.bukkit.residence.protection.ClaimedResidence; */ public class ResidencePlayerEvent extends ResidenceEvent implements ResidencePlayerEventInterface { - Player p; + Player p; - public ResidencePlayerEvent(final String eventName, final ClaimedResidence resref, final Player player) { - super(eventName, resref); - res = resref; - p = player; - } + public ResidencePlayerEvent(final String eventName, final ClaimedResidence resref, final Player player) { + super(eventName, resref); + res = resref; + p = player; + } - @Override - public Player getPlayer() { - return p; - } + @Override + public Player getPlayer() { + return p; + } - @Override - public boolean isAdmin() { - if (isPlayer()) { - return p.hasPermission("residence.admin") || p.isOp(); - } - return true; - } + @Override + public boolean isAdmin() { + if (isPlayer()) { + return p.hasPermission("residence.admin") || p.isOp(); + } + return true; + } - @Override - public boolean isPlayer() { - return p != null; - } + @Override + public boolean isPlayer() { + return p != null; + } } diff --git a/src/main/java/com/bekvon/bukkit/residence/event/ResidencePlayerEventInterface.java b/src/main/java/com/bekvon/bukkit/residence/event/ResidencePlayerEventInterface.java index 9400215..4a04cfa 100644 --- a/src/main/java/com/bekvon/bukkit/residence/event/ResidencePlayerEventInterface.java +++ b/src/main/java/com/bekvon/bukkit/residence/event/ResidencePlayerEventInterface.java @@ -13,6 +13,8 @@ import org.bukkit.entity.Player; */ public interface ResidencePlayerEventInterface { public boolean isAdmin(); + public boolean isPlayer(); + public Player getPlayer(); } diff --git a/src/main/java/com/bekvon/bukkit/residence/event/ResidencePlayerFlagEvent.java b/src/main/java/com/bekvon/bukkit/residence/event/ResidencePlayerFlagEvent.java index 4b22112..e093a99 100644 --- a/src/main/java/com/bekvon/bukkit/residence/event/ResidencePlayerFlagEvent.java +++ b/src/main/java/com/bekvon/bukkit/residence/event/ResidencePlayerFlagEvent.java @@ -14,28 +14,28 @@ import com.bekvon.bukkit.residence.protection.ClaimedResidence; * @author Administrator */ public class ResidencePlayerFlagEvent extends ResidenceFlagEvent implements ResidencePlayerEventInterface { - Player p; + Player p; - public ResidencePlayerFlagEvent(final String eventName, final ClaimedResidence resref, final Player player, final String flag, final FlagType type, final String target) { - super(eventName, resref, flag, type, target); - p = player; - } + public ResidencePlayerFlagEvent(final String eventName, final ClaimedResidence resref, final Player player, final String flag, final FlagType type, final String target) { + super(eventName, resref, flag, type, target); + p = player; + } - @Override - public Player getPlayer() { - return p; - } + @Override + public Player getPlayer() { + return p; + } - @Override - public boolean isAdmin() { - if (isPlayer()) { - return p.hasPermission("residence.admin") || p.isOp(); - } - return true; - } + @Override + public boolean isAdmin() { + if (isPlayer()) { + return p.hasPermission("residence.admin") || p.isOp(); + } + return true; + } - @Override - public boolean isPlayer() { - return p != null; - } + @Override + public boolean isPlayer() { + return p != null; + } } diff --git a/src/main/java/com/bekvon/bukkit/residence/event/ResidenceRenameEvent.java b/src/main/java/com/bekvon/bukkit/residence/event/ResidenceRenameEvent.java index f6030ed..94bde98 100644 --- a/src/main/java/com/bekvon/bukkit/residence/event/ResidenceRenameEvent.java +++ b/src/main/java/com/bekvon/bukkit/residence/event/ResidenceRenameEvent.java @@ -3,23 +3,27 @@ package com.bekvon.bukkit.residence.event; import com.bekvon.bukkit.residence.protection.ClaimedResidence; public class ResidenceRenameEvent extends ResidenceEvent { - protected String NewResName; - protected String OldResName; - protected ClaimedResidence res; - public ResidenceRenameEvent(ClaimedResidence resref, String NewName, String OldName) { - super("RESIDENCE_RENAME", resref); - NewResName = NewName; - OldResName = OldName; - res = resref; - } - public String getNewResidenceName() { - return NewResName; - } - public String getOldResidenceName() { - return OldResName; - } - @Override - public ClaimedResidence getResidence() { - return res; - } + protected String NewResName; + protected String OldResName; + protected ClaimedResidence res; + + public ResidenceRenameEvent(ClaimedResidence resref, String NewName, String OldName) { + super("RESIDENCE_RENAME", resref); + NewResName = NewName; + OldResName = OldName; + res = resref; + } + + public String getNewResidenceName() { + return NewResName; + } + + public String getOldResidenceName() { + return OldResName; + } + + @Override + public ClaimedResidence getResidence() { + return res; + } } diff --git a/src/main/java/com/bekvon/bukkit/residence/event/ResidenceRentEvent.java b/src/main/java/com/bekvon/bukkit/residence/event/ResidenceRentEvent.java index 166b042..55c3d4b 100644 --- a/src/main/java/com/bekvon/bukkit/residence/event/ResidenceRentEvent.java +++ b/src/main/java/com/bekvon/bukkit/residence/event/ResidenceRentEvent.java @@ -17,6 +17,7 @@ import com.bekvon.bukkit.residence.protection.ClaimedResidence; public class ResidenceRentEvent extends CancellableResidencePlayerEvent { private static final HandlerList handlers = new HandlerList(); + @Override public HandlerList getHandlers() { return handlers; @@ -28,19 +29,20 @@ public class ResidenceRentEvent extends CancellableResidencePlayerEvent { RentEventType eventtype; - public enum RentEventType - { - RENT, UNRENT, RENTABLE, UNRENTABLE, RENT_EXPIRE + public enum RentEventType { + RENT, + UNRENT, + RENTABLE, + UNRENTABLE, + RENT_EXPIRE } - public ResidenceRentEvent(ClaimedResidence resref, Player player, RentEventType type) - { + public ResidenceRentEvent(ClaimedResidence resref, Player player, RentEventType type) { super("RESIDENCE_RENT_EVENT", resref, player); eventtype = type; } - public RentEventType getCause() - { + public RentEventType getCause() { return eventtype; } diff --git a/src/main/java/com/bekvon/bukkit/residence/event/ResidenceTPEvent.java b/src/main/java/com/bekvon/bukkit/residence/event/ResidenceTPEvent.java index afd83b0..b58d0a8 100644 --- a/src/main/java/com/bekvon/bukkit/residence/event/ResidenceTPEvent.java +++ b/src/main/java/com/bekvon/bukkit/residence/event/ResidenceTPEvent.java @@ -18,6 +18,7 @@ import com.bekvon.bukkit.residence.protection.ClaimedResidence; public class ResidenceTPEvent extends CancellableResidencePlayerEvent { private static final HandlerList handlers = new HandlerList(); + @Override public HandlerList getHandlers() { return handlers; @@ -29,20 +30,18 @@ public class ResidenceTPEvent extends CancellableResidencePlayerEvent { Player reqPlayer; Location loc; - public ResidenceTPEvent(ClaimedResidence resref, Location teleloc, Player player, Player reqplayer) - { - super("RESIDENCE_TP",resref,player); + + public ResidenceTPEvent(ClaimedResidence resref, Location teleloc, Player player, Player reqplayer) { + super("RESIDENCE_TP", resref, player); reqPlayer = reqplayer; loc = teleloc; } - public Player getRequestingPlayer() - { + public Player getRequestingPlayer() { return reqPlayer; } - public Location getTeleportLocation() - { + public Location getTeleportLocation() { return loc; } } diff --git a/src/main/java/com/bekvon/bukkit/residence/protection/ClaimedResidence.java b/src/main/java/com/bekvon/bukkit/residence/protection/ClaimedResidence.java index 11ecc82..fbb5b67 100644 --- a/src/main/java/com/bekvon/bukkit/residence/protection/ClaimedResidence.java +++ b/src/main/java/com/bekvon/bukkit/residence/protection/ClaimedResidence.java @@ -18,6 +18,7 @@ import org.bukkit.entity.Player; import com.bekvon.bukkit.residence.event.ResidenceTPEvent; +import cn.citycraft.PluginHelper.utils.CompatibleUtil; import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.economy.ResidenceBank; import cn.citycraft.Residence.economy.TransactionManager; @@ -33,925 +34,925 @@ import cn.citycraft.Residence.text.help.InformationPager; */ public class ClaimedResidence { - protected Map areas; - protected ResidenceBank bank; - protected ResidenceItemList blacklist; - protected String enterMessage; - protected ResidenceItemList ignorelist; - protected String leaveMessage; - protected ClaimedResidence parent; - protected ResidencePermissions perms; - protected ResidenceMain plugin; - protected Map subzones; - protected Location tpLoc; + protected Map areas; + protected ResidenceBank bank; + protected ResidenceItemList blacklist; + protected String enterMessage; + protected ResidenceItemList ignorelist; + protected String leaveMessage; + protected ClaimedResidence parent; + protected ResidencePermissions perms; + protected ResidenceMain plugin; + protected Map subzones; + protected Location tpLoc; - public ClaimedResidence(final ResidenceMain plugin, final String creationWorld) { - this(plugin, "Server Land", creationWorld); - } + public ClaimedResidence(final ResidenceMain plugin, final String creationWorld) { + this(plugin, "Server Land", creationWorld); + } - public ClaimedResidence(final ResidenceMain plugin, final String creator, final String creationWorld) { - this(plugin); - perms = new ResidencePermissions(plugin, this, creator, creationWorld); - } + public ClaimedResidence(final ResidenceMain plugin, final String creator, final String creationWorld) { + this(plugin); + perms = new ResidencePermissions(plugin, this, creator, creationWorld); + } - public ClaimedResidence(final ResidenceMain plugin, final String creator, final String creationWorld, final ClaimedResidence parentResidence) { - this(plugin, creator, creationWorld); - parent = parentResidence; - } + public ClaimedResidence(final ResidenceMain plugin, final String creator, final String creationWorld, final ClaimedResidence parentResidence) { + this(plugin, creator, creationWorld); + parent = parentResidence; + } - private ClaimedResidence(final ResidenceMain plugin) { - this.plugin = plugin; - subzones = new HashMap<>(); - areas = new HashMap<>(); - bank = new ResidenceBank(plugin, this); - blacklist = new ResidenceItemList(plugin, this, ListType.BLACKLIST); - ignorelist = new ResidenceItemList(plugin, this, ListType.IGNORELIST); - } + private ClaimedResidence(final ResidenceMain plugin) { + this.plugin = plugin; + subzones = new HashMap<>(); + areas = new HashMap<>(); + bank = new ResidenceBank(plugin, this); + blacklist = new ResidenceItemList(plugin, this, ListType.BLACKLIST); + ignorelist = new ResidenceItemList(plugin, this, ListType.IGNORELIST); + } - @SuppressWarnings({ "unchecked", "rawtypes" }) - public static ClaimedResidence load(final ResidenceMain plugin, final Map root, final ClaimedResidence parent) throws Exception { - final ClaimedResidence res = new ClaimedResidence(plugin); - if (root == null) { - throw new Exception("Null residence!"); - } - res.enterMessage = (String) root.get("EnterMessage"); - res.leaveMessage = (String) root.get("LeaveMessage"); - if (root.containsKey("StoredMoney")) { - res.bank.setStoredMoney((Integer) root.get("StoredMoney")); - } - if (root.containsKey("BlackList")) { - res.blacklist = ResidenceItemList.load(plugin, res, (Map) root.get("BlackList")); - } - if (root.containsKey("IgnoreList")) { - res.ignorelist = ResidenceItemList.load(plugin, res, (Map) root.get("IgnoreList")); - } - final Map areamap = (Map) root.get("Areas"); - res.perms = ResidencePermissions.load(plugin, res, (Map) root.get("Permissions")); - final World world = Bukkit.getServer().getWorld(res.perms.getWorld()); - if (world == null) { - throw new Exception("Cant Find World: " + res.perms.getWorld()); - } - for (final Entry map : areamap.entrySet()) { - res.areas.put(map.getKey(), CuboidArea.load((Map) map.getValue(), world)); - } - final Map subzonemap = (Map) root.get("Subzones"); - for (final Entry map : subzonemap.entrySet()) { - final ClaimedResidence subres = ClaimedResidence.load(plugin, (Map) map.getValue(), res); - if (plugin.getConfigManager().flagsInherit()) { - subres.getPermissions().setParent(res.getPermissions()); - } - res.subzones.put(map.getKey(), subres); - } - res.parent = parent; - final Map tploc = (Map) root.get("TPLoc"); - if (tploc != null) { - res.tpLoc = new Location(world, (Integer) tploc.get("X"), (Integer) tploc.get("Y"), (Integer) tploc.get("Z")); - } - return res; - } + @SuppressWarnings({ "unchecked", "rawtypes" }) + public static ClaimedResidence load(final ResidenceMain plugin, final Map root, final ClaimedResidence parent) throws Exception { + final ClaimedResidence res = new ClaimedResidence(plugin); + if (root == null) { + throw new Exception("Null residence!"); + } + res.enterMessage = (String) root.get("EnterMessage"); + res.leaveMessage = (String) root.get("LeaveMessage"); + if (root.containsKey("StoredMoney")) { + res.bank.setStoredMoney((Integer) root.get("StoredMoney")); + } + if (root.containsKey("BlackList")) { + res.blacklist = ResidenceItemList.load(plugin, res, (Map) root.get("BlackList")); + } + if (root.containsKey("IgnoreList")) { + res.ignorelist = ResidenceItemList.load(plugin, res, (Map) root.get("IgnoreList")); + } + final Map areamap = (Map) root.get("Areas"); + res.perms = ResidencePermissions.load(plugin, res, (Map) root.get("Permissions")); + final World world = Bukkit.getServer().getWorld(res.perms.getWorld()); + if (world == null) { + throw new Exception("Cant Find World: " + res.perms.getWorld()); + } + for (final Entry map : areamap.entrySet()) { + res.areas.put(map.getKey(), CuboidArea.load((Map) map.getValue(), world)); + } + final Map subzonemap = (Map) root.get("Subzones"); + for (final Entry map : subzonemap.entrySet()) { + final ClaimedResidence subres = ClaimedResidence.load(plugin, (Map) map.getValue(), res); + if (plugin.getConfigManager().flagsInherit()) { + subres.getPermissions().setParent(res.getPermissions()); + } + res.subzones.put(map.getKey(), subres); + } + res.parent = parent; + final Map tploc = (Map) root.get("TPLoc"); + if (tploc != null) { + res.tpLoc = new Location(world, (Integer) tploc.get("X"), (Integer) tploc.get("Y"), (Integer) tploc.get("Z")); + } + return res; + } - public boolean addArea(final CuboidArea area, final String name) { - return addArea(null, area, name, true); - } + public boolean addArea(final CuboidArea area, final String name) { + return addArea(null, area, name, true); + } - public boolean addArea(final Player player, final CuboidArea area, final String name, final boolean resadmin) { - if (!plugin.validName(name)) { - if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidNameCharacters")); - } - return false; - } - if (areas.containsKey(name)) { - if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaExists")); - } - return false; - } - if (!resadmin && plugin.getConfigManager().getEnforceAreaInsideArea() && getParent() == null) { - boolean inside = false; - for (final CuboidArea are : areas.values()) { - if (are.isAreaWithinArea(area)) { - inside = true; - } - } - if (!inside) { - return false; - } - } - if (!area.getWorld().getName().equalsIgnoreCase(perms.getWorld())) { - if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaDiffWorld")); - } - return false; - } - if (parent == null) { - final String collideResidence = plugin.getResidenceManager().checkAreaCollision(area, this); - if (collideResidence != null) { - if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaCollision", ChatColor.YELLOW + collideResidence)); - } - return false; - } - } else { - final String[] szs = parent.listSubzones(); - for (final String sz : szs) { - final ClaimedResidence res = parent.getSubzone(sz); - if (res != null && res != this) { - if (res.checkCollision(area)) { - if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaSubzoneCollision", ChatColor.YELLOW + sz)); - } - return false; - } - } - } - } - if (!resadmin && player != null) { - if (!this.perms.hasResidencePermission(player, true)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - return false; - } - if (parent != null) { - if (!parent.containsLoc(area.getHighLoc()) || !parent.containsLoc(area.getLowLoc())) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaNotWithinParent")); - return false; - } - if (!parent.getPermissions().hasResidencePermission(player, true) && !parent.getPermissions().playerHas(player.getName(), "subzone", true)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ParentNoPermission")); - return false; - } - } - final PermissionGroup group = plugin.getPermissionManager().getGroup(player); - if (!group.canCreateResidences() && !player.hasPermission("residence.create")) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - return false; - } - if (areas.size() >= group.getMaxPhysicalPerResidence()) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaMaxPhysical")); - return false; - } - if (!group.inLimits(area)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaSizeLimit")); - return false; - } - if (group.getMinHeight() > area.getLowLoc().getBlockY()) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaLowLimit", ChatColor.YELLOW + String.format("%d", group.getMinHeight()))); - return false; - } - if (group.getMaxHeight() < area.getHighLoc().getBlockY()) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaHighLimit", ChatColor.YELLOW + String.format("%d", group.getMaxHeight()))); - return false; - } - if (parent == null && plugin.getConfigManager().enableEconomy()) { - final int chargeamount = (int) Math.ceil(area.getSize() * group.getCostPerBlock()); - if (!TransactionManager.chargeEconomyMoney(plugin, player, chargeamount)) { - return false; - } - } - } - plugin.getResidenceManager().removeChunkList(getName()); - areas.put(name, area); - plugin.getResidenceManager().calculateChunks(getName()); - if (player != null) { - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("AreaCreate", ChatColor.YELLOW + name)); - } - return true; - } + public boolean addArea(final Player player, final CuboidArea area, final String name, final boolean resadmin) { + if (!plugin.validName(name)) { + if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidNameCharacters")); + } + return false; + } + if (areas.containsKey(name)) { + if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaExists")); + } + return false; + } + if (!resadmin && plugin.getConfigManager().getEnforceAreaInsideArea() && getParent() == null) { + boolean inside = false; + for (final CuboidArea are : areas.values()) { + if (are.isAreaWithinArea(area)) { + inside = true; + } + } + if (!inside) { + return false; + } + } + if (!area.getWorld().getName().equalsIgnoreCase(perms.getWorld())) { + if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaDiffWorld")); + } + return false; + } + if (parent == null) { + final String collideResidence = plugin.getResidenceManager().checkAreaCollision(area, this); + if (collideResidence != null) { + if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaCollision", ChatColor.YELLOW + collideResidence)); + } + return false; + } + } else { + final String[] szs = parent.listSubzones(); + for (final String sz : szs) { + final ClaimedResidence res = parent.getSubzone(sz); + if (res != null && res != this) { + if (res.checkCollision(area)) { + if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaSubzoneCollision", ChatColor.YELLOW + sz)); + } + return false; + } + } + } + } + if (!resadmin && player != null) { + if (!this.perms.hasResidencePermission(player, true)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + return false; + } + if (parent != null) { + if (!parent.containsLoc(area.getHighLoc()) || !parent.containsLoc(area.getLowLoc())) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaNotWithinParent")); + return false; + } + if (!parent.getPermissions().hasResidencePermission(player, true) && !parent.getPermissions().playerHas(player.getName(), "subzone", true)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ParentNoPermission")); + return false; + } + } + final PermissionGroup group = plugin.getPermissionManager().getGroup(player); + if (!group.canCreateResidences() && !player.hasPermission("residence.create")) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + return false; + } + if (areas.size() >= group.getMaxPhysicalPerResidence()) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaMaxPhysical")); + return false; + } + if (!group.inLimits(area)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaSizeLimit")); + return false; + } + if (group.getMinHeight() > area.getLowLoc().getBlockY()) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaLowLimit", ChatColor.YELLOW + String.format("%d", group.getMinHeight()))); + return false; + } + if (group.getMaxHeight() < area.getHighLoc().getBlockY()) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaHighLimit", ChatColor.YELLOW + String.format("%d", group.getMaxHeight()))); + return false; + } + if (parent == null && plugin.getConfigManager().enableEconomy()) { + final int chargeamount = (int) Math.ceil(area.getSize() * group.getCostPerBlock()); + if (!TransactionManager.chargeEconomyMoney(plugin, player, chargeamount)) { + return false; + } + } + } + plugin.getResidenceManager().removeChunkList(getName()); + areas.put(name, area); + plugin.getResidenceManager().calculateChunks(getName()); + if (player != null) { + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("AreaCreate", ChatColor.YELLOW + name)); + } + return true; + } - public boolean addSubzone(final Player player, final Location loc1, final Location loc2, final String name, final boolean resadmin) { - if (player == null) { - return this.addSubzone(null, "Server Land", loc1, loc2, name, resadmin); - } - return this.addSubzone(player, player.getName(), loc1, loc2, name, resadmin); - } + public boolean addSubzone(final Player player, final Location loc1, final Location loc2, final String name, final boolean resadmin) { + if (player == null) { + return this.addSubzone(null, "Server Land", loc1, loc2, name, resadmin); + } + return this.addSubzone(player, player.getName(), loc1, loc2, name, resadmin); + } - public boolean addSubzone(final Player player, final String owner, final Location loc1, final Location loc2, final String name, final boolean resadmin) { - if (!plugin.validName(name)) { - if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidNameCharacters")); - } - return false; - } - if (!(containsLoc(loc1) && containsLoc(loc2))) { - if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SubzoneSelectInside")); - } - return false; - } - if (subzones.containsKey(name)) { - if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SubzoneExists", ChatColor.YELLOW + name)); - } - return false; - } - if (!resadmin && player != null) { - if (!this.perms.hasResidencePermission(player, true)) { - if (!this.perms.playerHas(player.getName(), "subzone", this.perms.playerHas(player.getName(), "admin", false))) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - return false; - } - } - final PermissionGroup group = plugin.getPermissionManager().getGroup(player); - if (getZoneDepth() >= group.getMaxSubzoneDepth()) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SubzoneMaxDepth")); - return false; - } - } - final CuboidArea newArea = new CuboidArea(loc1, loc2); - final Set> set = subzones.entrySet(); - for (final Entry resEntry : set) { - final ClaimedResidence res = resEntry.getValue(); - if (res.checkCollision(newArea)) { - if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SubzoneCollide", ChatColor.YELLOW + resEntry.getKey())); - } - return false; - } - } - ClaimedResidence newres; - if (player != null) { - newres = new ClaimedResidence(plugin, owner, perms.getWorld(), this); - newres.addArea(player, newArea, name, resadmin); - } else { - newres = new ClaimedResidence(plugin, owner, perms.getWorld(), this); - newres.addArea(newArea, name); - } - if (newres.getAreaCount() != 0) { - newres.getPermissions().applyDefaultFlags(); - if (player != null) { - final PermissionGroup group = plugin.getPermissionManager().getGroup(player); - newres.setEnterMessage(group.getDefaultEnterMessage()); - newres.setLeaveMessage(group.getDefaultLeaveMessage()); - } - if (plugin.getConfigManager().flagsInherit()) { - newres.getPermissions().setParent(perms); - } - subzones.put(name, newres); - if (player != null) { - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("SubzoneCreate", ChatColor.YELLOW + name)); - } - return true; - } - if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SubzoneCreateFail", ChatColor.YELLOW + name)); - } - return false; - } + public boolean addSubzone(final Player player, final String owner, final Location loc1, final Location loc2, final String name, final boolean resadmin) { + if (!plugin.validName(name)) { + if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidNameCharacters")); + } + return false; + } + if (!(containsLoc(loc1) && containsLoc(loc2))) { + if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SubzoneSelectInside")); + } + return false; + } + if (subzones.containsKey(name)) { + if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SubzoneExists", ChatColor.YELLOW + name)); + } + return false; + } + if (!resadmin && player != null) { + if (!this.perms.hasResidencePermission(player, true)) { + if (!this.perms.playerHas(player.getName(), "subzone", this.perms.playerHas(player.getName(), "admin", false))) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + return false; + } + } + final PermissionGroup group = plugin.getPermissionManager().getGroup(player); + if (getZoneDepth() >= group.getMaxSubzoneDepth()) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SubzoneMaxDepth")); + return false; + } + } + final CuboidArea newArea = new CuboidArea(loc1, loc2); + final Set> set = subzones.entrySet(); + for (final Entry resEntry : set) { + final ClaimedResidence res = resEntry.getValue(); + if (res.checkCollision(newArea)) { + if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SubzoneCollide", ChatColor.YELLOW + resEntry.getKey())); + } + return false; + } + } + ClaimedResidence newres; + if (player != null) { + newres = new ClaimedResidence(plugin, owner, perms.getWorld(), this); + newres.addArea(player, newArea, name, resadmin); + } else { + newres = new ClaimedResidence(plugin, owner, perms.getWorld(), this); + newres.addArea(newArea, name); + } + if (newres.getAreaCount() != 0) { + newres.getPermissions().applyDefaultFlags(); + if (player != null) { + final PermissionGroup group = plugin.getPermissionManager().getGroup(player); + newres.setEnterMessage(group.getDefaultEnterMessage()); + newres.setLeaveMessage(group.getDefaultLeaveMessage()); + } + if (plugin.getConfigManager().flagsInherit()) { + newres.getPermissions().setParent(perms); + } + subzones.put(name, newres); + if (player != null) { + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("SubzoneCreate", ChatColor.YELLOW + name)); + } + return true; + } + if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SubzoneCreateFail", ChatColor.YELLOW + name)); + } + return false; + } - public boolean addSubzone(final String name, final Location loc1, final Location loc2) { - return this.addSubzone(null, loc1, loc2, name, true); - } + public boolean addSubzone(final String name, final Location loc1, final Location loc2) { + return this.addSubzone(null, loc1, loc2, name, true); + } - public boolean checkCollision(final CuboidArea area) { - final Set set = areas.keySet(); - for (final String key : set) { - final CuboidArea checkarea = areas.get(key); - if (checkarea != null) { - if (checkarea.checkCollision(area)) { - return true; - } - } - } - return false; - } + public boolean checkCollision(final CuboidArea area) { + final Set set = areas.keySet(); + for (final String key : set) { + final CuboidArea checkarea = areas.get(key); + if (checkarea != null) { + if (checkarea.checkCollision(area)) { + return true; + } + } + } + return false; + } - public boolean containsLoc(final Location loc) { - final Collection keys = areas.values(); - for (final CuboidArea key : keys) { - if (key.containsLoc(loc)) { - if (parent != null) { - return parent.containsLoc(loc); - } - return true; - } - } - return false; - } + public boolean containsLoc(final Location loc) { + final Collection keys = areas.values(); + for (final CuboidArea key : keys) { + if (key.containsLoc(loc)) { + if (parent != null) { + return parent.containsLoc(loc); + } + return true; + } + } + return false; + } - public CuboidArea getArea(final String name) { - return areas.get(name); - } + public CuboidArea getArea(final String name) { + return areas.get(name); + } - public CuboidArea[] getAreaArray() { - final CuboidArea[] temp = new CuboidArea[areas.size()]; - int i = 0; - for (final CuboidArea area : areas.values()) { - temp[i] = area; - i++; - } - return temp; - } + public CuboidArea[] getAreaArray() { + final CuboidArea[] temp = new CuboidArea[areas.size()]; + int i = 0; + for (final CuboidArea area : areas.values()) { + temp[i] = area; + i++; + } + return temp; + } - public CuboidArea getAreaByLoc(final Location loc) { - for (final CuboidArea thisarea : areas.values()) { - if (thisarea.containsLoc(loc)) { - return thisarea; - } - } - return null; - } + public CuboidArea getAreaByLoc(final Location loc) { + for (final CuboidArea thisarea : areas.values()) { + if (thisarea.containsLoc(loc)) { + return thisarea; + } + } + return null; + } - public int getAreaCount() { - return areas.size(); - } + public int getAreaCount() { + return areas.size(); + } - public String getAreaIDbyLoc(final Location loc) { - for (final Entry area : areas.entrySet()) { - if (area.getValue().containsLoc(loc)) { - return area.getKey(); - } - } - return null; - } + public String getAreaIDbyLoc(final Location loc) { + for (final Entry area : areas.entrySet()) { + if (area.getValue().containsLoc(loc)) { + return area.getKey(); + } + } + return null; + } - public String[] getAreaList() { - final String arealist[] = new String[areas.size()]; - int i = 0; - for (final Entry entry : areas.entrySet()) { - arealist[i] = entry.getKey(); - i++; - } - return arealist; - } + public String[] getAreaList() { + final String arealist[] = new String[areas.size()]; + int i = 0; + for (final Entry entry : areas.entrySet()) { + arealist[i] = entry.getKey(); + i++; + } + return arealist; + } - public ResidenceBank getBank() { - return bank; - } + public ResidenceBank getBank() { + return bank; + } - public String getEnterMessage() { - return enterMessage; - } + public String getEnterMessage() { + return enterMessage; + } - public ResidenceItemList getItemBlacklist() { - return blacklist; - } + public ResidenceItemList getItemBlacklist() { + return blacklist; + } - public ResidenceItemList getItemIgnoreList() { - return ignorelist; - } + public ResidenceItemList getItemIgnoreList() { + return ignorelist; + } - public String getLeaveMessage() { - return leaveMessage; - } + public String getLeaveMessage() { + return leaveMessage; + } - public String getName() { - return plugin.getResidenceManager().getNameByRes(this); - } + public String getName() { + return plugin.getResidenceManager().getNameByRes(this); + } - @SuppressWarnings("deprecation") - public Location getOutsideFreeLoc(final Location insideLoc) { - final int maxIt = 100; - final CuboidArea area = getAreaByLoc(insideLoc); - if (area == null) { - return insideLoc; - } - final Location highLoc = area.getHighLoc(); - final Location newLoc = new Location(highLoc.getWorld(), highLoc.getBlockX(), highLoc.getBlockY(), highLoc.getBlockZ()); - boolean found = false; - int it = 0; - while (!found && it < maxIt) { - it++; - Location lowLoc; - newLoc.setX(newLoc.getBlockX() + 1); - newLoc.setZ(newLoc.getBlockZ() + 1); - lowLoc = new Location(newLoc.getWorld(), newLoc.getBlockX(), 254, newLoc.getBlockZ()); - newLoc.setY(255); - while ((newLoc.getBlock().getTypeId() != 0 || lowLoc.getBlock().getTypeId() == 0) && lowLoc.getBlockY() > -126) { - newLoc.setY(newLoc.getY() - 1); - lowLoc.setY(lowLoc.getY() - 1); - } - if (newLoc.getBlock().getTypeId() == 0 && lowLoc.getBlock().getTypeId() != 0) { - found = true; - } - } - if (found) { - return newLoc; - } - final World world = Bukkit.getServer().getWorld(perms.getWorld()); - if (world != null) { - return world.getSpawnLocation(); - } - return insideLoc; - } + @SuppressWarnings("deprecation") + public Location getOutsideFreeLoc(final Location insideLoc) { + final int maxIt = 100; + final CuboidArea area = getAreaByLoc(insideLoc); + if (area == null) { + return insideLoc; + } + final Location highLoc = area.getHighLoc(); + final Location newLoc = new Location(highLoc.getWorld(), highLoc.getBlockX(), highLoc.getBlockY(), highLoc.getBlockZ()); + boolean found = false; + int it = 0; + while (!found && it < maxIt) { + it++; + Location lowLoc; + newLoc.setX(newLoc.getBlockX() + 1); + newLoc.setZ(newLoc.getBlockZ() + 1); + lowLoc = new Location(newLoc.getWorld(), newLoc.getBlockX(), 254, newLoc.getBlockZ()); + newLoc.setY(255); + while ((newLoc.getBlock().getTypeId() != 0 || lowLoc.getBlock().getTypeId() == 0) && lowLoc.getBlockY() > -126) { + newLoc.setY(newLoc.getY() - 1); + lowLoc.setY(lowLoc.getY() - 1); + } + if (newLoc.getBlock().getTypeId() == 0 && lowLoc.getBlock().getTypeId() != 0) { + found = true; + } + } + if (found) { + return newLoc; + } + final World world = Bukkit.getServer().getWorld(perms.getWorld()); + if (world != null) { + return world.getSpawnLocation(); + } + return insideLoc; + } - public String getOwner() { - return perms.getOwner(); - } + public String getOwner() { + return perms.getOwner(); + } - public ClaimedResidence getParent() { - return parent; - } + public ClaimedResidence getParent() { + return parent; + } - public ResidencePermissions getPermissions() { - return perms; - } + public ResidencePermissions getPermissions() { + return perms; + } - public ArrayList getPlayersInResidence() { - final ArrayList within = new ArrayList<>(); - for (final Player player : Bukkit.getServer().getOnlinePlayers()) { - if (containsLoc(player.getLocation())) { - within.add(player); - } - } - return within; - } + public ArrayList getPlayersInResidence() { + final ArrayList within = new ArrayList<>(); + for (final Player player : CompatibleUtil.getOnlinePlayers()) { + if (containsLoc(player.getLocation())) { + within.add(player); + } + } + return within; + } - public ClaimedResidence getSubzone(final String subzonename) { - if (!subzonename.contains(".")) { - return subzones.get(subzonename); - } - final String split[] = subzonename.split("\\."); - ClaimedResidence get = subzones.get(split[0]); - for (int i = 1; i < split.length; i++) { - if (get == null) { - return null; - } - get = get.getSubzone(split[i]); - } - return get; - } + public ClaimedResidence getSubzone(final String subzonename) { + if (!subzonename.contains(".")) { + return subzones.get(subzonename); + } + final String split[] = subzonename.split("\\."); + ClaimedResidence get = subzones.get(split[0]); + for (int i = 1; i < split.length; i++) { + if (get == null) { + return null; + } + get = get.getSubzone(split[i]); + } + return get; + } - public ClaimedResidence getSubzoneByLoc(final Location loc) { - final Set> set = subzones.entrySet(); - boolean found = false; - ClaimedResidence res = null; - for (final Entry entry : set) { - res = entry.getValue(); - if (res.containsLoc(loc)) { - found = true; - break; - } - } - if (!found) { - return null; - } - if (res == null) { - return null; - } - final ClaimedResidence subrez = res.getSubzoneByLoc(loc); - if (subrez == null) { - return res; - } - return subrez; - } + public ClaimedResidence getSubzoneByLoc(final Location loc) { + final Set> set = subzones.entrySet(); + boolean found = false; + ClaimedResidence res = null; + for (final Entry entry : set) { + res = entry.getValue(); + if (res.containsLoc(loc)) { + found = true; + break; + } + } + if (!found) { + return null; + } + if (res == null) { + return null; + } + final ClaimedResidence subrez = res.getSubzoneByLoc(loc); + if (subrez == null) { + return res; + } + return subrez; + } - public String[] getSubzoneList() { - final ArrayList zones = new ArrayList<>(); - final Set set = subzones.keySet(); - for (final String key : set) { - if (key != null) { - zones.add(key); - } - } - return zones.toArray(new String[zones.size()]); - } + public String[] getSubzoneList() { + final ArrayList zones = new ArrayList<>(); + final Set set = subzones.keySet(); + for (final String key : set) { + if (key != null) { + zones.add(key); + } + } + return zones.toArray(new String[zones.size()]); + } - public String getSubzoneNameByLoc(final Location loc) { - final Set> set = subzones.entrySet(); - ClaimedResidence res = null; - String key = null; - for (final Entry entry : set) { - res = entry.getValue(); - if (res.containsLoc(loc)) { - key = entry.getKey(); - break; - } - } - if (key == null) { - return null; - } - if (res == null) { - return null; - } - final String subname = res.getSubzoneNameByLoc(loc); - if (subname != null) { - return key + "." + subname; - } - return key; - } + public String getSubzoneNameByLoc(final Location loc) { + final Set> set = subzones.entrySet(); + ClaimedResidence res = null; + String key = null; + for (final Entry entry : set) { + res = entry.getValue(); + if (res.containsLoc(loc)) { + key = entry.getKey(); + break; + } + } + if (key == null) { + return null; + } + if (res == null) { + return null; + } + final String subname = res.getSubzoneNameByLoc(loc); + if (subname != null) { + return key + "." + subname; + } + return key; + } - public String getSubzoneNameByRes(final ClaimedResidence res) { - final Set> set = subzones.entrySet(); - for (final Entry entry : set) { - if (entry.getValue() == res) { - return entry.getKey(); - } - final String n = entry.getValue().getSubzoneNameByRes(res); - if (n != null) { - return entry.getKey() + "." + n; - } - } - return null; - } + public String getSubzoneNameByRes(final ClaimedResidence res) { + final Set> set = subzones.entrySet(); + for (final Entry entry : set) { + if (entry.getValue() == res) { + return entry.getKey(); + } + final String n = entry.getValue().getSubzoneNameByRes(res); + if (n != null) { + return entry.getKey() + "." + n; + } + } + return null; + } - public ClaimedResidence getTopParent() { - if (parent == null) { - return this; - } - return parent.getTopParent(); - } + public ClaimedResidence getTopParent() { + if (parent == null) { + return this; + } + return parent.getTopParent(); + } - public long getTotalSize() { - final Collection set = areas.values(); - long size = 0; - for (final CuboidArea entry : set) { - size = size + entry.getSize(); - } - return size; - } + public long getTotalSize() { + final Collection set = areas.values(); + long size = 0; + for (final CuboidArea entry : set) { + size = size + entry.getSize(); + } + return size; + } - public String getWorld() { - return perms.getWorld(); - } + public String getWorld() { + return perms.getWorld(); + } - public int getZoneDepth() { - int count = 0; - ClaimedResidence res = parent; - while (res != null) { - count++; - res = res.getParent(); - } - return count; - } + public int getZoneDepth() { + int count = 0; + ClaimedResidence res = parent; + while (res != null) { + count++; + res = res.getParent(); + } + return count; + } - public String[] listSubzones() { - final String list[] = new String[subzones.size()]; - int i = 0; - for (final String res : subzones.keySet()) { - list[i] = res; - i++; - } - return list; - } + public String[] listSubzones() { + final String list[] = new String[subzones.size()]; + int i = 0; + for (final String res : subzones.keySet()) { + list[i] = res; + i++; + } + return list; + } - public void printAdvancedAreaList(final Player player, final int page) { - final ArrayList temp = new ArrayList<>(); - for (final Entry entry : areas.entrySet()) { - final CuboidArea a = entry.getValue(); - final Location h = a.getHighLoc(); - final Location l = a.getLowLoc(); - temp.add(ChatColor.GREEN + "{" + ChatColor.YELLOW + "ID:" + ChatColor.RED + entry.getKey() + " " + ChatColor.YELLOW + "P1:" + ChatColor.RED + "(" + h.getBlockX() + "," + h.getBlockY() - + "," + h.getBlockZ() + ") " + ChatColor.YELLOW + "P2:" + ChatColor.RED + "(" + l.getBlockX() + "," + l.getBlockY() + "," + l.getBlockZ() + ") " + ChatColor.YELLOW + "(Size:" - + ChatColor.RED + a.getSize() + ChatColor.YELLOW + ")" + ChatColor.GREEN + "} "); - } - InformationPager.printInfo(plugin, player, plugin.getLanguage().getPhrase("PhysicalAreas"), temp, page); - } + public void printAdvancedAreaList(final Player player, final int page) { + final ArrayList temp = new ArrayList<>(); + for (final Entry entry : areas.entrySet()) { + final CuboidArea a = entry.getValue(); + final Location h = a.getHighLoc(); + final Location l = a.getLowLoc(); + temp.add(ChatColor.GREEN + "{" + ChatColor.YELLOW + "ID:" + ChatColor.RED + entry.getKey() + " " + ChatColor.YELLOW + "P1:" + ChatColor.RED + "(" + h.getBlockX() + "," + h.getBlockY() + + "," + h.getBlockZ() + ") " + ChatColor.YELLOW + "P2:" + ChatColor.RED + "(" + l.getBlockX() + "," + l.getBlockY() + "," + l.getBlockZ() + ") " + ChatColor.YELLOW + "(Size:" + + ChatColor.RED + a.getSize() + ChatColor.YELLOW + ")" + ChatColor.GREEN + "} "); + } + InformationPager.printInfo(plugin, player, plugin.getLanguage().getPhrase("PhysicalAreas"), temp, page); + } - public void printAreaList(final Player player, final int page) { - final ArrayList temp = new ArrayList<>(); - for (final String area : areas.keySet()) { - temp.add(area); - } - InformationPager.printInfo(plugin, player, plugin.getLanguage().getPhrase("PhysicalAreas"), temp, page); - } + public void printAreaList(final Player player, final int page) { + final ArrayList temp = new ArrayList<>(); + for (final String area : areas.keySet()) { + temp.add(area); + } + InformationPager.printInfo(plugin, player, plugin.getLanguage().getPhrase("PhysicalAreas"), temp, page); + } - public void printSubzoneList(final Player player, final int page) { - final ArrayList temp = new ArrayList<>(); - for (final Entry sz : subzones.entrySet()) { - temp.add(ChatColor.GREEN + sz.getKey() + ChatColor.YELLOW + " - " + plugin.getLanguage().getPhrase("Owner") + ": " + sz.getValue().getOwner()); - } - InformationPager.printInfo(plugin, player, plugin.getLanguage().getPhrase("Subzones"), temp, page); - } + public void printSubzoneList(final Player player, final int page) { + final ArrayList temp = new ArrayList<>(); + for (final Entry sz : subzones.entrySet()) { + temp.add(ChatColor.GREEN + sz.getKey() + ChatColor.YELLOW + " - " + plugin.getLanguage().getPhrase("Owner") + ": " + sz.getValue().getOwner()); + } + InformationPager.printInfo(plugin, player, plugin.getLanguage().getPhrase("Subzones"), temp, page); + } - public void remove() { - final String name = getName(); - if (name != null) { - plugin.getResidenceManager().removeResidence(name); - plugin.getResidenceManager().removeChunkList(name); - } - } + public void remove() { + final String name = getName(); + if (name != null) { + plugin.getResidenceManager().removeResidence(name); + plugin.getResidenceManager().removeChunkList(name); + } + } - public void removeArea(final Player player, final String id, final boolean resadmin) { + public void removeArea(final Player player, final String id, final boolean resadmin) { - if (getPermissions().hasResidencePermission(player, true) || resadmin) { - if (!areas.containsKey(id)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaNonExist")); - return; - } - if (areas.size() == 1 && !plugin.getConfigManager().allowEmptyResidences()) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaRemoveLast")); - return; - } - removeArea(id); - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("AreaRemove")); - } else { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - } - } + if (getPermissions().hasResidencePermission(player, true) || resadmin) { + if (!areas.containsKey(id)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaNonExist")); + return; + } + if (areas.size() == 1 && !plugin.getConfigManager().allowEmptyResidences()) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaRemoveLast")); + return; + } + removeArea(id); + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("AreaRemove")); + } else { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + } + } - public void removeArea(final String id) { - plugin.getResidenceManager().removeChunkList(getName()); - areas.remove(id); - plugin.getResidenceManager().calculateChunks(getName()); - } + public void removeArea(final String id) { + plugin.getResidenceManager().removeChunkList(getName()); + areas.remove(id); + plugin.getResidenceManager().calculateChunks(getName()); + } - public boolean removeSubzone(final Player player, final String name, final boolean resadmin) { - final ClaimedResidence res = subzones.get(name); - if (player != null && !res.perms.hasResidencePermission(player, true) && !resadmin) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - return false; - } - subzones.remove(name); - if (player != null) { - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("SubzoneRemove", ChatColor.YELLOW + name + ChatColor.GREEN)); - } - return true; - } + public boolean removeSubzone(final Player player, final String name, final boolean resadmin) { + final ClaimedResidence res = subzones.get(name); + if (player != null && !res.perms.hasResidencePermission(player, true) && !resadmin) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + return false; + } + subzones.remove(name); + if (player != null) { + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("SubzoneRemove", ChatColor.YELLOW + name + ChatColor.GREEN)); + } + return true; + } - public boolean removeSubzone(final String name) { - return this.removeSubzone(null, name, true); - } + public boolean removeSubzone(final String name) { + return this.removeSubzone(null, name, true); + } - public boolean renameArea(final Player player, final String oldName, final String newName, final boolean resadmin) { - if (!plugin.validName(newName)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidNameCharacters")); - return false; - } - if (player == null || perms.hasResidencePermission(player, true) || resadmin) { - if (areas.containsKey(newName)) { - if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaExists")); - } - return false; - } - final CuboidArea area = areas.get(oldName); - if (area == null) { - if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaInvalidName")); - } - return false; - } - areas.put(newName, area); - areas.remove(oldName); - if (player != null) { - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("AreaRename", oldName + "." + newName)); - } - return true; - } - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - return false; - } + public boolean renameArea(final Player player, final String oldName, final String newName, final boolean resadmin) { + if (!plugin.validName(newName)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidNameCharacters")); + return false; + } + if (player == null || perms.hasResidencePermission(player, true) || resadmin) { + if (areas.containsKey(newName)) { + if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaExists")); + } + return false; + } + final CuboidArea area = areas.get(oldName); + if (area == null) { + if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaInvalidName")); + } + return false; + } + areas.put(newName, area); + areas.remove(oldName); + if (player != null) { + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("AreaRename", oldName + "." + newName)); + } + return true; + } + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + return false; + } - public boolean renameArea(final String oldName, final String newName) { - return this.renameArea(null, oldName, newName, true); - } + public boolean renameArea(final String oldName, final String newName) { + return this.renameArea(null, oldName, newName, true); + } - public boolean renameSubzone(final Player player, final String oldName, final String newName, final boolean resadmin) { - if (!plugin.validName(newName)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidNameCharacters")); - return false; - } - final ClaimedResidence res = subzones.get(oldName); - if (res == null) { - if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidSubzone")); - } - return false; - } - if (player != null && !res.getPermissions().hasResidencePermission(player, true) && !resadmin) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - return false; - } - if (subzones.containsKey(newName)) { - if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SubzoneExists", ChatColor.YELLOW + newName)); - } - return false; - } - subzones.put(newName, res); - subzones.remove(oldName); - if (player != null) { - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("SubzoneRename", oldName + "." + newName)); - } - return true; - } + public boolean renameSubzone(final Player player, final String oldName, final String newName, final boolean resadmin) { + if (!plugin.validName(newName)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidNameCharacters")); + return false; + } + final ClaimedResidence res = subzones.get(oldName); + if (res == null) { + if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidSubzone")); + } + return false; + } + if (player != null && !res.getPermissions().hasResidencePermission(player, true) && !resadmin) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + return false; + } + if (subzones.containsKey(newName)) { + if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SubzoneExists", ChatColor.YELLOW + newName)); + } + return false; + } + subzones.put(newName, res); + subzones.remove(oldName); + if (player != null) { + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("SubzoneRename", oldName + "." + newName)); + } + return true; + } - public boolean renameSubzone(final String oldName, final String newName) { - return this.renameSubzone(null, oldName, newName, true); - } + public boolean renameSubzone(final String oldName, final String newName) { + return this.renameSubzone(null, oldName, newName, true); + } - public boolean replaceArea(final CuboidArea neware, final String name) { - return this.replaceArea(null, neware, name, true); - } + public boolean replaceArea(final CuboidArea neware, final String name) { + return this.replaceArea(null, neware, name, true); + } - public boolean replaceArea(final Player player, final CuboidArea newarea, final String name, final boolean resadmin) { - if (!areas.containsKey(name)) { - if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaNonExist")); - } - return false; - } - final CuboidArea oldarea = areas.get(name); - if (!newarea.getWorld().getName().equalsIgnoreCase(perms.getWorld())) { - if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaDiffWorld")); - } - return false; - } - if (parent == null) { - final String collideResidence = plugin.getResidenceManager().checkAreaCollision(newarea, this); - if (collideResidence != null) { - if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaCollision", ChatColor.YELLOW + collideResidence)); - } - return false; - } - } else { - final String[] szs = parent.listSubzones(); - for (final String sz : szs) { - final ClaimedResidence res = parent.getSubzone(sz); - if (res != null && res != this) { - if (res.checkCollision(newarea)) { - if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaSubzoneCollision", ChatColor.YELLOW + sz)); - } - return false; - } - } - } - } - // Remove subzones that are not in the area anymore - final String[] szs = listSubzones(); - for (final String sz : szs) { - final ClaimedResidence res = getSubzone(sz); - if (res != null && res != this) { - final String[] areas = res.getAreaList(); - for (final String area : areas) { - if (!newarea.isAreaWithinArea(res.getArea(area))) { - boolean good = false; - for (final CuboidArea arae : getAreaArray()) { - if (arae != oldarea && arae.isAreaWithinArea(res.getArea(area))) { - good = true; - } - } - if (!good) { - res.removeArea(area); - } - } - } - if (res.getAreaArray().length == 0) { - removeSubzone(sz); - } - } - } - if (!resadmin && player != null) { - if (!this.perms.hasResidencePermission(player, true)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - return false; - } - if (parent != null) { - if (!parent.containsLoc(newarea.getHighLoc()) || !parent.containsLoc(newarea.getLowLoc())) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaNotWithinParent")); - return false; - } - if (!parent.getPermissions().hasResidencePermission(player, true) && !parent.getPermissions().playerHas(player.getName(), "subzone", true)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ParentNoPermission")); - return false; - } - } - final PermissionGroup group = plugin.getPermissionManager().getGroup(player); - if (!group.canCreateResidences() && !player.hasPermission("residence.create")) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - return false; - } - if (!group.inLimits(newarea)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaSizeLimit")); - return false; - } - if (group.getMinHeight() > newarea.getLowLoc().getBlockY()) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaLowLimit", ChatColor.YELLOW + String.format("%d", group.getMinHeight()))); - return false; - } - if (group.getMaxHeight() < newarea.getHighLoc().getBlockY()) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaHighLimit", ChatColor.YELLOW + String.format("%d", group.getMaxHeight()))); - return false; - } - if (parent == null && plugin.getConfigManager().enableEconomy()) { - final int chargeamount = (int) Math.ceil((newarea.getSize() - oldarea.getSize()) * group.getCostPerBlock()); - if (chargeamount > 0) { - if (!TransactionManager.chargeEconomyMoney(plugin, player, chargeamount)) { - return false; - } - } - } + public boolean replaceArea(final Player player, final CuboidArea newarea, final String name, final boolean resadmin) { + if (!areas.containsKey(name)) { + if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaNonExist")); + } + return false; + } + final CuboidArea oldarea = areas.get(name); + if (!newarea.getWorld().getName().equalsIgnoreCase(perms.getWorld())) { + if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaDiffWorld")); + } + return false; + } + if (parent == null) { + final String collideResidence = plugin.getResidenceManager().checkAreaCollision(newarea, this); + if (collideResidence != null) { + if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaCollision", ChatColor.YELLOW + collideResidence)); + } + return false; + } + } else { + final String[] szs = parent.listSubzones(); + for (final String sz : szs) { + final ClaimedResidence res = parent.getSubzone(sz); + if (res != null && res != this) { + if (res.checkCollision(newarea)) { + if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaSubzoneCollision", ChatColor.YELLOW + sz)); + } + return false; + } + } + } + } + // Remove subzones that are not in the area anymore + final String[] szs = listSubzones(); + for (final String sz : szs) { + final ClaimedResidence res = getSubzone(sz); + if (res != null && res != this) { + final String[] areas = res.getAreaList(); + for (final String area : areas) { + if (!newarea.isAreaWithinArea(res.getArea(area))) { + boolean good = false; + for (final CuboidArea arae : getAreaArray()) { + if (arae != oldarea && arae.isAreaWithinArea(res.getArea(area))) { + good = true; + } + } + if (!good) { + res.removeArea(area); + } + } + } + if (res.getAreaArray().length == 0) { + removeSubzone(sz); + } + } + } + if (!resadmin && player != null) { + if (!this.perms.hasResidencePermission(player, true)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + return false; + } + if (parent != null) { + if (!parent.containsLoc(newarea.getHighLoc()) || !parent.containsLoc(newarea.getLowLoc())) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaNotWithinParent")); + return false; + } + if (!parent.getPermissions().hasResidencePermission(player, true) && !parent.getPermissions().playerHas(player.getName(), "subzone", true)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ParentNoPermission")); + return false; + } + } + final PermissionGroup group = plugin.getPermissionManager().getGroup(player); + if (!group.canCreateResidences() && !player.hasPermission("residence.create")) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + return false; + } + if (!group.inLimits(newarea)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaSizeLimit")); + return false; + } + if (group.getMinHeight() > newarea.getLowLoc().getBlockY()) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaLowLimit", ChatColor.YELLOW + String.format("%d", group.getMinHeight()))); + return false; + } + if (group.getMaxHeight() < newarea.getHighLoc().getBlockY()) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaHighLimit", ChatColor.YELLOW + String.format("%d", group.getMaxHeight()))); + return false; + } + if (parent == null && plugin.getConfigManager().enableEconomy()) { + final int chargeamount = (int) Math.ceil((newarea.getSize() - oldarea.getSize()) * group.getCostPerBlock()); + if (chargeamount > 0) { + if (!TransactionManager.chargeEconomyMoney(plugin, player, chargeamount)) { + return false; + } + } + } - } - plugin.getResidenceManager().removeChunkList(getName()); - areas.remove(name); - areas.put(name, newarea); - plugin.getResidenceManager().calculateChunks(getName()); - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("AreaUpdate")); - return true; - } + } + plugin.getResidenceManager().removeChunkList(getName()); + areas.remove(name); + areas.put(name, newarea); + plugin.getResidenceManager().calculateChunks(getName()); + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("AreaUpdate")); + return true; + } - public Map save() { - final Map root = new HashMap<>(); - final Map areamap = new HashMap<>(); - root.put("EnterMessage", enterMessage); - root.put("LeaveMessage", leaveMessage); - root.put("StoredMoney", bank.getStoredMoney()); - root.put("BlackList", blacklist.save()); - root.put("IgnoreList", ignorelist.save()); - for (final Entry entry : areas.entrySet()) { - areamap.put(entry.getKey(), entry.getValue().save()); - } - root.put("Areas", areamap); - final Map subzonemap = new HashMap<>(); - for (final Entry sz : subzones.entrySet()) { - subzonemap.put(sz.getKey(), sz.getValue().save()); - } - root.put("Subzones", subzonemap); - root.put("Permissions", perms.save()); - if (tpLoc != null) { - final Map tpmap = new HashMap<>(); - tpmap.put("X", tpLoc.getBlockX()); - tpmap.put("Y", tpLoc.getBlockY()); - tpmap.put("Z", tpLoc.getBlockZ()); - root.put("TPLoc", tpmap); - } - return root; - } + public Map save() { + final Map root = new HashMap<>(); + final Map areamap = new HashMap<>(); + root.put("EnterMessage", enterMessage); + root.put("LeaveMessage", leaveMessage); + root.put("StoredMoney", bank.getStoredMoney()); + root.put("BlackList", blacklist.save()); + root.put("IgnoreList", ignorelist.save()); + for (final Entry entry : areas.entrySet()) { + areamap.put(entry.getKey(), entry.getValue().save()); + } + root.put("Areas", areamap); + final Map subzonemap = new HashMap<>(); + for (final Entry sz : subzones.entrySet()) { + subzonemap.put(sz.getKey(), sz.getValue().save()); + } + root.put("Subzones", subzonemap); + root.put("Permissions", perms.save()); + if (tpLoc != null) { + final Map tpmap = new HashMap<>(); + tpmap.put("X", tpLoc.getBlockX()); + tpmap.put("Y", tpLoc.getBlockY()); + tpmap.put("Z", tpLoc.getBlockZ()); + root.put("TPLoc", tpmap); + } + return root; + } - public void setEnterLeaveMessage(final Player player, String message, final boolean enter, final boolean resadmin) { - if (message != null) { - if (message.equals("")) { - message = null; - } - } - final PermissionGroup group = plugin.getPermissionManager().getGroup(perms.getOwner(), perms.getWorld()); - if (!group.canSetEnterLeaveMessages() && !resadmin) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("OwnerNoPermission")); - return; - } - if (!perms.hasResidencePermission(player, false) && !resadmin) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - return; - } - if (enter) { - setEnterMessage(message); - } else { - setLeaveMessage(message); - } - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("MessageChange")); - } + public void setEnterLeaveMessage(final Player player, String message, final boolean enter, final boolean resadmin) { + if (message != null) { + if (message.equals("")) { + message = null; + } + } + final PermissionGroup group = plugin.getPermissionManager().getGroup(perms.getOwner(), perms.getWorld()); + if (!group.canSetEnterLeaveMessages() && !resadmin) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("OwnerNoPermission")); + return; + } + if (!perms.hasResidencePermission(player, false) && !resadmin) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + return; + } + if (enter) { + setEnterMessage(message); + } else { + setLeaveMessage(message); + } + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("MessageChange")); + } - public void setEnterMessage(final String message) { - enterMessage = message; - } + public void setEnterMessage(final String message) { + enterMessage = message; + } - public void setLeaveMessage(final String message) { - leaveMessage = message; - } + public void setLeaveMessage(final String message) { + leaveMessage = message; + } - public void setTpLoc(final Player player, final boolean resadmin) { - if (!this.perms.hasResidencePermission(player, false) && !resadmin) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - return; - } - if (!containsLoc(player.getLocation())) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NotInResidence")); - return; - } - tpLoc = player.getLocation(); - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("SetTeleportLocation")); - } + public void setTpLoc(final Player player, final boolean resadmin) { + if (!this.perms.hasResidencePermission(player, false) && !resadmin) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + return; + } + if (!containsLoc(player.getLocation())) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NotInResidence")); + return; + } + tpLoc = player.getLocation(); + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("SetTeleportLocation")); + } - public void tpToResidence(final Player reqPlayer, final Player targetPlayer, final boolean resadmin) { - if (!resadmin && !(reqPlayer.hasPermission("residence.admin.tp") && reqPlayer.hasPermission("residence.admin.move"))) { - final PermissionGroup group = plugin.getPermissionManager().getGroup(reqPlayer); - if (!group.hasTpAccess()) { - reqPlayer.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("TeleportDeny")); - return; - } - if (!reqPlayer.equals(targetPlayer)) { - reqPlayer.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - return; - } - if (!this.perms.playerHas(reqPlayer.getName(), "tp", true)) { - reqPlayer.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("TeleportNoFlag")); - return; - } - } - if (tpLoc != null) { - final ResidenceTPEvent tpevent = new ResidenceTPEvent(this, tpLoc, targetPlayer, reqPlayer); - Bukkit.getServer().getPluginManager().callEvent(tpevent); - if (!tpevent.isCancelled()) { - targetPlayer.teleport(tpLoc); - targetPlayer.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("TeleportSuccess")); - } - } else { - final CuboidArea area = areas.values().iterator().next(); - if (area == null) { - reqPlayer.sendMessage(ChatColor.RED + "未找到可传送的安全区域..."); - return; - } - final Location targloc = getOutsideFreeLoc(area.getHighLoc()); - final ResidenceTPEvent tpevent = new ResidenceTPEvent(this, targloc, targetPlayer, reqPlayer); - Bukkit.getServer().getPluginManager().callEvent(tpevent); - if (!tpevent.isCancelled()) { - targetPlayer.teleport(targloc); - targetPlayer.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("TeleportNear")); - } - } - } + public void tpToResidence(final Player reqPlayer, final Player targetPlayer, final boolean resadmin) { + if (!resadmin && !(reqPlayer.hasPermission("residence.admin.tp") && reqPlayer.hasPermission("residence.admin.move"))) { + final PermissionGroup group = plugin.getPermissionManager().getGroup(reqPlayer); + if (!group.hasTpAccess()) { + reqPlayer.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("TeleportDeny")); + return; + } + if (!reqPlayer.equals(targetPlayer)) { + reqPlayer.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + return; + } + if (!this.perms.playerHas(reqPlayer.getName(), "tp", true)) { + reqPlayer.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("TeleportNoFlag")); + return; + } + } + if (tpLoc != null) { + final ResidenceTPEvent tpevent = new ResidenceTPEvent(this, tpLoc, targetPlayer, reqPlayer); + Bukkit.getServer().getPluginManager().callEvent(tpevent); + if (!tpevent.isCancelled()) { + targetPlayer.teleport(tpLoc); + targetPlayer.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("TeleportSuccess")); + } + } else { + final CuboidArea area = areas.values().iterator().next(); + if (area == null) { + reqPlayer.sendMessage(ChatColor.RED + "未找到可传送的安全区域..."); + return; + } + final Location targloc = getOutsideFreeLoc(area.getHighLoc()); + final ResidenceTPEvent tpevent = new ResidenceTPEvent(this, targloc, targetPlayer, reqPlayer); + Bukkit.getServer().getPluginManager().callEvent(tpevent); + if (!tpevent.isCancelled()) { + targetPlayer.teleport(targloc); + targetPlayer.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("TeleportNear")); + } + } + } } diff --git a/src/main/java/com/bekvon/bukkit/residence/protection/CuboidArea.java b/src/main/java/com/bekvon/bukkit/residence/protection/CuboidArea.java index 1090b68..13f4aed 100644 --- a/src/main/java/com/bekvon/bukkit/residence/protection/CuboidArea.java +++ b/src/main/java/com/bekvon/bukkit/residence/protection/CuboidArea.java @@ -25,190 +25,190 @@ import com.bekvon.bukkit.residence.protection.ResidenceManager.ChunkRef; * @author Administrator */ public class CuboidArea { - protected Location highPoints; - protected Location lowPoints; + protected Location highPoints; + protected Location lowPoints; - public CuboidArea(final Location startLoc, final Location endLoc) { - int highx, highy, highz, lowx, lowy, lowz; - if (startLoc.getBlockX() > endLoc.getBlockX()) { - highx = startLoc.getBlockX(); - lowx = endLoc.getBlockX(); - } else { - highx = endLoc.getBlockX(); - lowx = startLoc.getBlockX(); - } - if (startLoc.getBlockY() > endLoc.getBlockY()) { - highy = startLoc.getBlockY(); - lowy = endLoc.getBlockY(); - } else { - highy = endLoc.getBlockY(); - lowy = startLoc.getBlockY(); - } - if (startLoc.getBlockZ() > endLoc.getBlockZ()) { - highz = startLoc.getBlockZ(); - lowz = endLoc.getBlockZ(); - } else { - highz = endLoc.getBlockZ(); - lowz = startLoc.getBlockZ(); - } - highPoints = new Location(startLoc.getWorld(), highx, highy, highz); - lowPoints = new Location(startLoc.getWorld(), lowx, lowy, lowz); - } + public CuboidArea(final Location startLoc, final Location endLoc) { + int highx, highy, highz, lowx, lowy, lowz; + if (startLoc.getBlockX() > endLoc.getBlockX()) { + highx = startLoc.getBlockX(); + lowx = endLoc.getBlockX(); + } else { + highx = endLoc.getBlockX(); + lowx = startLoc.getBlockX(); + } + if (startLoc.getBlockY() > endLoc.getBlockY()) { + highy = startLoc.getBlockY(); + lowy = endLoc.getBlockY(); + } else { + highy = endLoc.getBlockY(); + lowy = startLoc.getBlockY(); + } + if (startLoc.getBlockZ() > endLoc.getBlockZ()) { + highz = startLoc.getBlockZ(); + lowz = endLoc.getBlockZ(); + } else { + highz = endLoc.getBlockZ(); + lowz = startLoc.getBlockZ(); + } + highPoints = new Location(startLoc.getWorld(), highx, highy, highz); + lowPoints = new Location(startLoc.getWorld(), lowx, lowy, lowz); + } - protected CuboidArea() { - } + protected CuboidArea() { + } - public static CuboidArea load(final DataInputStream in, final int version) throws IOException { - final CuboidArea newArea = new CuboidArea(); - final Server server = Bukkit.getServer(); - final World world = server.getWorld(in.readUTF()); - final int highx = in.readInt(); - final int highy = in.readInt(); - final int highz = in.readInt(); - final int lowx = in.readInt(); - final int lowy = in.readInt(); - final int lowz = in.readInt(); - newArea.highPoints = new Location(world, highx, highy, highz); - newArea.lowPoints = new Location(world, lowx, lowy, lowz); - return newArea; - } + public static CuboidArea load(final DataInputStream in, final int version) throws IOException { + final CuboidArea newArea = new CuboidArea(); + final Server server = Bukkit.getServer(); + final World world = server.getWorld(in.readUTF()); + final int highx = in.readInt(); + final int highy = in.readInt(); + final int highz = in.readInt(); + final int lowx = in.readInt(); + final int lowy = in.readInt(); + final int lowz = in.readInt(); + newArea.highPoints = new Location(world, highx, highy, highz); + newArea.lowPoints = new Location(world, lowx, lowy, lowz); + return newArea; + } - public static CuboidArea load(final Map root, final World world) throws Exception { - if (root == null) { - throw new Exception("Invalid residence physical location..."); - } - final CuboidArea newArea = new CuboidArea(); - final int x1 = (Integer) root.get("X1"); - final int y1 = (Integer) root.get("Y1"); - final int z1 = (Integer) root.get("Z1"); - final int x2 = (Integer) root.get("X2"); - final int y2 = (Integer) root.get("Y2"); - final int z2 = (Integer) root.get("Z2"); - newArea.highPoints = new Location(world, x1, y1, z1); - newArea.lowPoints = new Location(world, x2, y2, z2); - return newArea; - } + public static CuboidArea load(final Map root, final World world) throws Exception { + if (root == null) { + throw new Exception("Invalid residence physical location..."); + } + final CuboidArea newArea = new CuboidArea(); + final int x1 = (Integer) root.get("X1"); + final int y1 = (Integer) root.get("Y1"); + final int z1 = (Integer) root.get("Z1"); + final int x2 = (Integer) root.get("X2"); + final int y2 = (Integer) root.get("Y2"); + final int z2 = (Integer) root.get("Z2"); + newArea.highPoints = new Location(world, x1, y1, z1); + newArea.lowPoints = new Location(world, x2, y2, z2); + return newArea; + } - public boolean checkCollision(final CuboidArea area) { - if (!area.getWorld().equals(this.getWorld())) { - return false; - } - if (area.containsLoc(lowPoints) || area.containsLoc(highPoints) || this.containsLoc(area.highPoints) || this.containsLoc(area.lowPoints)) { - return true; - } - return advCuboidCheckCollision(highPoints, lowPoints, area.highPoints, area.lowPoints); - } + public boolean checkCollision(final CuboidArea area) { + if (!area.getWorld().equals(this.getWorld())) { + return false; + } + if (area.containsLoc(lowPoints) || area.containsLoc(highPoints) || this.containsLoc(area.highPoints) || this.containsLoc(area.lowPoints)) { + return true; + } + return advCuboidCheckCollision(highPoints, lowPoints, area.highPoints, area.lowPoints); + } - public boolean containsLoc(final Location loc) { - if (loc == null) { - return false; - } - if (!loc.getWorld().equals(highPoints.getWorld())) { - return false; - } - if (lowPoints.getBlockX() <= loc.getBlockX() && highPoints.getBlockX() >= loc.getBlockX()) { - if (lowPoints.getBlockZ() <= loc.getBlockZ() && highPoints.getBlockZ() >= loc.getBlockZ()) { - if (lowPoints.getBlockY() <= loc.getBlockY() && highPoints.getBlockY() >= loc.getBlockY()) { - return true; - } - } - } - return false; - } + public boolean containsLoc(final Location loc) { + if (loc == null) { + return false; + } + if (!loc.getWorld().equals(highPoints.getWorld())) { + return false; + } + if (lowPoints.getBlockX() <= loc.getBlockX() && highPoints.getBlockX() >= loc.getBlockX()) { + if (lowPoints.getBlockZ() <= loc.getBlockZ() && highPoints.getBlockZ() >= loc.getBlockZ()) { + if (lowPoints.getBlockY() <= loc.getBlockY() && highPoints.getBlockY() >= loc.getBlockY()) { + return true; + } + } + } + return false; + } - public List getChunks() { - final List chunks = new ArrayList(); - final Location high = this.highPoints; - final Location low = this.lowPoints; - final int lowX = ChunkRef.getChunkCoord(low.getBlockX()); - final int lowZ = ChunkRef.getChunkCoord(low.getBlockZ()); - final int highX = ChunkRef.getChunkCoord(high.getBlockX()); - final int highZ = ChunkRef.getChunkCoord(high.getBlockZ()); + public List getChunks() { + final List chunks = new ArrayList(); + final Location high = this.highPoints; + final Location low = this.lowPoints; + final int lowX = ChunkRef.getChunkCoord(low.getBlockX()); + final int lowZ = ChunkRef.getChunkCoord(low.getBlockZ()); + final int highX = ChunkRef.getChunkCoord(high.getBlockX()); + final int highZ = ChunkRef.getChunkCoord(high.getBlockZ()); - for (int x = lowX; x <= highX; x++) { - for (int z = lowZ; z <= highZ; z++) { - chunks.add(new ChunkRef(x, z)); - } - } - return chunks; - } + for (int x = lowX; x <= highX; x++) { + for (int z = lowZ; z <= highZ; z++) { + chunks.add(new ChunkRef(x, z)); + } + } + return chunks; + } - public Location getHighLoc() { - return highPoints; - } + public Location getHighLoc() { + return highPoints; + } - public Location getLowLoc() { - return lowPoints; - } + public Location getLowLoc() { + return lowPoints; + } - public long getSize() { - final int xsize = (highPoints.getBlockX() - lowPoints.getBlockX()) + 1; - final int ysize = (highPoints.getBlockY() - lowPoints.getBlockY()) + 1; - final int zsize = (highPoints.getBlockZ() - lowPoints.getBlockZ()) + 1; - return xsize * ysize * zsize; - } + public long getSize() { + final int xsize = (highPoints.getBlockX() - lowPoints.getBlockX()) + 1; + final int ysize = (highPoints.getBlockY() - lowPoints.getBlockY()) + 1; + final int zsize = (highPoints.getBlockZ() - lowPoints.getBlockZ()) + 1; + return xsize * ysize * zsize; + } - public World getWorld() { - return highPoints.getWorld(); - } + public World getWorld() { + return highPoints.getWorld(); + } - public int getXSize() { - return (highPoints.getBlockX() - lowPoints.getBlockX()) + 1; - } + public int getXSize() { + return (highPoints.getBlockX() - lowPoints.getBlockX()) + 1; + } - public int getYSize() { - return (highPoints.getBlockY() - lowPoints.getBlockY()) + 1; - } + public int getYSize() { + return (highPoints.getBlockY() - lowPoints.getBlockY()) + 1; + } - public int getZSize() { - return (highPoints.getBlockZ() - lowPoints.getBlockZ()) + 1; - } + public int getZSize() { + return (highPoints.getBlockZ() - lowPoints.getBlockZ()) + 1; + } - public boolean isAreaWithinArea(final CuboidArea area) { - return (this.containsLoc(area.highPoints) && this.containsLoc(area.lowPoints)); - } + public boolean isAreaWithinArea(final CuboidArea area) { + return (this.containsLoc(area.highPoints) && this.containsLoc(area.lowPoints)); + } - public Map save() { - final Map root = new LinkedHashMap(); - root.put("X1", this.highPoints.getBlockX()); - root.put("Y1", this.highPoints.getBlockY()); - root.put("Z1", this.highPoints.getBlockZ()); - root.put("X2", this.lowPoints.getBlockX()); - root.put("Y2", this.lowPoints.getBlockY()); - root.put("Z2", this.lowPoints.getBlockZ()); - return root; - } + public Map save() { + final Map root = new LinkedHashMap(); + root.put("X1", this.highPoints.getBlockX()); + root.put("Y1", this.highPoints.getBlockY()); + root.put("Z1", this.highPoints.getBlockZ()); + root.put("X2", this.lowPoints.getBlockX()); + root.put("Y2", this.lowPoints.getBlockY()); + root.put("Z2", this.lowPoints.getBlockZ()); + return root; + } - public void save(final DataOutputStream out, final int version) throws IOException { - out.writeUTF(highPoints.getWorld().getName()); - out.writeInt(highPoints.getBlockX()); - out.writeInt(highPoints.getBlockY()); - out.writeInt(highPoints.getBlockZ()); - out.writeInt(lowPoints.getBlockX()); - out.writeInt(lowPoints.getBlockY()); - out.writeInt(lowPoints.getBlockZ()); - } + public void save(final DataOutputStream out, final int version) throws IOException { + out.writeUTF(highPoints.getWorld().getName()); + out.writeInt(highPoints.getBlockX()); + out.writeInt(highPoints.getBlockY()); + out.writeInt(highPoints.getBlockZ()); + out.writeInt(lowPoints.getBlockX()); + out.writeInt(lowPoints.getBlockY()); + out.writeInt(lowPoints.getBlockZ()); + } - private boolean advCuboidCheckCollision(final Location A1High, final Location A1Low, final Location A2High, final Location A2Low) { - final int A1HX = A1High.getBlockX(); - final int A1LX = A1Low.getBlockX(); - final int A1HY = A1High.getBlockY(); - final int A1LY = A1Low.getBlockY(); - final int A1HZ = A1High.getBlockZ(); - final int A1LZ = A1Low.getBlockZ(); - final int A2HX = A2High.getBlockX(); - final int A2LX = A2Low.getBlockX(); - final int A2HY = A2High.getBlockY(); - final int A2LY = A2Low.getBlockY(); - final int A2HZ = A2High.getBlockZ(); - final int A2LZ = A2Low.getBlockZ(); - if ((A1HX >= A2LX && A1HX <= A2HX) || (A1LX >= A2LX && A1LX <= A2HX) || (A2HX >= A1LX && A2HX <= A1HX) || (A2LX >= A1LX && A2LX <= A1HX)) { - if ((A1HY >= A2LY && A1HY <= A2HY) || (A1LY >= A2LY && A1LY <= A2HY) || (A2HY >= A1LY && A2HY <= A1HY) || (A2LY >= A1LY && A2LY <= A1HY)) { - if ((A1HZ >= A2LZ && A1HZ <= A2HZ) || (A1LZ >= A2LZ && A1LZ <= A2HZ) || (A2HZ >= A1LZ && A2HZ <= A1HZ) || (A2LZ >= A1LZ && A2LZ <= A1HZ)) { - return true; - } - } - } - return false; - } + private boolean advCuboidCheckCollision(final Location A1High, final Location A1Low, final Location A2High, final Location A2Low) { + final int A1HX = A1High.getBlockX(); + final int A1LX = A1Low.getBlockX(); + final int A1HY = A1High.getBlockY(); + final int A1LY = A1Low.getBlockY(); + final int A1HZ = A1High.getBlockZ(); + final int A1LZ = A1Low.getBlockZ(); + final int A2HX = A2High.getBlockX(); + final int A2LX = A2Low.getBlockX(); + final int A2HY = A2High.getBlockY(); + final int A2LY = A2Low.getBlockY(); + final int A2HZ = A2High.getBlockZ(); + final int A2LZ = A2Low.getBlockZ(); + if ((A1HX >= A2LX && A1HX <= A2HX) || (A1LX >= A2LX && A1LX <= A2HX) || (A2HX >= A1LX && A2HX <= A1HX) || (A2LX >= A1LX && A2LX <= A1HX)) { + if ((A1HY >= A2LY && A1HY <= A2HY) || (A1LY >= A2LY && A1LY <= A2HY) || (A2HY >= A1LY && A2HY <= A1HY) || (A2LY >= A1LY && A2LY <= A1HY)) { + if ((A1HZ >= A2LZ && A1HZ <= A2HZ) || (A1LZ >= A2LZ && A1LZ <= A2HZ) || (A2HZ >= A1LZ && A2HZ <= A1HZ) || (A2LZ >= A1LZ && A2LZ <= A1HZ)) { + return true; + } + } + } + return false; + } } 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 a82f175..17a8c23 100644 --- a/src/main/java/com/bekvon/bukkit/residence/protection/FlagPermissions.java +++ b/src/main/java/com/bekvon/bukkit/residence/protection/FlagPermissions.java @@ -27,609 +27,609 @@ import cn.citycraft.Residence.ResidenceMain; */ public class FlagPermissions { - public static enum FlagState { - FALSE, - INVALID, - NEITHER, - TRUE - } + 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 Map cuboidFlags; - protected Map> groupFlags; - protected FlagPermissions parent; + 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 Map cuboidFlags; + protected Map> groupFlags; + protected FlagPermissions parent; - protected Map> playerFlags; + protected Map> playerFlags; - public FlagPermissions() { - cuboidFlags = Collections.synchronizedMap(new HashMap()); - playerFlags = Collections.synchronizedMap(new HashMap>()); - groupFlags = Collections.synchronizedMap(new HashMap>()); - } + public FlagPermissions() { + cuboidFlags = Collections.synchronizedMap(new HashMap()); + playerFlags = Collections.synchronizedMap(new HashMap>()); + groupFlags = Collections.synchronizedMap(new HashMap>()); + } - public static void addFlag(String flag) { - flag = flag.toLowerCase(); - if (!validFlags.contains(flag)) { - validFlags.add(flag); - } - if (validFlagGroups.containsKey(flag)) { - validFlagGroups.remove(flag); - } - } + public static void addFlag(String flag) { + flag = flag.toLowerCase(); + if (!validFlags.contains(flag)) { + validFlags.add(flag); + } + if (validFlagGroups.containsKey(flag)) { + validFlagGroups.remove(flag); + } + } - public static void addFlagToFlagGroup(final String group, final String flag) { - if (!FlagPermissions.validFlags.contains(group) && !FlagPermissions.validAreaFlags.contains(group) && !FlagPermissions.validPlayerFlags.contains(group)) { - if (!validFlagGroups.containsKey(group)) { - validFlagGroups.put(group, new ArrayList()); - } - final ArrayList flags = validFlagGroups.get(group); - flags.add(flag); - } - } + public static void addFlagToFlagGroup(final String group, final String flag) { + if (!FlagPermissions.validFlags.contains(group) && !FlagPermissions.validAreaFlags.contains(group) && !FlagPermissions.validPlayerFlags.contains(group)) { + if (!validFlagGroups.containsKey(group)) { + validFlagGroups.put(group, new ArrayList()); + } + final ArrayList flags = validFlagGroups.get(group); + flags.add(flag); + } + } - public static void addMaterialToUseFlag(final Material mat, final String flag) { - matUseFlagList.put(mat, flag); - } + public static void addMaterialToUseFlag(final Material mat, final String flag) { + matUseFlagList.put(mat, flag); + } - public static void addPlayerOrGroupOnlyFlag(String flag) { - flag = flag.toLowerCase(); - if (!validPlayerFlags.contains(flag)) { - validPlayerFlags.add(flag); - } - if (validFlagGroups.containsKey(flag)) { - validFlagGroups.remove(flag); - } - } + public static void addPlayerOrGroupOnlyFlag(String flag) { + flag = flag.toLowerCase(); + if (!validPlayerFlags.contains(flag)) { + validPlayerFlags.add(flag); + } + if (validFlagGroups.containsKey(flag)) { + validFlagGroups.remove(flag); + } + } - public static void addResidenceOnlyFlag(String flag) { - flag = flag.toLowerCase(); - if (!validAreaFlags.contains(flag)) { - validAreaFlags.add(flag); - } - if (validFlagGroups.containsKey(flag)) { - validFlagGroups.remove(flag); - } - } + public static void addResidenceOnlyFlag(String flag) { + flag = flag.toLowerCase(); + if (!validAreaFlags.contains(flag)) { + validAreaFlags.add(flag); + } + if (validFlagGroups.containsKey(flag)) { + validFlagGroups.remove(flag); + } + } - public static boolean flagGroupExists(final String group) { - return validFlagGroups.containsKey(group); - } + public static boolean flagGroupExists(final String group) { + return validFlagGroups.containsKey(group); + } - public static EnumMap getMaterialUseFlagList() { - return (EnumMap) matUseFlagList; - } + public static EnumMap getMaterialUseFlagList() { + return (EnumMap) matUseFlagList; + } - public static void init(final ResidenceMain resmain) { - plugin = resmain; - } + public static void init(final ResidenceMain resmain) { + plugin = resmain; + } - public static void initValidFlags() { - validAreaFlags.clear(); - validPlayerFlags.clear(); - validFlags.clear(); - validFlagGroups.clear(); - addFlag("egg"); - addFlag("note"); - addFlag("pressure"); - addFlag("cake"); - addFlag("lever"); - addFlag("door"); - addFlag("button"); - addFlag("table"); - addFlag("brew"); - addFlag("bed"); - addFlag("commandblock"); - addFlag("anvil"); - addFlag("flowerpot"); - addFlag("enchant"); - addFlag("diode"); - addFlag("use"); - addFlag("move"); - addFlag("build"); - addFlag("tp"); - addFlag("ignite"); - addFlag("container"); - addFlag("subzone"); - addFlag("destroy"); - addFlag("place"); - addFlag("bucket"); - addFlag("bank"); - addFlag("beacon"); + public static void initValidFlags() { + validAreaFlags.clear(); + validPlayerFlags.clear(); + validFlags.clear(); + validFlagGroups.clear(); + addFlag("egg"); + addFlag("note"); + addFlag("pressure"); + addFlag("cake"); + addFlag("lever"); + addFlag("door"); + addFlag("button"); + addFlag("table"); + addFlag("brew"); + addFlag("bed"); + addFlag("commandblock"); + addFlag("anvil"); + addFlag("flowerpot"); + addFlag("enchant"); + addFlag("diode"); + addFlag("use"); + addFlag("move"); + addFlag("build"); + addFlag("tp"); + addFlag("ignite"); + addFlag("container"); + addFlag("subzone"); + addFlag("destroy"); + addFlag("place"); + addFlag("bucket"); + addFlag("bank"); + addFlag("beacon"); - /* New flags */ - addFlag("trade"); + /* New flags */ + addFlag("trade"); - addResidenceOnlyFlag("trample"); - addResidenceOnlyFlag("pvp"); - addResidenceOnlyFlag("fireball"); - addResidenceOnlyFlag("explode"); - addResidenceOnlyFlag("damage"); - addResidenceOnlyFlag("monsters"); - addResidenceOnlyFlag("firespread"); - addResidenceOnlyFlag("burn"); - addResidenceOnlyFlag("tnt"); - addResidenceOnlyFlag("creeper"); - addResidenceOnlyFlag("wither"); - addResidenceOnlyFlag("flow"); - addResidenceOnlyFlag("healing"); - addResidenceOnlyFlag("animals"); - addResidenceOnlyFlag("lavaflow"); - addResidenceOnlyFlag("waterflow"); - addResidenceOnlyFlag("physics"); - addResidenceOnlyFlag("piston"); - addResidenceOnlyFlag("spread"); - addResidenceOnlyFlag("hidden"); - addResidenceOnlyFlag("witherdamage"); + addResidenceOnlyFlag("trample"); + addResidenceOnlyFlag("pvp"); + addResidenceOnlyFlag("fireball"); + addResidenceOnlyFlag("explode"); + addResidenceOnlyFlag("damage"); + addResidenceOnlyFlag("monsters"); + addResidenceOnlyFlag("firespread"); + addResidenceOnlyFlag("burn"); + addResidenceOnlyFlag("tnt"); + addResidenceOnlyFlag("creeper"); + addResidenceOnlyFlag("wither"); + addResidenceOnlyFlag("flow"); + addResidenceOnlyFlag("healing"); + addResidenceOnlyFlag("animals"); + addResidenceOnlyFlag("lavaflow"); + addResidenceOnlyFlag("waterflow"); + addResidenceOnlyFlag("physics"); + addResidenceOnlyFlag("piston"); + addResidenceOnlyFlag("spread"); + addResidenceOnlyFlag("hidden"); + addResidenceOnlyFlag("witherdamage"); - addPlayerOrGroupOnlyFlag("admin"); + addPlayerOrGroupOnlyFlag("admin"); - addFlagToFlagGroup("redstone", "note"); - addFlagToFlagGroup("redstone", "pressure"); - addFlagToFlagGroup("redstone", "lever"); - addFlagToFlagGroup("redstone", "button"); - addFlagToFlagGroup("redstone", "diode"); - addFlagToFlagGroup("craft", "brew"); - addFlagToFlagGroup("craft", "table"); - addFlagToFlagGroup("craft", "enchant"); - addFlagToFlagGroup("trusted", "use"); - addFlagToFlagGroup("trusted", "tp"); - addFlagToFlagGroup("trusted", "build"); - addFlagToFlagGroup("trusted", "container"); - addFlagToFlagGroup("trusted", "bucket"); - addFlagToFlagGroup("trusted", "move"); - addFlagToFlagGroup("fire", "ignite"); - addFlagToFlagGroup("fire", "firespread"); + addFlagToFlagGroup("redstone", "note"); + addFlagToFlagGroup("redstone", "pressure"); + addFlagToFlagGroup("redstone", "lever"); + addFlagToFlagGroup("redstone", "button"); + addFlagToFlagGroup("redstone", "diode"); + addFlagToFlagGroup("craft", "brew"); + addFlagToFlagGroup("craft", "table"); + addFlagToFlagGroup("craft", "enchant"); + addFlagToFlagGroup("trusted", "use"); + addFlagToFlagGroup("trusted", "tp"); + addFlagToFlagGroup("trusted", "build"); + addFlagToFlagGroup("trusted", "container"); + addFlagToFlagGroup("trusted", "bucket"); + addFlagToFlagGroup("trusted", "move"); + addFlagToFlagGroup("fire", "ignite"); + addFlagToFlagGroup("fire", "firespread"); - addMaterialToUseFlag(Material.DIODE, "diode"); - addMaterialToUseFlag(Material.DIODE_BLOCK_OFF, "diode"); - addMaterialToUseFlag(Material.DIODE_BLOCK_ON, "diode"); - addMaterialToUseFlag(Material.WORKBENCH, "table"); - addMaterialToUseFlag(Material.WOODEN_DOOR, "door"); + addMaterialToUseFlag(Material.DIODE, "diode"); + addMaterialToUseFlag(Material.DIODE_BLOCK_OFF, "diode"); + addMaterialToUseFlag(Material.DIODE_BLOCK_ON, "diode"); + addMaterialToUseFlag(Material.WORKBENCH, "table"); + addMaterialToUseFlag(Material.WOODEN_DOOR, "door"); - if (plugin.isGt1_8()) { - /* 1.8 Doors */ - addMaterialToUseFlag(Material.SPRUCE_DOOR, "door"); - addMaterialToUseFlag(Material.BIRCH_DOOR, "door"); - addMaterialToUseFlag(Material.JUNGLE_DOOR, "door"); - addMaterialToUseFlag(Material.ACACIA_DOOR, "door"); - addMaterialToUseFlag(Material.DARK_OAK_DOOR, "door"); + if (plugin.isGt1_8()) { + /* 1.8 Doors */ + addMaterialToUseFlag(Material.SPRUCE_DOOR, "door"); + addMaterialToUseFlag(Material.BIRCH_DOOR, "door"); + addMaterialToUseFlag(Material.JUNGLE_DOOR, "door"); + addMaterialToUseFlag(Material.ACACIA_DOOR, "door"); + addMaterialToUseFlag(Material.DARK_OAK_DOOR, "door"); - /* 1.8 Fence Gates */ - addMaterialToUseFlag(Material.SPRUCE_FENCE_GATE, "door"); - addMaterialToUseFlag(Material.BIRCH_FENCE_GATE, "door"); - addMaterialToUseFlag(Material.JUNGLE_FENCE_GATE, "door"); - addMaterialToUseFlag(Material.ACACIA_FENCE_GATE, "door"); - addMaterialToUseFlag(Material.DARK_OAK_FENCE_GATE, "door"); - } + /* 1.8 Fence Gates */ + addMaterialToUseFlag(Material.SPRUCE_FENCE_GATE, "door"); + addMaterialToUseFlag(Material.BIRCH_FENCE_GATE, "door"); + addMaterialToUseFlag(Material.JUNGLE_FENCE_GATE, "door"); + addMaterialToUseFlag(Material.ACACIA_FENCE_GATE, "door"); + addMaterialToUseFlag(Material.DARK_OAK_FENCE_GATE, "door"); + } - addMaterialToUseFlag(Material.FENCE_GATE, "door"); - addMaterialToUseFlag(Material.NETHER_FENCE, "door"); - addMaterialToUseFlag(Material.TRAP_DOOR, "door"); - addMaterialToUseFlag(Material.ENCHANTMENT_TABLE, "enchant"); - addMaterialToUseFlag(Material.STONE_BUTTON, "button"); - addMaterialToUseFlag(Material.LEVER, "lever"); - addMaterialToUseFlag(Material.BED_BLOCK, "bed"); - addMaterialToUseFlag(Material.BREWING_STAND, "brew"); - addMaterialToUseFlag(Material.CAKE, "cake"); - addMaterialToUseFlag(Material.NOTE_BLOCK, "note"); - addMaterialToUseFlag(Material.DRAGON_EGG, "egg"); - addMaterialToUseFlag(Material.COMMAND, "commandblock"); - addMaterialToUseFlag(Material.WOOD_BUTTON, "button"); - addMaterialToUseFlag(Material.ANVIL, "anvil"); - addMaterialToUseFlag(Material.FLOWER_POT, "flowerpot"); - addMaterialToUseFlag(Material.BEACON, "beacon"); - addMaterialToUseFlag(Material.JUKEBOX, "container"); - addMaterialToUseFlag(Material.CHEST, "container"); - addMaterialToUseFlag(Material.TRAPPED_CHEST, "container"); - addMaterialToUseFlag(Material.HOPPER, "container"); - addMaterialToUseFlag(Material.DROPPER, "container"); - addMaterialToUseFlag(Material.FURNACE, "container"); - addMaterialToUseFlag(Material.BURNING_FURNACE, "container"); - addMaterialToUseFlag(Material.DISPENSER, "container"); - addMaterialToUseFlag(Material.CAKE_BLOCK, "cake"); - } + addMaterialToUseFlag(Material.FENCE_GATE, "door"); + addMaterialToUseFlag(Material.NETHER_FENCE, "door"); + addMaterialToUseFlag(Material.TRAP_DOOR, "door"); + addMaterialToUseFlag(Material.ENCHANTMENT_TABLE, "enchant"); + addMaterialToUseFlag(Material.STONE_BUTTON, "button"); + addMaterialToUseFlag(Material.LEVER, "lever"); + addMaterialToUseFlag(Material.BED_BLOCK, "bed"); + addMaterialToUseFlag(Material.BREWING_STAND, "brew"); + addMaterialToUseFlag(Material.CAKE, "cake"); + addMaterialToUseFlag(Material.NOTE_BLOCK, "note"); + addMaterialToUseFlag(Material.DRAGON_EGG, "egg"); + addMaterialToUseFlag(Material.COMMAND, "commandblock"); + addMaterialToUseFlag(Material.WOOD_BUTTON, "button"); + addMaterialToUseFlag(Material.ANVIL, "anvil"); + addMaterialToUseFlag(Material.FLOWER_POT, "flowerpot"); + addMaterialToUseFlag(Material.BEACON, "beacon"); + addMaterialToUseFlag(Material.JUKEBOX, "container"); + addMaterialToUseFlag(Material.CHEST, "container"); + addMaterialToUseFlag(Material.TRAPPED_CHEST, "container"); + addMaterialToUseFlag(Material.HOPPER, "container"); + addMaterialToUseFlag(Material.DROPPER, "container"); + addMaterialToUseFlag(Material.FURNACE, "container"); + addMaterialToUseFlag(Material.BURNING_FURNACE, "container"); + addMaterialToUseFlag(Material.DISPENSER, "container"); + addMaterialToUseFlag(Material.CAKE_BLOCK, "cake"); + } - public static FlagPermissions load(final Map root) throws Exception { - final FlagPermissions newperms = new FlagPermissions(); - return FlagPermissions.load(root, newperms); - } + public static FlagPermissions load(final Map root) throws Exception { + final FlagPermissions newperms = new FlagPermissions(); + return FlagPermissions.load(root, newperms); + } - public static FlagPermissions parseFromConfigNode(final String name, final ConfigurationSection node) { - final FlagPermissions list = new FlagPermissions(); - final Set keys = node.getConfigurationSection(name).getKeys(false); - if (keys != null) { - for (String key : keys) { - final boolean state = node.getBoolean(name + "." + key, false); - key = key.toLowerCase(); - if (state) { - list.setFlag(key, FlagState.TRUE); - } else { - list.setFlag(key, FlagState.FALSE); - } - } - } - return list; - } + public static FlagPermissions parseFromConfigNode(final String name, final ConfigurationSection node) { + final FlagPermissions list = new FlagPermissions(); + final Set keys = node.getConfigurationSection(name).getKeys(false); + if (keys != null) { + for (String key : keys) { + final boolean state = node.getBoolean(name + "." + key, false); + key = key.toLowerCase(); + if (state) { + list.setFlag(key, FlagState.TRUE); + } else { + list.setFlag(key, FlagState.FALSE); + } + } + } + return list; + } - public static void removeFlagFromFlagGroup(final String group, final String flag) { - if (validFlagGroups.containsKey(group)) { - final ArrayList flags = validFlagGroups.get(group); - flags.remove(flag); - if (flags.isEmpty()) { - validFlagGroups.remove(group); - } - } - } + public static void removeFlagFromFlagGroup(final String group, final String flag) { + if (validFlagGroups.containsKey(group)) { + final ArrayList flags = validFlagGroups.get(group); + flags.remove(flag); + if (flags.isEmpty()) { + validFlagGroups.remove(group); + } + } + } - public static void removeMaterialFromUseFlag(final Material mat) { - matUseFlagList.remove(mat); - } + public static void removeMaterialFromUseFlag(final Material mat) { + matUseFlagList.remove(mat); + } - public static FlagState stringToFlagState(final String flagstate) { - if (flagstate.equalsIgnoreCase("true") || flagstate.equalsIgnoreCase("t")) { - return FlagState.TRUE; - } else if (flagstate.equalsIgnoreCase("false") || flagstate.equalsIgnoreCase("f")) { - return FlagState.FALSE; - } else if (flagstate.equalsIgnoreCase("remove") || flagstate.equalsIgnoreCase("r")) { - return FlagState.NEITHER; - } else { - return FlagState.INVALID; - } - } + public static FlagState stringToFlagState(final String flagstate) { + if (flagstate.equalsIgnoreCase("true") || flagstate.equalsIgnoreCase("t")) { + return FlagState.TRUE; + } else if (flagstate.equalsIgnoreCase("false") || flagstate.equalsIgnoreCase("f")) { + return FlagState.FALSE; + } else if (flagstate.equalsIgnoreCase("remove") || flagstate.equalsIgnoreCase("r")) { + return FlagState.NEITHER; + } else { + return FlagState.INVALID; + } + } - @SuppressWarnings("unchecked") - protected static FlagPermissions load(final Map root, final FlagPermissions newperms) throws Exception { - newperms.playerFlags = (Map>) root.get("PlayerFlags"); - newperms.groupFlags = (Map>) root.get("GroupFlags"); - newperms.cuboidFlags = (Map) root.get("AreaFlags"); - return newperms; - } + @SuppressWarnings("unchecked") + protected static FlagPermissions load(final Map root, final FlagPermissions newperms) throws Exception { + newperms.playerFlags = (Map>) root.get("PlayerFlags"); + newperms.groupFlags = (Map>) root.get("GroupFlags"); + newperms.cuboidFlags = (Map) root.get("AreaFlags"); + return newperms; + } - public boolean checkValidFlag(final String flag, final boolean globalflag) { - if (validFlags.contains(flag)) { - return true; - } - if (globalflag) { - if (validAreaFlags.contains(flag)) { - return true; - } - } else if (validPlayerFlags.contains(flag)) { - return true; - } - return false; - } + public boolean checkValidFlag(final String flag, final boolean globalflag) { + if (validFlags.contains(flag)) { + return true; + } + if (globalflag) { + if (validAreaFlags.contains(flag)) { + return true; + } + } else if (validPlayerFlags.contains(flag)) { + return true; + } + return false; + } - public void clearFlags() { - groupFlags.clear(); - playerFlags.clear(); - cuboidFlags.clear(); - } + public void clearFlags() { + groupFlags.clear(); + playerFlags.clear(); + cuboidFlags.clear(); + } - public void clearPlayersFlags(final String user) { - if (playerFlags.containsKey(user)) { - playerFlags.remove(user); - } - } + public void clearPlayersFlags(final String user) { + if (playerFlags.containsKey(user)) { + playerFlags.remove(user); + } + } - public void copyUserPermissions(String fromUser, String toUser) { - fromUser = fromUser.toLowerCase(); - toUser = toUser.toLowerCase(); - final Map get = playerFlags.get(fromUser); - if (get != null) { - Map targ = playerFlags.get(toUser); - if (targ == null) { - targ = new HashMap(); - playerFlags.put(toUser, targ); - } - for (final Entry entry : get.entrySet()) { - targ.put(entry.getKey(), entry.getValue()); - } - } - } + public void copyUserPermissions(String fromUser, String toUser) { + fromUser = fromUser.toLowerCase(); + toUser = toUser.toLowerCase(); + final Map get = playerFlags.get(fromUser); + if (get != null) { + Map targ = playerFlags.get(toUser); + if (targ == null) { + targ = new HashMap(); + playerFlags.put(toUser, targ); + } + for (final Entry entry : get.entrySet()) { + targ.put(entry.getKey(), entry.getValue()); + } + } + } - public FlagPermissions getParent() { - return parent; - } + public FlagPermissions getParent() { + return parent; + } - public boolean groupHas(final String group, final String flag, final boolean def) { - return this.groupCheck(group, flag, this.has(flag, def)); - } + public boolean groupHas(final String group, final String flag, final boolean def) { + return this.groupCheck(group, flag, this.has(flag, def)); + } - public boolean has(final String flag, final boolean def) { - if (cuboidFlags.containsKey(flag)) { - return cuboidFlags.get(flag); - } - if (parent != null) { - return parent.has(flag, def); - } - return def; - } + public boolean has(final String flag, final boolean def) { + if (cuboidFlags.containsKey(flag)) { + return cuboidFlags.get(flag); + } + if (parent != null) { + return parent.has(flag, def); + } + return def; + } - public boolean inheritanceIsGroupSet(String group, final String flag) { - group = group.toLowerCase(); - final Map flags = groupFlags.get(group); - if (flags == null) { - return parent == null ? false : parent.inheritanceIsGroupSet(group, flag); - } - return flags.containsKey(flag) ? true : parent == null ? false : parent.inheritanceIsGroupSet(group, flag); - } + public boolean inheritanceIsGroupSet(String group, final String flag) { + group = group.toLowerCase(); + final Map flags = groupFlags.get(group); + if (flags == null) { + return parent == null ? false : parent.inheritanceIsGroupSet(group, flag); + } + return flags.containsKey(flag) ? true : parent == null ? false : parent.inheritanceIsGroupSet(group, flag); + } - public boolean inheritanceIsPlayerSet(String player, final String flag) { - player = player.toLowerCase(); - final Map flags = playerFlags.get(player); - if (flags == null) { - return parent == null ? false : parent.inheritanceIsPlayerSet(player, flag); - } - return flags.containsKey(flag) ? true : parent == null ? false : parent.inheritanceIsPlayerSet(player, flag); - } + public boolean inheritanceIsPlayerSet(String player, final String flag) { + player = player.toLowerCase(); + final Map flags = playerFlags.get(player); + if (flags == null) { + return parent == null ? false : parent.inheritanceIsPlayerSet(player, flag); + } + return flags.containsKey(flag) ? true : parent == null ? false : parent.inheritanceIsPlayerSet(player, flag); + } - public boolean inheritanceIsSet(final String flag) { - return cuboidFlags.containsKey(flag) ? true : parent == null ? false : parent.inheritanceIsSet(flag); - } + public boolean inheritanceIsSet(final String flag) { + return cuboidFlags.containsKey(flag) ? true : parent == null ? false : parent.inheritanceIsSet(flag); + } - public boolean isGroupSet(String group, final String flag) { - group = group.toLowerCase(); - final Map flags = groupFlags.get(group); - if (flags == null) { - return false; - } - return flags.containsKey(flag); - } + public boolean isGroupSet(String group, final String flag) { + group = group.toLowerCase(); + final Map flags = groupFlags.get(group); + if (flags == null) { + return false; + } + return flags.containsKey(flag); + } - public boolean isPlayerSet(String player, final String flag) { - player = player.toLowerCase(); - final Map flags = playerFlags.get(player); - if (flags == null) { - return false; - } - return flags.containsKey(flag); - } + public boolean isPlayerSet(String player, final String flag) { + player = player.toLowerCase(); + final Map flags = playerFlags.get(player); + if (flags == null) { + return false; + } + return flags.containsKey(flag); + } - public boolean isSet(final String flag) { - return cuboidFlags.containsKey(flag); - } + public boolean isSet(final String flag) { + return cuboidFlags.containsKey(flag); + } - public String listFlags() { - final StringBuilder sbuild = new StringBuilder(); - final Set> set = cuboidFlags.entrySet(); - synchronized (cuboidFlags) { - final Iterator> it = set.iterator(); - while (it.hasNext()) { - final Entry next = it.next(); - if (next.getValue()) { - sbuild.append("+").append(next.getKey()); - if (it.hasNext()) { - sbuild.append(" "); - } - } else { - sbuild.append("-").append(next.getKey()); - if (it.hasNext()) { - sbuild.append(" "); - } - } - } - } - if (sbuild.length() == 0) { - sbuild.append("none"); - } - return sbuild.toString(); - } + public String listFlags() { + final StringBuilder sbuild = new StringBuilder(); + final Set> set = cuboidFlags.entrySet(); + synchronized (cuboidFlags) { + final Iterator> it = set.iterator(); + while (it.hasNext()) { + final Entry next = it.next(); + if (next.getValue()) { + sbuild.append("+").append(next.getKey()); + if (it.hasNext()) { + sbuild.append(" "); + } + } else { + sbuild.append("-").append(next.getKey()); + if (it.hasNext()) { + sbuild.append(" "); + } + } + } + } + if (sbuild.length() == 0) { + sbuild.append("none"); + } + return sbuild.toString(); + } - public String listGroupFlags() { - final StringBuilder sbuild = new StringBuilder(); - final Set set = groupFlags.keySet(); - synchronized (groupFlags) { - final Iterator it = set.iterator(); - while (it.hasNext()) { - final String next = it.next(); - final String perms = listGroupFlags(next); - if (!perms.equals("none")) { - sbuild.append(next).append("[" + ChatColor.DARK_AQUA).append(perms).append(ChatColor.RED + "] "); - } - } - } - return sbuild.toString(); - } + public String listGroupFlags() { + final StringBuilder sbuild = new StringBuilder(); + final Set set = groupFlags.keySet(); + synchronized (groupFlags) { + final Iterator it = set.iterator(); + while (it.hasNext()) { + final String next = it.next(); + final String perms = listGroupFlags(next); + if (!perms.equals("none")) { + sbuild.append(next).append("[" + ChatColor.DARK_AQUA).append(perms).append(ChatColor.RED + "] "); + } + } + } + return sbuild.toString(); + } - public String listGroupFlags(String group) { - group = group.toLowerCase(); - if (groupFlags.containsKey(group)) { - final StringBuilder sbuild = new StringBuilder(); - final Map get = groupFlags.get(group); - final Set> set = get.entrySet(); - synchronized (get) { - final Iterator> it = set.iterator(); - while (it.hasNext()) { - final Entry next = it.next(); - if (next.getValue()) { - sbuild.append("+").append(next.getKey()); - if (it.hasNext()) { - sbuild.append(" "); - } - } else { - sbuild.append("-").append(next.getKey()); - if (it.hasNext()) { - sbuild.append(" "); - } - } - } - } - if (sbuild.length() == 0) { - groupFlags.remove(group); - sbuild.append("none"); - } - return sbuild.toString(); - } - return "none"; - } + public String listGroupFlags(String group) { + group = group.toLowerCase(); + if (groupFlags.containsKey(group)) { + final StringBuilder sbuild = new StringBuilder(); + final Map get = groupFlags.get(group); + final Set> set = get.entrySet(); + synchronized (get) { + final Iterator> it = set.iterator(); + while (it.hasNext()) { + final Entry next = it.next(); + if (next.getValue()) { + sbuild.append("+").append(next.getKey()); + if (it.hasNext()) { + sbuild.append(" "); + } + } else { + sbuild.append("-").append(next.getKey()); + if (it.hasNext()) { + sbuild.append(" "); + } + } + } + } + if (sbuild.length() == 0) { + groupFlags.remove(group); + sbuild.append("none"); + } + return sbuild.toString(); + } + return "none"; + } - public String listOtherPlayersFlags(String player) { - player = player.toLowerCase(); - final StringBuilder sbuild = new StringBuilder(); - final Set set = playerFlags.keySet(); - synchronized (playerFlags) { - final Iterator it = set.iterator(); - while (it.hasNext()) { - final String next = it.next(); - if (!next.equals(player)) { - final String perms = listPlayerFlags(next); - if (!perms.equals("none")) { - sbuild.append(next).append("[" + ChatColor.DARK_AQUA).append(perms).append(ChatColor.RED + "] "); - } - } - } - } - return sbuild.toString(); - } + public String listOtherPlayersFlags(String player) { + player = player.toLowerCase(); + final StringBuilder sbuild = new StringBuilder(); + final Set set = playerFlags.keySet(); + synchronized (playerFlags) { + final Iterator it = set.iterator(); + while (it.hasNext()) { + final String next = it.next(); + if (!next.equals(player)) { + final String perms = listPlayerFlags(next); + if (!perms.equals("none")) { + sbuild.append(next).append("[" + ChatColor.DARK_AQUA).append(perms).append(ChatColor.RED + "] "); + } + } + } + } + return sbuild.toString(); + } - public String listPlayerFlags(String player) { - player = player.toLowerCase(); - if (playerFlags.containsKey(player)) { - final StringBuilder sbuild = new StringBuilder(); - final Map get = playerFlags.get(player); - final Set> set = get.entrySet(); - synchronized (get) { - final Iterator> it = set.iterator(); - while (it.hasNext()) { - final Entry next = it.next(); - if (next.getValue()) { - sbuild.append("+").append(next.getKey()); - if (it.hasNext()) { - sbuild.append(" "); - } - } else { - sbuild.append("-").append(next.getKey()); - if (it.hasNext()) { - sbuild.append(" "); - } - } - } - } - if (sbuild.length() == 0) { - playerFlags.remove(player); - sbuild.append("none"); - } - return sbuild.toString(); - } - return "none"; - } + public String listPlayerFlags(String player) { + player = player.toLowerCase(); + if (playerFlags.containsKey(player)) { + final StringBuilder sbuild = new StringBuilder(); + final Map get = playerFlags.get(player); + final Set> set = get.entrySet(); + synchronized (get) { + final Iterator> it = set.iterator(); + while (it.hasNext()) { + final Entry next = it.next(); + if (next.getValue()) { + sbuild.append("+").append(next.getKey()); + if (it.hasNext()) { + sbuild.append(" "); + } + } else { + sbuild.append("-").append(next.getKey()); + if (it.hasNext()) { + sbuild.append(" "); + } + } + } + } + if (sbuild.length() == 0) { + playerFlags.remove(player); + sbuild.append("none"); + } + return sbuild.toString(); + } + return "none"; + } - public boolean playerHas(final String player, final String world, final String flag, final boolean def) { - final String group = plugin.getPermissionManager().getGroupNameByPlayer(player, world); - return this.playerCheck(player, flag, this.groupCheck(group, flag, this.has(flag, def))); - } + public boolean playerHas(final String player, final String world, final String flag, final boolean def) { + final String group = plugin.getPermissionManager().getGroupNameByPlayer(player, world); + return this.playerCheck(player, flag, this.groupCheck(group, flag, this.has(flag, def))); + } - public void printFlags(final Player player) { - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Flags") + ":" + ChatColor.BLUE + " " + listFlags()); - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Your.Flags") + ":" + ChatColor.GREEN + " " + listPlayerFlags(player.getName())); - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Group.Flags") + ":" + ChatColor.RED + " " + listGroupFlags()); - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Others.Flags") + ":" + ChatColor.RED + " " + listOtherPlayersFlags(player.getName())); - } + public void printFlags(final Player player) { + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Flags") + ":" + ChatColor.BLUE + " " + listFlags()); + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Your.Flags") + ":" + ChatColor.GREEN + " " + listPlayerFlags(player.getName())); + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Group.Flags") + ":" + ChatColor.RED + " " + listGroupFlags()); + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Others.Flags") + ":" + ChatColor.RED + " " + listOtherPlayersFlags(player.getName())); + } - public void removeAllGroupFlags(final String group) { - groupFlags.remove(group); - } + public void removeAllGroupFlags(final String group) { + groupFlags.remove(group); + } - public void removeAllPlayerFlags(final String player) { - playerFlags.remove(player); - } + public void removeAllPlayerFlags(final String player) { + playerFlags.remove(player); + } - public Map save() { - final Map root = new LinkedHashMap(); - root.put("PlayerFlags", playerFlags); - root.put("GroupFlags", groupFlags); - root.put("AreaFlags", cuboidFlags); - return root; - } + public Map save() { + final Map root = new LinkedHashMap(); + root.put("PlayerFlags", playerFlags); + root.put("GroupFlags", groupFlags); + root.put("AreaFlags", cuboidFlags); + return root; + } - public boolean setFlag(final String flag, final FlagState state) { - if (state == FlagState.FALSE) { - cuboidFlags.put(flag, false); - } else if (state == FlagState.TRUE) { - cuboidFlags.put(flag, true); - } else if (state == FlagState.NEITHER) { - if (cuboidFlags.containsKey(flag)) { - cuboidFlags.remove(flag); - } - } - return true; - } + public boolean setFlag(final String flag, final FlagState state) { + if (state == FlagState.FALSE) { + cuboidFlags.put(flag, false); + } else if (state == FlagState.TRUE) { + cuboidFlags.put(flag, true); + } else if (state == FlagState.NEITHER) { + if (cuboidFlags.containsKey(flag)) { + cuboidFlags.remove(flag); + } + } + return true; + } - public boolean setGroupFlag(String group, final String flag, final FlagState state) { - group = group.toLowerCase(); - if (!groupFlags.containsKey(group)) { - groupFlags.put(group, Collections.synchronizedMap(new HashMap())); - } - final Map map = groupFlags.get(group); - if (state == FlagState.FALSE) { - map.put(flag, false); - } else if (state == FlagState.TRUE) { - map.put(flag, true); - } else if (state == FlagState.NEITHER) { - if (map.containsKey(flag)) { - map.remove(flag); - } - } - if (map.isEmpty()) { - groupFlags.remove(group); - } - return true; - } + public boolean setGroupFlag(String group, final String flag, final FlagState state) { + group = group.toLowerCase(); + if (!groupFlags.containsKey(group)) { + groupFlags.put(group, Collections.synchronizedMap(new HashMap())); + } + final Map map = groupFlags.get(group); + if (state == FlagState.FALSE) { + map.put(flag, false); + } else if (state == FlagState.TRUE) { + map.put(flag, true); + } else if (state == FlagState.NEITHER) { + if (map.containsKey(flag)) { + map.remove(flag); + } + } + if (map.isEmpty()) { + groupFlags.remove(group); + } + return true; + } - public void setParent(final FlagPermissions p) { - parent = p; - } + public void setParent(final FlagPermissions p) { + parent = p; + } - public boolean setPlayerFlag(String player, final String flag, final FlagState state) { - player = player.toLowerCase(); - if (!playerFlags.containsKey(player)) { - playerFlags.put(player, Collections.synchronizedMap(new HashMap())); - } - final Map map = playerFlags.get(player); - if (state == FlagState.FALSE) { - map.put(flag, false); - } else if (state == FlagState.TRUE) { - map.put(flag, true); - } else if (state == FlagState.NEITHER) { - if (map.containsKey(flag)) { - map.remove(flag); - } - } - if (map.isEmpty()) { - playerFlags.remove(player); - } - return true; - } + public boolean setPlayerFlag(String player, final String flag, final FlagState state) { + player = player.toLowerCase(); + if (!playerFlags.containsKey(player)) { + playerFlags.put(player, Collections.synchronizedMap(new HashMap())); + } + final Map map = playerFlags.get(player); + if (state == FlagState.FALSE) { + map.put(flag, false); + } else if (state == FlagState.TRUE) { + map.put(flag, true); + } else if (state == FlagState.NEITHER) { + if (map.containsKey(flag)) { + map.remove(flag); + } + } + if (map.isEmpty()) { + playerFlags.remove(player); + } + return true; + } - private boolean groupCheck(final String group, final String flag, final boolean def) { - if (groupFlags.containsKey(group)) { - final Map gmap = groupFlags.get(group); - if (gmap.containsKey(flag)) { - return gmap.get(flag); - } - } - if (parent != null) { - return parent.groupCheck(group, flag, def); - } - return def; - } + private boolean groupCheck(final String group, final String flag, final boolean def) { + if (groupFlags.containsKey(group)) { + final Map gmap = groupFlags.get(group); + if (gmap.containsKey(flag)) { + return gmap.get(flag); + } + } + if (parent != null) { + return parent.groupCheck(group, flag, def); + } + return def; + } - private boolean playerCheck(String player, final String flag, final boolean def) { - player = player.toLowerCase(); - if (playerFlags.containsKey(player)) { - final Map pmap = playerFlags.get(player); - if (pmap.containsKey(flag)) { - return pmap.get(flag); - } - } - if (parent != null) { - return parent.playerCheck(player, flag, def); - } - return def; - } + private boolean playerCheck(String player, final String flag, final boolean def) { + player = player.toLowerCase(); + if (playerFlags.containsKey(player)) { + final Map pmap = playerFlags.get(player); + if (pmap.containsKey(flag)) { + return pmap.get(flag); + } + } + if (parent != null) { + return parent.playerCheck(player, flag, def); + } + return def; + } } diff --git a/src/main/java/com/bekvon/bukkit/residence/protection/LeaseManager.java b/src/main/java/com/bekvon/bukkit/residence/protection/LeaseManager.java index ca89e96..941917d 100644 --- a/src/main/java/com/bekvon/bukkit/residence/protection/LeaseManager.java +++ b/src/main/java/com/bekvon/bukkit/residence/protection/LeaseManager.java @@ -29,211 +29,211 @@ import cn.citycraft.Residence.permissions.PermissionGroup; */ public class LeaseManager { - private Map leaseExpireTime; + private Map leaseExpireTime; - ResidenceManager manager; - ResidenceMain plugin; + ResidenceManager manager; + ResidenceMain plugin; - public LeaseManager(final ResidenceMain plugin, final ResidenceManager m) { - this.plugin = plugin; - manager = m; - leaseExpireTime = Collections.synchronizedMap(new HashMap()); - } + public LeaseManager(final ResidenceMain plugin, final ResidenceManager m) { + this.plugin = plugin; + manager = m; + leaseExpireTime = Collections.synchronizedMap(new HashMap()); + } - public static LeaseManager load(final ResidenceMain plugin, final Map root, final ResidenceManager m) { - final LeaseManager l = new LeaseManager(plugin, m); - if (root != null) { - for (final Object val : root.values()) { - if (!(val instanceof Long)) { - root.remove(val); - } - } - l.leaseExpireTime = Collections.synchronizedMap(root); - } - return l; - } + public static LeaseManager load(final ResidenceMain plugin, final Map root, final ResidenceManager m) { + final LeaseManager l = new LeaseManager(plugin, m); + if (root != null) { + for (final Object val : root.values()) { + if (!(val instanceof Long)) { + root.remove(val); + } + } + l.leaseExpireTime = Collections.synchronizedMap(root); + } + return l; + } - public void doExpirations() { - final Set> set = leaseExpireTime.entrySet(); - final Iterator> it = set.iterator(); - while (it.hasNext()) { - final Entry next = it.next(); - if (next.getValue() <= System.currentTimeMillis()) { - final String resname = next.getKey(); - final ClaimedResidence res = plugin.getResidenceManager().getByName(resname); - if (res == null) { - it.remove(); - } else { - boolean renewed = false; - final String owner = res.getPermissions().getOwner(); - final PermissionGroup limits = plugin.getPermissionManager().getGroup(owner, res.getPermissions().getWorld()); - final int cost = this.getRenewCost(res); - if (plugin.getConfigManager().enableEconomy() && plugin.getConfigManager().autoRenewLeases()) { - if (cost == 0) { - renewed = true; - } else if (res.getBank().hasEnough(cost)) { - res.getBank().subtract(cost); - renewed = true; - if (plugin.getConfigManager().debugEnabled()) { - plugin.getLogger().info("Lease Renewed From Residence Bank: " + resname); - } - } else if (plugin.getEconomyManager().canAfford(owner, cost)) { - if (plugin.getEconomyManager().subtract(owner, cost)) { - renewed = true; - if (plugin.getConfigManager().debugEnabled()) { - plugin.getLogger().info("Lease Renewed From Economy: " + resname); - } - } - } - } - if (!renewed) { - if (!plugin.getConfigManager().enabledRentSystem() || !plugin.getRentManager().isRented(resname)) { - final ResidenceDeleteEvent resevent = new ResidenceDeleteEvent(null, res, DeleteCause.LEASE_EXPIRE); - plugin.getServer().getPluginManager().callEvent(resevent); - if (!resevent.isCancelled()) { - manager.removeResidence(next.getKey()); - it.remove(); - if (plugin.getConfigManager().debugEnabled()) { - plugin.getLogger().info("Lease NOT removed, Removing: " + resname); - } - } - } - } else { - if (plugin.getConfigManager().enableEconomy() && plugin.getConfigManager().enableLeaseMoneyAccount()) { - plugin.getEconomyManager().add("Lease Money", cost); - } - if (plugin.getConfigManager().debugEnabled()) { - plugin.getLogger().info("Lease Renew Old: " + next.getValue()); - } - next.setValue(System.currentTimeMillis() + daysToMs(limits.getLeaseGiveTime())); - if (plugin.getConfigManager().debugEnabled()) { - plugin.getLogger().info("Lease Renew New: " + next.getValue()); - } - } - } - } - } - } + public void doExpirations() { + final Set> set = leaseExpireTime.entrySet(); + final Iterator> it = set.iterator(); + while (it.hasNext()) { + final Entry next = it.next(); + if (next.getValue() <= System.currentTimeMillis()) { + final String resname = next.getKey(); + final ClaimedResidence res = plugin.getResidenceManager().getByName(resname); + if (res == null) { + it.remove(); + } else { + boolean renewed = false; + final String owner = res.getPermissions().getOwner(); + final PermissionGroup limits = plugin.getPermissionManager().getGroup(owner, res.getPermissions().getWorld()); + final int cost = this.getRenewCost(res); + if (plugin.getConfigManager().enableEconomy() && plugin.getConfigManager().autoRenewLeases()) { + if (cost == 0) { + renewed = true; + } else if (res.getBank().hasEnough(cost)) { + res.getBank().subtract(cost); + renewed = true; + if (plugin.getConfigManager().debugEnabled()) { + plugin.getLogger().info("Lease Renewed From Residence Bank: " + resname); + } + } else if (plugin.getEconomyManager().canAfford(owner, cost)) { + if (plugin.getEconomyManager().subtract(owner, cost)) { + renewed = true; + if (plugin.getConfigManager().debugEnabled()) { + plugin.getLogger().info("Lease Renewed From Economy: " + resname); + } + } + } + } + if (!renewed) { + if (!plugin.getConfigManager().enabledRentSystem() || !plugin.getRentManager().isRented(resname)) { + final ResidenceDeleteEvent resevent = new ResidenceDeleteEvent(null, res, DeleteCause.LEASE_EXPIRE); + plugin.getServer().getPluginManager().callEvent(resevent); + if (!resevent.isCancelled()) { + manager.removeResidence(next.getKey()); + it.remove(); + if (plugin.getConfigManager().debugEnabled()) { + plugin.getLogger().info("Lease NOT removed, Removing: " + resname); + } + } + } + } else { + if (plugin.getConfigManager().enableEconomy() && plugin.getConfigManager().enableLeaseMoneyAccount()) { + plugin.getEconomyManager().add("Lease Money", cost); + } + if (plugin.getConfigManager().debugEnabled()) { + plugin.getLogger().info("Lease Renew Old: " + next.getValue()); + } + next.setValue(System.currentTimeMillis() + daysToMs(limits.getLeaseGiveTime())); + if (plugin.getConfigManager().debugEnabled()) { + plugin.getLogger().info("Lease Renew New: " + next.getValue()); + } + } + } + } + } + } - public Date getExpireTime(final String area) { - if (leaseExpireTime.containsKey(area)) { - return new Date(leaseExpireTime.get(area)); - } - return null; - } + public Date getExpireTime(final String area) { + if (leaseExpireTime.containsKey(area)) { + return new Date(leaseExpireTime.get(area)); + } + return null; + } - public int getRenewCost(final ClaimedResidence res) { - final PermissionGroup limits = plugin.getPermissionManager().getGroup(res.getPermissions().getOwner(), res.getPermissions().getWorld()); - final double cost = limits.getLeaseRenewCost(); - final int amount = (int) Math.ceil(res.getTotalSize() * cost); - return amount; - } + public int getRenewCost(final ClaimedResidence res) { + final PermissionGroup limits = plugin.getPermissionManager().getGroup(res.getPermissions().getOwner(), res.getPermissions().getWorld()); + final double cost = limits.getLeaseRenewCost(); + final int amount = (int) Math.ceil(res.getTotalSize() * cost); + return amount; + } - public boolean leaseExpires(final String area) { - return leaseExpireTime.containsKey(area); - } + public boolean leaseExpires(final String area) { + return leaseExpireTime.containsKey(area); + } - public void removeExpireTime(final String area) { - leaseExpireTime.remove(area); - } + public void removeExpireTime(final String area) { + leaseExpireTime.remove(area); + } - public void renewArea(final String area, final Player player) { - if (!leaseExpires(area)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("LeaseNotExpire")); - return; - } - final PermissionGroup limits = plugin.getPermissionManager().getGroup(player); - final int max = limits.getMaxLeaseTime(); - final int add = limits.getLeaseGiveTime(); - final int rem = daysRemaining(area); - final EconomyInterface econ = plugin.getEconomyManager(); - if (econ != null) { - final double cost = limits.getLeaseRenewCost(); - final ClaimedResidence res = manager.getByName(area); - final int amount = (int) Math.ceil(res.getTotalSize() * cost); - if (cost != 0D) { - if (econ.canAfford(player.getName(), amount)) { - econ.subtract(player.getName(), amount); - econ.add("Lease Money", amount); - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("MoneyCharged", - ChatColor.YELLOW + String.format("%d", amount) + ChatColor.GREEN + "." + ChatColor.YELLOW + econ.getName() + ChatColor.GREEN)); - } else { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NotEnoughMoney")); - return; - } - } - } - if (rem + add > max) { - setExpireTime(player, area, max); - player.sendMessage(ChatColor.GOLD + plugin.getLanguage().getPhrase("LeaseRenewMax")); - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("LeaseRenew", ChatColor.GREEN + "" + getExpireTime(area)) + ChatColor.YELLOW); - return; - } - Long get = leaseExpireTime.get(area); - if (get != null) { - get = get + daysToMs(add); - leaseExpireTime.put(area, get); - } else { - leaseExpireTime.put(area, daysToMs(add)); - } - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("LeaseRenew", ChatColor.GREEN + "" + getExpireTime(area))); - } + public void renewArea(final String area, final Player player) { + if (!leaseExpires(area)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("LeaseNotExpire")); + return; + } + final PermissionGroup limits = plugin.getPermissionManager().getGroup(player); + final int max = limits.getMaxLeaseTime(); + final int add = limits.getLeaseGiveTime(); + final int rem = daysRemaining(area); + final EconomyInterface econ = plugin.getEconomyManager(); + if (econ != null) { + final double cost = limits.getLeaseRenewCost(); + final ClaimedResidence res = manager.getByName(area); + final int amount = (int) Math.ceil(res.getTotalSize() * cost); + if (cost != 0D) { + if (econ.canAfford(player.getName(), amount)) { + econ.subtract(player.getName(), amount); + econ.add("Lease Money", amount); + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("MoneyCharged", + ChatColor.YELLOW + String.format("%d", amount) + ChatColor.GREEN + "." + ChatColor.YELLOW + econ.getName() + ChatColor.GREEN)); + } else { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NotEnoughMoney")); + return; + } + } + } + if (rem + add > max) { + setExpireTime(player, area, max); + player.sendMessage(ChatColor.GOLD + plugin.getLanguage().getPhrase("LeaseRenewMax")); + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("LeaseRenew", ChatColor.GREEN + "" + getExpireTime(area)) + ChatColor.YELLOW); + return; + } + Long get = leaseExpireTime.get(area); + if (get != null) { + get = get + daysToMs(add); + leaseExpireTime.put(area, get); + } else { + leaseExpireTime.put(area, daysToMs(add)); + } + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("LeaseRenew", ChatColor.GREEN + "" + getExpireTime(area))); + } - public void resetLeases() { - leaseExpireTime.clear(); - final String[] list = manager.getResidenceList(); - for (final String element : list) { - if (element != null) { - final ClaimedResidence res = plugin.getResidenceManager().getByName(element); - final PermissionGroup group = plugin.getPermissionManager().getGroup(res.getPermissions().getOwner(), res.getPermissions().getWorld()); - this.setExpireTime(null, element, group.getLeaseGiveTime()); - } - } - plugin.getLogger().info(" - Set default leases."); - } + public void resetLeases() { + leaseExpireTime.clear(); + final String[] list = manager.getResidenceList(); + for (final String element : list) { + if (element != null) { + final ClaimedResidence res = plugin.getResidenceManager().getByName(element); + final PermissionGroup group = plugin.getPermissionManager().getGroup(res.getPermissions().getOwner(), res.getPermissions().getWorld()); + this.setExpireTime(null, element, group.getLeaseGiveTime()); + } + } + plugin.getLogger().info(" - Set default leases."); + } - public Map save() { - return leaseExpireTime; - } + public Map save() { + return leaseExpireTime; + } - public void setExpireTime(final Player player, String area, final int days) { - area = area.replace(".", "_"); - if (manager.getByName(area) != null) { - leaseExpireTime.put(area, daysToMs(days) + System.currentTimeMillis()); - if (player != null) { - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("LeaseRenew", getExpireTime(area).toString())); - } - } else { - if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidArea")); - } - } - } + public void setExpireTime(final Player player, String area, final int days) { + area = area.replace(".", "_"); + if (manager.getByName(area) != null) { + leaseExpireTime.put(area, daysToMs(days) + System.currentTimeMillis()); + if (player != null) { + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("LeaseRenew", getExpireTime(area).toString())); + } + } else { + if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidArea")); + } + } + } - public void setExpireTime(final String area, final int days) { - this.setExpireTime(null, area, days); - } + public void setExpireTime(final String area, final int days) { + this.setExpireTime(null, area, days); + } - public void updateLeaseName(final String oldName, final String newName) { - if (leaseExpireTime.containsKey(oldName)) { - leaseExpireTime.put(newName, leaseExpireTime.get(oldName)); - leaseExpireTime.remove(oldName); - } - } + public void updateLeaseName(final String oldName, final String newName) { + if (leaseExpireTime.containsKey(oldName)) { + leaseExpireTime.put(newName, leaseExpireTime.get(oldName)); + leaseExpireTime.remove(oldName); + } + } - private int daysRemaining(final String area) { - final Long get = leaseExpireTime.get(area); - if (get <= System.currentTimeMillis()) { - return 0; - } - return msToDays((int) (get - System.currentTimeMillis())); - } + private int daysRemaining(final String area) { + final Long get = leaseExpireTime.get(area); + if (get <= System.currentTimeMillis()) { + return 0; + } + return msToDays((int) (get - System.currentTimeMillis())); + } - private long daysToMs(final int days) { - return ((days) * 24L * 60L * 60L * 1000L); - } + private long daysToMs(final int days) { + return ((days) * 24L * 60L * 60L * 1000L); + } - private int msToDays(final long ms) { - return (int) Math.ceil((((ms / 1000D) / 60D) / 60D) / 24D); - } + private int msToDays(final long ms) { + return (int) Math.ceil((((ms / 1000D) / 60D) / 60D) / 24D); + } } diff --git a/src/main/java/com/bekvon/bukkit/residence/protection/PermissionListManager.java b/src/main/java/com/bekvon/bukkit/residence/protection/PermissionListManager.java index 883503f..01856ec 100644 --- a/src/main/java/com/bekvon/bukkit/residence/protection/PermissionListManager.java +++ b/src/main/java/com/bekvon/bukkit/residence/protection/PermissionListManager.java @@ -22,120 +22,120 @@ import cn.citycraft.Residence.ResidenceMain; */ public class PermissionListManager { - private final Map> lists; - ResidenceMain plugin; + private final Map> lists; + ResidenceMain plugin; - public PermissionListManager(final ResidenceMain plugin) { - this.plugin = plugin; - lists = Collections.synchronizedMap(new HashMap>()); - } + public PermissionListManager(final ResidenceMain plugin) { + this.plugin = plugin; + lists = Collections.synchronizedMap(new HashMap>()); + } - @SuppressWarnings("unchecked") - public static PermissionListManager load(final ResidenceMain plugin, final Map root) { - final PermissionListManager p = new PermissionListManager(plugin); - if (root != null) { - for (final Entry players : root.entrySet()) { - try { - final Map value = (Map) players.getValue(); - final Map loadedMap = Collections.synchronizedMap(new HashMap()); - for (final Entry list : value.entrySet()) { - loadedMap.put(list.getKey(), FlagPermissions.load((Map) list.getValue())); - } - p.lists.put(players.getKey(), loadedMap); - } catch (final Exception ex) { - plugin.getLogger().warning(" - 玩家: " + players.getKey() + " 的权限列表载入失败..."); - } - } - } - return p; - } + @SuppressWarnings("unchecked") + public static PermissionListManager load(final ResidenceMain plugin, final Map root) { + final PermissionListManager p = new PermissionListManager(plugin); + if (root != null) { + for (final Entry players : root.entrySet()) { + try { + final Map value = (Map) players.getValue(); + final Map loadedMap = Collections.synchronizedMap(new HashMap()); + for (final Entry list : value.entrySet()) { + loadedMap.put(list.getKey(), FlagPermissions.load((Map) list.getValue())); + } + p.lists.put(players.getKey(), loadedMap); + } catch (final Exception ex) { + plugin.getLogger().warning(" - 玩家: " + players.getKey() + " 的权限列表载入失败..."); + } + } + } + return p; + } - public void applyListToResidence(final Player player, final String listname, final String areaname, final boolean resadmin) { - final FlagPermissions list = this.getList(player.getName(), listname); - if (list == null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidList")); - return; - } - final ClaimedResidence res = plugin.getResidenceManager().getByName(areaname); - if (res == null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidResidence")); - return; - } - res.getPermissions().applyTemplate(player, list, resadmin); - } + public void applyListToResidence(final Player player, final String listname, final String areaname, final boolean resadmin) { + final FlagPermissions list = this.getList(player.getName(), listname); + if (list == null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidList")); + return; + } + final ClaimedResidence res = plugin.getResidenceManager().getByName(areaname); + if (res == null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidResidence")); + return; + } + res.getPermissions().applyTemplate(player, list, resadmin); + } - public FlagPermissions getList(final String player, final String listname) { - final Map get = lists.get(player); - if (get == null) { - return null; - } - return get.get(listname); - } + public FlagPermissions getList(final String player, final String listname) { + final Map get = lists.get(player); + if (get == null) { + return null; + } + return get.get(listname); + } - public void makeList(final Player player, final String listname) { - Map get = lists.get(player.getName()); - if (get == null) { - get = new HashMap(); - lists.put(player.getName(), get); - } - FlagPermissions perms = get.get(listname); - if (perms == null) { - perms = new FlagPermissions(); - get.put(listname, perms); - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("ListCreate", listname)); - } else { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ListExists")); - } - } + public void makeList(final Player player, final String listname) { + Map get = lists.get(player.getName()); + if (get == null) { + get = new HashMap(); + lists.put(player.getName(), get); + } + FlagPermissions perms = get.get(listname); + if (perms == null) { + perms = new FlagPermissions(); + get.put(listname, perms); + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("ListCreate", listname)); + } else { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ListExists")); + } + } - public void printList(final Player player, final String listname) { - final FlagPermissions list = this.getList(player.getName(), listname); - if (list == null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidList")); - return; - } - player.sendMessage(ChatColor.LIGHT_PURPLE + "------Permission Template------"); - player.sendMessage(plugin.getLanguage().getPhrase("Name") + ": " + ChatColor.GREEN + listname); - list.printFlags(player); - } + public void printList(final Player player, final String listname) { + final FlagPermissions list = this.getList(player.getName(), listname); + if (list == null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidList")); + return; + } + player.sendMessage(ChatColor.LIGHT_PURPLE + "------Permission Template------"); + player.sendMessage(plugin.getLanguage().getPhrase("Name") + ": " + ChatColor.GREEN + listname); + list.printFlags(player); + } - public void printLists(final Player player) { - final StringBuilder sbuild = new StringBuilder(); - final Map get = lists.get(player.getName()); - sbuild.append(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Lists") + ":" + ChatColor.DARK_AQUA + " "); - if (get != null) { - for (final Entry thislist : get.entrySet()) { - sbuild.append(thislist.getKey()).append(" "); - } - } - player.sendMessage(sbuild.toString()); - } + public void printLists(final Player player) { + final StringBuilder sbuild = new StringBuilder(); + final Map get = lists.get(player.getName()); + sbuild.append(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Lists") + ":" + ChatColor.DARK_AQUA + " "); + if (get != null) { + for (final Entry thislist : get.entrySet()) { + sbuild.append(thislist.getKey()).append(" "); + } + } + player.sendMessage(sbuild.toString()); + } - public void removeList(final Player player, final String listname) { - final Map get = lists.get(player.getName()); - if (get == null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidList")); - return; - } - final FlagPermissions list = get.get(listname); - if (list == null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidList")); - return; - } - get.remove(listname); - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ListRemoved")); - } + public void removeList(final Player player, final String listname) { + final Map get = lists.get(player.getName()); + if (get == null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidList")); + return; + } + final FlagPermissions list = get.get(listname); + if (list == null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidList")); + return; + } + get.remove(listname); + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ListRemoved")); + } - public Map save() { - final Map root = new LinkedHashMap(); - for (final Entry> players : lists.entrySet()) { - final Map saveMap = new LinkedHashMap(); - final Map map = players.getValue(); - for (final Entry list : map.entrySet()) { - saveMap.put(list.getKey(), list.getValue().save()); - } - root.put(players.getKey(), saveMap); - } - return root; - } + public Map save() { + final Map root = new LinkedHashMap(); + for (final Entry> players : lists.entrySet()) { + final Map saveMap = new LinkedHashMap(); + final Map map = players.getValue(); + for (final Entry list : map.entrySet()) { + saveMap.put(list.getKey(), list.getValue().save()); + } + root.put(players.getKey(), saveMap); + } + return root; + } } diff --git a/src/main/java/com/bekvon/bukkit/residence/protection/ResidenceManager.java b/src/main/java/com/bekvon/bukkit/residence/protection/ResidenceManager.java index 8f25b6b..e7b9b9c 100644 --- a/src/main/java/com/bekvon/bukkit/residence/protection/ResidenceManager.java +++ b/src/main/java/com/bekvon/bukkit/residence/protection/ResidenceManager.java @@ -38,720 +38,720 @@ import cn.citycraft.Residence.text.help.InformationPager; * @author Administrator */ public class ResidenceManager { - public static final class ChunkRef { + public static final class ChunkRef { - private final int x; + private final int x; - private final int z; + private final int z; - public ChunkRef(final int x, final int z) { - this.x = x; - this.z = z; - } + public ChunkRef(final int x, final int z) { + this.x = x; + this.z = z; + } - public ChunkRef(final Location loc) { - this.x = getChunkCoord(loc.getBlockX()); - this.z = getChunkCoord(loc.getBlockZ()); - } + public ChunkRef(final Location loc) { + this.x = getChunkCoord(loc.getBlockX()); + this.z = getChunkCoord(loc.getBlockZ()); + } - public static int getChunkCoord(final int val) { - // For more info, see CraftBukkit.CraftWorld.getChunkAt( Location ) - return val >> 4; - } + public static int getChunkCoord(final int val) { + // For more info, see CraftBukkit.CraftWorld.getChunkAt( Location ) + return val >> 4; + } - @Override - public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - final ChunkRef other = (ChunkRef) obj; - return this.x == other.x && this.z == other.z; - } + @Override + public boolean equals(final Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final ChunkRef other = (ChunkRef) obj; + return this.x == other.x && this.z == other.z; + } - @Override - public int hashCode() { - return x ^ z; - } + @Override + public int hashCode() { + return x ^ z; + } - /** - * Useful for debug - */ - @Override - public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("{ x: ").append(x).append(", z: ").append(z).append(" }"); - return sb.toString(); - } - } + /** + * Useful for debug + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + sb.append("{ x: ").append(x).append(", z: ").append(z).append(" }"); + return sb.toString(); + } + } - protected Map>> chunkResidences; - protected ResidenceMain plugin; - protected PluginManager pm; + protected Map>> chunkResidences; + protected ResidenceMain plugin; + protected PluginManager pm; - protected Map residences; + protected Map residences; - public ResidenceManager(final ResidenceMain plugin) { - this.plugin = plugin; - pm = plugin.getServer().getPluginManager(); - residences = new HashMap(); - chunkResidences = new HashMap>>(); - } + public ResidenceManager(final ResidenceMain plugin) { + this.plugin = plugin; + pm = plugin.getServer().getPluginManager(); + residences = new HashMap(); + chunkResidences = new HashMap>>(); + } - @SuppressWarnings("unchecked") - public static ResidenceManager load(final ResidenceMain plugin, final Map root) throws Exception { - final ResidenceManager resm = new ResidenceManager(plugin); - if (root == null) { - return resm; - } - for (final World world : plugin.getServer().getWorlds()) { - final Map reslist = (Map) root.get(world.getName()); - if (reslist != null) { - try { - resm.chunkResidences.put(world.getName(), loadMap(plugin, reslist, resm)); - } catch (final Exception ex) { - plugin.getLogger().warning("载入世界: " + world.getName() + "的领地数据时发生错误!"); - if (plugin.getConfigManager().stopOnSaveError()) { - throw (ex); - } - } - } - } - return resm; - } + @SuppressWarnings("unchecked") + public static ResidenceManager load(final ResidenceMain plugin, final Map root) throws Exception { + final ResidenceManager resm = new ResidenceManager(plugin); + if (root == null) { + return resm; + } + for (final World world : plugin.getServer().getWorlds()) { + final Map reslist = (Map) root.get(world.getName()); + if (reslist != null) { + try { + resm.chunkResidences.put(world.getName(), loadMap(plugin, reslist, resm)); + } catch (final Exception ex) { + plugin.getLogger().warning("载入世界: " + world.getName() + "的领地数据时发生错误!"); + if (plugin.getConfigManager().stopOnSaveError()) { + throw (ex); + } + } + } + } + return resm; + } - @SuppressWarnings("unchecked") - public static Map> loadMap(final ResidenceMain plugin, final Map root, final ResidenceManager resm) throws Exception { - final Map> retRes = new HashMap>(); - if (root != null) { - for (final Entry res : root.entrySet()) { - try { - final ClaimedResidence residence = ClaimedResidence.load(plugin, (Map) res.getValue(), null); - for (final ChunkRef chunk : getChunks(residence)) { - final List ress = new ArrayList(); - if (retRes.containsKey(chunk)) { - ress.addAll(retRes.get(chunk)); - } - ress.add(res.getKey()); - retRes.put(chunk, ress); - } - resm.residences.put(res.getKey(), residence); - } catch (final Exception ex) { - plugin.getLogger().warning("无法载入 领地 (" + res.getKey() + ")! 由于:" + ex.getMessage() + " 错误日志:"); - System.out.print("[Residence] Failed to load residence (" + res.getKey() + ")! Reason:" + ex.getMessage() + " Error Log:"); - Logger.getLogger(ResidenceManager.class.getName()).log(Level.SEVERE, null, ex); - if (plugin.getConfigManager().stopOnSaveError()) { - throw (ex); - } - } - } - } - return retRes; - } + @SuppressWarnings("unchecked") + public static Map> loadMap(final ResidenceMain plugin, final Map root, final ResidenceManager resm) throws Exception { + final Map> retRes = new HashMap>(); + if (root != null) { + for (final Entry res : root.entrySet()) { + try { + final ClaimedResidence residence = ClaimedResidence.load(plugin, (Map) res.getValue(), null); + for (final ChunkRef chunk : getChunks(residence)) { + final List ress = new ArrayList(); + if (retRes.containsKey(chunk)) { + ress.addAll(retRes.get(chunk)); + } + ress.add(res.getKey()); + retRes.put(chunk, ress); + } + resm.residences.put(res.getKey(), residence); + } catch (final Exception ex) { + plugin.getLogger().warning("无法载入 领地 (" + res.getKey() + ")! 由于:" + ex.getMessage() + " 错误日志:"); + System.out.print("[Residence] Failed to load residence (" + res.getKey() + ")! Reason:" + ex.getMessage() + " Error Log:"); + Logger.getLogger(ResidenceManager.class.getName()).log(Level.SEVERE, null, ex); + if (plugin.getConfigManager().stopOnSaveError()) { + throw (ex); + } + } + } + } + return retRes; + } - private static List getChunks(final ClaimedResidence res) { - final List chunks = new ArrayList(); - for (final CuboidArea area : res.getAreaArray()) { - chunks.addAll(area.getChunks()); - } - return chunks; - } + private static List getChunks(final ClaimedResidence res) { + final List chunks = new ArrayList(); + for (final CuboidArea area : res.getAreaArray()) { + chunks.addAll(area.getChunks()); + } + return chunks; + } - public boolean addResidence(final Player player, final String name, final Location loc1, final Location loc2, final boolean resadmin) { - return this.addResidence(player, player.getName(), name, loc1, loc2, resadmin); - } + public boolean addResidence(final Player player, final String name, final Location loc1, final Location loc2, final boolean resadmin) { + return this.addResidence(player, player.getName(), name, loc1, loc2, resadmin); + } - public boolean addResidence(final Player player, final String owner, String name, final Location loc1, final Location loc2, final boolean resadmin) { - if (!plugin.validName(name)) { - if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidNameCharacters")); - } - return false; - } - if (loc1 == null || loc2 == null || !loc1.getWorld().getName().equals(loc2.getWorld().getName())) { - if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SelectPoints")); - } - return false; - } - final PermissionGroup group = plugin.getPermissionManager().getGroup(owner, loc1.getWorld().getName()); - final boolean createpermission = group.canCreateResidences() || (player == null ? true : player.hasPermission("residence.create")); - if (!createpermission && !resadmin) { - if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - } - return false; - } - if (player != null) { - if (getOwnedZoneCount(player.getName()) >= group.getMaxZones() && !resadmin) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceTooMany")); - return false; - } - } - CuboidArea newArea = new CuboidArea(loc1, loc2); - final ClaimedResidence newRes = new ClaimedResidence(plugin, owner, loc1.getWorld().getName()); - newRes.getPermissions().applyDefaultFlags(); - newRes.setEnterMessage(group.getDefaultEnterMessage()); - newRes.setLeaveMessage(group.getDefaultLeaveMessage()); + public boolean addResidence(final Player player, final String owner, String name, final Location loc1, final Location loc2, final boolean resadmin) { + if (!plugin.validName(name)) { + if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidNameCharacters")); + } + return false; + } + if (loc1 == null || loc2 == null || !loc1.getWorld().getName().equals(loc2.getWorld().getName())) { + if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SelectPoints")); + } + return false; + } + final PermissionGroup group = plugin.getPermissionManager().getGroup(owner, loc1.getWorld().getName()); + final boolean createpermission = group.canCreateResidences() || (player == null ? true : player.hasPermission("residence.create")); + if (!createpermission && !resadmin) { + if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + } + return false; + } + if (player != null) { + if (getOwnedZoneCount(player.getName()) >= group.getMaxZones() && !resadmin) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceTooMany")); + return false; + } + } + CuboidArea newArea = new CuboidArea(loc1, loc2); + final ClaimedResidence newRes = new ClaimedResidence(plugin, owner, loc1.getWorld().getName()); + newRes.getPermissions().applyDefaultFlags(); + newRes.setEnterMessage(group.getDefaultEnterMessage()); + newRes.setLeaveMessage(group.getDefaultLeaveMessage()); - final ResidenceCreationEvent resevent = new ResidenceCreationEvent(player, name, newRes, newArea); - pm.callEvent(resevent); - if (resevent.isCancelled()) { - return false; - } - newArea = resevent.getPhysicalArea(); - name = resevent.getResidenceName(); - if (residences.containsKey(name)) { - if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceAlreadyExists", ChatColor.YELLOW + name + ChatColor.RED)); - } - return false; - } - if (player != null) { - newRes.addArea(player, newArea, "main", resadmin); - } else { - newRes.addArea(newArea, "main"); - } - if (newRes.getAreaCount() != 0) { - residences.put(name, newRes); - calculateChunks(name); - plugin.getLeaseManager().removeExpireTime(name); - if (player != null) { - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("ResidenceCreate", ChatColor.YELLOW + name + ChatColor.GREEN)); - } - if (plugin.getConfigManager().useLeases()) { - if (player != null) { - plugin.getLeaseManager().setExpireTime(player, name, group.getLeaseGiveTime()); - } else { - plugin.getLeaseManager().setExpireTime(name, group.getLeaseGiveTime()); - } - } - return true; - } - return false; - } + final ResidenceCreationEvent resevent = new ResidenceCreationEvent(player, name, newRes, newArea); + pm.callEvent(resevent); + if (resevent.isCancelled()) { + return false; + } + newArea = resevent.getPhysicalArea(); + name = resevent.getResidenceName(); + if (residences.containsKey(name)) { + if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceAlreadyExists", ChatColor.YELLOW + name + ChatColor.RED)); + } + return false; + } + if (player != null) { + newRes.addArea(player, newArea, "main", resadmin); + } else { + newRes.addArea(newArea, "main"); + } + if (newRes.getAreaCount() != 0) { + residences.put(name, newRes); + calculateChunks(name); + plugin.getLeaseManager().removeExpireTime(name); + if (player != null) { + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("ResidenceCreate", ChatColor.YELLOW + name + ChatColor.GREEN)); + } + if (plugin.getConfigManager().useLeases()) { + if (player != null) { + plugin.getLeaseManager().setExpireTime(player, name, group.getLeaseGiveTime()); + } else { + plugin.getLeaseManager().setExpireTime(name, group.getLeaseGiveTime()); + } + } + return true; + } + return false; + } - public boolean addResidence(final String name, final Location loc1, final Location loc2) { - return this.addResidence(name, "Server Land", loc1, loc2); - } + public boolean addResidence(final String name, final Location loc1, final Location loc2) { + return this.addResidence(name, "Server Land", loc1, loc2); + } - public boolean addResidence(final String name, final String owner, final Location loc1, final Location loc2) { - return this.addResidence(null, owner, name, loc1, loc2, true); - } + public boolean addResidence(final String name, final String owner, final Location loc1, final Location loc2) { + return this.addResidence(null, owner, name, loc1, loc2, true); + } - public void calculateChunks(final String name) { - final ClaimedResidence res = residences.get(name); - if (res != null) { - final String world = res.getWorld(); - if (chunkResidences.get(world) == null) { - chunkResidences.put(world, new HashMap>()); - } - for (final ChunkRef chunk : getChunks(res)) { - final List ress = new ArrayList(); - if (chunkResidences.get(world).containsKey(chunk)) { - ress.addAll(chunkResidences.get(world).get(chunk)); - } - ress.add(name); - chunkResidences.get(world).put(chunk, ress); - } - } - } + public void calculateChunks(final String name) { + final ClaimedResidence res = residences.get(name); + if (res != null) { + final String world = res.getWorld(); + if (chunkResidences.get(world) == null) { + chunkResidences.put(world, new HashMap>()); + } + for (final ChunkRef chunk : getChunks(res)) { + final List ress = new ArrayList(); + if (chunkResidences.get(world).containsKey(chunk)) { + ress.addAll(chunkResidences.get(world).get(chunk)); + } + ress.add(name); + chunkResidences.get(world).put(chunk, ress); + } + } + } - public String checkAreaCollision(final CuboidArea newarea, final ClaimedResidence parentResidence) { - final Set> set = residences.entrySet(); - for (final Entry entry : set) { - final ClaimedResidence check = entry.getValue(); - if (check != parentResidence && check.checkCollision(newarea)) { - return entry.getKey(); - } - } - return null; - } + public String checkAreaCollision(final CuboidArea newarea, final ClaimedResidence parentResidence) { + final Set> set = residences.entrySet(); + for (final Entry entry : set) { + final ClaimedResidence check = entry.getValue(); + if (check != parentResidence && check.checkCollision(newarea)) { + return entry.getKey(); + } + } + return null; + } - public ClaimedResidence getByLoc(final Location loc) { - if (loc == null) { - return null; - } - ClaimedResidence res = null; - boolean found = false; - final String world = loc.getWorld().getName(); - final ChunkRef chunk = new ChunkRef(loc); - if (chunkResidences.get(world) != null) { - if (chunkResidences.get(world).get(chunk) != null) { - for (final String key : chunkResidences.get(world).get(chunk)) { - final ClaimedResidence entry = residences.get(key); - if (entry.containsLoc(loc)) { - res = entry; - found = true; - break; - } - } - } - } - if (!found) { - return null; - } - if (res == null) { - return null; - } - final ClaimedResidence subres = res.getSubzoneByLoc(loc); - if (subres == null) { - return res; - } - return subres; - } + public ClaimedResidence getByLoc(final Location loc) { + if (loc == null) { + return null; + } + ClaimedResidence res = null; + boolean found = false; + final String world = loc.getWorld().getName(); + final ChunkRef chunk = new ChunkRef(loc); + if (chunkResidences.get(world) != null) { + if (chunkResidences.get(world).get(chunk) != null) { + for (final String key : chunkResidences.get(world).get(chunk)) { + final ClaimedResidence entry = residences.get(key); + if (entry.containsLoc(loc)) { + res = entry; + found = true; + break; + } + } + } + } + if (!found) { + return null; + } + if (res == null) { + return null; + } + final ClaimedResidence subres = res.getSubzoneByLoc(loc); + if (subres == null) { + return res; + } + return subres; + } - public ClaimedResidence getByName(final String name) { - if (name == null) { - return null; - } - final String[] split = name.split("\\."); - if (split.length == 1) { - return residences.get(name); - } - ClaimedResidence res = residences.get(split[0]); - for (int i = 1; i < split.length; i++) { - if (res != null) { - res = res.getSubzone(split[i]); - } else { - return null; - } - } - return res; - } + public ClaimedResidence getByName(final String name) { + if (name == null) { + return null; + } + final String[] split = name.split("\\."); + if (split.length == 1) { + return residences.get(name); + } + ClaimedResidence res = residences.get(split[0]); + for (int i = 1; i < split.length; i++) { + if (res != null) { + res = res.getSubzone(split[i]); + } else { + return null; + } + } + return res; + } - public String getNameByLoc(final Location loc) { - if (loc == null) { - return null; - } - ClaimedResidence res = null; - String name = null; - boolean found = false; - final String world = loc.getWorld().getName(); - final ChunkRef chunk = new ChunkRef(loc); - if (chunkResidences.get(world) != null) { - if (chunkResidences.get(world).get(chunk) != null) { - for (final String key : chunkResidences.get(world).get(chunk)) { - final ClaimedResidence entry = residences.get(key); - if (entry.containsLoc(loc)) { - res = entry; - found = true; - break; - } - } - } - } - if (!found) { - return null; - } - if (res == null) { - return null; - } - name = res.getName(); - if (name == null) { - return null; - } - final String szname = res.getSubzoneNameByLoc(loc); - if (szname != null) { - return name + "." + szname; - } - return name; - } + public String getNameByLoc(final Location loc) { + if (loc == null) { + return null; + } + ClaimedResidence res = null; + String name = null; + boolean found = false; + final String world = loc.getWorld().getName(); + final ChunkRef chunk = new ChunkRef(loc); + if (chunkResidences.get(world) != null) { + if (chunkResidences.get(world).get(chunk) != null) { + for (final String key : chunkResidences.get(world).get(chunk)) { + final ClaimedResidence entry = residences.get(key); + if (entry.containsLoc(loc)) { + res = entry; + found = true; + break; + } + } + } + } + if (!found) { + return null; + } + if (res == null) { + return null; + } + name = res.getName(); + if (name == null) { + return null; + } + final String szname = res.getSubzoneNameByLoc(loc); + if (szname != null) { + return name + "." + szname; + } + return name; + } - public String getNameByRes(final ClaimedResidence res) { - final Set> set = residences.entrySet(); - for (final Entry check : set) { - if (check.getValue() == res) { - return check.getKey(); - } - final String n = check.getValue().getSubzoneNameByRes(res); - if (n != null) { - return check.getKey() + "." + n; - } - } - return null; - } + public String getNameByRes(final ClaimedResidence res) { + final Set> set = residences.entrySet(); + for (final Entry check : set) { + if (check.getValue() == res) { + return check.getKey(); + } + final String n = check.getValue().getSubzoneNameByRes(res); + if (n != null) { + return check.getKey() + "." + n; + } + } + return null; + } - public int getOwnedZoneCount(final String player) { - final Collection set = residences.values(); - int count = 0; - for (final ClaimedResidence res : set) { - if (res.getPermissions().getOwner().equalsIgnoreCase(player)) { - count++; - } - } - return count; - } + public int getOwnedZoneCount(final String player) { + final Collection set = residences.values(); + int count = 0; + for (final ClaimedResidence res : set) { + if (res.getPermissions().getOwner().equalsIgnoreCase(player)) { + count++; + } + } + return count; + } - public int getResidenceCount() { - return residences.size(); - } + public int getResidenceCount() { + return residences.size(); + } - public String[] getResidenceList() { - return this.getResidenceList(true, true).toArray(new String[0]); - } + public String[] getResidenceList() { + return this.getResidenceList(true, true).toArray(new String[0]); + } - public ArrayList getResidenceList(final boolean showhidden, final boolean showsubzones) { - return this.getResidenceList(null, showhidden, showsubzones, false); - } + public ArrayList getResidenceList(final boolean showhidden, final boolean showsubzones) { + return this.getResidenceList(null, showhidden, showsubzones, false); + } - public ArrayList getResidenceList(final String targetplayer, final boolean showhidden, final boolean showsubzones) { - return this.getResidenceList(targetplayer, showhidden, showsubzones, false); - } + public ArrayList getResidenceList(final String targetplayer, final boolean showhidden, final boolean showsubzones) { + return this.getResidenceList(targetplayer, showhidden, showsubzones, false); + } - public ArrayList getResidenceList(final String targetplayer, final boolean showhidden, final boolean showsubzones, final boolean formattedOutput) { - final ArrayList list = new ArrayList(); - for (final Entry res : residences.entrySet()) { - this.getResidenceList(targetplayer, showhidden, showsubzones, "", res.getKey(), res.getValue(), list, formattedOutput); - } - return list; - } + public ArrayList getResidenceList(final String targetplayer, final boolean showhidden, final boolean showsubzones, final boolean formattedOutput) { + final ArrayList list = new ArrayList(); + for (final Entry res : residences.entrySet()) { + this.getResidenceList(targetplayer, showhidden, showsubzones, "", res.getKey(), res.getValue(), list, formattedOutput); + } + return list; + } - public void giveResidence(final Player reqPlayer, final String targPlayer, final String residence, final boolean resadmin) { - final ClaimedResidence res = getByName(residence); - if (res == null) { - reqPlayer.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidResidence")); - return; - } - if (!res.getPermissions().hasResidencePermission(reqPlayer, true) && !resadmin) { - reqPlayer.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - return; - } - final Player giveplayer = plugin.getServer().getPlayer(targPlayer); - if (giveplayer == null || !giveplayer.isOnline()) { - reqPlayer.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NotOnline")); - return; - } - final CuboidArea[] areas = res.getAreaArray(); - final PermissionGroup g = plugin.getPermissionManager().getGroup(giveplayer); - if (areas.length > g.getMaxPhysicalPerResidence() && !resadmin) { - reqPlayer.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceGiveLimits")); - return; - } - if (getOwnedZoneCount(giveplayer.getName()) >= g.getMaxZones() && !resadmin) { - reqPlayer.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceGiveLimits")); - return; - } - if (!resadmin) { - for (final CuboidArea area : areas) { - if (!g.inLimits(area)) { - reqPlayer.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceGiveLimits")); - return; - } - } - } - res.getPermissions().setOwner(giveplayer.getName(), true); - // Fix phrases here - reqPlayer.sendMessage( - ChatColor.GREEN + plugin.getLanguage().getPhrase("ResidenceGive", ChatColor.YELLOW + residence + ChatColor.GREEN + "." + ChatColor.YELLOW + giveplayer.getName() + ChatColor.GREEN)); - giveplayer.sendMessage(plugin.getLanguage().getPhrase("ResidenceRecieve", ChatColor.GREEN + residence + ChatColor.YELLOW + "." + ChatColor.GREEN + reqPlayer.getName() + ChatColor.YELLOW)); - } + public void giveResidence(final Player reqPlayer, final String targPlayer, final String residence, final boolean resadmin) { + final ClaimedResidence res = getByName(residence); + if (res == null) { + reqPlayer.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidResidence")); + return; + } + if (!res.getPermissions().hasResidencePermission(reqPlayer, true) && !resadmin) { + reqPlayer.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + return; + } + final Player giveplayer = plugin.getServer().getPlayer(targPlayer); + if (giveplayer == null || !giveplayer.isOnline()) { + reqPlayer.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NotOnline")); + return; + } + final CuboidArea[] areas = res.getAreaArray(); + final PermissionGroup g = plugin.getPermissionManager().getGroup(giveplayer); + if (areas.length > g.getMaxPhysicalPerResidence() && !resadmin) { + reqPlayer.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceGiveLimits")); + return; + } + if (getOwnedZoneCount(giveplayer.getName()) >= g.getMaxZones() && !resadmin) { + reqPlayer.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceGiveLimits")); + return; + } + if (!resadmin) { + for (final CuboidArea area : areas) { + if (!g.inLimits(area)) { + reqPlayer.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceGiveLimits")); + return; + } + } + } + res.getPermissions().setOwner(giveplayer.getName(), true); + // Fix phrases here + reqPlayer.sendMessage( + ChatColor.GREEN + plugin.getLanguage().getPhrase("ResidenceGive", ChatColor.YELLOW + residence + ChatColor.GREEN + "." + ChatColor.YELLOW + giveplayer.getName() + ChatColor.GREEN)); + giveplayer.sendMessage(plugin.getLanguage().getPhrase("ResidenceRecieve", ChatColor.GREEN + residence + ChatColor.YELLOW + "." + ChatColor.GREEN + reqPlayer.getName() + ChatColor.YELLOW)); + } - public void listAllResidences(final Player player, final int page) { - this.listAllResidences(player, page, false); - } + public void listAllResidences(final Player player, final int page) { + this.listAllResidences(player, page, false); + } - public void listAllResidences(final Player player, final int page, final boolean showhidden) { - this.listAllResidences(player, page, showhidden, false); - } + public void listAllResidences(final Player player, final int page, final boolean showhidden) { + this.listAllResidences(player, page, showhidden, false); + } - public void listAllResidences(final Player player, final int page, boolean showhidden, final boolean showsubzones) { - if (showhidden && !plugin.isResAdminOn(player)) { - showhidden = false; - } - InformationPager.printInfo(plugin, player, plugin.getLanguage().getPhrase("Residences"), this.getResidenceList(null, showhidden, showsubzones, true), page); - } + public void listAllResidences(final Player player, final int page, boolean showhidden, final boolean showsubzones) { + if (showhidden && !plugin.isResAdminOn(player)) { + showhidden = false; + } + InformationPager.printInfo(plugin, player, plugin.getLanguage().getPhrase("Residences"), this.getResidenceList(null, showhidden, showsubzones, true), page); + } - public void listResidences(final Player player) { - this.listResidences(player, player.getName(), 1); - } + public void listResidences(final Player player) { + this.listResidences(player, player.getName(), 1); + } - public void listResidences(final Player player, final int page) { - this.listResidences(player, player.getName(), page); - } + public void listResidences(final Player player, final int page) { + this.listResidences(player, player.getName(), page); + } - public void listResidences(final Player player, final int page, final boolean showhidden) { - this.listResidences(player, player.getName(), page, showhidden); - } + public void listResidences(final Player player, final int page, final boolean showhidden) { + this.listResidences(player, player.getName(), page, showhidden); + } - public void listResidences(final Player player, final String targetplayer) { - this.listResidences(player, targetplayer, 1); - } + public void listResidences(final Player player, final String targetplayer) { + this.listResidences(player, targetplayer, 1); + } - public void listResidences(final Player player, final String targetplayer, final int page) { - this.listResidences(player, targetplayer, page, false); - } + public void listResidences(final Player player, final String targetplayer, final int page) { + this.listResidences(player, targetplayer, page, false); + } - public void listResidences(final Player player, final String targetplayer, final int page, final boolean showhidden) { - this.listResidences(player, targetplayer, page, showhidden, false); - } + public void listResidences(final Player player, final String targetplayer, final int page, final boolean showhidden) { + this.listResidences(player, targetplayer, page, showhidden, false); + } - public void listResidences(final Player player, final String targetplayer, final int page, boolean showhidden, final boolean showsubzones) { - if (showhidden && !plugin.isResAdminOn(player) && !player.getName().equals(targetplayer)) { - showhidden = false; - } - InformationPager.printInfo(plugin, player, plugin.getLanguage().getPhrase("Residences") + " - " + targetplayer, this.getResidenceList(targetplayer, showhidden, showsubzones, true), page); - } + public void listResidences(final Player player, final String targetplayer, final int page, boolean showhidden, final boolean showsubzones) { + if (showhidden && !plugin.isResAdminOn(player) && !player.getName().equals(targetplayer)) { + showhidden = false; + } + InformationPager.printInfo(plugin, player, plugin.getLanguage().getPhrase("Residences") + " - " + targetplayer, this.getResidenceList(targetplayer, showhidden, showsubzones, true), page); + } - public void mirrorPerms(final Player reqPlayer, final String targetArea, final String sourceArea, final boolean resadmin) { - final ClaimedResidence reciever = this.getByName(targetArea); - final ClaimedResidence source = this.getByName(sourceArea); - if (source == null || reciever == null) { - reqPlayer.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidResidence")); - return; - } - if (!resadmin) { - if (!reciever.getPermissions().hasResidencePermission(reqPlayer, true) || !source.getPermissions().hasResidencePermission(reqPlayer, true)) { - reqPlayer.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - return; - } - } - reciever.getPermissions().applyTemplate(reqPlayer, source.getPermissions(), resadmin); - } + public void mirrorPerms(final Player reqPlayer, final String targetArea, final String sourceArea, final boolean resadmin) { + final ClaimedResidence reciever = this.getByName(targetArea); + final ClaimedResidence source = this.getByName(sourceArea); + if (source == null || reciever == null) { + reqPlayer.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidResidence")); + return; + } + if (!resadmin) { + if (!reciever.getPermissions().hasResidencePermission(reqPlayer, true) || !source.getPermissions().hasResidencePermission(reqPlayer, true)) { + reqPlayer.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + return; + } + } + reciever.getPermissions().applyTemplate(reqPlayer, source.getPermissions(), resadmin); + } - public void printAreaInfo(final String areaname, final Player player) { - final ClaimedResidence res = this.getByName(areaname); - if (res == null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidResidence")); - return; - } - final ResidencePermissions perms = res.getPermissions(); - if (plugin.getConfigManager().enableEconomy()) { - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Residence") + ":" + ChatColor.DARK_GREEN + " " + areaname + " " + ChatColor.YELLOW + "Bank: " + ChatColor.GOLD - + res.getBank().getStoredMoney()); - } else { - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Residence") + ":" + ChatColor.DARK_GREEN + " " + areaname); - } - if (plugin.getConfigManager().enabledRentSystem() && plugin.getRentManager().isRented(areaname)) { - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Owner") + ":" + ChatColor.RED + " " + perms.getOwner() + ChatColor.YELLOW + " Rented by: " + ChatColor.RED - + plugin.getRentManager().getRentingPlayer(areaname)); - } else { - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Owner") + ":" + ChatColor.RED + " " + perms.getOwner() + ChatColor.YELLOW + " - " - + plugin.getLanguage().getPhrase("World") + ": " + ChatColor.RED + perms.getWorld()); - } - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Flags") + ":" + ChatColor.BLUE + " " + perms.listFlags()); - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Your.Flags") + ": " + ChatColor.GREEN + perms.listPlayerFlags(player.getName())); - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Group.Flags") + ":" + ChatColor.RED + " " + perms.listGroupFlags()); - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Others.Flags") + ":" + ChatColor.RED + " " + perms.listOtherPlayersFlags(player.getName())); - final String aid = res.getAreaIDbyLoc(player.getLocation()); - if (aid != null) { - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("CurrentArea") + ": " + ChatColor.GOLD + aid); - } - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Total.Size") + ":" + ChatColor.LIGHT_PURPLE + " " + res.getTotalSize()); - if (aid != null) { - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("CoordsT") + ": " + ChatColor.LIGHT_PURPLE - + plugin.getLanguage().getPhrase("CoordsTop", - res.getAreaByLoc(player.getLocation()).getHighLoc().getBlockX() + "." + res.getAreaByLoc(player.getLocation()).getHighLoc().getBlockY() + "." - + res.getAreaByLoc(player.getLocation()).getHighLoc().getBlockZ())); - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("CoordsB") + ": " + ChatColor.LIGHT_PURPLE - + plugin.getLanguage().getPhrase("CoordsBottom", - res.getAreaByLoc(player.getLocation()).getLowLoc().getBlockX() + "." + res.getAreaByLoc(player.getLocation()).getLowLoc().getBlockY() + "." - + res.getAreaByLoc(player.getLocation()).getLowLoc().getBlockZ())); - if (plugin.isUseWorldEdit()) { - WECUI.UPDATESELECT(res, player); - } - } - if (plugin.getConfigManager().useLeases() && plugin.getLeaseManager().leaseExpires(areaname)) { - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("LeaseExpire") + ":" + ChatColor.GREEN + " " + plugin.getLeaseManager().getExpireTime(areaname)); - } - } + public void printAreaInfo(final String areaname, final Player player) { + final ClaimedResidence res = this.getByName(areaname); + if (res == null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidResidence")); + return; + } + final ResidencePermissions perms = res.getPermissions(); + if (plugin.getConfigManager().enableEconomy()) { + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Residence") + ":" + ChatColor.DARK_GREEN + " " + areaname + " " + ChatColor.YELLOW + "Bank: " + ChatColor.GOLD + + res.getBank().getStoredMoney()); + } else { + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Residence") + ":" + ChatColor.DARK_GREEN + " " + areaname); + } + if (plugin.getConfigManager().enabledRentSystem() && plugin.getRentManager().isRented(areaname)) { + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Owner") + ":" + ChatColor.RED + " " + perms.getOwner() + ChatColor.YELLOW + " Rented by: " + ChatColor.RED + + plugin.getRentManager().getRentingPlayer(areaname)); + } else { + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Owner") + ":" + ChatColor.RED + " " + perms.getOwner() + ChatColor.YELLOW + " - " + + plugin.getLanguage().getPhrase("World") + ": " + ChatColor.RED + perms.getWorld()); + } + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Flags") + ":" + ChatColor.BLUE + " " + perms.listFlags()); + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Your.Flags") + ": " + ChatColor.GREEN + perms.listPlayerFlags(player.getName())); + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Group.Flags") + ":" + ChatColor.RED + " " + perms.listGroupFlags()); + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Others.Flags") + ":" + ChatColor.RED + " " + perms.listOtherPlayersFlags(player.getName())); + final String aid = res.getAreaIDbyLoc(player.getLocation()); + if (aid != null) { + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("CurrentArea") + ": " + ChatColor.GOLD + aid); + } + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Total.Size") + ":" + ChatColor.LIGHT_PURPLE + " " + res.getTotalSize()); + if (aid != null) { + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("CoordsT") + ": " + ChatColor.LIGHT_PURPLE + + plugin.getLanguage().getPhrase("CoordsTop", + res.getAreaByLoc(player.getLocation()).getHighLoc().getBlockX() + "." + res.getAreaByLoc(player.getLocation()).getHighLoc().getBlockY() + "." + + res.getAreaByLoc(player.getLocation()).getHighLoc().getBlockZ())); + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("CoordsB") + ": " + ChatColor.LIGHT_PURPLE + + plugin.getLanguage().getPhrase("CoordsBottom", + res.getAreaByLoc(player.getLocation()).getLowLoc().getBlockX() + "." + res.getAreaByLoc(player.getLocation()).getLowLoc().getBlockY() + "." + + res.getAreaByLoc(player.getLocation()).getLowLoc().getBlockZ())); + if (plugin.isUseWorldEdit()) { + WECUI.UPDATESELECT(res, player); + } + } + if (plugin.getConfigManager().useLeases() && plugin.getLeaseManager().leaseExpires(areaname)) { + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("LeaseExpire") + ":" + ChatColor.GREEN + " " + plugin.getLeaseManager().getExpireTime(areaname)); + } + } - public void removeAllByOwner(final Player player, final String owner) { - this.removeAllByOwner(player, owner, residences); - } + public void removeAllByOwner(final Player player, final String owner) { + this.removeAllByOwner(player, owner, residences); + } - public void removeAllByOwner(final String owner) { - this.removeAllByOwner(null, owner, residences); - } + public void removeAllByOwner(final String owner) { + this.removeAllByOwner(null, owner, residences); + } - public void removeAllFromWorld(final CommandSender sender, final String world) { - int count = 0; - final Iterator it = residences.values().iterator(); - while (it.hasNext()) { - final ClaimedResidence next = it.next(); - if (next.getWorld().equals(world)) { - it.remove(); - count++; - } - } - chunkResidences.remove(world); - chunkResidences.put(world, new HashMap>()); - if (count == 0) { - sender.sendMessage(ChatColor.RED + "No residences found in world: " + ChatColor.YELLOW + world); - } else { - sender.sendMessage(ChatColor.RED + "Removed " + ChatColor.YELLOW + count + ChatColor.RED + " residences in world: " + ChatColor.YELLOW + world); - } - } + public void removeAllFromWorld(final CommandSender sender, final String world) { + int count = 0; + final Iterator it = residences.values().iterator(); + while (it.hasNext()) { + final ClaimedResidence next = it.next(); + if (next.getWorld().equals(world)) { + it.remove(); + count++; + } + } + chunkResidences.remove(world); + chunkResidences.put(world, new HashMap>()); + if (count == 0) { + sender.sendMessage(ChatColor.RED + "No residences found in world: " + ChatColor.YELLOW + world); + } else { + sender.sendMessage(ChatColor.RED + "Removed " + ChatColor.YELLOW + count + ChatColor.RED + " residences in world: " + ChatColor.YELLOW + world); + } + } - public void removeChunkList(final String name) { - final ClaimedResidence res = residences.get(name); - if (res != null) { - final String world = res.getWorld(); - if (chunkResidences.get(world) != null) { - for (final ChunkRef chunk : getChunks(res)) { - final List ress = new ArrayList(); - if (chunkResidences.get(world).containsKey(chunk)) { - ress.addAll(chunkResidences.get(world).get(chunk)); - } - ress.remove(name); - chunkResidences.get(world).put(chunk, ress); - } - } - } - } + public void removeChunkList(final String name) { + final ClaimedResidence res = residences.get(name); + if (res != null) { + final String world = res.getWorld(); + if (chunkResidences.get(world) != null) { + for (final ChunkRef chunk : getChunks(res)) { + final List ress = new ArrayList(); + if (chunkResidences.get(world).containsKey(chunk)) { + ress.addAll(chunkResidences.get(world).get(chunk)); + } + ress.remove(name); + chunkResidences.get(world).put(chunk, ress); + } + } + } + } - public void removeResidence(final Player player, final String name, final boolean resadmin) { - final ClaimedResidence res = this.getByName(name); - if (res != null) { - if (player != null && !resadmin) { - if (!res.getPermissions().hasResidencePermission(player, true) && !resadmin) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - return; - } - } - final ResidenceDeleteEvent resevent = new ResidenceDeleteEvent(player, res, player == null ? DeleteCause.OTHER : DeleteCause.PLAYER_DELETE); - pm.callEvent(resevent); - if (resevent.isCancelled()) { - return; - } - final ClaimedResidence parent = res.getParent(); - if (parent == null) { - removeChunkList(name); - residences.remove(name); - if (player != null) { - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("ResidenceRemove", ChatColor.YELLOW + name + ChatColor.GREEN)); - } - } else { - final String[] split = name.split("\\."); - if (player != null) { - parent.removeSubzone(player, split[split.length - 1], true); - } else { - parent.removeSubzone(split[split.length - 1]); - } - } - // plugin.getLeaseManager().removeExpireTime(name); - causing - // concurrent modification exception in lease manager... worked - // around for now - plugin.getRentManager().removeRentable(name); + public void removeResidence(final Player player, final String name, final boolean resadmin) { + final ClaimedResidence res = this.getByName(name); + if (res != null) { + if (player != null && !resadmin) { + if (!res.getPermissions().hasResidencePermission(player, true) && !resadmin) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + return; + } + } + final ResidenceDeleteEvent resevent = new ResidenceDeleteEvent(player, res, player == null ? DeleteCause.OTHER : DeleteCause.PLAYER_DELETE); + pm.callEvent(resevent); + if (resevent.isCancelled()) { + return; + } + final ClaimedResidence parent = res.getParent(); + if (parent == null) { + removeChunkList(name); + residences.remove(name); + if (player != null) { + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("ResidenceRemove", ChatColor.YELLOW + name + ChatColor.GREEN)); + } + } else { + final String[] split = name.split("\\."); + if (player != null) { + parent.removeSubzone(player, split[split.length - 1], true); + } else { + parent.removeSubzone(split[split.length - 1]); + } + } + // plugin.getLeaseManager().removeExpireTime(name); - causing + // concurrent modification exception in lease manager... worked + // around for now + plugin.getRentManager().removeRentable(name); - } else if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidResidence")); - } - } + } else if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidResidence")); + } + } - public void removeResidence(final String name) { - this.removeResidence(null, name, true); - } + public void removeResidence(final String name) { + this.removeResidence(null, name, true); + } - public boolean renameResidence(final Player player, final String oldName, final String newName, final boolean resadmin) { - if (!plugin.validName(newName)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidNameCharacters")); - return false; - } - final ClaimedResidence res = this.getByName(oldName); - if (res == null) { - if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidResidence")); - } - return false; - } - if (res.getPermissions().hasResidencePermission(player, true) || resadmin) { - if (res.getParent() == null) { - if (residences.containsKey(newName)) { - if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceAlreadyExists", ChatColor.YELLOW + newName + ChatColor.RED)); - } - return false; - } - final ResidenceRenameEvent resevent = new ResidenceRenameEvent(res, newName, oldName); - pm.callEvent(resevent); - removeChunkList(oldName); - residences.put(newName, res); - residences.remove(oldName); - calculateChunks(newName); - if (plugin.getConfigManager().useLeases()) { - plugin.getLeaseManager().updateLeaseName(oldName, newName); - } - if (plugin.getConfigManager().enabledRentSystem()) { - plugin.getRentManager().updateRentableName(oldName, newName); - } - if (player != null) { - player.sendMessage( - ChatColor.GREEN + plugin.getLanguage().getPhrase("ResidenceRename", ChatColor.YELLOW + oldName + ChatColor.GREEN + "." + ChatColor.YELLOW + newName + ChatColor.GREEN)); - } - return true; - } - final String[] oldname = oldName.split("\\."); - final ClaimedResidence parent = res.getParent(); - return parent.renameSubzone(player, oldname[oldname.length - 1], newName, resadmin); - } - if (player != null) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - } - return false; - } + public boolean renameResidence(final Player player, final String oldName, final String newName, final boolean resadmin) { + if (!plugin.validName(newName)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidNameCharacters")); + return false; + } + final ClaimedResidence res = this.getByName(oldName); + if (res == null) { + if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidResidence")); + } + return false; + } + if (res.getPermissions().hasResidencePermission(player, true) || resadmin) { + if (res.getParent() == null) { + if (residences.containsKey(newName)) { + if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceAlreadyExists", ChatColor.YELLOW + newName + ChatColor.RED)); + } + return false; + } + final ResidenceRenameEvent resevent = new ResidenceRenameEvent(res, newName, oldName); + pm.callEvent(resevent); + removeChunkList(oldName); + residences.put(newName, res); + residences.remove(oldName); + calculateChunks(newName); + if (plugin.getConfigManager().useLeases()) { + plugin.getLeaseManager().updateLeaseName(oldName, newName); + } + if (plugin.getConfigManager().enabledRentSystem()) { + plugin.getRentManager().updateRentableName(oldName, newName); + } + if (player != null) { + player.sendMessage( + ChatColor.GREEN + plugin.getLanguage().getPhrase("ResidenceRename", ChatColor.YELLOW + oldName + ChatColor.GREEN + "." + ChatColor.YELLOW + newName + ChatColor.GREEN)); + } + return true; + } + final String[] oldname = oldName.split("\\."); + final ClaimedResidence parent = res.getParent(); + return parent.renameSubzone(player, oldname[oldname.length - 1], newName, resadmin); + } + if (player != null) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + } + return false; + } - public boolean renameResidence(final String oldName, final String newName) { - return this.renameResidence(null, oldName, newName, true); - } + public boolean renameResidence(final String oldName, final String newName) { + return this.renameResidence(null, oldName, newName, true); + } - public Map save() { - final Map worldmap = new LinkedHashMap(); - for (final World world : plugin.getServer().getWorlds()) { - final Map resmap = new LinkedHashMap(); - for (final Entry res : residences.entrySet()) { - if (res.getValue().getWorld().equals(world.getName())) { - try { - resmap.put(res.getKey(), res.getValue().save()); - } catch (final Exception ex) { - System.out.println("[Residence] Failed to save residence (" + res.getKey() + ")!"); - Logger.getLogger(ResidenceManager.class.getName()).log(Level.SEVERE, null, ex); - } - } - } - worldmap.put(world.getName(), resmap); - } - return worldmap; - } + public Map save() { + final Map worldmap = new LinkedHashMap(); + for (final World world : plugin.getServer().getWorlds()) { + final Map resmap = new LinkedHashMap(); + for (final Entry res : residences.entrySet()) { + if (res.getValue().getWorld().equals(world.getName())) { + try { + resmap.put(res.getKey(), res.getValue().save()); + } catch (final Exception ex) { + System.out.println("[Residence] Failed to save residence (" + res.getKey() + ")!"); + Logger.getLogger(ResidenceManager.class.getName()).log(Level.SEVERE, null, ex); + } + } + } + worldmap.put(world.getName(), resmap); + } + return worldmap; + } - private void getResidenceList(final String targetplayer, final boolean showhidden, final boolean showsubzones, final String parentzone, final String resname, final ClaimedResidence res, final ArrayList list, final boolean formattedOutput) { - final boolean hidden = res.getPermissions().has("hidden", false); - if ((showhidden) || (!showhidden && !hidden)) { - if (targetplayer == null || res.getPermissions().getOwner().equalsIgnoreCase(targetplayer)) { - if (formattedOutput) { - list.add(ChatColor.GREEN + parentzone + resname + ChatColor.YELLOW + " - " + plugin.getLanguage().getPhrase("World") + ": " + res.getWorld()); - } else { - list.add(parentzone + resname); - } - } - if (showsubzones) { - for (final Entry sz : res.subzones.entrySet()) { - this.getResidenceList(targetplayer, showhidden, showsubzones, parentzone + resname + ".", sz.getKey(), sz.getValue(), list, formattedOutput); - } - } - } - } + private void getResidenceList(final String targetplayer, final boolean showhidden, final boolean showsubzones, final String parentzone, final String resname, final ClaimedResidence res, final ArrayList list, final boolean formattedOutput) { + final boolean hidden = res.getPermissions().has("hidden", false); + if ((showhidden) || (!showhidden && !hidden)) { + if (targetplayer == null || res.getPermissions().getOwner().equalsIgnoreCase(targetplayer)) { + if (formattedOutput) { + list.add(ChatColor.GREEN + parentzone + resname + ChatColor.YELLOW + " - " + plugin.getLanguage().getPhrase("World") + ": " + res.getWorld()); + } else { + list.add(parentzone + resname); + } + } + if (showsubzones) { + for (final Entry sz : res.subzones.entrySet()) { + this.getResidenceList(targetplayer, showhidden, showsubzones, parentzone + resname + ".", sz.getKey(), sz.getValue(), list, formattedOutput); + } + } + } + } - private void removeAllByOwner(final Player player, final String owner, final Map resholder) { - final Iterator it = resholder.values().iterator(); - while (it.hasNext()) { - final ClaimedResidence res = it.next(); - if (res.getOwner().equalsIgnoreCase(owner)) { - final ResidenceDeleteEvent resevent = new ResidenceDeleteEvent(player, res, player == null ? DeleteCause.OTHER : DeleteCause.PLAYER_DELETE); - pm.callEvent(resevent); - if (resevent.isCancelled()) { - return; - } - removeChunkList(res.getName()); - it.remove(); - } else { - this.removeAllByOwner(player, owner, res.subzones); - } - } - } + private void removeAllByOwner(final Player player, final String owner, final Map resholder) { + final Iterator it = resholder.values().iterator(); + while (it.hasNext()) { + final ClaimedResidence res = it.next(); + if (res.getOwner().equalsIgnoreCase(owner)) { + final ResidenceDeleteEvent resevent = new ResidenceDeleteEvent(player, res, player == null ? DeleteCause.OTHER : DeleteCause.PLAYER_DELETE); + pm.callEvent(resevent); + if (resevent.isCancelled()) { + return; + } + removeChunkList(res.getName()); + it.remove(); + } else { + this.removeAllByOwner(player, owner, res.subzones); + } + } + } } 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 96f5fbc..1ae0f63 100644 --- a/src/main/java/com/bekvon/bukkit/residence/protection/ResidencePermissions.java +++ b/src/main/java/com/bekvon/bukkit/residence/protection/ResidencePermissions.java @@ -31,463 +31,463 @@ import cn.citycraft.Residence.permissions.PermissionManager; */ public class ResidencePermissions extends FlagPermissions { - protected String owner; - protected PluginManager pm; - protected ClaimedResidence residence; - protected String world; - ResidenceMain plugin; + protected String owner; + protected PluginManager pm; + protected ClaimedResidence residence; + protected String world; + ResidenceMain plugin; - public ResidencePermissions(final ResidenceMain plugin, final ClaimedResidence res) { - this.plugin = plugin; - this.pm = plugin.getServer().getPluginManager(); - residence = res; - } + public ResidencePermissions(final ResidenceMain plugin, final ClaimedResidence res) { + this.plugin = plugin; + this.pm = plugin.getServer().getPluginManager(); + residence = res; + } - public ResidencePermissions(final ResidenceMain plugin, final ClaimedResidence res, final String creator, final String inworld) { - this(plugin, res); - owner = creator; - world = inworld; - } + public ResidencePermissions(final ResidenceMain plugin, final ClaimedResidence res, final String creator, final String inworld) { + this(plugin, res); + owner = creator; + world = inworld; + } - 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) { - 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 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; - } + 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) { + 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 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; + } - public void applyDefaultFlags() { - final PermissionManager gm = plugin.getPermissionManager(); - final PermissionGroup group = gm.getGroup(owner, world); - final Set> dflags = group.getDefaultResidenceFlags(); - 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()) { - this.setFlag(next.getKey(), FlagState.TRUE); - } else { - this.setFlag(next.getKey(), FlagState.FALSE); - } - } - } - for (final Entry next : dcflags) { - if (this.checkValidFlag(next.getKey(), false)) { - if (next.getValue()) { - this.setPlayerFlag(owner, next.getKey(), FlagState.TRUE); - } 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()) { - this.setGroupFlag(entry.getKey(), flag.getKey(), FlagState.TRUE); - } else { - this.setGroupFlag(entry.getKey(), flag.getKey(), FlagState.FALSE); - } - } - } - } + public void applyDefaultFlags() { + final PermissionManager gm = plugin.getPermissionManager(); + final PermissionGroup group = gm.getGroup(owner, world); + final Set> dflags = group.getDefaultResidenceFlags(); + 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()) { + this.setFlag(next.getKey(), FlagState.TRUE); + } else { + this.setFlag(next.getKey(), FlagState.FALSE); + } + } + } + for (final Entry next : dcflags) { + if (this.checkValidFlag(next.getKey(), false)) { + if (next.getValue()) { + this.setPlayerFlag(owner, next.getKey(), FlagState.TRUE); + } 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()) { + this.setGroupFlag(entry.getKey(), flag.getKey(), FlagState.TRUE); + } else { + this.setGroupFlag(entry.getKey(), flag.getKey(), FlagState.FALSE); + } + } + } + } - public void applyDefaultFlags(final Player player, final boolean resadmin) { - if (this.hasResidencePermission(player, true) || resadmin) { - this.applyDefaultFlags(); - player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("FlagsDefault")); - } else { - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("NoPermission")); - } - } + public void applyDefaultFlags(final Player player, final boolean resadmin) { + if (this.hasResidencePermission(player, true) || resadmin) { + this.applyDefaultFlags(); + player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("FlagsDefault")); + } else { + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("NoPermission")); + } + } - public void applyGlobalDefaults() { - this.clearFlags(); - 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()) { - this.setFlag(entry.getKey(), FlagState.TRUE); - } else { - this.setFlag(entry.getKey(), FlagState.FALSE); - } - } - for (final Entry entry : gCD.cuboidFlags.entrySet()) { - if (entry.getValue()) { - this.setPlayerFlag(owner, entry.getKey(), FlagState.TRUE); - } 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()) { - this.setGroupFlag(entry.getKey(), flag.getKey(), FlagState.TRUE); - } else { - this.setGroupFlag(entry.getKey(), flag.getKey(), FlagState.FALSE); - } - } - } - } + public void applyGlobalDefaults() { + this.clearFlags(); + 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()) { + this.setFlag(entry.getKey(), FlagState.TRUE); + } else { + this.setFlag(entry.getKey(), FlagState.FALSE); + } + } + for (final Entry entry : gCD.cuboidFlags.entrySet()) { + if (entry.getValue()) { + this.setPlayerFlag(owner, entry.getKey(), FlagState.TRUE); + } 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()) { + this.setGroupFlag(entry.getKey(), flag.getKey(), FlagState.TRUE); + } else { + this.setGroupFlag(entry.getKey(), flag.getKey(), FlagState.FALSE); + } + } + } + } - public void applyTemplate(final Player player, final FlagPermissions list, boolean resadmin) { - if (player != null) { - if (!player.getName().equals(owner) && !resadmin) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - return; - } - } else { - resadmin = true; - } - final PermissionGroup group = plugin.getPermissionManager().getGroup(owner, world); - for (final Entry flag : list.cuboidFlags.entrySet()) { - if (group.hasFlagAccess(flag.getKey()) || resadmin) { - this.cuboidFlags.put(flag.getKey(), flag.getValue()); - } 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()) { - if (group.hasFlagAccess(flag.getKey()) || resadmin) { - 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) { - 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()) { - if (group.hasFlagAccess(flag.getKey()) || resadmin) { - 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) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagSetDeny", ChatColor.YELLOW + flag.getKey() + ChatColor.RED)); - } - } - } - if (player != null) { - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("PermissionsApply")); - } - } + public void applyTemplate(final Player player, final FlagPermissions list, boolean resadmin) { + if (player != null) { + if (!player.getName().equals(owner) && !resadmin) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + return; + } + } else { + resadmin = true; + } + final PermissionGroup group = plugin.getPermissionManager().getGroup(owner, world); + for (final Entry flag : list.cuboidFlags.entrySet()) { + if (group.hasFlagAccess(flag.getKey()) || resadmin) { + this.cuboidFlags.put(flag.getKey(), flag.getValue()); + } 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()) { + if (group.hasFlagAccess(flag.getKey()) || resadmin) { + 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) { + 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()) { + if (group.hasFlagAccess(flag.getKey()) || resadmin) { + 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) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagSetDeny", ChatColor.YELLOW + flag.getKey() + ChatColor.RED)); + } + } + } + if (player != null) { + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("PermissionsApply")); + } + } - public void fixNames() { - final ArrayList fixNames = new ArrayList(); - final Iterator>> it = playerFlags.entrySet().iterator(); - while (it.hasNext()) { - final String name = it.next().getKey(); - if (!name.equals(name.toLowerCase())) { - fixNames.add(name); - } - } - for (final String name : fixNames) { - final Map get = playerFlags.get(name); - playerFlags.remove(name); - playerFlags.put(name.toLowerCase(), get); - } - } + public void fixNames() { + final ArrayList fixNames = new ArrayList(); + final Iterator>> it = playerFlags.entrySet().iterator(); + while (it.hasNext()) { + final String name = it.next().getKey(); + if (!name.equals(name.toLowerCase())) { + fixNames.add(name); + } + } + for (final String name : fixNames) { + final Map get = playerFlags.get(name); + playerFlags.remove(name); + playerFlags.put(name.toLowerCase(), get); + } + } - public String getOwner() { - return owner; - } + public String getOwner() { + return owner; + } - public String getWorld() { - return world; - } + public String getWorld() { + return world; + } - @Override - 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()) { - return fc.getOverrideValue(); - } - return super.groupHas(group, flag, def); - } + @Override + 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()) { + return fc.getOverrideValue(); + } + return super.groupHas(group, flag, def); + } - @Override - 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()) { - return fc.getOverrideValue(); - } - return super.has(flag, def); - } + @Override + 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()) { + return fc.getOverrideValue(); + } + return super.has(flag, def); + } - public boolean hasApplicableFlag(final String player, final String flag) { - return super.inheritanceIsPlayerSet(player, flag) || super.inheritanceIsGroupSet(plugin.getPermissionManager().getGroupNameByPlayer(player, world), flag) || super.inheritanceIsSet(flag); - } + public boolean hasApplicableFlag(final String player, final String flag) { + return super.inheritanceIsPlayerSet(player, flag) || super.inheritanceIsGroupSet(plugin.getPermissionManager().getGroupNameByPlayer(player, world), flag) || super.inheritanceIsSet(flag); + } - public boolean hasResidencePermission(final Player player, final boolean requireOwner) { - if (plugin.getConfigManager().enabledRentSystem()) { - final String resname = residence.getName(); - if (plugin.getRentManager().isRented(resname)) { - if (requireOwner) { - return false; - } - final String renter = plugin.getRentManager().getRentingPlayer(resname); - if (player.getName().equalsIgnoreCase(renter)) { - return true; - } - return (playerHas(player.getName(), "admin", false)); - } - } - if (requireOwner) { - return (owner.equalsIgnoreCase(player.getName())); - } - return (playerHas(player.getName(), "admin", false) || owner.equalsIgnoreCase(player.getName())); - } + public boolean hasResidencePermission(final Player player, final boolean requireOwner) { + if (plugin.getConfigManager().enabledRentSystem()) { + final String resname = residence.getName(); + if (plugin.getRentManager().isRented(resname)) { + if (requireOwner) { + return false; + } + final String renter = plugin.getRentManager().getRentingPlayer(resname); + if (player.getName().equalsIgnoreCase(renter)) { + return true; + } + return (playerHas(player.getName(), "admin", false)); + } + } + if (requireOwner) { + return (owner.equalsIgnoreCase(player.getName())); + } + return (playerHas(player.getName(), "admin", false) || owner.equalsIgnoreCase(player.getName())); + } - public boolean playerHas(final String player, final String flag, final boolean def) { - return this.playerHas(player, world, flag, def); - } + public boolean playerHas(final String player, final String flag, final boolean def) { + return this.playerHas(player, world, flag, def); + } - @Override - 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()) { - return fc.getOverrideValue(); - } - return super.playerHas(player, world, flag, def); - } + @Override + 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()) { + return fc.getOverrideValue(); + } + return super.playerHas(player, world, flag, def); + } - public boolean removeAllGroupFlags(final Player player, final String group, final boolean resadmin) { - 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()) { - return false; - } - super.removeAllGroupFlags(group); - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("FlagSet")); - return true; - } - return false; - } + public boolean removeAllGroupFlags(final Player player, final String group, final boolean resadmin) { + 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()) { + return false; + } + super.removeAllGroupFlags(group); + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("FlagSet")); + return true; + } + return false; + } - public boolean removeAllPlayerFlags(final Player player, final String targetPlayer, final boolean resadmin) { - 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()) { - return false; - } - super.removeAllPlayerFlags(targetPlayer); - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("FlagSet")); - return true; - } - return false; - } + public boolean removeAllPlayerFlags(final Player player, final String targetPlayer, final boolean resadmin) { + 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()) { + return false; + } + super.removeAllPlayerFlags(targetPlayer); + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("FlagSet")); + return true; + } + return false; + } - @Override - public Map save() { - final Map root = super.save(); - root.put("Owner", owner); - root.put("World", world); - return root; - } + @Override + public Map save() { + final Map root = super.save(); + root.put("Owner", owner); + root.put("World", world); + return root; + } - public boolean setFlag(final Player player, final String flag, final String flagstate, final boolean resadmin) { - 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()) { - return false; - } - if (super.setFlag(flag, state)) { - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("FlagSet")); - return true; - } - } - return false; - } + public boolean setFlag(final Player player, final String flag, final String flagstate, final boolean resadmin) { + 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()) { + return false; + } + if (super.setFlag(flag, state)) { + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("FlagSet")); + return true; + } + } + return false; + } - @Override - 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()) { - return false; - } - return super.setFlag(flag, state); - } + @Override + 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()) { + return false; + } + return super.setFlag(flag, state); + } - public boolean setFlagGroup(final Player player, final String flaggroup, final String state, final boolean resadmin) { - 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)) { - changed = true; - } - } - return changed; - } - return false; - } + public boolean setFlagGroup(final Player player, final String flaggroup, final String state, final boolean resadmin) { + 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)) { + changed = true; + } + } + return changed; + } + return false; + } - public boolean setFlagGroupOnGroup(final Player player, final String flaggroup, final String group, final String state, final boolean resadmin) { - 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)) { - changed = true; - } - } - return changed; - } - return false; - } + public boolean setFlagGroupOnGroup(final Player player, final String flaggroup, final String group, final String state, final boolean resadmin) { + 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)) { + changed = true; + } + } + return changed; + } + return false; + } - public boolean setFlagGroupOnPlayer(final Player player, final String target, final String flaggroup, final String state, final boolean resadmin) { - 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)) { - changed = true; - } - } - return changed; - } - return false; - } + public boolean setFlagGroupOnPlayer(final Player player, final String target, final String flaggroup, final String state, final boolean resadmin) { + 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)) { + changed = true; + } + } + return changed; + } + return false; + } - public boolean setGroupFlag(final Player player, String group, final String flag, final String flagstate, final boolean resadmin) { - group = group.toLowerCase(); - 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 (plugin.getPermissionManager().hasGroup(group)) { - final ResidenceFlagChangeEvent fc = new ResidenceFlagChangeEvent(residence, player, flag, ResidenceFlagChangeEvent.FlagType.GROUP, state, group); - pm.callEvent(fc); - if (fc.isCancelled()) { - return false; - } - if (super.setGroupFlag(group, flag, state)) { - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("FlagSet")); - return true; - } - } else { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidGroup")); - return false; - } - } - return false; - } + public boolean setGroupFlag(final Player player, String group, final String flag, final String flagstate, final boolean resadmin) { + group = group.toLowerCase(); + 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 (plugin.getPermissionManager().hasGroup(group)) { + final ResidenceFlagChangeEvent fc = new ResidenceFlagChangeEvent(residence, player, flag, ResidenceFlagChangeEvent.FlagType.GROUP, state, group); + pm.callEvent(fc); + if (fc.isCancelled()) { + return false; + } + if (super.setGroupFlag(group, flag, state)) { + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("FlagSet")); + return true; + } + } else { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidGroup")); + return false; + } + } + return false; + } - @Override - 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()) { - return false; - } - return super.setGroupFlag(group, flag, state); - } + @Override + 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()) { + return false; + } + return super.setGroupFlag(group, flag, state); + } - public void setOwner(final String newOwner, final boolean resetFlags) { - final ResidenceOwnerChangeEvent ownerchange = new ResidenceOwnerChangeEvent(residence, newOwner); - pm.callEvent(ownerchange); - owner = newOwner; - if (resetFlags) { - this.applyDefaultFlags(); - } - } + public void setOwner(final String newOwner, final boolean resetFlags) { + final ResidenceOwnerChangeEvent ownerchange = new ResidenceOwnerChangeEvent(residence, newOwner); + pm.callEvent(ownerchange); + owner = newOwner; + 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)) { - 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()) { - return false; - } - if (super.setPlayerFlag(targetPlayer, flag, state)) { - player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("FlagSet")); - return true; - } - } - return false; - } + public boolean setPlayerFlag(final Player player, final String targetPlayer, final String flag, final String flagstate, final boolean resadmin) { + 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()) { + return false; + } + if (super.setPlayerFlag(targetPlayer, flag, state)) { + player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("FlagSet")); + return true; + } + } + return false; + } - @Override - 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()) { - return false; - } - return super.setPlayerFlag(player, flag, state); - } + @Override + 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()) { + return false; + } + return super.setPlayerFlag(player, flag, state); + } - private boolean checkCanSetFlag(final Player player, final String flag, final FlagState state, final boolean globalflag, final boolean resadmin) { - if (!checkValidFlag(flag, globalflag)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidFlag")); - return false; - } - if (state == FlagState.INVALID) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidFlagState")); - return false; - } - if (!resadmin) { - if (!this.hasResidencePermission(player, false)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); - return false; - } - if (!hasFlagAccess(owner, flag)) { - player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("OwnerNoPermission")); - return false; - } - } - return true; - } + private boolean checkCanSetFlag(final Player player, final String flag, final FlagState state, final boolean globalflag, final boolean resadmin) { + if (!checkValidFlag(flag, globalflag)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidFlag")); + return false; + } + if (state == FlagState.INVALID) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidFlagState")); + return false; + } + if (!resadmin) { + if (!this.hasResidencePermission(player, false)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission")); + return false; + } + if (!hasFlagAccess(owner, flag)) { + player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("OwnerNoPermission")); + return false; + } + } + return true; + } - private boolean hasFlagAccess(final String player, final String flag) { - final PermissionGroup group = plugin.getPermissionManager().getGroup(player, world); - return group.hasFlagAccess(flag); - } + private boolean hasFlagAccess(final String player, final String flag) { + final PermissionGroup group = plugin.getPermissionManager().getGroup(player, world); + return group.hasFlagAccess(flag); + } } diff --git a/src/main/java/com/bekvon/bukkit/residence/protection/WorldFlagManager.java b/src/main/java/com/bekvon/bukkit/residence/protection/WorldFlagManager.java index 8757b79..881cb18 100644 --- a/src/main/java/com/bekvon/bukkit/residence/protection/WorldFlagManager.java +++ b/src/main/java/com/bekvon/bukkit/residence/protection/WorldFlagManager.java @@ -22,112 +22,112 @@ import cn.citycraft.Residence.ResidenceMain; * @author Administrator */ public class WorldFlagManager { - protected FlagPermissions globaldefaults; - protected Map> groupperms; - protected Map worldperms; - ResidenceMain plugin; + protected FlagPermissions globaldefaults; + protected Map> groupperms; + protected Map worldperms; + ResidenceMain plugin; - public WorldFlagManager(final ResidenceMain plugin) { - this.plugin = plugin; - globaldefaults = new FlagPermissions(); - worldperms = new HashMap(); - groupperms = new HashMap>(); - this.parsePerms(plugin.getConfig()); - } + public WorldFlagManager(final ResidenceMain plugin) { + this.plugin = plugin; + globaldefaults = new FlagPermissions(); + worldperms = new HashMap(); + groupperms = new HashMap>(); + this.parsePerms(plugin.getConfig()); + } - public FlagPermissions getPerms(final Player player) { - return this.getPerms(player.getWorld().getName(), plugin.getPermissionManager().getGroupNameByPlayer(player)); - } + public FlagPermissions getPerms(final Player player) { + return this.getPerms(player.getWorld().getName(), plugin.getPermissionManager().getGroupNameByPlayer(player)); + } - public FlagPermissions getPerms(String world) { - world = world.toLowerCase(); - final FlagPermissions list = worldperms.get(world); - if (list == null) { - if (globaldefaults == null) { - return new FlagPermissions(); - } - return globaldefaults; - } - return list; - } + public FlagPermissions getPerms(String world) { + world = world.toLowerCase(); + final FlagPermissions list = worldperms.get(world); + if (list == null) { + if (globaldefaults == null) { + return new FlagPermissions(); + } + return globaldefaults; + } + return list; + } - public FlagPermissions getPerms(String world, String group) { - world = world.toLowerCase(); - group = group.toLowerCase(); - final Map groupworldperms = groupperms.get(group); - if (groupworldperms == null) { - return this.getPerms(world); - } - FlagPermissions list = groupworldperms.get(world); - if (list == null) { - list = groupworldperms.get("global." + world); - if (list == null) { - list = groupworldperms.get("global"); - } - if (list == null) { - return this.getPerms(world); - } - } - return list; - } + public FlagPermissions getPerms(String world, String group) { + world = world.toLowerCase(); + group = group.toLowerCase(); + final Map groupworldperms = groupperms.get(group); + if (groupworldperms == null) { + return this.getPerms(world); + } + FlagPermissions list = groupworldperms.get(world); + if (list == null) { + list = groupworldperms.get("global." + world); + if (list == null) { + list = groupworldperms.get("global"); + } + if (list == null) { + return this.getPerms(world); + } + } + return list; + } - public void parsePerms(final FileConfiguration config) { - try { - Set keys = config.getConfigurationSection("Global.Flags").getKeys(false); - if (keys != null) { - for (final String key : keys) { - if (key.equalsIgnoreCase("Global")) { - globaldefaults = FlagPermissions.parseFromConfigNode(key, config.getConfigurationSection("Global.Flags")); - } else { - worldperms.put(key.toLowerCase(), FlagPermissions.parseFromConfigNode(key, config.getConfigurationSection("Global.Flags"))); - } - } - } - for (final Entry entry : worldperms.entrySet()) { - entry.getValue().setParent(globaldefaults); - } - keys = config.getConfigurationSection("Groups").getKeys(false); - if (keys != null) { - for (final String key : keys) { - final ConfigurationSection worldkeylist = config.getConfigurationSection("Groups." + key + ".Flags.World"); - if (worldkeylist != null) { - final Set worldkeys = config.getConfigurationSection("Groups." + key + ".Flags.World").getKeys(false); - if (worldkeys != null) { - final Map perms = new HashMap(); - for (final String wkey : worldkeys) { - FlagPermissions list = FlagPermissions.parseFromConfigNode(wkey, config.getConfigurationSection("Groups." + key + ".Flags.World")); - if (wkey.equalsIgnoreCase("global")) { - list.setParent(globaldefaults); - perms.put(wkey.toLowerCase(), list); - for (final Entry worldperm : worldperms.entrySet()) { - list = FlagPermissions.parseFromConfigNode(wkey, config.getConfigurationSection("Groups." + key + ".Flags.World")); - list.setParent(worldperm.getValue()); - perms.put("global." + worldperm.getKey().toLowerCase(), list); - } - } else { - perms.put(wkey.toLowerCase(), list); - } - } - for (final Entry entry : perms.entrySet()) { - final String wkey = entry.getKey(); - final FlagPermissions list = entry.getValue(); - if (!wkey.startsWith("global.")) { - list.setParent(perms.get("global." + wkey)); - if (list.getParent() == null) { - list.setParent(worldperms.get(wkey)); - } - if (list.getParent() == null) { - list.setParent(globaldefaults); - } - } - } - groupperms.put(key.toLowerCase(), perms); - } - } - } - } - } catch (final Exception ex) { - Logger.getLogger(WorldFlagManager.class.getName()).log(Level.SEVERE, null, ex); - } - } + public void parsePerms(final FileConfiguration config) { + try { + Set keys = config.getConfigurationSection("Global.Flags").getKeys(false); + if (keys != null) { + for (final String key : keys) { + if (key.equalsIgnoreCase("Global")) { + globaldefaults = FlagPermissions.parseFromConfigNode(key, config.getConfigurationSection("Global.Flags")); + } else { + worldperms.put(key.toLowerCase(), FlagPermissions.parseFromConfigNode(key, config.getConfigurationSection("Global.Flags"))); + } + } + } + for (final Entry entry : worldperms.entrySet()) { + entry.getValue().setParent(globaldefaults); + } + keys = config.getConfigurationSection("Groups").getKeys(false); + if (keys != null) { + for (final String key : keys) { + final ConfigurationSection worldkeylist = config.getConfigurationSection("Groups." + key + ".Flags.World"); + if (worldkeylist != null) { + final Set worldkeys = config.getConfigurationSection("Groups." + key + ".Flags.World").getKeys(false); + if (worldkeys != null) { + final Map perms = new HashMap(); + for (final String wkey : worldkeys) { + FlagPermissions list = FlagPermissions.parseFromConfigNode(wkey, config.getConfigurationSection("Groups." + key + ".Flags.World")); + if (wkey.equalsIgnoreCase("global")) { + list.setParent(globaldefaults); + perms.put(wkey.toLowerCase(), list); + for (final Entry worldperm : worldperms.entrySet()) { + list = FlagPermissions.parseFromConfigNode(wkey, config.getConfigurationSection("Groups." + key + ".Flags.World")); + list.setParent(worldperm.getValue()); + perms.put("global." + worldperm.getKey().toLowerCase(), list); + } + } else { + perms.put(wkey.toLowerCase(), list); + } + } + for (final Entry entry : perms.entrySet()) { + final String wkey = entry.getKey(); + final FlagPermissions list = entry.getValue(); + if (!wkey.startsWith("global.")) { + list.setParent(perms.get("global." + wkey)); + if (list.getParent() == null) { + list.setParent(worldperms.get(wkey)); + } + if (list.getParent() == null) { + list.setParent(globaldefaults); + } + } + } + groupperms.put(key.toLowerCase(), perms); + } + } + } + } + } catch (final Exception ex) { + Logger.getLogger(WorldFlagManager.class.getName()).log(Level.SEVERE, null, ex); + } + } }