diff --git a/pom.xml b/pom.xml
index 148b7ca..aeba771 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
cn.citycraft
Residence
- 2.7.0.6
+ 2.8.0.0
Residence
${project.name}
diff --git a/src/main/java/com/bekvon/bukkit/residence/ConfigManager.java b/src/main/java/com/bekvon/bukkit/residence/ConfigManager.java
index dfe9947..74f4c93 100644
--- a/src/main/java/com/bekvon/bukkit/residence/ConfigManager.java
+++ b/src/main/java/com/bekvon/bukkit/residence/ConfigManager.java
@@ -20,48 +20,50 @@ import com.bekvon.bukkit.residence.protection.FlagPermissions;
* @author Administrator
*/
public class ConfigManager {
- protected String defaultGroup;
- protected boolean useLeases;
- protected boolean enableEconomy;
- protected String economySystem;
+ private boolean enforceAreaInsideArea;
+ protected boolean actionBar;
+ protected boolean adminOps;
protected boolean adminsOnly;
protected boolean allowEmptyResidences;
- protected int infoToolId;
- protected int selectionToolId;
- protected boolean adminOps;
- protected String multiworldPlugin;
- protected boolean enableRentSystem;
- protected boolean leaseAutoRenew;
- protected int rentCheckInterval;
- protected int leaseCheckInterval;
protected int autoSaveInt;
- protected boolean flagsInherit;
protected ChatColor chatColor;
protected boolean chatEnable;
- protected boolean actionBar;
- protected int minMoveUpdate;
+ 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 FlagPermissions globalResidenceDefaults;
protected Map globalGroupDefaults;
+ protected FlagPermissions globalResidenceDefaults;
+ protected int infoToolId;
protected String language;
- protected boolean preventBuildInRent;
- protected boolean stopOnSaveError;
+ protected boolean leaseAutoRenew;
+ protected int leaseCheckInterval;
protected boolean legacyperms;
+ protected int minMoveUpdate;
+ protected String multiworldPlugin;
protected String namefix;
+ protected Residence plugin;
+ protected boolean preventBuildInRent;
+ protected int rentCheckInterval;
+ protected int selectionToolId;
protected boolean showIntervalMessages;
protected boolean spoutEnable;
- protected boolean enableLeaseMoneyAccount;
- protected boolean enableDebug;
- protected List customContainers;
- protected List customBothClick;
- protected List customRightClick;
- private boolean enforceAreaInsideArea;
+ protected boolean stopOnSaveError;
+ protected boolean useLeases;
- public ConfigManager(FileConfiguration config) {
- globalCreatorDefaults = new FlagPermissions();
- globalResidenceDefaults = new FlagPermissions();
+ public ConfigManager(final Residence plugin) {
+ this.plugin = plugin;
+ globalCreatorDefaults = new FlagPermissions(plugin);
+ globalResidenceDefaults = new FlagPermissions(plugin);
globalGroupDefaults = new HashMap();
- this.load(config);
+ this.load(plugin.getConfig());
}
public boolean allowAdminsOnly() {
@@ -89,7 +91,7 @@ public class ConfigManager {
}
public boolean enableEconomy() {
- return enableEconomy && Residence.getEconomyManager() != null;
+ return enableEconomy && plugin.getEconomyManager() != null;
}
public boolean enableLeaseMoneyAccount() {
@@ -209,7 +211,7 @@ public class ConfigManager {
}
@SuppressWarnings("deprecation")
- private void load(FileConfiguration config) {
+ private void load(final FileConfiguration config) {
defaultGroup = config.getString("Global.DefaultGroup", "default").toLowerCase();
adminsOnly = config.getBoolean("Global.AdminOnlyCommands", false);
useLeases = config.getBoolean("Global.UseLeaseSystem", false);
@@ -243,20 +245,23 @@ public class ConfigManager {
customContainers = config.getIntegerList("Global.CustomContainers");
customBothClick = config.getIntegerList("Global.CustomBothClick");
customRightClick = config.getIntegerList("Global.CustomRightClick");
- ConfigurationSection node = config.getConfigurationSection("Global.GroupDefault");
+ final ConfigurationSection node = config.getConfigurationSection("Global.GroupDefault");
- if (!Residence.is1_8())
+ if (!plugin.is1_8()) {
actionBar = false;
+ }
if (node != null) {
- Set keys = node.getConfigurationSection(defaultGroup).getKeys(false);
- if (keys != null)
- for (String key : keys)
+ 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 (Exception ex) {
+ } catch (final Exception ex) {
chatColor = ChatColor.DARK_PURPLE;
}
}
diff --git a/src/main/java/com/bekvon/bukkit/residence/FlagManager.java b/src/main/java/com/bekvon/bukkit/residence/FlagManager.java
index 544d83b..2168788 100644
--- a/src/main/java/com/bekvon/bukkit/residence/FlagManager.java
+++ b/src/main/java/com/bekvon/bukkit/residence/FlagManager.java
@@ -4,7 +4,6 @@ import java.util.HashMap;
import java.util.Map.Entry;
import org.bukkit.event.Listener;
-import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginManager;
import com.bekvon.bukkit.residence.listeners.flag.ResidenceFlyListener;
@@ -12,27 +11,28 @@ import com.bekvon.bukkit.residence.listeners.flag.ResidenceFlyListener;
import cn.citycraft.PluginHelper.config.FileConfig;
public class FlagManager {
- Plugin plugin;
FileConfig config;
-
HashMap flagmap;
- public FlagManager(Plugin plugin) {
+ Residence plugin;
+
+ public FlagManager(final Residence plugin) {
this.plugin = plugin;
this.config = new FileConfig(plugin, "flagconfig.yml");
}
public void init() {
- PluginManager pm = plugin.getServer().getPluginManager();
+ final PluginManager pm = plugin.getServer().getPluginManager();
flagmap = new HashMap();
- flagmap.put(config.getBoolean("Flag.Fly"), new ResidenceFlyListener());
+ flagmap.put(config.getBoolean("Flag.Fly"), new ResidenceFlyListener(plugin));
- for (Entry fm : flagmap.entrySet())
- if (fm.getKey())
+ for (final Entry fm : flagmap.entrySet()) {
+ if (fm.getKey()) {
pm.registerEvents(fm.getValue(), plugin);
-
- Residence.getLog().info("扩展Flag初始化完毕!");
+ }
+ }
+ plugin.getLogger().info("扩展Flag初始化完毕!");
}
}
diff --git a/src/main/java/com/bekvon/bukkit/residence/Residence.java b/src/main/java/com/bekvon/bukkit/residence/Residence.java
index fbb1eee..8dcbbae 100644
--- a/src/main/java/com/bekvon/bukkit/residence/Residence.java
+++ b/src/main/java/com/bekvon/bukkit/residence/Residence.java
@@ -84,195 +84,183 @@ public class Residence extends JavaPlugin {
public static float bukkitver;
- protected static ResidenceManager rmanager;
- protected static SelectionManager smanager;
- protected static PermissionManager gmanager;
- protected static ConfigManager cmanager;
- protected static FlagManager fmanager;
- protected static TaskManager taskmanager;
- protected static ResidenceBlockListener blistener;
- protected static ResidencePlayerListener plistener;
- protected static ResidenceEntityListener elistener;
- protected static ResidencePlayerListener_1_8 plistener1_8;
- protected static TransactionManager tmanager;
- protected static PermissionListManager pmanager;
- protected static LeaseManager leasemanager;
- protected static WorldItemManager imanager;
- protected static WorldFlagManager wmanager;
- protected static RentManager rentmanager;
- protected static ChatManager chatmanager;
- protected static Server server;
- public static HelpEntry helppages;
- protected static Language language;
- protected static Logger log;
- protected static boolean useWorldEdit;
- protected static EconomyInterface economy;
public final static int saveVersion = 1;
- protected static File dataFolder;
- protected static int leaseBukkitId = -1;
- protected static int rentBukkitId = -1;
- protected static int healBukkitId = -1;
- protected static int autosaveBukkitId = -1;
- protected static List resadminToggle;
- protected static FileConfig config;
- private final static String[] validLanguages = { "English", "Chinese" };
- public static boolean initsuccess;
-
- protected HandlerMainCommand hdmcnd;
-
+ public final static String[] validLanguages = { "English", "Chinese" };
+ protected ResidenceBlockListener blistener;
+ protected ChatManager chatmanager;
+ protected ConfigManager cmanager;
+ protected FileConfig config;
+ protected File dataFolder;
+ protected Map deleteConfirm;
+ protected EconomyInterface economy;
+ protected ResidenceEntityListener elistener;
protected boolean firstenable = true;
-
- public Map deleteConfirm;
+ protected FlagManager fmanager;
+ protected PermissionManager gmanager;
+ protected HandlerMainCommand hdmcnd;
+ protected HelpEntry helppages;
+ protected WorldItemManager imanager;
+ protected boolean init;
+ protected Language language;
+ protected LeaseManager leasemanager;
+ protected Logger log;
+ protected ResidencePlayerListener plistener;
+ protected ResidencePlayerListener_1_8 plistener1_8;
+ protected PermissionListManager pmanager;
+ protected RentManager rentmanager;
+ protected List resadminToggle;
+ protected ResidenceManager rmanager;
+ protected Server server;
+ protected SelectionManager smanager;
+ protected TaskManager taskmanager;
+ protected TransactionManager tmanager;
+ protected boolean useWorldEdit;
+ protected WorldFlagManager wmanager;
public Residence() {
}
- public static ResidenceBlockListener getBlockListener() {
+ public ResidenceBlockListener getBlockListener() {
return blistener;
}
- public static ChatManager getChatManager() {
+ public ChatManager getChatManager() {
return chatmanager;
}
- public static ConfigManager getConfigManager() {
- return cmanager;
- }
-
- public static File getDataLocation() {
- return dataFolder;
- }
-
- public static EconomyInterface getEconomyManager() {
- return economy;
- }
-
- public static ResidenceEntityListener getEntityListener() {
- return elistener;
- }
-
- public static WorldItemManager getItemManager() {
- return imanager;
- }
-
- public static Language getLanguage() {
- if (language == null)
- language = new Language();
- return language;
- }
-
- public static LeaseManager getLeaseManager() {
- return leasemanager;
- }
-
- public static Logger getLog() {
- return log;
- }
-
- public static PermissionManager getPermissionManager() {
- return gmanager;
- }
-
- public static FlagPermissions getPermsByLoc(Location loc) {
- ClaimedResidence res = rmanager.getByLoc(loc);
- if (res != null)
- return res.getPermissions();
- else
- return wmanager.getPerms(loc.getWorld().getName());
- }
-
- public static FlagPermissions getPermsByLocForPlayer(Location loc, Player player) {
- 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 static ResidencePlayerListener getPlayerListener() {
- return plistener;
- }
-
- public static RentManager getRentManager() {
- return rentmanager;
- }
-
- public static ResidenceManager getResidenceManager() {
- return rmanager;
- }
-
- public static SelectionManager getSelectionManager() {
- return smanager;
- }
-
- public static Server getServ() {
- return server;
- }
-
- public static TransactionManager getTransactionManager() {
- return tmanager;
- }
-
- public static WorldFlagManager getWorldFlags() {
- return wmanager;
- }
-
- public static boolean is1_8() {
- return bukkitver == 1.8;
- }
-
- public static boolean isResAdminOn(Player player) {
- if (resadminToggle.contains(player.getName()))
- return true;
- return false;
- }
-
- public static boolean isResAdminOn(String player) {
- if (resadminToggle.contains(player.toLowerCase()))
- return true;
- return false;
- }
-
- public static boolean isUseWorldEdit() {
- return useWorldEdit;
- }
-
- public static void turnResAdminOn(Player player) {
- resadminToggle.add(player.getName());
- }
-
- public static boolean validName(String name) {
- if (name.contains(":") || name.contains("."))
- return false;
- if (cmanager.getResidenceNameRegex() == null)
- return true;
- else {
- String namecheck = name.replaceAll(cmanager.getResidenceNameRegex(), "");
- if (!name.equals(namecheck))
- return false;
- return true;
- }
- }
-
- public void consoleMessage(String message) {
- this.getLogger().info(message);
- }
-
- public void consoleMessage(String[] msg) {
- for (String s : msg)
- consoleMessage(s);
- }
-
@Override
public FileConfiguration getConfig() {
return config;
}
- public void loadLang(File langFile) throws FileNotFoundException, IOException, InvalidConfigurationException {
- FileConfig langconfig = new FileConfig(this, langFile);
- helppages = HelpEntry.parseHelp(langconfig, "CommandHelp");
+ public ConfigManager getConfigManager() {
+ return cmanager;
+ }
+
+ public File getDataLocation() {
+ return dataFolder;
+ }
+
+ public Map getDeleteConfirm() {
+ return deleteConfirm;
+ }
+
+ public EconomyInterface getEconomyManager() {
+ return economy;
+ }
+
+ public ResidenceEntityListener getEntityListener() {
+ return elistener;
+ }
+
+ public HelpEntry getHelppages() {
+ return helppages;
+ }
+
+ public WorldItemManager getItemManager() {
+ return imanager;
+ }
+
+ public Language getLanguage() {
+ if (language == null) {
+ language = new Language();
+ }
+ return language;
+ }
+
+ public LeaseManager getLeaseManager() {
+ return leasemanager;
+ }
+
+ public Logger getLog() {
+ return log;
+ }
+
+ public PermissionListManager getPermissionListManager() {
+ return pmanager;
+ }
+
+ public PermissionManager getPermissionManager() {
+ return gmanager;
+ }
+
+ public FlagPermissions getPermsByLoc(final Location loc) {
+ final ClaimedResidence res = rmanager.getByLoc(loc);
+ if (res != null) {
+ return res.getPermissions();
+ } 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 RentManager getRentManager() {
+ return rentmanager;
+ }
+
+ public ResidenceManager getResidenceManager() {
+ return rmanager;
+ }
+
+ public SelectionManager getSelectionManager() {
+ return smanager;
+ }
+
+ public Server getServ() {
+ return server;
+ }
+
+ public TransactionManager getTransactionManager() {
+ return tmanager;
+ }
+
+ public WorldFlagManager getWorldFlags() {
+ return wmanager;
+ }
+
+ public boolean is1_8() {
+ return bukkitver == 1.8;
+ }
+
+ public boolean isInit() {
+ return init;
+ }
+
+ 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 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");
@@ -280,9 +268,9 @@ public class Residence extends JavaPlugin {
@SuppressWarnings("unchecked")
public boolean loadYml() throws Exception {
- File saveFolder = new File(dataFolder, "Save");
+ final File saveFolder = new File(dataFolder, "Save");
try {
- File worldFolder = new File(saveFolder, "Worlds");
+ final File worldFolder = new File(saveFolder, "Worlds");
if (!saveFolder.isDirectory()) {
this.getLogger().warning("领地数据保存目录不存在...");
this.getLogger().warning("请重新启动服务器生成新的文件...");
@@ -290,9 +278,9 @@ public class Residence extends JavaPlugin {
}
YMLSaveHelper yml;
File loadFile;
- long time = System.currentTimeMillis();
- HashMap worlds = new HashMap();
- for (World world : server.getWorlds()) {
+ final long time = System.currentTimeMillis();
+ final HashMap worlds = new HashMap();
+ for (final World world : server.getWorlds()) {
loadFile = new File(worldFolder, "res_" + world.getName() + ".yml");
if (loadFile.isFile()) {
yml = new YMLSaveHelper(loadFile);
@@ -300,34 +288,34 @@ public class Residence extends JavaPlugin {
worlds.put(world.getName(), yml.getRoot().get("Residences"));
}
}
- rmanager = ResidenceManager.load(worlds);
+ rmanager = ResidenceManager.load(this, worlds);
loadFile = new File(saveFolder, "forsale.yml");
if (loadFile.isFile()) {
yml = new YMLSaveHelper(loadFile);
yml.load();
- tmanager = TransactionManager.load((Map, ?>) yml.getRoot().get("Economy"), gmanager, rmanager);
+ 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((Map) yml.getRoot().get("Leases"), rmanager);
+ 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((Map) yml.getRoot().get("PermissionLists"));
+ 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((Map) yml.getRoot().get("RentSystem"));
+ rentmanager = RentManager.load(this, (Map) yml.getRoot().get("RentSystem"));
}
this.getLogger().info("从配置文件中读取领地数据,耗时" + ((float) (System.currentTimeMillis() - time) / 1000) + " 秒)");
return true;
- } catch (Exception ex) {
+ } catch (final Exception ex) {
this.getLogger().warning("领地数据载入时发生错误,请报告以下内容给作者: ");
this.getLogger().warning("错误: " + ex);
throw ex;
@@ -335,30 +323,27 @@ public class Residence extends JavaPlugin {
}
@Override
- public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
- ResidenceCommandEvent cevent = new ResidenceCommandEvent(command.getName(), args, sender);
+ public boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args) {
+ final ResidenceCommandEvent cevent = new ResidenceCommandEvent(command.getName(), args, sender);
server.getPluginManager().callEvent(cevent);
- if (cevent.isCancelled())
+ if (cevent.isCancelled()) {
return true;
+ }
return hdmcnd.onCommand(sender, command, label, args);
}
@Override
public void onDisable() {
- server.getScheduler().cancelTask(autosaveBukkitId);
- server.getScheduler().cancelTask(healBukkitId);
- if (cmanager.useLeases())
- server.getScheduler().cancelTask(leaseBukkitId);
- if (cmanager.enabledRentSystem())
- server.getScheduler().cancelTask(rentBukkitId);
- if (initsuccess)
+ taskmanager.cancelall();
+ if (init) {
try {
saveYml();
- DataBackup.run();
- } catch (Exception ex) {
+ DataBackup.run(this);
+ } catch (final Exception ex) {
this.getLogger().warning("领地数据保存错误,可能造成部分领地丢失,请尝试恢复备份文件!");
this.getLogger().warning("错误: " + ex);
}
+ }
}
@Override
@@ -366,45 +351,50 @@ public class Residence extends JavaPlugin {
try {
log = this.getLogger();
bukkitver = Float.parseFloat(this.getServer().getBukkitVersion().substring(0, 3));
- initsuccess = false;
+ init = false;
deleteConfirm = new HashMap();
resadminToggle = new ArrayList();
server = this.getServer();
dataFolder = this.getDataFolder();
- if (!dataFolder.isDirectory())
+ if (!dataFolder.isDirectory()) {
dataFolder.mkdirs();
- cmanager = new ConfigManager(this.getConfig());
- String multiworld = cmanager.getMultiworldPlugin();
+ }
+ cmanager = new ConfigManager(this);
+ final String multiworld = cmanager.getMultiworldPlugin();
if (multiworld != null) {
- Plugin plugin = server.getPluginManager().getPlugin(multiworld);
- if (plugin != null)
+ final Plugin plugin = server.getPluginManager().getPlugin(multiworld);
+ if (plugin != null) {
if (!plugin.isEnabled()) {
this.getLogger().info(" - 加载多世界插件: " + multiworld);
server.getPluginManager().enablePlugin(plugin);
}
+ }
}
- gmanager = new PermissionManager(this.getConfig());
+ gmanager = new PermissionManager(this);
imanager = new WorldItemManager(this.getConfig());
- wmanager = new WorldFlagManager(this.getConfig());
+ wmanager = new WorldFlagManager(this);
- chatmanager = new ChatManager();
- rentmanager = new RentManager();
- for (String lang : validLanguages)
+ chatmanager = new ChatManager(this);
+ rentmanager = new RentManager(this);
+ for (final String lang : validLanguages) {
try {
- if (this.checkNewLanguageVersion(lang))
+ if (this.checkNewLanguageVersion(lang)) {
this.writeDefaultLanguageFile(lang);
- } catch (Exception ex) {
+ }
+ } catch (final Exception ex) {
this.getLogger().warning("语言文件升级失败: " + lang + ".yml");
- helppages = new HelpEntry("");
+ helppages = new HelpEntry(this, "");
language = new Language();
}
- File langFile = new File(new File(dataFolder, "Language"), cmanager.getLanguage() + ".yml");
+ }
+ final File langFile = new File(new File(dataFolder, "Language"), cmanager.getLanguage() + ".yml");
try {
- if (langFile.isFile())
+ if (langFile.isFile()) {
loadLang(langFile);
- else
+ } else {
this.getLogger().warning("语言文件不存在...");
- } catch (Exception ex) {
+ }
+ } catch (final Exception ex) {
this.getLogger().warning("语言文件载入失败: " + cmanager.getLanguage() + ".yml 写入默认语言文件");
this.writeDefaultLanguageFile(cmanager.getLanguage());
loadLang(langFile);
@@ -413,71 +403,82 @@ public class Residence extends JavaPlugin {
if (this.getConfig().getBoolean("Global.EnableEconomy", false)) {
this.getLogger().info("扫描经济系统...");
if (gmanager.getPermissionsPlugin() instanceof ResidenceVaultAdapter) {
- ResidenceVaultAdapter vault = (ResidenceVaultAdapter) gmanager.getPermissionsPlugin();
+ final ResidenceVaultAdapter vault = (ResidenceVaultAdapter) gmanager.getPermissionsPlugin();
if (vault.economyOK()) {
economy = vault;
this.getLogger().info("发现 Vault 使用经济系统: " + vault.getEconomyName());
}
}
- if (economy == null)
+ if (economy == null) {
this.loadVaultEconomy();
- if (economy == null)
+ }
+ if (economy == null) {
this.loadEssentialsEconomy();
- if (economy == null)
+ }
+ if (economy == null) {
this.getLogger().warning("未找到经济系统...");
+ }
}
try {
this.loadYml();
- } catch (Exception e) {
+ } catch (final Exception e) {
this.getLogger().warning("领地数据载入错误,可能造成插件无法启动,请尝试恢复备份文件!");
this.getLogger().warning("错误: " + e);
}
- if (rmanager == null)
- rmanager = new ResidenceManager();
- if (leasemanager == null)
- leasemanager = new LeaseManager(rmanager);
- if (tmanager == null)
- tmanager = new TransactionManager(rmanager, gmanager);
- if (pmanager == null)
- pmanager = new PermissionListManager();
- if (taskmanager == null)
+ 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);
+ }
if (firstenable) {
- if (!this.isEnabled())
+ if (!this.isEnabled()) {
return;
+ }
FlagPermissions.initValidFlags();
- Plugin p = server.getPluginManager().getPlugin("WorldEdit");
+ final Plugin p = server.getPluginManager().getPlugin("WorldEdit");
if (p != null) {
- smanager = new WorldEditSelectionManager(server);
+ smanager = new WorldEditSelectionManager(this);
useWorldEdit = true;
this.getLogger().info("发现 WorldEdit");
} else {
- smanager = new SelectionManager(server);
+ smanager = new SelectionManager(this);
useWorldEdit = false;
this.getLogger().warning("WorldEdit 未找到!");
}
- blistener = new ResidenceBlockListener();
- plistener = new ResidencePlayerListener();
- elistener = new ResidenceEntityListener();
- plistener1_8 = new ResidencePlayerListener_1_8();
- PluginManager pm = getServer().getPluginManager();
+ blistener = new ResidenceBlockListener(this);
+ plistener = new ResidencePlayerListener(this);
+ elistener = new ResidenceEntityListener(this);
+ plistener1_8 = new ResidencePlayerListener_1_8(this);
+ final PluginManager pm = getServer().getPluginManager();
pm.registerEvents(blistener, this);
pm.registerEvents(plistener, this);
- if (is1_8())
+ if (is1_8()) {
pm.registerEvents(plistener1_8, this);
+ }
pm.registerEvents(elistener, this);
firstenable = false;
- } else
+ } else {
plistener.reload();
+ }
fmanager = new FlagManager(this);
fmanager.init();
- taskmanager.add(server.getScheduler().runTaskTimer(this, new HealTask(), 20, 20));
+ taskmanager.add(server.getScheduler().runTaskTimer(this, new HealTask(this), 20, 20));
- HandlerMainCommand hdmcnd = new HandlerMainCommand(this);
+ hdmcnd = new HandlerMainCommand(this);
hdmcnd.registerCommand(new CommandRc(this));
hdmcnd.registerCommand(new CommandRes(this));
hdmcnd.registerCommand(new CommandResLoad(this));
@@ -490,20 +491,22 @@ public class Residence extends JavaPlugin {
if (cmanager.useLeases()) {
int leaseInterval = cmanager.getLeaseCheckInterval();
leaseInterval = leaseInterval < 1 ? 1 : leaseInterval * 60 * 20;
- taskmanager.add(server.getScheduler().runTaskTimer(this, new LeaseTask(), leaseInterval, leaseInterval));
+ taskmanager.add(server.getScheduler().runTaskTimer(this, new LeaseTask(this), leaseInterval, leaseInterval));
}
if (cmanager.enabledRentSystem()) {
int rentint = cmanager.getRentCheckInterval();
rentint = rentint < 1 ? 1 : rentint * 60 * 20;
- taskmanager.add(server.getScheduler().runTaskTimer(this, new RentTask(), rentint, rentint));
+ taskmanager.add(server.getScheduler().runTaskTimer(this, new RentTask(this), rentint, rentint));
}
- for (Player player : Bukkit.getServer().getOnlinePlayers())
- if (Residence.getPermissionManager().isResidenceAdmin(player))
+ for (final Player player : Bukkit.getServer().getOnlinePlayers()) {
+ if (this.getPermissionManager().isResidenceAdmin(player)) {
turnResAdminOn(player);
+ }
+ }
this.getLogger().info("载入完成! 版本: " + this.getDescription().getVersion() + " 重制 by 喵♂呜");
- initsuccess = true;
- } catch (Exception ex) {
- initsuccess = false;
+ init = true;
+ } catch (final Exception ex) {
+ init = false;
getServer().getPluginManager().disablePlugin(this);
this.getLogger().warning(" - 初始化失败! 卸载插件! 请报告以下错误给作者,谢谢!");
this.getLogger().warning("错误: " + ex);
@@ -519,10 +522,10 @@ public class Residence extends JavaPlugin {
@Override
public void reloadConfig() {
config.reload();
- };
+ }
public void reloadPlugin() {
- PluginManager pm = server.getPluginManager();
+ final PluginManager pm = server.getPluginManager();
pm.disablePlugin(this);
pm.enablePlugin(this);
}
@@ -530,31 +533,33 @@ public class Residence extends JavaPlugin {
@Override
public void saveConfig() {
config.save();
- }
+ };
public void saveYml() throws IOException {
- File saveFolder = new File(dataFolder, "Save");
- File worldFolder = new File(saveFolder, "Worlds");
+ final File saveFolder = new File(dataFolder, "Save");
+ final File worldFolder = new File(saveFolder, "Worlds");
worldFolder.mkdirs();
YMLSaveHelper yml;
- long time = System.currentTimeMillis();
- Map save = rmanager.save();
- for (Entry entry : save.entrySet()) {
- File ymlSaveLoc = new File(worldFolder, "res_" + entry.getKey() + ".yml");
- File tmpFile = new File(worldFolder, "tmp_res_" + entry.getKey() + ".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);
- World world = server.getWorld(entry.getKey());
- if (world != null)
+ final World world = server.getWorld(entry.getKey());
+ if (world != null) {
yml.getRoot().put("Seed", world.getSeed());
+ }
yml.getRoot().put("Residences", entry.getValue());
yml.save();
if (ymlSaveLoc.isFile()) {
- File backupFolder = new File(worldFolder, "Backup");
+ final File backupFolder = new File(worldFolder, "Backup");
backupFolder.mkdirs();
- File backupFile = new File(backupFolder, "res_" + entry.getKey() + ".yml");
- if (backupFile.isFile())
+ final File backupFile = new File(backupFolder, "res_" + entry.getKey() + ".yml");
+ if (backupFile.isFile()) {
backupFile.delete();
+ }
ymlSaveLoc.renameTo(backupFile);
}
tmpFile.renameTo(ymlSaveLoc);
@@ -569,11 +574,12 @@ public class Residence extends JavaPlugin {
yml.getRoot().put("Economy", tmanager.save());
yml.save();
if (ymlSaveLoc.isFile()) {
- File backupFolder = new File(saveFolder, "Backup");
+ final File backupFolder = new File(saveFolder, "Backup");
backupFolder.mkdirs();
- File backupFile = new File(backupFolder, "forsale.yml");
- if (backupFile.isFile())
+ final File backupFile = new File(backupFolder, "forsale.yml");
+ if (backupFile.isFile()) {
backupFile.delete();
+ }
ymlSaveLoc.renameTo(backupFile);
}
tmpFile.renameTo(ymlSaveLoc);
@@ -586,11 +592,12 @@ public class Residence extends JavaPlugin {
yml.getRoot().put("Leases", leasemanager.save());
yml.save();
if (ymlSaveLoc.isFile()) {
- File backupFolder = new File(saveFolder, "Backup");
+ final File backupFolder = new File(saveFolder, "Backup");
backupFolder.mkdirs();
- File backupFile = new File(backupFolder, "leases.yml");
- if (backupFile.isFile())
+ final File backupFile = new File(backupFolder, "leases.yml");
+ if (backupFile.isFile()) {
backupFile.delete();
+ }
ymlSaveLoc.renameTo(backupFile);
}
tmpFile.renameTo(ymlSaveLoc);
@@ -603,11 +610,12 @@ public class Residence extends JavaPlugin {
yml.getRoot().put("PermissionLists", pmanager.save());
yml.save();
if (ymlSaveLoc.isFile()) {
- File backupFolder = new File(saveFolder, "Backup");
+ final File backupFolder = new File(saveFolder, "Backup");
backupFolder.mkdirs();
- File backupFile = new File(backupFolder, "permlists.yml");
- if (backupFile.isFile())
+ final File backupFile = new File(backupFolder, "permlists.yml");
+ if (backupFile.isFile()) {
backupFile.delete();
+ }
ymlSaveLoc.renameTo(backupFile);
}
tmpFile.renameTo(ymlSaveLoc);
@@ -620,82 +628,112 @@ public class Residence extends JavaPlugin {
yml.getRoot().put("RentSystem", rentmanager.save());
yml.save();
if (ymlSaveLoc.isFile()) {
- File backupFolder = new File(saveFolder, "Backup");
+ final File backupFolder = new File(saveFolder, "Backup");
backupFolder.mkdirs();
- File backupFile = new File(backupFolder, "rent.yml");
- if (backupFile.isFile())
+ 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())
+ if (cmanager.showIntervalMessages()) {
this.getLogger().info(" - 保存插件数据...");
+ }
}
- private boolean checkNewLanguageVersion(String lang) throws IOException, FileNotFoundException, InvalidConfigurationException {
- File outFile = new File(new File(this.getDataFolder(), "Language"), lang + ".yml");
- File checkFile = new File(new File(this.getDataFolder(), "Language"), "temp-" + lang + ".yml");
- if (outFile.isFile()) {
- FileConfig testconfig = new FileConfig(this, outFile);
- int oldversion = testconfig.getInt("FieldsVersion", 0);
- if (!this.writeDefaultFileFromJar(checkFile, "languagefiles/" + lang + ".yml", false))
+ 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;
+ } else {
+ final String namecheck = name.replaceAll(cmanager.getResidenceNameRegex(), "");
+ if (!name.equals(namecheck)) {
return false;
- FileConfig testconfig2 = new FileConfig(this, checkFile);
+ }
+ 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);
- int newversion = testconfig2.getInt("FieldsVersion", oldversion);
- if (checkFile.isFile())
+ final int newversion = testconfig2.getInt("FieldsVersion", oldversion);
+ if (checkFile.isFile()) {
checkFile.delete();
- if (newversion > oldversion)
+ }
+ if (newversion > oldversion) {
return true;
+ }
return false;
}
return true;
}
private void loadEssentialsEconomy() {
- Plugin p = getServer().getPluginManager().getPlugin("Essentials");
+ final Plugin p = getServer().getPluginManager().getPlugin("Essentials");
if (p != null) {
economy = new EssentialsEcoAdapter((Essentials) p);
this.getLogger().info("成功关联Essentials Economy!");
- } else
+ } else {
this.getLogger().info("Essentials Economy 未找到!");
+ }
}
private void loadVaultEconomy() {
- Plugin p = getServer().getPluginManager().getPlugin("Vault");
+ final Plugin p = getServer().getPluginManager().getPlugin("Vault");
if (p != null) {
- ResidenceVaultAdapter vault = new ResidenceVaultAdapter(getServer());
+ final ResidenceVaultAdapter vault = new ResidenceVaultAdapter(getServer());
if (vault.economyOK()) {
this.getLogger().info("发现 Vault 使用经济系统: " + vault.getEconomyName());
economy = vault;
- } else
+ } else {
this.getLogger().info("发现 Vault, 但是 Vault 未找到经济系统...");
- } else
+ }
+ } else {
this.getLogger().info("Vault 未找到!");
+ }
}
@SuppressWarnings("resource")
- private boolean writeDefaultFileFromJar(File writeName, String jarPath, boolean backupOld) {
+ private boolean writeDefaultFileFromJar(final File writeName, final String jarPath, final boolean backupOld) {
try {
- File fileBackup = new File(this.getDataFolder(), "backup-" + writeName);
- File jarloc = new File(getClass().getProtectionDomain().getCodeSource().getLocation().toURI()).getCanonicalFile();
+ final File fileBackup = new File(this.getDataFolder(), "backup-" + writeName);
+ final File jarloc = new File(getClass().getProtectionDomain().getCodeSource().getLocation().toURI()).getCanonicalFile();
if (jarloc.isFile()) {
- JarFile jar = new JarFile(jarloc);
- JarEntry entry = jar.getJarEntry(jarPath);
+ final JarFile jar = new JarFile(jarloc);
+ final JarEntry entry = jar.getJarEntry(jarPath);
if (entry != null && !entry.isDirectory()) {
- InputStream in = jar.getInputStream(entry);
- InputStreamReader isr = new InputStreamReader(in, "UTF8");
- if (writeName.isFile())
+ final InputStream in = jar.getInputStream(entry);
+ final InputStreamReader isr = new InputStreamReader(in, "UTF8");
+ if (writeName.isFile()) {
if (backupOld) {
- if (fileBackup.isFile())
+ if (fileBackup.isFile()) {
fileBackup.delete();
+ }
writeName.renameTo(fileBackup);
- } else
+ } else {
writeName.delete();
- FileOutputStream out = new FileOutputStream(writeName);
- OutputStreamWriter osw = new OutputStreamWriter(out, "UTF8");
- char[] tempbytes = new char[512];
+ }
+ }
+ 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);
@@ -707,16 +745,17 @@ public class Residence extends JavaPlugin {
}
}
return false;
- } catch (Exception ex) {
+ } catch (final Exception ex) {
this.getLogger().warning("文件写入失败: " + writeName);
return false;
}
}
- private void writeDefaultLanguageFile(String lang) {
- File outFile = new File(new File(this.getDataFolder(), "Language"), lang + ".yml");
+ 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))
+ if (this.writeDefaultFileFromJar(outFile, "languagefiles/" + lang + ".yml", true)) {
this.getLogger().info("保存默认 " + lang + " 语言文件...");
+ }
}
}
diff --git a/src/main/java/com/bekvon/bukkit/residence/ResidenceCommandListener.java b/src/main/java/com/bekvon/bukkit/residence/ResidenceCommandListener.java
deleted file mode 100644
index 896241e..0000000
--- a/src/main/java/com/bekvon/bukkit/residence/ResidenceCommandListener.java
+++ /dev/null
@@ -1,1337 +0,0 @@
-/*
- * To change this template, choose Tools | Templates and open the template in the editor.
- */
-package com.bekvon.bukkit.residence;
-
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.bukkit.Bukkit;
-import org.bukkit.ChatColor;
-import org.bukkit.Location;
-import org.bukkit.Material;
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-import com.bekvon.bukkit.residence.permissions.PermissionGroup;
-import com.bekvon.bukkit.residence.protection.ClaimedResidence;
-import com.bekvon.bukkit.residence.protection.CuboidArea;
-import com.bekvon.bukkit.residence.protection.FlagPermissions;
-import com.sk89q.worldedit.bukkit.WorldEditPlugin;
-
-public class ResidenceCommandListener extends Residence {
-
- @SuppressWarnings("deprecation")
- public boolean commandRes(String[] args, boolean resadmin, Command command, CommandSender sender) {
- // if (args.length > 0 && args[args.length - 1].equalsIgnoreCase("?") || args.length > 1 && args[args.length - 2].equals("?"))
- // return commandHelp(args, resadmin, sender);
- int page = 1;
- // try {
- // if (args.length > 0)
- // page = Integer.parseInt(args[args.length - 1]);
- // } catch (Exception ex) {
- // }
- Player player = (Player) sender;
- PermissionGroup group = null;
- String pname = null;
- // if (sender instanceof Player) {
- // player = (Player) sender;
- // group = Residence.getPermissionManager().getGroup(player);
- // pname = player.getName();
- // } else
- // resadmin = true;
- // if (cmanager.allowAdminsOnly())
- // if (!resadmin) {
- // sender.sendMessage(ChatColor.RED + language.getPhrase("AdminOnly"));
- // return true;
- // }
- // if (args.length == 0)
- // return false;
- // if (args.length == 0) {
- // args = new String[1];
- // args[0] = "?";
- // }
- String cmd = args[0].toLowerCase();
-
- // if (cmd.equals("remove") || cmd.equals("delete"))
- // return commandResRemove(args, resadmin, sender, page);
- // if (cmd.equals("confirm"))
- // return commandResConfirm(args, resadmin, sender, page);
- // if (cmd.equals("version")) {
- // sender.sendMessage(ChatColor.GRAY + "------------------------------------");
- // sender.sendMessage(ChatColor.RED + "当前服务器运行的 " + ChatColor.GOLD + "Residence" + ChatColor.RED + " 版本: " + ChatColor.BLUE + this.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 = this.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 + this.getDescription().getWebsite());
- // sender.sendMessage(ChatColor.GRAY + "------------------------------------");
- // return true;
- // }
- // if (cmd.equals("setowner") && args.length == 3) {
- // if (!resadmin) {
- // sender.sendMessage(ChatColor.RED + language.getPhrase("NoPermission"));
- // return true;
- // }
- // ClaimedResidence area = rmanager.getByName(args[1]);
- // if (area != null) {
- // area.getPermissions().setOwner(args[2], true);
- // if (area.getParent() == null)
- // sender.sendMessage(ChatColor.GREEN
- // + language.getPhrase("ResidenceOwnerChange", ChatColor.YELLOW + " " + args[1] + " " + ChatColor.GREEN + "." + ChatColor.YELLOW + args[2] + ChatColor.GREEN));
- // else
- // sender.sendMessage(ChatColor.GREEN + language.getPhrase("SubzoneOwnerChange",
- // ChatColor.YELLOW + " " + args[1].split("\\.")[args[1].split("\\.").length - 1] + " " + ChatColor.GREEN + "." + ChatColor.YELLOW + args[2] + ChatColor.GREEN));
- // } else
- // sender.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- // return true;
- // }
-
- if (player == null)
- return true;
- if (command.getName().equals("resadmin"))
- if (args.length == 1 && args[0].equals("on")) {
- resadminToggle.add(player.getName());
- player.sendMessage(ChatColor.YELLOW + language.getPhrase("AdminToggle", language.getPhrase("TurnOn")));
- return true;
- } else if (args.length == 1 && args[0].equals("off")) {
- resadminToggle.remove(player.getName());
- player.sendMessage(ChatColor.YELLOW + language.getPhrase("AdminToggle", language.getPhrase("TurnOff")));
- return true;
- }
- if (!resadmin && resadminToggle.contains(player.getName()))
- if (!gmanager.isResidenceAdmin(player))
- resadminToggle.remove(player.getName());
-
- // 此处开始的命令必须Player执行
-
- if (cmd.equals("select"))
- return commandResSelect(args, resadmin, player, page);
- if (cmd.equals("create"))
- return commandResCreate(args, resadmin, player, page);
- if (cmd.equals("subzone") || cmd.equals("sz"))
- return commandResSubzone(args, resadmin, player, page);
- if (cmd.equals("sublist"))
- return commandResSublist(args, resadmin, player, page);
- if (cmd.equals("removeall")) {
- if (args.length != 2)
- return false;
- if (resadmin || args[1].endsWith(pname)) {
- rmanager.removeAllByOwner(player, args[1]);
- player.sendMessage(ChatColor.GREEN + language.getPhrase("RemovePlayersResidences", ChatColor.YELLOW + args[1] + ChatColor.GREEN));
- } else
- player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission"));
- return true;
- }
- if (cmd.equals("compass"))
- return commandResCompass(args, resadmin, player, page);
- if (cmd.equals("area"))
- return commandResArea(args, resadmin, player, page);
- if (cmd.equals("lists"))
- return commandResList(args, resadmin, player, page);
- if (cmd.equals("default")) {
- if (args.length == 2) {
- ClaimedResidence res = rmanager.getByName(args[1]);
- res.getPermissions().applyDefaultFlags(player, resadmin);
- return true;
- }
- return false;
- }
- if (cmd.equals("limits")) {
- if (args.length == 1) {
- gmanager.getGroup(player).printLimits(player);
- return true;
- }
- return false;
- }
- if (cmd.equals("info")) {
- if (args.length == 1) {
- String area = rmanager.getNameByLoc(player.getLocation());
- if (area != null)
- rmanager.printAreaInfo(area, player);
- else
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- return true;
- } else if (args.length == 2) {
- rmanager.printAreaInfo(args[1], player);
- return true;
- }
- return false;
- }
- if (cmd.equals("check")) {
- if (args.length == 3 || args.length == 4) {
- if (args.length == 4)
- pname = args[3];
- ClaimedResidence res = rmanager.getByName(args[1]);
- if (res == null) {
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- return true;
- }
- if (!res.getPermissions().hasApplicableFlag(pname, args[2]))
- player.sendMessage(language.getPhrase("FlagCheckFalse",
- ChatColor.YELLOW + args[2] + ChatColor.RED + "." + ChatColor.YELLOW + pname + ChatColor.RED + "." + ChatColor.YELLOW + args[1] + ChatColor.RED));
- else
- player.sendMessage(language.getPhrase("FlagCheckTrue",
- ChatColor.GREEN + args[2] + ChatColor.YELLOW + "." + ChatColor.GREEN + pname + ChatColor.YELLOW + "." + ChatColor.YELLOW + args[1] + ChatColor.RED + "."
- + (res.getPermissions().playerHas(pname, res.getPermissions().getWorld(), args[2], false) ? ChatColor.GREEN + "TRUE" : ChatColor.RED + "FALSE")));
- return true;
- }
- return false;
- }
- if (cmd.equals("current")) {
- if (args.length != 1)
- return false;
- 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));
- return true;
- }
- if (cmd.equals("set"))
- return commandResSet(args, resadmin, player, page);
- if (cmd.equals("pset"))
- return commandResPset(args, resadmin, player, page);
- if (cmd.equals("gset"))
- return commandResGset(args, resadmin, player, page);
- if (cmd.equals("lset"))
- return commandResLset(args, resadmin, player, page);
- if (cmd.equals("list")) {
- if (args.length == 1) {
- rmanager.listResidences(player);
- return true;
- } else if (args.length == 2) {
- try {
- Integer.parseInt(args[1]);
- rmanager.listResidences(player, page);
- } catch (Exception ex) {
- rmanager.listResidences(player, args[1]);
- }
- return true;
- } else if (args.length == 3) {
- rmanager.listResidences(player, args[1], page);
- return true;
- }
- return false;
- }
- if (cmd.equals("listhidden")) {
- if (!resadmin) {
- player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission"));
- return true;
- }
- if (args.length == 1) {
- rmanager.listResidences(player, 1, true);
- return true;
- } else if (args.length == 2) {
- try {
- Integer.parseInt(args[1]);
- rmanager.listResidences(player, page, true);
- } catch (Exception ex) {
- rmanager.listResidences(player, args[1], 1, true);
- }
- return true;
- } else if (args.length == 3) {
- rmanager.listResidences(player, args[1], page, true);
- return true;
- }
- return false;
- }
- if (cmd.equals("rename")) {
- if (args.length == 3) {
- rmanager.renameResidence(player, args[1], args[2], resadmin);
- return true;
- }
- return false;
- }
- if (cmd.equals("renamearea")) {
- if (args.length == 4) {
- ClaimedResidence res = rmanager.getByName(args[1]);
- if (res == null) {
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- return true;
- }
- res.renameArea(player, args[2], args[3], resadmin);
- return true;
- }
- return false;
- }
- if (cmd.equals("unstuck")) {
- if (args.length != 1)
- return false;
- group = gmanager.getGroup(player);
- if (!group.hasUnstuckAccess()) {
- player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission"));
- return true;
- }
- 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()));
- }
- return true;
- }
- if (cmd.equals("kick")) {
- if (args.length != 2)
- return false;
- Player targetplayer = Bukkit.getPlayer(args[1]);
- if (targetplayer == null)
- return false;
- group = gmanager.getGroup(player);
- if (!group.hasKickAccess()) {
- player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission"));
- return true;
- }
- ClaimedResidence res = rmanager.getByLoc(targetplayer.getLocation());
- if (res.getOwner().equals(player.getName()))
- if (res.getPlayersInResidence().contains(targetplayer)) {
- targetplayer.teleport(res.getOutsideFreeLoc(player.getLocation()));
- targetplayer.sendMessage(ChatColor.RED + language.getPhrase("Kicked") + "!");
- }
-
- }
- if (cmd.equals("mirror")) {
- if (args.length != 3)
- return false;
- rmanager.mirrorPerms(player, args[2], args[1], resadmin);
- return true;
- }
- if (cmd.equals("listall")) {
- if (args.length == 1)
- rmanager.listAllResidences(player, 1);
- else if (args.length == 2)
- try {
- rmanager.listAllResidences(player, page);
- } catch (Exception ex) {
- }
- else
- return false;
- return true;
- }
- if (cmd.equals("listallhidden")) {
- if (!resadmin) {
- player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission"));
- return true;
- }
- if (args.length == 1)
- rmanager.listAllResidences(player, 1, true);
- else if (args.length == 2)
- try {
- rmanager.listAllResidences(player, page, true);
- } catch (Exception ex) {
- }
- else
- return false;
- return true;
- }
- if (cmd.equals("material")) {
- if (args.length != 2)
- return false;
- try {
- player.sendMessage(ChatColor.GREEN + language.getPhrase("MaterialGet",
- ChatColor.GOLD + args[1] + ChatColor.GREEN + "." + ChatColor.RED + Material.getMaterial(Integer.parseInt(args[1])).name() + ChatColor.GREEN));
- } catch (Exception ex) {
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidMaterial"));
- }
- return true;
- }
- if (cmd.equals("tpset")) {
- ClaimedResidence res = rmanager.getByLoc(player.getLocation());
- if (res != null)
- res.setTpLoc(player, resadmin);
- else
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- return true;
- }
- if (cmd.equals("tp")) {
- if (args.length != 2)
- return false;
- ClaimedResidence res = rmanager.getByName(args[1]);
- if (res == null) {
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- return true;
- }
- res.tpToResidence(player, player, resadmin);
- return true;
- }
- if (cmd.equals("lease"))
- return commandResLease(args, resadmin, player, page);
- if (cmd.equals("bank"))
- return commandResBank(args, resadmin, player, page);
- if (cmd.equals("market"))
- return commandResMarket(args, resadmin, player, page);
- if (cmd.equals("message"))
- return commandResMessage(args, resadmin, player, page);
- if (cmd.equals("give") && args.length == 3) {
- rmanager.giveResidence(player, args[2], args[1], resadmin);
- return true;
- }
- if (cmd.equals("server")) {
- if (!resadmin) {
- player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission"));
- return true;
- }
- if (args.length == 2) {
- ClaimedResidence res = rmanager.getByName(args[1]);
- if (res == null) {
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- return true;
- }
- res.getPermissions().setOwner("Server Land", false);
- player.sendMessage(
- ChatColor.GREEN + language.getPhrase("ResidenceOwnerChange", ChatColor.YELLOW + args[1] + ChatColor.GREEN + "." + ChatColor.YELLOW + "Server Land" + ChatColor.GREEN));
- return true;
- } else {
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- return true;
- }
- }
- if (cmd.equals("clearflags")) {
- if (!resadmin) {
- player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission"));
- return true;
- }
- 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"));
- return true;
- }
- if (cmd.equals("tool")) {
- 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()));
- return true;
- }
- return false;
- }
-
- @Override
- public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
- return true;
- // ResidenceCommandEvent cevent = new ResidenceCommandEvent(command.getName(), args, sender);
- // server.getPluginManager().callEvent(cevent);
- // if (cevent.isCancelled())
- // return true;
- // if (command.getName().equals("resreload") && args.length == 0) {
- // if (sender instanceof Player) {
- // Player player = (Player) sender;
- // if (Residence.getPermissionManager().isResidenceAdmin(player)) {
- // this.reloadPlugin();
- // sender.sendMessage(ChatColor.GREEN + "[Residence] 重载配置文件.");
- // System.out.println("[Residence] 重载 by " + player.getName() + ".");
- // }
- // } else {
- // this.reloadPlugin();
- // System.out.println("[Residence] 重载 by 控制台.");
- // }
- // return true;
- // }
- // if (command.getName().equals("resload")) {
- // if (!(sender instanceof Player) || sender instanceof Player && gmanager.isResidenceAdmin((Player) sender))
- // try {
- // this.loadYml();
- // sender.sendMessage(ChatColor.GREEN + "[Residence] 从配置保存文件重新载入数据...");
- // } catch (Exception ex) {
- // sender.sendMessage(ChatColor.RED + "[Residence] 无法从配置保存文件重新载入数据, 请查看控制台异常信息!");
- // sender.sendMessage(ChatColor.RED + "[Residence] 异常: " + ex.getMessage());
- // Logger.getLogger(Residence.class.getName()).log(Level.SEVERE, null, ex);
- // }
- // return true;
- // } else if (command.getName().equals("resworld")) {
- // if (args.length == 2 && args[0].equalsIgnoreCase("remove"))
- // if (sender instanceof ConsoleCommandSender) {
- // rmanager.removeAllFromWorld(sender, args[1]);
- // return true;
- // } else
- // sender.sendMessage(ChatColor.RED + "当前命令必须从控制台执行.");
- // return false;
- // } else if (command.getName().equals("rc")) {
- // if (sender instanceof Player) {
- // Player player = (Player) sender;
- // String pname = player.getName();
- // if (cmanager.chatEnabled()) {
- // if (args.length == 0)
- // plistener.tooglePlayerResidenceChat(player);
- // else {
- // String area = plistener.getCurrentResidenceName(pname);
- // if (area != null) {
- // ChatChannel channel = chatmanager.getChannel(area);
- // if (channel != null) {
- // String message = "";
- // for (String arg : args)
- // message = message + " " + arg;
- // channel.chat(pname, message);
- // } else
- // player.sendMessage(ChatColor.RED + language.getPhrase("InvalidChannel"));
- // } else
- // player.sendMessage(ChatColor.RED + language.getPhrase("NotInResidence"));
- // }
- // } else
- // player.sendMessage(ChatColor.RED + language.getPhrase("ChatDisabled"));
- // }
- // return true;
- // } else if (command.getName().equals("res") || command.getName().equals("residence") || command.getName().equals("resadmin")) {
- // boolean resadmin = false;
- // if (sender instanceof Player) {
- // if (command.getName().equals("resadmin") && gmanager.isResidenceAdmin((Player) sender))
- // resadmin = true;
- // if (command.getName().equals("resadmin") && !gmanager.isResidenceAdmin((Player) sender)) {
- // ((Player) sender).sendMessage(ChatColor.RED + language.getPhrase("NonAdmin"));
- // return true;
- // }
- // } else
- // resadmin = true;
- // return commandRes(args, resadmin, command, sender);
- // }
- // return super.onCommand(sender, command, label, args);
- }
-
- // private boolean commandHelp(String[] args, boolean resadmin, CommandSender sender) {
- // if (helppages != null) {
- // String helppath = "res";
- // for (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 (Exception ex) {
- // sender.sendMessage(ChatColor.RED + language.getPhrase("InvalidHelp"));
- // }
- // if (helppages.containesEntry(helppath)) {
- // helppages.printHelp(sender, page, helppath);
- // return true;
- // }
- // }
- // return false;
- // }
-
- private boolean commandResArea(String[] args, boolean resadmin, Player player, int page) {
- if (args.length == 4)
- if (args[1].equals("remove")) {
- ClaimedResidence res = rmanager.getByName(args[2]);
- if (res != null)
- res.removeArea(player, args[3], resadmin);
- else
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- return true;
- } else if (args[1].equals("add")) {
- WorldEditPlugin wep = (WorldEditPlugin) server.getPluginManager().getPlugin("WorldEdit");
- if (wep != null)
- if (wep.getConfig().getInt("wand-item") == Residence.getConfigManager().selectionToolId)
- smanager.worldEdit(player);
- if (smanager.hasPlacedBoth(player.getName())) {
- ClaimedResidence res = rmanager.getByName(args[2]);
- if (res != null)
- res.addArea(player, new CuboidArea(smanager.getPlayerLoc1(player.getName()), smanager.getPlayerLoc2(player.getName())), args[3], resadmin);
- else
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- } else
- player.sendMessage(ChatColor.RED + language.getPhrase("SelectPoints"));
- return true;
- } else if (args[1].equals("replace")) {
- WorldEditPlugin wep = (WorldEditPlugin) server.getPluginManager().getPlugin("WorldEdit");
- if (wep != null)
- if (wep.getConfig().getInt("wand-item") == Residence.getConfigManager().selectionToolId)
- smanager.worldEdit(player);
- if (smanager.hasPlacedBoth(player.getName())) {
- ClaimedResidence res = rmanager.getByName(args[2]);
- if (res != null)
- res.replaceArea(player, new CuboidArea(smanager.getPlayerLoc1(player.getName()), smanager.getPlayerLoc2(player.getName())), args[3], resadmin);
- else
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- } else
- player.sendMessage(ChatColor.RED + language.getPhrase("SelectPoints"));
- return true;
- }
- if ((args.length == 3 || args.length == 4) && args[1].equals("list")) {
- ClaimedResidence res = rmanager.getByName(args[2]);
- if (res != null)
- res.printAreaList(player, page);
- else
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- return true;
- } else if ((args.length == 3 || args.length == 4) && args[1].equals("listall")) {
- ClaimedResidence res = rmanager.getByName(args[2]);
- if (res != null)
- res.printAdvancedAreaList(player, page);
- else
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- return true;
- }
- return false;
- }
-
- private boolean commandResBank(String[] args, boolean resadmin, Player player, int page) {
- if (args.length != 3)
- return false;
- ClaimedResidence res = rmanager.getByName(plistener.getCurrentResidenceName(player.getName()));
- if (res == null) {
- player.sendMessage(ChatColor.RED + language.getPhrase("NotInResidence"));
- return true;
- }
- int amount = 0;
- try {
- amount = Integer.parseInt(args[2]);
- } catch (Exception ex) {
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidAmount"));
- return true;
- }
- if (args[1].equals("deposit"))
- res.getBank().deposit(player, amount, resadmin);
- else if (args[1].equals("withdraw"))
- res.getBank().withdraw(player, amount, resadmin);
- else
- return false;
- return true;
- }
-
- private boolean commandResCompass(String[] args, boolean resadmin, Player player, int page) {
- if (args.length != 2) {
- player.setCompassTarget(player.getWorld().getSpawnLocation());
- player.sendMessage(ChatColor.GREEN + language.getPhrase("CompassTargetReset"));
- return true;
- }
- if (rmanager.getByName(args[1]) != null) {
- if (rmanager.getByName(args[1]).getWorld().equalsIgnoreCase(player.getWorld().getName())) {
- Location low = rmanager.getByName(args[1]).getArea("main").getLowLoc();
- Location high = rmanager.getByName(args[1]).getArea("main").getHighLoc();
- 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 + args[1] + ChatColor.GREEN));
- }
- } else
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- return true;
- }
-
- // private boolean commandResConfirm(String[] args, boolean resadmin, CommandSender sender, int page) {
- // Player player = null;
- // String name = "Console";
- // if (sender instanceof Player) {
- // player = (Player) sender;
- // name = player.getName();
- // }
- // if (args.length == 1) {
- // 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 + Residence.getLanguage().getPhrase("ResidenceRemove", ChatColor.YELLOW + name + ChatColor.GREEN));
- // }
- // }
- // return true;
- // }
-
- private boolean commandResCreate(String[] args, boolean resadmin, Player player, int page) {
- if (args.length != 2)
- return false;
- WorldEditPlugin wep = (WorldEditPlugin) server.getPluginManager().getPlugin("WorldEdit");
- if (wep != null)
- if (wep.getConfig().getInt("wand-item") == Residence.getConfigManager().selectionToolId)
- smanager.worldEdit(player);
- if (smanager.hasPlacedBoth(player.getName())) {
- rmanager.addResidence(player, args[1], smanager.getPlayerLoc1(player.getName()), smanager.getPlayerLoc2(player.getName()), resadmin);
- return true;
- } else {
- player.sendMessage(ChatColor.RED + language.getPhrase("SelectPoints"));
- return true;
- }
- }
-
- private boolean commandResGset(String[] args, boolean resadmin, Player player, int page) {
- if (args.length == 4) {
- ClaimedResidence area = rmanager.getByLoc(player.getLocation());
- if (area != null)
- area.getPermissions().setGroupFlag(player, args[1], args[2], args[3], resadmin);
- else
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidArea"));
- return true;
- } else if (args.length == 5) {
- ClaimedResidence area = rmanager.getByName(args[1]);
- if (area != null)
- area.getPermissions().setGroupFlag(player, args[2], args[3], args[4], resadmin);
- else
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- return true;
- }
- return false;
- }
-
- private boolean commandResLease(String[] args, boolean resadmin, Player player, int page) {
- if (args.length == 2 || args.length == 3) {
- if (args[1].equals("renew")) {
- if (args.length == 3)
- leasemanager.renewArea(args[2], player);
- else
- leasemanager.renewArea(rmanager.getNameByLoc(player.getLocation()), player);
- return true;
- } else if (args[1].equals("cost"))
- if (args.length == 3) {
- ClaimedResidence res = Residence.getResidenceManager().getByName(args[2]);
- if (res == null || leasemanager.leaseExpires(args[2])) {
- int cost = leasemanager.getRenewCost(res);
- player.sendMessage(ChatColor.YELLOW + language.getPhrase("LeaseRenewalCost", ChatColor.RED + args[2] + ChatColor.YELLOW + "." + ChatColor.RED + cost + ChatColor.YELLOW));
- } else
- player.sendMessage(ChatColor.RED + language.getPhrase("LeaseNotExpire"));
- return true;
- } else {
- String area = rmanager.getNameByLoc(player.getLocation());
- ClaimedResidence res = rmanager.getByName(area);
- if (area == null || res == null) {
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidArea"));
- return true;
- }
- if (leasemanager.leaseExpires(area)) {
- 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"));
- return true;
- }
- } else if (args.length == 4)
- if (args[1].equals("set")) {
- if (!resadmin) {
- player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission"));
- return true;
- }
- if (args[3].equals("infinite")) {
- if (leasemanager.leaseExpires(args[2])) {
- leasemanager.removeExpireTime(args[2]);
- player.sendMessage(ChatColor.GREEN + language.getPhrase("LeaseInfinite"));
- } else
- player.sendMessage(ChatColor.RED + language.getPhrase("LeaseNotExpire"));
- return true;
- } else {
- int days;
- try {
- days = Integer.parseInt(args[3]);
- } catch (Exception ex) {
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidDays"));
- return true;
- }
- leasemanager.setExpireTime(player, args[2], days);
- return true;
- }
- }
- return false;
- }
-
- private boolean commandResList(String[] args, boolean resadmin, Player player, int page) {
- if (args.length == 2) {
- if (args[1].equals("list")) {
- pmanager.printLists(player);
- return true;
- }
- } else if (args.length == 3) {
- if (args[1].equals("view")) {
- pmanager.printList(player, args[2]);
- return true;
- } else if (args[1].equals("remove")) {
- pmanager.removeList(player, args[2]);
- return true;
- } else if (args[1].equals("add")) {
- pmanager.makeList(player, args[2]);
- return true;
- }
- } else if (args.length == 4) {
- if (args[1].equals("apply")) {
- pmanager.applyListToResidence(player, args[2], args[3], resadmin);
- return true;
- }
- } else if (args.length == 5) {
- if (args[1].equals("set")) {
- pmanager.getList(player.getName(), args[2]).setFlag(args[3], FlagPermissions.stringToFlagState(args[4]));
- player.sendMessage(ChatColor.GREEN + language.getPhrase("FlagSet"));
- return true;
- }
- } else if (args.length == 6)
- if (args[1].equals("gset")) {
- pmanager.getList(player.getName(), args[2]).setGroupFlag(args[3], args[4], FlagPermissions.stringToFlagState(args[5]));
- player.sendMessage(ChatColor.GREEN + language.getPhrase("FlagSet"));
- return true;
- } else if (args[1].equals("pset")) {
- pmanager.getList(player.getName(), args[2]).setPlayerFlag(args[3], args[4], FlagPermissions.stringToFlagState(args[5]));
- player.sendMessage(ChatColor.GREEN + language.getPhrase("FlagSet"));
- return true;
- }
- return false;
- }
-
- private boolean commandResLset(String[] args, boolean resadmin, Player player, int page) {
- ClaimedResidence res = null;
- Material mat = null;
- String listtype = null;
- boolean showinfo = false;
- if (args.length == 2 && args[1].equals("info")) {
- res = rmanager.getByLoc(player.getLocation());
- showinfo = true;
- } else if (args.length == 3 && args[2].equals("info")) {
- res = rmanager.getByName(args[1]);
- showinfo = true;
- }
- if (showinfo) {
- if (res == null) {
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- return true;
- }
- player.sendMessage(ChatColor.RED + "Blacklist:");
- res.getItemBlacklist().printList(player);
- player.sendMessage(ChatColor.GREEN + "Ignorelist:");
- res.getItemIgnoreList().printList(player);
- return true;
- } else if (args.length == 4) {
- res = rmanager.getByName(args[1]);
- listtype = args[2];
- try {
- mat = Material.valueOf(args[3].toUpperCase());
- } catch (Exception ex) {
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidMaterial"));
- return true;
- }
- } else if (args.length == 3) {
- res = rmanager.getByLoc(player.getLocation());
- listtype = args[1];
- try {
- mat = Material.valueOf(args[2].toUpperCase());
- } catch (Exception ex) {
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidMaterial"));
- return true;
- }
- }
- if (res != null && listtype != null) {
- if (listtype.equalsIgnoreCase("blacklist"))
- res.getItemBlacklist().playerListChange(player, mat, resadmin);
- else if (listtype.equalsIgnoreCase("ignorelist"))
- res.getItemIgnoreList().playerListChange(player, mat, resadmin);
- else
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidList"));
- return true;
- } else {
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- return true;
- }
- }
-
- private boolean commandResMarket(String[] args, boolean resadmin, Player player, int page) {
- if (args.length == 1)
- return false;
- String command = args[1].toLowerCase();
- if (command.equals("list"))
- return commandResMarketList(args, resadmin, player, page);
- if (command.equals("autorenew"))
- return commandResMarketAutorenew(args, resadmin, player, page);
- if (command.equals("rentable"))
- return commandResMarketRentable(args, resadmin, player, page);
- if (command.equals("rent"))
- return commandResMarketRent(args, resadmin, player, page);
- if (command.equals("release")) {
- if (args.length != 3)
- return false;
- if (rentmanager.isRented(args[2]))
- rentmanager.removeFromForRent(player, args[2], resadmin);
- else
- rentmanager.unrent(player, args[2], resadmin);
- return true;
- }
- if (command.equals("info")) {
- if (args.length == 2) {
- String areaname = rmanager.getNameByLoc(player.getLocation());
- tmanager.viewSaleInfo(areaname, player);
- if (cmanager.enabledRentSystem() && rentmanager.isForRent(areaname))
- rentmanager.printRentInfo(player, areaname);
- } else if (args.length == 3) {
- tmanager.viewSaleInfo(args[2], player);
- if (cmanager.enabledRentSystem() && rentmanager.isForRent(args[2]))
- rentmanager.printRentInfo(player, args[2]);
- } else
- return false;
- return true;
- }
- if (command.equals("buy")) {
- if (args.length != 3)
- return false;
- tmanager.buyPlot(args[2], player, resadmin);
- return true;
- }
- if (command.equals("unsell")) {
- if (args.length != 3)
- return false;
- tmanager.removeFromSale(player, args[2], resadmin);
- return true;
- }
- if (command.equals("sell")) {
- if (args.length != 4)
- return false;
- int amount;
- try {
- amount = Integer.parseInt(args[3]);
- } catch (Exception ex) {
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidAmount"));
- return true;
- }
- tmanager.putForSale(args[2], player, amount, resadmin);
- return true;
- }
- return false;
- }
-
- private boolean commandResMarketAutorenew(String[] args, boolean resadmin, Player player, int page) {
- if (!cmanager.enableEconomy()) {
- player.sendMessage(ChatColor.RED + language.getPhrase("MarketDisabled"));
- return true;
- }
- if (args.length != 4)
- return false;
- boolean value;
- if (args[3].equalsIgnoreCase("true") || args[3].equalsIgnoreCase("t"))
- value = true;
- else if (args[3].equalsIgnoreCase("false") || args[3].equalsIgnoreCase("f"))
- value = false;
- else {
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidBoolean"));
- return true;
- }
- if (rentmanager.isRented(args[2]) && rentmanager.getRentingPlayer(args[2]).equalsIgnoreCase(player.getName()))
- rentmanager.setRentedRepeatable(player, args[2], value, resadmin);
- else if (rentmanager.isForRent(args[2]))
- rentmanager.setRentRepeatable(player, args[2], value, resadmin);
- else
- player.sendMessage(ChatColor.RED + language.getPhrase("RentReleaseInvalid", ChatColor.YELLOW + args[2] + ChatColor.RED));
- return true;
- }
-
- private boolean commandResMarketList(String[] args, boolean resadmin, Player player, 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(String[] args, boolean resadmin, Player player, int page) {
- if (args.length < 3 || args.length > 4)
- return false;
- boolean repeat = false;
- if (args.length == 4)
- if (args[3].equalsIgnoreCase("t") || args[3].equalsIgnoreCase("true"))
- repeat = true;
- else if (!args[3].equalsIgnoreCase("f") && !args[3].equalsIgnoreCase("false")) {
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidBoolean"));
- return true;
- }
- rentmanager.rent(player, args[2], repeat, resadmin);
- return true;
- }
-
- private boolean commandResMarketRentable(String[] args, boolean resadmin, Player player, int page) {
- if (args.length < 5 || args.length > 6)
- return false;
- if (!cmanager.enabledRentSystem()) {
- player.sendMessage(ChatColor.RED + language.getPhrase("RentDisabled"));
- return true;
- }
- int days;
- int cost;
- try {
- cost = Integer.parseInt(args[3]);
- } catch (Exception ex) {
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidCost"));
- return true;
- }
- try {
- days = Integer.parseInt(args[4]);
- } catch (Exception ex) {
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidDays"));
- return true;
- }
- boolean repeat = false;
- if (args.length == 6)
- if (args[5].equalsIgnoreCase("t") || args[5].equalsIgnoreCase("true"))
- repeat = true;
- else if (!args[5].equalsIgnoreCase("f") && !args[5].equalsIgnoreCase("false")) {
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidBoolean"));
- return true;
- }
- rentmanager.setForRent(player, args[2], cost, days, repeat, resadmin);
- return true;
- }
-
- private boolean commandResMessage(String[] args, boolean resadmin, Player player, int page) {
- ClaimedResidence res = null;
- int start = 0;
- boolean enter = false;
- if (args.length < 2)
- return false;
- if (args[1].equals("enter")) {
- enter = true;
- res = rmanager.getByLoc(player.getLocation());
- start = 2;
- } else if (args[1].equals("leave")) {
- res = rmanager.getByLoc(player.getLocation());
- start = 2;
- } else if (args[1].equals("remove")) {
- if (args.length > 2 && args[2].equals("enter")) {
- res = rmanager.getByLoc(player.getLocation());
- if (res != null)
- res.setEnterLeaveMessage(player, null, true, resadmin);
- else
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- return true;
- } else if (args.length > 2 && args[2].equals("leave")) {
- res = rmanager.getByLoc(player.getLocation());
- if (res != null)
- res.setEnterLeaveMessage(player, null, false, resadmin);
- else
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- return true;
- }
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidMessageType"));
- return true;
- } else if (args.length > 2 && args[2].equals("enter")) {
- enter = true;
- res = rmanager.getByName(args[1]);
- start = 3;
- } else if (args.length > 2 && args[2].equals("leave")) {
- res = rmanager.getByName(args[1]);
- start = 3;
- } else if (args.length > 2 && args[2].equals("remove")) {
- res = rmanager.getByName(args[1]);
- if (args.length != 4)
- return false;
- if (args[3].equals("enter")) {
- if (res != null)
- res.setEnterLeaveMessage(player, null, true, resadmin);
- return true;
- } else if (args[3].equals("leave")) {
- if (res != null)
- res.setEnterLeaveMessage(player, null, false, resadmin);
- return true;
- }
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidMessageType"));
- return true;
- } else {
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidMessageType"));
- return true;
- }
- if (start == 0)
- return false;
- String message = "";
- for (int i = start; i < args.length; i++)
- message = message + args[i] + " ";
- if (res != null)
- res.setEnterLeaveMessage(player, message, enter, resadmin);
- else
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- return true;
- }
-
- private boolean commandResPset(String[] args, boolean resadmin, Player player, int page) {
- if (args.length == 3 && args[2].equalsIgnoreCase("removeall")) {
- 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 true;
- } else if (args.length == 4 && args[3].equalsIgnoreCase("removeall")) {
- ClaimedResidence area = rmanager.getByName(args[1]);
- if (area != null)
- area.getPermissions().removeAllPlayerFlags(player, args[2], resadmin);
- else
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- return true;
- } else if (args.length == 4) {
- ClaimedResidence area = rmanager.getByLoc(player.getLocation());
- if (area != null)
- area.getPermissions().setPlayerFlag(player, args[1], args[2], args[3], resadmin);
- else
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- return true;
- } else if (args.length == 5) {
- ClaimedResidence area = rmanager.getByName(args[1]);
- if (area != null)
- area.getPermissions().setPlayerFlag(player, args[2], args[3], args[4], resadmin);
- else
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- return true;
- }
- return false;
- }
-
- // private boolean commandResRemove(String[] args, boolean resadmin, CommandSender sender, int page) {
- // Player player = null;
- // if (sender instanceof Player) {
- // player = (Player) sender;
- // if (args.length == 1) {
- // String area = rmanager.getNameByLoc(player.getLocation());
- // if (area != null) {
- // ClaimedResidence res = rmanager.getByName(area);
- // if (res.getParent() != null) {
- // String[] split = area.split("\\.");
- // 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);
- // return true;
- // } 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 true;
- // }
- // }
- // return false;
- // }
- // }
- // if (args.length != 2)
- // return false;
- // if (player != null) {
- // if (!deleteConfirm.containsKey(player.getName()) || !args[1].equalsIgnoreCase(deleteConfirm.get(player.getName()))) {
- // String words = null;
- // if (rmanager.getByName(args[1]) != null) {
- // ClaimedResidence res = rmanager.getByName(args[1]);
- // if (res.getParent() != null) {
- // String[] split = args[1].split("\\.");
- // words = split[split.length - 1];
- // }
- // }
- // if (words == null)
- // player.sendMessage(ChatColor.RED + language.getPhrase("DeleteConfirm", ChatColor.YELLOW + args[1] + ChatColor.RED));
- // else
- // player.sendMessage(ChatColor.RED + language.getPhrase("DeleteSubzoneConfirm", ChatColor.YELLOW + words + ChatColor.RED));
- // deleteConfirm.put(player.getName(), args[1]);
- // } else
- // rmanager.removeResidence(player, args[1], resadmin);
- // } else if (!deleteConfirm.containsKey("Console") || !args[1].equalsIgnoreCase(deleteConfirm.get("Console"))) {
- // String words = null;
- // if (rmanager.getByName(args[1]) != null) {
- // ClaimedResidence res = rmanager.getByName(args[1]);
- // if (res.getParent() != null) {
- // String[] split = args[1].split("\\.");
- // words = split[split.length - 1];
- // }
- // }
- // if (words == null)
- // server.getConsoleSender().sendMessage(ChatColor.RED + language.getPhrase("DeleteConfirm", ChatColor.YELLOW + args[1] + ChatColor.RED));
- // else
- // server.getConsoleSender().sendMessage(ChatColor.RED + language.getPhrase("DeleteSubzoneConfirm", ChatColor.YELLOW + words + ChatColor.RED));
- // deleteConfirm.put("Console", args[1]);
- // } else
- // rmanager.removeResidence(args[1]);
- // return true;
- // }
-
- private boolean commandResSelect(String[] args, boolean resadmin, Player player, int page) {
- PermissionGroup group = Residence.getPermissionManager().getGroup(player);
- if (!group.selectCommandAccess() && !resadmin) {
- player.sendMessage(ChatColor.RED + language.getPhrase("SelectDiabled"));
- return true;
- }
- if (!group.canCreateResidences() && group.getMaxSubzoneDepth() <= 0 && !resadmin) {
- player.sendMessage(ChatColor.RED + language.getPhrase("SelectDiabled"));
- return true;
- }
- if ((!player.hasPermission("residence.create") && player.isPermissionSet("residence.create") && !player.hasPermission("residence.select") && player.isPermissionSet("residence.select"))
- && !resadmin) {
- player.sendMessage(ChatColor.RED + language.getPhrase("SelectDiabled"));
- return true;
- }
- if (args.length == 2) {
- if (args[1].equals("size") || args[1].equals("cost")) {
- if (smanager.hasPlacedBoth(player.getName()))
- try {
- smanager.showSelectionInfo(player);
- return true;
- } catch (Exception ex) {
- Logger.getLogger(Residence.class.getName()).log(Level.SEVERE, null, ex);
- return true;
- }
- else if (smanager.worldEdit(player))
- try {
- smanager.showSelectionInfo(player);
- return true;
- } catch (Exception ex) {
- Logger.getLogger(Residence.class.getName()).log(Level.SEVERE, null, ex);
- return true;
- }
- } else if (args[1].equals("vert")) {
- smanager.vert(player, resadmin);
- return true;
- } else if (args[1].equals("sky")) {
- smanager.sky(player, resadmin);
- return true;
- } else if (args[1].equals("bedrock")) {
- smanager.bedrock(player, resadmin);
- return true;
- } else if (args[1].equals("coords")) {
- 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() + ")");
- 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 true;
- } else if (args[1].equals("chunk")) {
- smanager.selectChunk(player);
- return true;
- } else if (args[1].equals("worldedit")) {
- if (smanager.worldEdit(player))
- player.sendMessage(ChatColor.GREEN + Residence.getLanguage().getPhrase("SelectionSuccess"));
- return true;
- }
- } else if (args.length == 3)
- if (args[1].equals("expand")) {
- int amount;
- try {
- amount = Integer.parseInt(args[2]);
- } catch (Exception ex) {
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidAmount"));
- return true;
- }
- smanager.modify(player, false, amount);
- return true;
- } else if (args[1].equals("shift")) {
- int amount;
- try {
- amount = Integer.parseInt(args[2]);
- } catch (Exception ex) {
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidAmount"));
- return true;
- }
- smanager.modify(player, true, amount);
- return true;
- }
- if (args.length > 1 && args[1].equals("residence")) {
- String resName;
- String areaName;
- ClaimedResidence res = null;
- if (args.length > 2)
- res = rmanager.getByName(args[2]);
- else
- res = rmanager.getByLoc(player.getLocation());
- if (res == null) {
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- return true;
- }
- resName = res.getName();
- CuboidArea area = null;
- if (args.length > 3) {
- area = res.getArea(args[3]);
- areaName = args[3];
- } 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 true;
- } else
- try {
- smanager.selectBySize(player, Integer.parseInt(args[1]), Integer.parseInt(args[2]), Integer.parseInt(args[3]));
- return true;
- } catch (Exception ex) {
- player.sendMessage(ChatColor.RED + language.getPhrase("SelectionFail"));
- return true;
- }
- }
-
- private boolean commandResSet(String[] args, boolean resadmin, Player player, int page) {
- if (args.length == 3) {
- String area = rmanager.getNameByLoc(player.getLocation());
- if (area != null)
- rmanager.getByName(area).getPermissions().setFlag(player, args[1], args[2], resadmin);
- else
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- return true;
- } else if (args.length == 4) {
- ClaimedResidence area = rmanager.getByName(args[1]);
- if (area != null)
- area.getPermissions().setFlag(player, args[2], args[3], resadmin);
- else
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- return true;
- }
- return false;
- }
-
- private boolean commandResSublist(String[] args, boolean resadmin, Player player, int page) {
- if (args.length == 1 || args.length == 2 || args.length == 3) {
- ClaimedResidence res;
- if (args.length == 1)
- res = rmanager.getByLoc(player.getLocation());
- else
- res = rmanager.getByName(args[1]);
- if (res != null)
- res.printSubzoneList(player, page);
- else
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- return true;
- }
- return false;
- }
-
- private boolean commandResSubzone(String[] args, boolean resadmin, Player player, int page) {
- if (args.length != 2 && args.length != 3)
- return false;
- String zname;
- String parent;
- if (args.length == 2) {
- parent = rmanager.getNameByLoc(player.getLocation());
- zname = args[1];
- } else {
- parent = args[1];
- zname = args[2];
- }
- WorldEditPlugin wep = (WorldEditPlugin) server.getPluginManager().getPlugin("WorldEdit");
- if (wep != null)
- if (wep.getConfig().getInt("wand-item") == Residence.getConfigManager().selectionToolId)
- smanager.worldEdit(player);
- if (smanager.hasPlacedBoth(player.getName())) {
- ClaimedResidence res = rmanager.getByName(parent);
- if (res == null) {
- player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
- return true;
- }
- res.addSubzone(player, smanager.getPlayerLoc1(player.getName()), smanager.getPlayerLoc2(player.getName()), zname, resadmin);
- return true;
- } else {
- player.sendMessage(ChatColor.RED + language.getPhrase("SelectPoints"));
- return true;
- }
- }
-}
diff --git a/src/main/java/com/bekvon/bukkit/residence/chat/ChatChannel.java b/src/main/java/com/bekvon/bukkit/residence/chat/ChatChannel.java
index 55e0353..e83221a 100644
--- a/src/main/java/com/bekvon/bukkit/residence/chat/ChatChannel.java
+++ b/src/main/java/com/bekvon/bukkit/residence/chat/ChatChannel.java
@@ -5,64 +5,64 @@
package com.bekvon.bukkit.residence.chat;
-import com.bekvon.bukkit.residence.Residence;
-import com.bekvon.bukkit.residence.event.ResidenceChatEvent;
import java.util.ArrayList;
import java.util.List;
+
import org.bukkit.ChatColor;
import org.bukkit.Server;
import org.bukkit.entity.Player;
+import com.bekvon.bukkit.residence.Residence;
+import com.bekvon.bukkit.residence.event.ResidenceChatEvent;
+
/**
*
* @author Administrator
*/
public class ChatChannel {
- protected String name;
- protected List members;
+ protected List members;
+ protected String name;
+ protected Residence plugin;
- public ChatChannel(String channelName)
- {
- name = channelName;
- members = new ArrayList();
- }
+ public ChatChannel(final Residence plugin, final String channelName) {
+ this.plugin = plugin;
+ name = channelName;
+ members = new ArrayList();
+ }
- public void chat(String sourcePlayer, String message)
- {
- Server serv = Residence.getServ();
- ChatColor color = Residence.getConfigManager().getChatColor();
- ResidenceChatEvent cevent = new ResidenceChatEvent(Residence.getResidenceManager().getByName(name),serv.getPlayer(sourcePlayer),message,color);
- Residence.getServ().getPluginManager().callEvent(cevent);
- if(cevent.isCancelled())
- return;
- for(String member : members)
- {
- Player player = serv.getPlayer(member);
- if(player!=null)
- player.sendMessage(cevent.getColor() + sourcePlayer + ": " + cevent.getChatMessage());
- }
- System.out.println("ResidentialChat[" + name + "] - " + sourcePlayer + ": " + cevent.getChatMessage());
- }
-
- public void join(String player)
- {
- if(!members.contains(player))
- members.add(player);
- }
-
- public void leave(String player)
- {
- members.remove(player);
- }
+ public void chat(final String sourcePlayer, final String message) {
+ final Server serv = plugin.getServ();
+ final ChatColor color = plugin.getConfigManager().getChatColor();
+ final ResidenceChatEvent cevent = new ResidenceChatEvent(plugin.getResidenceManager().getByName(name), serv.getPlayer(sourcePlayer), message, color);
+ plugin.getServ().getPluginManager().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());
+ }
+ }
+ System.out.println("ResidentialChat[" + name + "] - " + sourcePlayer + ": " + cevent.getChatMessage());
+ }
- public boolean hasMember(String player)
- {
- return members.contains(player);
- }
+ public boolean hasMember(final String player) {
+ return members.contains(player);
+ }
- public int memberCount()
- {
- return members.size();
- }
+ public void join(final String player) {
+ if (!members.contains(player)) {
+ members.add(player);
+ }
+ }
+
+ public void leave(final String player) {
+ members.remove(player);
+ }
+
+ public int memberCount() {
+ return members.size();
+ }
}
diff --git a/src/main/java/com/bekvon/bukkit/residence/chat/ChatManager.java b/src/main/java/com/bekvon/bukkit/residence/chat/ChatManager.java
index 2814247..5b841c6 100644
--- a/src/main/java/com/bekvon/bukkit/residence/chat/ChatManager.java
+++ b/src/main/java/com/bekvon/bukkit/residence/chat/ChatManager.java
@@ -5,56 +5,55 @@
package com.bekvon.bukkit.residence.chat;
-import com.bekvon.bukkit.residence.Residence;
import java.util.HashMap;
import java.util.Map;
+
import org.bukkit.Server;
+import com.bekvon.bukkit.residence.Residence;
+
/**
*
* @author Administrator
*/
public class ChatManager {
- protected Map channelmap;
- protected Server server;
+ protected Map channelmap;
+ protected Residence plugin;
+ protected Server server;
- public ChatManager()
- {
- server = Residence.getServ();
- channelmap = new HashMap();
- }
+ public ChatManager(final Residence plugin) {
+ server = plugin.getServ();
+ channelmap = new HashMap();
+ }
- public void setChannel(String player, String channel)
- {
- this.removeFromChannel(player);
- if(!channelmap.containsKey(channel))
- channelmap.put(channel, new ChatChannel(channel));
- channelmap.get(channel).join(player);
- }
+ public ChatChannel getChannel(final String channel) {
+ return channelmap.get(channel);
+ }
- public void removeFromChannel(String player)
- {
- for(ChatChannel chan : channelmap.values())
- {
- if(chan.hasMember(player))
- chan.leave(player);
- }
- }
-
- public ChatChannel getChannel(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(String player)
- {
- for(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 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/com/bekvon/bukkit/residence/commandmain/CommandRc.java b/src/main/java/com/bekvon/bukkit/residence/commandmain/CommandRc.java
index 807da6a..4aca5ee 100644
--- a/src/main/java/com/bekvon/bukkit/residence/commandmain/CommandRc.java
+++ b/src/main/java/com/bekvon/bukkit/residence/commandmain/CommandRc.java
@@ -14,34 +14,38 @@ import cn.citycraft.PluginHelper.commands.BaseCommand;
public class CommandRc extends BaseCommand {
Residence plugin;
- public CommandRc(Residence plugin) {
+ public CommandRc(final Residence plugin) {
super("rc");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
}
@Override
- public void execute(CommandSender sender, Command command, String label, String[] args) throws CommandException {
- String pname = sender.getName();
- if (Residence.getConfigManager().chatEnabled()) {
- if (args.length == 0)
- Residence.getPlayerListener().tooglePlayerResidenceChat((Player) sender);
- else {
- String area = Residence.getPlayerListener().getCurrentResidenceName(pname);
+ 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) {
- ChatChannel channel = Residence.getChatManager().getChannel(area);
+ final ChatChannel channel = plugin.getChatManager().getChannel(area);
if (channel != null) {
String message = "";
- for (String arg : args)
+ for (final String arg : args) {
message = message + " " + arg;
+ }
channel.chat(pname, message);
- } else
- sender.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("InvalidChannel"));
- } else
- sender.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("NotInResidence"));
+ } else {
+ sender.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidChannel"));
+ }
+ } else {
+ sender.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NotInResidence"));
+ }
}
- } else
- sender.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("ChatDisabled"));
+ } else {
+ sender.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ChatDisabled"));
+ }
}
}
diff --git a/src/main/java/com/bekvon/bukkit/residence/commandmain/CommandRes.java b/src/main/java/com/bekvon/bukkit/residence/commandmain/CommandRes.java
index 9d7be89..a7bb423 100644
--- a/src/main/java/com/bekvon/bukkit/residence/commandmain/CommandRes.java
+++ b/src/main/java/com/bekvon/bukkit/residence/commandmain/CommandRes.java
@@ -7,79 +7,155 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.bekvon.bukkit.residence.Residence;
+import com.bekvon.bukkit.residence.commandsub.CommandArea;
+import com.bekvon.bukkit.residence.commandsub.CommandBank;
+import com.bekvon.bukkit.residence.commandsub.CommandCheck;
+import com.bekvon.bukkit.residence.commandsub.CommandClearFlags;
+import com.bekvon.bukkit.residence.commandsub.CommandCompass;
import com.bekvon.bukkit.residence.commandsub.CommandConfirm;
+import com.bekvon.bukkit.residence.commandsub.CommandCreate;
+import com.bekvon.bukkit.residence.commandsub.CommandCurrent;
+import com.bekvon.bukkit.residence.commandsub.CommandDefault;
+import com.bekvon.bukkit.residence.commandsub.CommandGive;
+import com.bekvon.bukkit.residence.commandsub.CommandGset;
+import com.bekvon.bukkit.residence.commandsub.CommandInfo;
+import com.bekvon.bukkit.residence.commandsub.CommandKick;
+import com.bekvon.bukkit.residence.commandsub.CommandLease;
+import com.bekvon.bukkit.residence.commandsub.CommandLimits;
+import com.bekvon.bukkit.residence.commandsub.CommandList;
+import com.bekvon.bukkit.residence.commandsub.CommandListAll;
+import com.bekvon.bukkit.residence.commandsub.CommandListAllHidden;
+import com.bekvon.bukkit.residence.commandsub.CommandListHidden;
+import com.bekvon.bukkit.residence.commandsub.CommandLists;
+import com.bekvon.bukkit.residence.commandsub.CommandLset;
+import com.bekvon.bukkit.residence.commandsub.CommandMarket;
+import com.bekvon.bukkit.residence.commandsub.CommandMaterial;
+import com.bekvon.bukkit.residence.commandsub.CommandMessage;
+import com.bekvon.bukkit.residence.commandsub.CommandMirror;
+import com.bekvon.bukkit.residence.commandsub.CommandPset;
import com.bekvon.bukkit.residence.commandsub.CommandRemove;
+import com.bekvon.bukkit.residence.commandsub.CommandRemoveAll;
+import com.bekvon.bukkit.residence.commandsub.CommandRename;
+import com.bekvon.bukkit.residence.commandsub.CommandRenameArea;
+import com.bekvon.bukkit.residence.commandsub.CommandSelect;
+import com.bekvon.bukkit.residence.commandsub.CommandServer;
+import com.bekvon.bukkit.residence.commandsub.CommandSet;
import com.bekvon.bukkit.residence.commandsub.CommandSetOwner;
+import com.bekvon.bukkit.residence.commandsub.CommandSubList;
+import com.bekvon.bukkit.residence.commandsub.CommandSubZone;
+import com.bekvon.bukkit.residence.commandsub.CommandTool;
+import com.bekvon.bukkit.residence.commandsub.CommandTp;
+import com.bekvon.bukkit.residence.commandsub.CommandTpSet;
+import com.bekvon.bukkit.residence.commandsub.CommandUnStuck;
import com.bekvon.bukkit.residence.commandsub.CommandVersion;
import cn.citycraft.PluginHelper.commands.BaseCommand;
import cn.citycraft.PluginHelper.commands.HandlerSubCommand;
public class CommandRes extends BaseCommand {
- Residence plugin;
-
HandlerSubCommand hdsubcmd;
- public CommandRes(Residence plugin) {
+ Residence plugin;
+
+ public CommandRes(final Residence plugin) {
super("res", "residence", "resadmin");
this.plugin = plugin;
hdsubcmd = new HandlerSubCommand(plugin);
- hdsubcmd.registerCommand(new CommandConfirm(plugin));
- hdsubcmd.registerCommand(new CommandRemove(plugin));
- hdsubcmd.registerCommand(new CommandVersion(plugin));
- hdsubcmd.registerCommand(new CommandSetOwner(plugin));
- // Player player = null;
- // boolean resadmin = (command != null);
- // ResidenceManager rmanager = Residence.getResidenceManager();
- // Map deleteConfirm = plugin.deleteConfirm;
- // Language language = Residence.getLanguage();
+ hdsubcmd.registerCommand(new CommandArea(plugin));
+ hdsubcmd.registerCommand(new CommandBank(plugin));
+ hdsubcmd.registerCommand(new CommandCheck(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));
plugin.getCommand("residence").setTabCompleter(hdsubcmd);
}
@Override
- public void execute(CommandSender sender, Command command, String label, String[] args) throws CommandException {
+ 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 (Residence.getPermissionManager().isResidenceAdmin((Player) sender))
+ if (label.equalsIgnoreCase("resadmin")) {
+ if (plugin.getPermissionManager().isResidenceAdmin((Player) sender)) {
resadmin = true;
- else
- sender.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("NonAdmin"));
- } else
+ } 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 (Residence.getConfigManager().allowAdminsOnly())
+ if (plugin.getConfigManager().allowAdminsOnly()) {
if (!resadmin) {
- sender.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("AdminOnly"));
+ sender.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AdminOnly"));
return;
}
- if (args.length == 0)
+ }
+ if (args.length == 0) {
return;
+ }
hdsubcmd.onCommand(sender, resadmin ? command : null, label, args);
}
- private boolean commandHelp(String[] args, boolean resadmin, CommandSender sender) {
- if (Residence.helppages != null) {
+ private boolean commandHelp(final String[] args, final boolean resadmin, final CommandSender sender) {
+ if (plugin.getHelppages() != null) {
String helppath = "res";
- for (String arg : args) {
- if (arg.equalsIgnoreCase("?"))
+ for (final String arg : args) {
+ if (arg.equalsIgnoreCase("?")) {
break;
+ }
helppath = helppath + "." + arg;
}
int page = 1;
- if (!args[args.length - 1].equalsIgnoreCase("?"))
+ if (!args[args.length - 1].equalsIgnoreCase("?")) {
try {
page = Integer.parseInt(args[args.length - 1]);
- } catch (Exception ex) {
- sender.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("InvalidHelp"));
+ } catch (final Exception ex) {
+ sender.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidHelp"));
}
- if (Residence.helppages.containesEntry(helppath)) {
- Residence.helppages.printHelp(sender, page, helppath);
+ }
+ if (plugin.getHelppages().containesEntry(helppath)) {
+ plugin.getHelppages().printHelp(sender, page, helppath);
return true;
}
}
diff --git a/src/main/java/com/bekvon/bukkit/residence/commandmain/CommandResLoad.java b/src/main/java/com/bekvon/bukkit/residence/commandmain/CommandResLoad.java
index 62803f6..163d221 100644
--- a/src/main/java/com/bekvon/bukkit/residence/commandmain/CommandResLoad.java
+++ b/src/main/java/com/bekvon/bukkit/residence/commandmain/CommandResLoad.java
@@ -16,22 +16,23 @@ import cn.citycraft.PluginHelper.commands.BaseCommand;
public class CommandResLoad extends BaseCommand {
Residence plugin;
- public CommandResLoad(Residence plugin) {
+ public CommandResLoad(final Residence plugin) {
super("resreload");
this.plugin = plugin;
}
@Override
- public void execute(CommandSender sender, Command command, String label, String[] args) throws CommandException {
- if (!(sender instanceof Player) || Residence.getPermissionManager().isResidenceAdmin((Player) sender))
+ 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.loadYml();
sender.sendMessage(ChatColor.GREEN + "[Residence] 从配置保存文件重新载入数据...");
- } catch (Exception ex) {
+ } catch (final Exception ex) {
sender.sendMessage(ChatColor.RED + "[Residence] 无法从配置保存文件重新载入数据, 请查看控制台异常信息!");
sender.sendMessage(ChatColor.RED + "[Residence] 异常: " + ex.getMessage());
Logger.getLogger(Residence.class.getName()).log(Level.SEVERE, null, ex);
}
+ }
}
}
diff --git a/src/main/java/com/bekvon/bukkit/residence/commandmain/CommandResReload.java b/src/main/java/com/bekvon/bukkit/residence/commandmain/CommandResReload.java
index 8730d6a..91c07f0 100644
--- a/src/main/java/com/bekvon/bukkit/residence/commandmain/CommandResReload.java
+++ b/src/main/java/com/bekvon/bukkit/residence/commandmain/CommandResReload.java
@@ -13,23 +13,23 @@ import cn.citycraft.PluginHelper.commands.BaseCommand;
public class CommandResReload extends BaseCommand {
Residence plugin;
- public CommandResReload(Residence plugin) {
+ public CommandResReload(final Residence plugin) {
super("resreload");
this.plugin = plugin;
}
@Override
- public void execute(CommandSender sender, Command command, String label, String[] args) throws CommandException {
+ public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException {
if (sender instanceof Player) {
- Player player = (Player) sender;
- if (Residence.getPermissionManager().isResidenceAdmin(player)) {
+ final Player player = (Player) sender;
+ if (plugin.getPermissionManager().isResidenceAdmin(player)) {
plugin.reloadPlugin();
sender.sendMessage(ChatColor.GREEN + "[Residence] 重载配置文件.");
- System.out.println("[Residence] 重载 by " + player.getName() + ".");
+ plugin.getLogger().info("重载 by " + player.getName() + ".");
}
} else {
plugin.reloadPlugin();
- System.out.println("[Residence] 重载 by 控制台.");
+ plugin.getLogger().info("重载 by 控制台.");
}
}
diff --git a/src/main/java/com/bekvon/bukkit/residence/commandmain/CommandResWorld.java b/src/main/java/com/bekvon/bukkit/residence/commandmain/CommandResWorld.java
index 1ec65fd..c5938ba 100644
--- a/src/main/java/com/bekvon/bukkit/residence/commandmain/CommandResWorld.java
+++ b/src/main/java/com/bekvon/bukkit/residence/commandmain/CommandResWorld.java
@@ -13,7 +13,7 @@ import cn.citycraft.PluginHelper.commands.BaseCommand;
public class CommandResWorld extends BaseCommand {
Residence plugin;
- public CommandResWorld(Residence plugin) {
+ public CommandResWorld(final Residence plugin) {
super("resworld");
this.plugin = plugin;
setMinimumArguments(2);
@@ -21,12 +21,14 @@ public class CommandResWorld extends BaseCommand {
}
@Override
- public void execute(CommandSender sender, Command command, String label, String[] args) throws CommandException {
- if (args[0].equalsIgnoreCase("remove"))
- if (sender instanceof ConsoleCommandSender)
- Residence.getResidenceManager().removeAllFromWorld(sender, args[1]);
- else
+ 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/com/bekvon/bukkit/residence/commandsub/CommandConfirm.java b/src/main/java/com/bekvon/bukkit/residence/commandsub/CommandConfirm.java
index fdda85a..a0a6b8d 100644
--- a/src/main/java/com/bekvon/bukkit/residence/commandsub/CommandConfirm.java
+++ b/src/main/java/com/bekvon/bukkit/residence/commandsub/CommandConfirm.java
@@ -17,32 +17,31 @@ import cn.citycraft.PluginHelper.commands.BaseCommand;
public class CommandConfirm extends BaseCommand {
Residence plugin;
- public CommandConfirm(Residence plugin) {
- super("?", "help");
+ public CommandConfirm(final Residence plugin) {
+ super("confirm");
this.plugin = plugin;
}
@Override
- public void execute(CommandSender sender, Command command, String label, String[] args) throws CommandException {
+ public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException {
Player player = null;
- boolean resadmin = (command != null);
- ResidenceManager rmanager = Residence.getResidenceManager();
- Map deleteConfirm = plugin.deleteConfirm;
- Language language = Residence.getLanguage();
+ 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();
}
- if (args.length == 1) {
- 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 + Residence.getLanguage().getPhrase("ResidenceRemove", ChatColor.YELLOW + name + ChatColor.GREEN));
+ 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/com/bekvon/bukkit/residence/commandsub/CommandRemove.java b/src/main/java/com/bekvon/bukkit/residence/commandsub/CommandRemove.java
index b6331ca..057b939 100644
--- a/src/main/java/com/bekvon/bukkit/residence/commandsub/CommandRemove.java
+++ b/src/main/java/com/bekvon/bukkit/residence/commandsub/CommandRemove.java
@@ -19,79 +19,84 @@ import cn.citycraft.PluginHelper.commands.BaseCommand;
public class CommandRemove extends BaseCommand {
Residence plugin;
- public CommandRemove(Residence plugin) {
+ public CommandRemove(final Residence plugin) {
super("remove", "delete");
this.plugin = plugin;
}
@Override
- public void execute(CommandSender sender, Command command, String label, String[] args) throws CommandException {
+ public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException {
Player player = null;
- boolean resadmin = (command != null);
- ResidenceManager rmanager = Residence.getResidenceManager();
- Map deleteConfirm = plugin.deleteConfirm;
- Language language = Residence.getLanguage();
+ 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;
- if (args.length == 1) {
- String area = rmanager.getNameByLoc(player.getLocation());
- if (area != null) {
- ClaimedResidence res = rmanager.getByName(area);
- if (res.getParent() != null) {
- String[] split = area.split("\\.");
- 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);
- return;
+ 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 {
- 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;
+ rmanager.removeResidence(player, area, resadmin);
}
+ return;
+ } 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 != 2)
+ if (args.length != 1) {
return;
+ }
if (player != null) {
- if (!deleteConfirm.containsKey(player.getName()) || !args[1].equalsIgnoreCase(deleteConfirm.get(player.getName()))) {
+ if (!deleteConfirm.containsKey(player.getName()) || !args[0].equalsIgnoreCase(deleteConfirm.get(player.getName()))) {
String words = null;
- if (rmanager.getByName(args[1]) != null) {
- ClaimedResidence res = rmanager.getByName(args[1]);
+ if (rmanager.getByName(args[0]) != null) {
+ final ClaimedResidence res = rmanager.getByName(args[0]);
if (res.getParent() != null) {
- String[] split = args[1].split("\\.");
+ final String[] split = args[0].split("\\.");
words = split[split.length - 1];
}
}
- if (words == null)
- player.sendMessage(ChatColor.RED + language.getPhrase("DeleteConfirm", ChatColor.YELLOW + args[1] + ChatColor.RED));
- else
+ 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[1]);
- } else
- rmanager.removeResidence(player, args[1], resadmin);
- } else if (!deleteConfirm.containsKey("Console") || !args[1].equalsIgnoreCase(deleteConfirm.get("Console"))) {
+ }
+ 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[1]) != null) {
- ClaimedResidence res = rmanager.getByName(args[1]);
+ if (rmanager.getByName(args[0]) != null) {
+ final ClaimedResidence res = rmanager.getByName(args[1]);
if (res.getParent() != null) {
- String[] split = args[1].split("\\.");
+ 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[1] + ChatColor.RED));
- else
+ 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[1]);
- } else
- rmanager.removeResidence(args[1]);
+ }
+ deleteConfirm.put("Console", args[0]);
+ } else {
+ rmanager.removeResidence(args[0]);
+ }
}
}
diff --git a/src/main/java/com/bekvon/bukkit/residence/commandsub/CommandSetOwner.java b/src/main/java/com/bekvon/bukkit/residence/commandsub/CommandSetOwner.java
index 5eb64ee..6601dd4 100644
--- a/src/main/java/com/bekvon/bukkit/residence/commandsub/CommandSetOwner.java
+++ b/src/main/java/com/bekvon/bukkit/residence/commandsub/CommandSetOwner.java
@@ -15,30 +15,34 @@ import cn.citycraft.PluginHelper.commands.BaseCommand;
public class CommandSetOwner extends BaseCommand {
Residence plugin;
- public CommandSetOwner(Residence plugin) {
+ public CommandSetOwner(final Residence plugin) {
super("setowner");
this.plugin = plugin;
+ setMinimumArguments(2);
+ setPossibleArguments("[领地名] [玩家]");
}
@Override
- public void execute(CommandSender sender, Command command, String label, String[] args) throws CommandException {
- boolean resadmin = (command != null);
- ResidenceManager rmanager = Residence.getResidenceManager();
- Language language = Residence.getLanguage();
-
- if (!resadmin)
+ 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"));
- ClaimedResidence area = rmanager.getByName(args[1]);
+ }
+ final ClaimedResidence area = rmanager.getByName(args[0]);
if (area != null) {
- area.getPermissions().setOwner(args[2], true);
- if (area.getParent() == null)
+ area.getPermissions().setOwner(args[1], true);
+ if (area.getParent() == null) {
sender.sendMessage(
- ChatColor.GREEN + language.getPhrase("ResidenceOwnerChange", ChatColor.YELLOW + " " + args[1] + " " + ChatColor.GREEN + "." + ChatColor.YELLOW + args[2] + ChatColor.GREEN));
- else
+ 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[1].split("\\.")[args[1].split("\\.").length - 1] + " " + ChatColor.GREEN + "." + ChatColor.YELLOW + args[2] + ChatColor.GREEN));
- } else
+ 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/com/bekvon/bukkit/residence/economy/ResidenceBank.java b/src/main/java/com/bekvon/bukkit/residence/economy/ResidenceBank.java
index 8640833..ec51254 100644
--- a/src/main/java/com/bekvon/bukkit/residence/economy/ResidenceBank.java
+++ b/src/main/java/com/bekvon/bukkit/residence/economy/ResidenceBank.java
@@ -4,98 +4,87 @@
*/
package com.bekvon.bukkit.residence.economy;
+
import org.bukkit.ChatColor;
+import org.bukkit.entity.Player;
import com.bekvon.bukkit.residence.Residence;
import com.bekvon.bukkit.residence.protection.ClaimedResidence;
-import org.bukkit.entity.Player;
/**
*
* @author Administrator
*/
public class ResidenceBank {
- int storedMoney;
- ClaimedResidence res;
+ Residence plugin;
+ ClaimedResidence res;
+ int storedMoney;
- public ResidenceBank(ClaimedResidence parent)
- {
- storedMoney = 0;
- res = parent;
- }
+ public ResidenceBank(final Residence plugin, final ClaimedResidence parent) {
+ this.plugin = plugin;
+ storedMoney = 0;
+ res = parent;
+ }
- public int getStoredMoney()
- {
- return storedMoney;
- }
+ public void add(final int amount) {
+ storedMoney = storedMoney + amount;
+ }
- public void setStoredMoney(int amount)
- {
- 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 add(int amount)
- {
- storedMoney = storedMoney + amount;
- }
+ public int getStoredMoney() {
+ return storedMoney;
+ }
- public boolean hasEnough(int amount)
- {
- if(storedMoney >= amount)
- return true;
- return false;
- }
+ public boolean hasEnough(final int amount) {
+ if (storedMoney >= amount) {
+ return true;
+ }
+ return false;
+ }
- public void subtract(int amount)
- {
- storedMoney = storedMoney - amount;
- if(storedMoney<0)
- storedMoney = 0;
- }
+ public void setStoredMoney(final int amount) {
+ storedMoney = amount;
+ }
- public void withdraw(Player player, int amount, boolean resadmin)
- {
- if(!Residence.getConfigManager().enableEconomy())
- {
- player.sendMessage(ChatColor.RED+Residence.getLanguage().getPhrase("MarketDisabled"));
- }
- if(!resadmin && !res.getPermissions().playerHas(player.getName(), "bank", false))
- {
- player.sendMessage(ChatColor.RED+Residence.getLanguage().getPhrase("NoBankAccess"));
- return;
- }
- if(!hasEnough(amount))
- {
- player.sendMessage(ChatColor.RED+Residence.getLanguage().getPhrase("BankNoMoney"));
- return;
- }
- if(Residence.getEconomyManager().add(player.getName(), amount))
- {
- this.subtract(amount);
- player.sendMessage(ChatColor.GREEN+Residence.getLanguage().getPhrase("BankWithdraw",ChatColor.YELLOW + String.format("%d",amount) + ChatColor.GREEN));
- }
- }
+ public void subtract(final int amount) {
+ storedMoney = storedMoney - amount;
+ if (storedMoney < 0) {
+ storedMoney = 0;
+ }
+ }
- public void deposit(Player player, int amount, boolean resadmin)
- {
- if(!Residence.getConfigManager().enableEconomy())
- {
- player.sendMessage(ChatColor.RED+Residence.getLanguage().getPhrase("MarketDisabled"));
- }
- if(!resadmin && !res.getPermissions().playerHas(player.getName(), "bank", false))
- {
- player.sendMessage(ChatColor.RED+Residence.getLanguage().getPhrase("NoBankAccess"));
- return;
- }
- if(!Residence.getEconomyManager().canAfford(player.getName(), amount))
- {
- player.sendMessage(ChatColor.RED+Residence.getLanguage().getPhrase("NotEnoughMoney"));
- return;
- }
- if(Residence.getEconomyManager().subtract(player.getName(), amount))
- {
- this.add(amount);
- player.sendMessage(ChatColor.GREEN+Residence.getLanguage().getPhrase("BankDeposit",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/com/bekvon/bukkit/residence/economy/TransactionManager.java b/src/main/java/com/bekvon/bukkit/residence/economy/TransactionManager.java
index b6c3a4b..4b63096 100644
--- a/src/main/java/com/bekvon/bukkit/residence/economy/TransactionManager.java
+++ b/src/main/java/com/bekvon/bukkit/residence/economy/TransactionManager.java
@@ -5,262 +5,269 @@
package com.bekvon.bukkit.residence.economy;
-import org.bukkit.ChatColor;
-
-import com.bekvon.bukkit.residence.protection.CuboidArea;
-import com.bekvon.bukkit.residence.Residence;
-import com.bekvon.bukkit.residence.protection.ResidenceManager;
-import com.bekvon.bukkit.residence.permissions.PermissionManager;
-import com.bekvon.bukkit.residence.permissions.PermissionGroup;
-import com.bekvon.bukkit.residence.protection.ClaimedResidence;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
+
+import org.bukkit.ChatColor;
import org.bukkit.Server;
import org.bukkit.entity.Player;
+import com.bekvon.bukkit.residence.Residence;
+import com.bekvon.bukkit.residence.permissions.PermissionGroup;
+import com.bekvon.bukkit.residence.permissions.PermissionManager;
+import com.bekvon.bukkit.residence.protection.ClaimedResidence;
+import com.bekvon.bukkit.residence.protection.CuboidArea;
+import com.bekvon.bukkit.residence.protection.ResidenceManager;
+
/**
- *
+ *
* @author Administrator
*/
public class TransactionManager {
- ResidenceManager manager;
- private Map sellAmount;
- PermissionManager gm;
+ private Map sellAmount;
+ PermissionManager gm;
+ ResidenceManager manager;
+ Residence plugin;
- public static boolean chargeEconomyMoney(Player player, int amount) {
- EconomyInterface econ = Residence.getEconomyManager();
- if (econ == null) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("MarketDisabled"));
- return false;
- }
- if (!econ.canAfford(player.getName(), amount)) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("NotEnoughMoney"));
- return false;
- }
- econ.subtract(player.getName(), amount);
- player.sendMessage(ChatColor.GREEN + Residence.getLanguage().getPhrase("MoneyCharged", ChatColor.YELLOW + String.format("%d", amount) + ChatColor.GREEN + "." + ChatColor.YELLOW + econ.getName() + ChatColor.GREEN));
- return true;
- }
+ public TransactionManager(final Residence plugin, final ResidenceManager m, final PermissionManager g) {
+ this.plugin = plugin;
+ gm = g;
+ manager = m;
+ sellAmount = Collections.synchronizedMap(new HashMap());
+ }
- public TransactionManager(ResidenceManager m, PermissionManager g) {
- gm = g;
- manager = m;
- sellAmount = Collections.synchronizedMap(new HashMap());
- }
+ public static boolean chargeEconomyMoney(final Residence 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 void putForSale(String areaname, Player player, int amount, boolean resadmin) {
- if (Residence.getConfigManager().enabledRentSystem()) {
- if (Residence.getRentManager().isForRent(areaname)) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("RentSellFail"));
- return;
- }
- }
- if (!resadmin) {
- if (!Residence.getConfigManager().enableEconomy() || Residence.getEconomyManager() == null) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("MarketDisabled"));
- return;
- }
- boolean cansell = Residence.getPermissionManager().getGroup(player).canSellLand() || player.hasPermission("residence.sell");
- if (!cansell && !resadmin) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("NoPermission"));
- return;
- }
- if (amount <= 0) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("InvalidAmount"));
- return;
- }
- }
- String pname = player.getName();
- ClaimedResidence area = manager.getByName(areaname);
- if (area == null) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("InvalidResidence"));
- return;
- }
- if (!area.getPermissions().getOwner().equals(pname) && !resadmin) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("NoPermission"));
- return;
- }
- if (sellAmount.containsKey(areaname)) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("AlreadySellFail"));
- return;
- }
- sellAmount.put(areaname, amount);
- player.sendMessage(ChatColor.GREEN + Residence.getLanguage().getPhrase("ResidenceForSale", ChatColor.YELLOW + areaname + ChatColor.GREEN + "." + ChatColor.YELLOW + amount + ChatColor.GREEN));
- }
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ public static TransactionManager load(final Residence 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 boolean putForSale(String areaname, int amount) {
- if (Residence.getConfigManager().enabledRentSystem()) {
- if (Residence.getRentManager().isForRent(areaname)) {
- return false;
- }
- }
- ClaimedResidence area = manager.getByName(areaname);
- if (area == null) {
- return false;
- }
- if (sellAmount.containsKey(areaname)) {
- return false;
- }
- sellAmount.put(areaname, amount);
- return true;
- }
+ public void buyPlot(final String areaname, final Player player, final boolean resadmin) {
+ final PermissionGroup group = gm.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 Server serv = plugin.getServ();
+ 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.getServ().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 = serv.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(String areaname, Player player, boolean resadmin) {
- PermissionGroup group = gm.getGroup(player);
- if (!resadmin) {
- if (!Residence.getConfigManager().enableEconomy() || Residence.getEconomyManager() == null) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("MarketDisabled"));
- return;
- }
- boolean canbuy = group.canBuyLand() || player.hasPermission("residence.buy");
- if (!canbuy && !resadmin) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("NoPermission"));
- return;
- }
- }
- if (isForSale(areaname)) {
- ClaimedResidence res = manager.getByName(areaname);
- if (res == null) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("InvalidArea"));
- sellAmount.remove(areaname);
- return;
- }
- if (res.getPermissions().getOwner().equals(player.getName())) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("OwnerBuyFail"));
- return;
- }
- if (Residence.getResidenceManager().getOwnedZoneCount(player.getName()) >= group.getMaxZones() && !resadmin) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("ResidenceTooMany"));
- return;
- }
- Server serv = Residence.getServ();
- int amount = sellAmount.get(areaname);
- if (!resadmin) {
- if (!group.buyLandIgnoreLimits()) {
- CuboidArea[] areas = res.getAreaArray();
- for (CuboidArea thisarea : areas) {
- if (!group.inLimits(thisarea)) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("ResidenceBuyTooBig"));
- return;
- }
- }
- }
- }
- EconomyInterface econ = Residence.getEconomyManager();
- if (econ == null) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("MarketDisabled"));
- return;
- }
- String buyerName = player.getName();
- String sellerName = res.getPermissions().getOwner();
- Player sellerNameFix = Residence.getServ().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 + Residence.getLanguage().getPhrase("MoneyCharged", ChatColor.YELLOW + String.format("%d", amount) + ChatColor.GREEN + "." + ChatColor.YELLOW + econ.getName() + ChatColor.GREEN));
- player.sendMessage(ChatColor.GREEN + Residence.getLanguage().getPhrase("ResidenceBought", ChatColor.GREEN + areaname + ChatColor.YELLOW));
- Player seller = serv.getPlayer(sellerName);
- if (seller != null && seller.isOnline()) {
- seller.sendMessage(ChatColor.GREEN + Residence.getLanguage().getPhrase("ResidenceBuy", ChatColor.YELLOW + player.getName() + ChatColor.GREEN + "." + ChatColor.YELLOW + areaname + ChatColor.GREEN));
- seller.sendMessage(ChatColor.GREEN + Residence.getLanguage().getPhrase("MoneyCredit", ChatColor.YELLOW + String.format("%d", amount) + ChatColor.GREEN + "." + ChatColor.YELLOW + econ.getName() + ChatColor.GREEN));
- }
- } else {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("NotEnoughMoney"));
- }
- } else {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("InvalidResidence"));
- }
- }
+ public void clearSales() {
+ sellAmount.clear();
+ System.out.println("[Residence] - ReInit land selling.");
+ }
- public void removeFromSale(Player player, String areaname, boolean resadmin) {
- ClaimedResidence area = manager.getByName(areaname);
- if (area != null) {
- if (!isForSale(areaname)) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("ResidenceNotForSale"));
- return;
- }
- if (area.getPermissions().getOwner().equals(player.getName()) || resadmin) {
- removeFromSale(areaname);
- player.sendMessage(ChatColor.GREEN + Residence.getLanguage().getPhrase("ResidenceStopSelling"));
- } else {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("NoPermission"));
- }
- } else {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("InvalidArea"));
- }
- }
+ public int getSaleAmount(final String name) {
+ return sellAmount.get(name);
+ }
- public void removeFromSale(String areaname) {
- sellAmount.remove(areaname);
- }
+ public boolean isForSale(final String areaname) {
+ return sellAmount.containsKey(areaname);
+ }
- public boolean isForSale(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 viewSaleInfo(String areaname, Player player) {
- if (sellAmount.containsKey(areaname)) {
- player.sendMessage("------------------------");
- player.sendMessage(ChatColor.YELLOW + "Name:" + ChatColor.DARK_GREEN + " " + areaname);
- player.sendMessage(ChatColor.YELLOW + Residence.getLanguage().getPhrase("SellAmount") + ":" + ChatColor.RED + " " + sellAmount.get(areaname));
- if (Residence.getConfigManager().useLeases()) {
- Date etime = Residence.getLeaseManager().getExpireTime(areaname);
- if (etime != null) {
- player.sendMessage(ChatColor.YELLOW + Residence.getLanguage().getPhrase("LeaseExpire") + ":" + ChatColor.GREEN + " " + etime.toString());
- }
- }
- player.sendMessage("------------------------");
- }
- }
+ 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 printForSaleResidences(Player player) {
- Set> set = sellAmount.entrySet();
- player.sendMessage(ChatColor.YELLOW + Residence.getLanguage().getPhrase("LandForSale") + ":");
- StringBuilder sbuild = new StringBuilder();
- sbuild.append(ChatColor.GREEN);
- boolean firstadd = true;
- for (Entry land : set) {
- if (!firstadd) {
- sbuild.append(", ");
- } else {
- firstadd = false;
- }
- sbuild.append(land.getKey());
- }
- player.sendMessage(sbuild.toString());
- }
+ 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 clearSales() {
- sellAmount.clear();
- System.out.println("[Residence] - ReInit land selling.");
- }
+ 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 int getSaleAmount(String name) {
- return sellAmount.get(name);
- }
+ public void removeFromSale(final String areaname) {
+ sellAmount.remove(areaname);
+ }
- public Map save() {
- return sellAmount;
- }
+ public Map save() {
+ return sellAmount;
+ }
- @SuppressWarnings({ "unchecked", "rawtypes" })
- public static TransactionManager load(Map root, PermissionManager p, ResidenceManager r) {
- TransactionManager tman = new TransactionManager(r, p);
- if (root != null) {
- tman.sellAmount = root;
- }
- return tman;
- }
+ 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/com/bekvon/bukkit/residence/economy/rent/RentManager.java b/src/main/java/com/bekvon/bukkit/residence/economy/rent/RentManager.java
index c58c589..041fa1b 100644
--- a/src/main/java/com/bekvon/bukkit/residence/economy/rent/RentManager.java
+++ b/src/main/java/com/bekvon/bukkit/residence/economy/rent/RentManager.java
@@ -27,55 +27,61 @@ import com.bekvon.bukkit.residence.protection.FlagPermissions.FlagState;
* @author Administrator
*/
public class RentManager {
- protected Map rentedLand;
protected Map rentableLand;
+ protected Map rentedLand;
+ Residence plugin;
- public RentManager() {
+ public RentManager(final Residence plugin) {
+ this.plugin = plugin;
rentedLand = new HashMap();
rentableLand = new HashMap();
}
@SuppressWarnings("unchecked")
- public static RentManager load(Map root) {
- RentManager rentManager = new RentManager();
+ public static RentManager load(final Residence plugin, final Map root) {
+ final RentManager rentManager = new RentManager(plugin);
if (root != null) {
- Map rentables = (Map) root.get("Rentables");
- for (Entry rent : rentables.entrySet())
+ final Map rentables = (Map) root.get("Rentables");
+ for (final Entry rent : rentables.entrySet()) {
rentManager.rentableLand.put(rent.getKey(), RentableLand.load((Map) rent.getValue()));
- Map rented = (Map) root.get("Rented");
- for (Entry rent : rented.entrySet())
+ }
+ 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() {
- Iterator> it = rentedLand.entrySet().iterator();
+ final Iterator> it = rentedLand.entrySet().iterator();
while (it.hasNext()) {
- Entry next = it.next();
- RentedLand land = next.getValue();
+ final Entry next = it.next();
+ final RentedLand land = next.getValue();
if (land.endTime <= System.currentTimeMillis()) {
- ClaimedResidence res = Residence.getResidenceManager().getByName(next.getKey());
- if (Residence.getConfigManager().debugEnabled())
+ final ClaimedResidence res = plugin.getResidenceManager().getByName(next.getKey());
+ if (plugin.getConfigManager().debugEnabled()) {
System.out.println("Rent Check: " + next.getKey());
+ }
if (res != null) {
- ResidenceRentEvent revent = new ResidenceRentEvent(res, null, RentEventType.RENT_EXPIRE);
- Residence.getServ().getPluginManager().callEvent(revent);
+ final ResidenceRentEvent revent = new ResidenceRentEvent(res, null, RentEventType.RENT_EXPIRE);
+ plugin.getServ().getPluginManager().callEvent(revent);
if (!revent.isCancelled()) {
- RentableLand rentable = rentableLand.get(next.getKey());
+ final RentableLand rentable = rentableLand.get(next.getKey());
if (!rentable.repeatable) {
rentableLand.remove(next.getKey());
it.remove();
res.getPermissions().applyDefaultFlags();
} else if (land.autoRefresh) {
- if (!Residence.getEconomyManager().canAfford(land.player, rentable.cost)) {
+ if (!plugin.getEconomyManager().canAfford(land.player, rentable.cost)) {
it.remove();
res.getPermissions().applyDefaultFlags();
- } else if (!Residence.getEconomyManager().transfer(land.player, res.getPermissions().getOwner(), rentable.cost)) {
+ } else if (!plugin.getEconomyManager().transfer(land.player, res.getPermissions().getOwner(), rentable.cost)) {
it.remove();
res.getPermissions().applyDefaultFlags();
- } else
+ } else {
land.endTime = System.currentTimeMillis() + this.daysToMs(rentable.days);
+ }
} else {
res.getPermissions().applyDefaultFlags();
it.remove();
@@ -89,160 +95,174 @@ public class RentManager {
}
}
- public int getCostOfRent(String landName) {
+ public int getCostOfRent(final String landName) {
return rentableLand.containsKey(landName) ? rentableLand.get(landName).cost : 0;
}
- public int getRentableCount(String player) {
- Set set = rentableLand.keySet();
+ public int getRentableCount(final String player) {
+ final Set set = rentableLand.keySet();
int count = 0;
- for (String land : set) {
- ClaimedResidence res = Residence.getResidenceManager().getByName(land);
- if (res != null)
- if (res.getPermissions().getOwner().equalsIgnoreCase(player))
+ 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(String landName) {
+ public boolean getRentableRepeatable(final String landName) {
return rentableLand.containsKey(landName) ? rentableLand.get(landName).repeatable : false;
}
- public int getRentCount(String player) {
- Set> set = rentedLand.entrySet();
+ public int getRentCount(final String player) {
+ final Set> set = rentedLand.entrySet();
int count = 0;
- for (Entry land : set)
- if (land.getValue().player.equalsIgnoreCase(player))
+ for (final Entry land : set) {
+ if (land.getValue().player.equalsIgnoreCase(player)) {
count++;
+ }
+ }
return count;
}
- public int getRentDays(String landName) {
+ public int getRentDays(final String landName) {
return rentableLand.containsKey(landName) ? rentableLand.get(landName).days : 0;
}
- public boolean getRentedAutoRepeats(String landName) {
+ public boolean getRentedAutoRepeats(final String landName) {
return getRentableRepeatable(landName) ? (rentedLand.containsKey(landName) ? rentedLand.get(landName).autoRefresh : false) : false;
}
- public String getRentingPlayer(String landName) {
+ public String getRentingPlayer(final String landName) {
return rentedLand.containsKey(landName) ? rentedLand.get(landName).player : null;
}
- public boolean isForRent(String landName) {
+ public boolean isForRent(final String landName) {
return rentableLand.containsKey(landName);
}
- public boolean isRented(String landName) {
+ public boolean isRented(final String landName) {
return rentedLand.containsKey(landName);
}
- public void printRentableResidences(Player player) {
- Set> set = rentableLand.entrySet();
- player.sendMessage(ChatColor.YELLOW + Residence.getLanguage().getPhrase("RentableLand") + ":");
- StringBuilder sbuild = new StringBuilder();
+ 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 (Entry land : set)
+ for (final Entry land : set) {
if (!this.isRented(land.getKey())) {
- if (!firstadd)
+ if (!firstadd) {
sbuild.append(", ");
- else
+ } else {
firstadd = false;
+ }
sbuild.append(land.getKey());
}
+ }
player.sendMessage(sbuild.toString());
}
- public void printRentInfo(Player player, String landName) {
- RentableLand rentable = rentableLand.get(landName);
- RentedLand rented = rentedLand.get(landName);
+ 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 + Residence.getLanguage().getPhrase("Land") + ":" + ChatColor.DARK_GREEN + landName);
- player.sendMessage(ChatColor.YELLOW + Residence.getLanguage().getPhrase("Cost") + ": " + ChatColor.DARK_AQUA + rentable.cost + " per " + rentable.days + " days");
- player.sendMessage(ChatColor.GREEN + Residence.getLanguage().getPhrase("RentableAutoRenew") + ":" + ChatColor.DARK_AQUA + rentable.repeatable);
+ 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 + Residence.getLanguage().getPhrase("Status") + ":" + ChatColor.YELLOW + " "
- + Residence.getLanguage().getPhrase("ResidenceRentedBy", ChatColor.RED + rented.player + ChatColor.YELLOW));
- player.sendMessage(ChatColor.YELLOW + Residence.getLanguage().getPhrase("RentExpire") + ":" + ChatColor.GREEN + new Date(rented.endTime));
- player.sendMessage(ChatColor.GREEN + Residence.getLanguage().getPhrase("RentAutoRenew") + ":" + ChatColor.DARK_AQUA + rented.autoRefresh);
- } else
- player.sendMessage(ChatColor.GOLD + Residence.getLanguage().getPhrase("Status") + ":" + ChatColor.GREEN + " " + Residence.getLanguage().getPhrase("Available"));
- } else
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("ResidenceNotForRent"));
+ 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(Player player, String landName, boolean resadmin) {
- RentedLand rent = rentedLand.get(landName);
+ 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 + Residence.getLanguage().getPhrase("ResidenceNotRented"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceNotRented"));
return;
}
if (resadmin || rent.player.equalsIgnoreCase(player.getName())) {
- ResidenceRentEvent revent = new ResidenceRentEvent(Residence.getResidenceManager().getByName(landName), player, RentEventType.UNRENTABLE);
- Residence.getServ().getPluginManager().callEvent(revent);
- if (revent.isCancelled())
+ final ResidenceRentEvent revent = new ResidenceRentEvent(plugin.getResidenceManager().getByName(landName), player, RentEventType.UNRENTABLE);
+ plugin.getServ().getPluginManager().callEvent(revent);
+ if (revent.isCancelled()) {
return;
+ }
rentedLand.remove(landName);
- if (!rentableLand.get(landName).repeatable)
+ if (!rentableLand.get(landName).repeatable) {
rentableLand.remove(landName);
- ClaimedResidence res = Residence.getResidenceManager().getByName(landName);
- if (res != null)
+ }
+ final ClaimedResidence res = plugin.getResidenceManager().getByName(landName);
+ if (res != null) {
res.getPermissions().applyDefaultFlags();
- player.sendMessage(ChatColor.GREEN + Residence.getLanguage().getPhrase("ResidenceUnrent", ChatColor.YELLOW + landName + ChatColor.GREEN));
- } else
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("NoPermission"));
+ }
+ 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(String landName) {
+ public void removeFromRent(final String landName) {
rentedLand.remove(landName);
}
- public void removeRentable(String landName) {
+ public void removeRentable(final String landName) {
removeFromRent(landName);
rentableLand.remove(landName);
}
- public void rent(Player player, String landName, boolean repeat, boolean resadmin) {
- if (!Residence.getConfigManager().enabledRentSystem()) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("RentDisabled"));
+ 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;
}
- ClaimedResidence res = Residence.getResidenceManager().getByName(landName);
+ final ClaimedResidence res = plugin.getResidenceManager().getByName(landName);
if (res != null) {
if (res.getPermissions().getOwner().equalsIgnoreCase(player.getName())) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("OwnerRentFail"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("OwnerRentFail"));
return;
}
} else {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("InvalidResidence"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidResidence"));
return;
}
- PermissionGroup group = Residence.getPermissionManager().getGroup(player);
+ final PermissionGroup group = plugin.getPermissionManager().getGroup(player);
if (!resadmin && this.getRentCount(player.getName()) >= group.getMaxRents()) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("ResidenceMaxRent"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceMaxRent"));
return;
}
if (!this.isForRent(landName)) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("ResidenceNotForRent"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceNotForRent"));
return;
}
if (this.isRented(landName)) {
- String[] split = landName.split("\\.");
- if (split.length != 0)
- player.sendMessage(Residence.getLanguage().getPhrase("ResidenceAlreadyRented",
+ 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;
}
- RentableLand land = rentableLand.get(landName);
- if (Residence.getEconomyManager().canAfford(player.getName(), land.cost)) {
- ResidenceRentEvent revent = new ResidenceRentEvent(res, player, RentEventType.RENT);
- Residence.getServ().getPluginManager().callEvent(revent);
- if (revent.isCancelled())
+ final RentableLand land = rentableLand.get(landName);
+ if (plugin.getEconomyManager().canAfford(player.getName(), land.cost)) {
+ final ResidenceRentEvent revent = new ResidenceRentEvent(res, player, RentEventType.RENT);
+ plugin.getServ().getPluginManager().callEvent(revent);
+ if (revent.isCancelled()) {
return;
- if (Residence.getEconomyManager().transfer(player.getName(), res.getPermissions().getOwner(), land.cost)) {
- RentedLand newrent = new RentedLand();
+ }
+ 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);
@@ -251,134 +271,149 @@ public class RentManager {
res.getPermissions().copyUserPermissions(res.getPermissions().getOwner(), player.getName());
res.getPermissions().clearPlayersFlags(res.getPermissions().getOwner());
res.getPermissions().setPlayerFlag(player.getName(), "admin", FlagState.TRUE);
- String[] split = landName.split("\\.");
- if (split.length != 0)
- player.sendMessage(ChatColor.GREEN + Residence.getLanguage().getPhrase("ResidenceRentSuccess",
+ 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
+ }
+ } else {
player.sendMessage(ChatColor.RED + "Error, unable to transfer money...");
- } else
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("NotEnoughMoney"));
+ }
+ } else {
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NotEnoughMoney"));
+ }
}
public Map save() {
- Map root = new HashMap();
- Map rentables = new HashMap();
- for (Entry rent : rentableLand.entrySet())
+ final Map root = new HashMap();
+ final Map rentables = new HashMap();
+ for (final Entry rent : rentableLand.entrySet()) {
rentables.put(rent.getKey(), rent.getValue().save());
- Map rented = new HashMap();
- for (Entry rent : rentedLand.entrySet())
+ }
+ 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(Player player, String landName, int amount, int days, boolean repeatable, boolean resadmin) {
- if (!Residence.getConfigManager().enabledRentSystem()) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("MarketDisabled"));
+ 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 (Residence.getTransactionManager().isForSale(landName)) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("SellRentFail"));
+ if (plugin.getTransactionManager().isForSale(landName)) {
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SellRentFail"));
return;
}
- ClaimedResidence res = Residence.getResidenceManager().getByName(landName);
+ final ClaimedResidence res = plugin.getResidenceManager().getByName(landName);
if (res == null) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("InvalidResidence"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidResidence"));
return;
}
if (!resadmin) {
if (!res.getPermissions().hasResidencePermission(player, true)) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("NoPermission"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission"));
return;
}
- PermissionGroup group = Residence.getPermissionManager().getGroup(player);
+ final PermissionGroup group = plugin.getPermissionManager().getGroup(player);
if (this.getRentableCount(player.getName()) >= group.getMaxRentables()) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("ResidenceMaxRent"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceMaxRent"));
return;
}
}
if (!rentableLand.containsKey(landName)) {
- ResidenceRentEvent revent = new ResidenceRentEvent(res, player, RentEventType.RENTABLE);
- Residence.getServ().getPluginManager().callEvent(revent);
- if (revent.isCancelled())
+ final ResidenceRentEvent revent = new ResidenceRentEvent(res, player, RentEventType.RENTABLE);
+ plugin.getServ().getPluginManager().callEvent(revent);
+ if (revent.isCancelled()) {
return;
- RentableLand newrent = new RentableLand();
+ }
+ final RentableLand newrent = new RentableLand();
newrent.days = days;
newrent.cost = amount;
newrent.repeatable = repeatable;
rentableLand.put(landName, newrent);
- String[] split = landName.split("\\.");
- if (split.length != 0)
- player.sendMessage(ChatColor.GREEN + Residence.getLanguage().getPhrase("ResidenceForRentSuccess",
+ 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 + Residence.getLanguage().getPhrase("ResidenceAlreadyRent"));
+ }
+ } else {
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceAlreadyRent"));
+ }
}
- public void setRentedRepeatable(Player player, String landName, boolean value, boolean resadmin) {
- String[] split = landName.split("\\.");
- RentedLand land = rentedLand.get(landName);
+ 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 + Residence.getLanguage().getPhrase("RentEnableRenew", ChatColor.YELLOW + split[split.length - 1] + ChatColor.RED));
- else if (split.length != 0)
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("RentDisableRenew", ChatColor.YELLOW + split[split.length - 1] + ChatColor.RED));
+ 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(Player player, String landName, boolean value, boolean resadmin) {
- String[] split = landName.split("\\.");
- RentableLand land = rentableLand.get(landName);
- ClaimedResidence res = Residence.getResidenceManager().getByName(landName);
+ 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))
+ if (!value && this.isRented(landName)) {
rentedLand.get(landName).autoRefresh = false;
- if (value && split.length != 0)
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("RentableEnableRenew", ChatColor.YELLOW + split[split.length - 1] + ChatColor.RED));
- else if (split.length != 0)
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("RentableDisableRenew", ChatColor.YELLOW + split[split.length - 1] + ChatColor.RED));
+ }
+ 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(Player player, String landName, boolean resadmin) {
- String[] split = landName.split("\\.");
- ClaimedResidence res = Residence.getResidenceManager().getByName(landName);
+ 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 + Residence.getLanguage().getPhrase("InvalidResidence"));
+ player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("InvalidResidence"));
return;
}
if (!res.getPermissions().hasResidencePermission(player, true) && !resadmin) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("NoPermission"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission"));
return;
}
if (rentedLand.containsKey(landName) && !resadmin) {
- if (split.length != 0)
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("ResidenceAlreadyRented",
+ 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)) {
- ResidenceRentEvent revent = new ResidenceRentEvent(res, player, RentEventType.UNRENT);
- Residence.getServ().getPluginManager().callEvent(revent);
- if (revent.isCancelled())
+ final ResidenceRentEvent revent = new ResidenceRentEvent(res, player, RentEventType.UNRENT);
+ plugin.getServ().getPluginManager().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 + Residence.getLanguage().getPhrase("ResidenceRemoveRentable", ChatColor.YELLOW + split[split.length - 1] + ChatColor.RED));
+ 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 + Residence.getLanguage().getPhrase("ResidenceNotForRent"));
+ } else {
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceNotForRent"));
+ }
}
- public void updateRentableName(String oldName, String newName) {
+ public void updateRentableName(final String oldName, final String newName) {
if (rentableLand.containsKey(oldName)) {
rentableLand.put(newName, rentableLand.get(oldName));
rentableLand.remove(oldName);
@@ -389,12 +424,12 @@ public class RentManager {
}
}
- private long daysToMs(int days) {
+ private long daysToMs(final int days) {
return ((days) * 24L * 60L * 60L * 1000L);
}
@SuppressWarnings("unused")
- private int msToDays(long ms) {
+ 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/event/ResidencePlayerEvent.java b/src/main/java/com/bekvon/bukkit/residence/event/ResidencePlayerEvent.java
index 8e6a02c..b8db4c5 100644
--- a/src/main/java/com/bekvon/bukkit/residence/event/ResidencePlayerEvent.java
+++ b/src/main/java/com/bekvon/bukkit/residence/event/ResidencePlayerEvent.java
@@ -7,7 +7,6 @@ package com.bekvon.bukkit.residence.event;
import org.bukkit.entity.Player;
-import com.bekvon.bukkit.residence.Residence;
import com.bekvon.bukkit.residence.protection.ClaimedResidence;
/**
@@ -18,29 +17,27 @@ public class ResidencePlayerEvent extends ResidenceEvent implements ResidencePla
Player p;
- public ResidencePlayerEvent(String eventName, ClaimedResidence resref, Player player)
- {
+ public ResidencePlayerEvent(final String eventName, final ClaimedResidence resref, final Player player) {
super(eventName, resref);
res = resref;
p = player;
}
@Override
- public Player getPlayer()
- {
+ public Player getPlayer() {
return p;
}
@Override
- public boolean isAdmin()
- {
- if(isPlayer())
- return Residence.getPermissionManager().isResidenceAdmin(p);
+ public boolean isAdmin() {
+ if (isPlayer()) {
+ return p.hasPermission("residence.admin") || p.isOp();
+ }
return true;
}
+
@Override
- public boolean isPlayer()
- {
- return p!=null;
+ public boolean isPlayer() {
+ return p != null;
}
}
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 ca108f9..4b22112 100644
--- a/src/main/java/com/bekvon/bukkit/residence/event/ResidencePlayerFlagEvent.java
+++ b/src/main/java/com/bekvon/bukkit/residence/event/ResidencePlayerFlagEvent.java
@@ -7,7 +7,6 @@ package com.bekvon.bukkit.residence.event;
import org.bukkit.entity.Player;
-import com.bekvon.bukkit.residence.Residence;
import com.bekvon.bukkit.residence.protection.ClaimedResidence;
/**
@@ -17,8 +16,7 @@ import com.bekvon.bukkit.residence.protection.ClaimedResidence;
public class ResidencePlayerFlagEvent extends ResidenceFlagEvent implements ResidencePlayerEventInterface {
Player p;
- public ResidencePlayerFlagEvent(String eventName,ClaimedResidence resref, Player player, String flag, FlagType type, String target)
- {
+ 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;
}
@@ -29,16 +27,15 @@ public class ResidencePlayerFlagEvent extends ResidenceFlagEvent implements Resi
}
@Override
- public boolean isAdmin()
- {
- if(isPlayer())
- return Residence.getPermissionManager().isResidenceAdmin(p);
+ public boolean isAdmin() {
+ if (isPlayer()) {
+ return p.hasPermission("residence.admin") || p.isOp();
+ }
return true;
}
@Override
- public boolean isPlayer()
- {
- return p!=null;
+ public boolean isPlayer() {
+ return p != null;
}
}
diff --git a/src/main/java/com/bekvon/bukkit/residence/itemlist/ResidenceItemList.java b/src/main/java/com/bekvon/bukkit/residence/itemlist/ResidenceItemList.java
index eae10e8..196a5e0 100644
--- a/src/main/java/com/bekvon/bukkit/residence/itemlist/ResidenceItemList.java
+++ b/src/main/java/com/bekvon/bukkit/residence/itemlist/ResidenceItemList.java
@@ -4,52 +4,53 @@
*/
package com.bekvon.bukkit.residence.itemlist;
+
+import java.util.Map;
+
import org.bukkit.ChatColor;
+import org.bukkit.Material;
+import org.bukkit.entity.Player;
import com.bekvon.bukkit.residence.Residence;
import com.bekvon.bukkit.residence.permissions.PermissionGroup;
import com.bekvon.bukkit.residence.protection.ClaimedResidence;
-import java.util.Map;
-import org.bukkit.Material;
-import org.bukkit.entity.Player;
/**
*
* @author Administrator
*/
public class ResidenceItemList extends ItemList {
- ClaimedResidence res;
+ Residence plugin;
+ ClaimedResidence res;
- public ResidenceItemList(ClaimedResidence parent, ListType type)
- {
- super(type);
- res = parent;
- }
+ public ResidenceItemList(final Residence plugin, final ClaimedResidence parent, final ListType type) {
+ super(type);
+ this.plugin = plugin;
+ res = parent;
+ }
- private ResidenceItemList()
- {
-
- }
+ private ResidenceItemList(final Residence plugin) {
+ this.plugin = plugin;
+ }
- public void playerListChange(Player player, Material mat, boolean resadmin) {
- PermissionGroup group = Residence.getPermissionManager().getGroup(player);
- if(resadmin || (res.getPermissions().hasResidencePermission(player, true) && group.itemListAccess()))
- {
- if(super.toggle(mat))
- player.sendMessage(ChatColor.YELLOW + Residence.getLanguage().getPhrase("ListMaterialAdd",ChatColor.GREEN + mat.toString() + ChatColor.YELLOW+"."+ChatColor.GREEN + type.toString().toLowerCase() + ChatColor.YELLOW));
- else
- player.sendMessage(ChatColor.YELLOW + Residence.getLanguage().getPhrase("ListMaterialRemove",ChatColor.GREEN + mat.toString() + ChatColor.YELLOW+"."+ChatColor.GREEN + type.toString().toLowerCase() + ChatColor.YELLOW));
- }
- else
- {
- player.sendMessage(ChatColor.RED+Residence.getLanguage().getPhrase("NoPermission"));
- }
- }
+ public static ResidenceItemList load(final Residence 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(ClaimedResidence parent, Map map)
- {
- ResidenceItemList newlist = new ResidenceItemList();
- 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"));
+ }
+ }
}
diff --git a/src/main/java/com/bekvon/bukkit/residence/listeners/ResidenceBlockListener.java b/src/main/java/com/bekvon/bukkit/residence/listeners/ResidenceBlockListener.java
index c6709e3..ad99307 100644
--- a/src/main/java/com/bekvon/bukkit/residence/listeners/ResidenceBlockListener.java
+++ b/src/main/java/com/bekvon/bukkit/residence/listeners/ResidenceBlockListener.java
@@ -6,11 +6,13 @@
package com.bekvon.bukkit.residence.listeners;
import org.bukkit.ChatColor;
-
-import com.bekvon.bukkit.residence.protection.FlagPermissions;
-
-import org.bukkit.entity.Player;
+import org.bukkit.Location;
+import org.bukkit.Material;
import org.bukkit.block.Block;
+import org.bukkit.entity.Player;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.EventPriority;
+import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockBurnEvent;
import org.bukkit.event.block.BlockFromToEvent;
@@ -19,197 +21,197 @@ import org.bukkit.event.block.BlockIgniteEvent.IgniteCause;
import org.bukkit.event.block.BlockPistonExtendEvent;
import org.bukkit.event.block.BlockPistonRetractEvent;
import org.bukkit.event.block.BlockPlaceEvent;
+import org.bukkit.event.block.BlockSpreadEvent;
import com.bekvon.bukkit.residence.Residence;
import com.bekvon.bukkit.residence.protection.ClaimedResidence;
-
-import org.bukkit.Location;
-import org.bukkit.Material;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.EventPriority;
-import org.bukkit.event.Listener;
-import org.bukkit.event.block.BlockSpreadEvent;
+import com.bekvon.bukkit.residence.protection.FlagPermissions;
/**
*
* @author Administrator
*/
public class ResidenceBlockListener implements Listener {
+ Residence plugin;
- @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
- public void onBlockBreak(BlockBreakEvent event) {
- Player player = event.getPlayer();
- if (Residence.isResAdminOn(player)) {
- return;
- }
- Material mat = event.getBlock().getType();
- String world = event.getBlock().getWorld().getName();
- String group = Residence.getPermissionManager().getGroupNameByPlayer(player);
- if (Residence.getItemManager().isIgnored(mat, group, world)) {
- return;
- }
- ClaimedResidence res = Residence.getResidenceManager().getByLoc(event.getBlock().getLocation());
- if (Residence.getConfigManager().enabledRentSystem()) {
- if (res != null) {
- String resname = res.getName();
- if (Residence.getConfigManager().preventRentModify() && Residence.getRentManager().isRented(resname)) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("RentedModifyDeny"));
- event.setCancelled(true);
- return;
- }
- }
- }
- FlagPermissions perms = Residence.getPermsByLocForPlayer(event.getBlock().getLocation(), player);
- String pname = player.getName();
- if (res != null) {
- if (res.getItemIgnoreList().isListed(mat)) {
- return;
- }
- }
- boolean hasdestroy = perms.playerHas(pname, player.getWorld().getName(), "destroy", perms.playerHas(pname, player.getWorld().getName(), "build", true));
- boolean hasContainer = perms.playerHas(pname, player.getWorld().getName(), "container", true);
- if (!hasdestroy || (!hasContainer && mat == Material.CHEST)) {
- event.setCancelled(true);
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("NoPermission"));
- return;
- }
- }
+ public ResidenceBlockListener(final Residence plugin) {
+ this.plugin = plugin;
+ }
- @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
- public void onBlockPlace(BlockPlaceEvent event) {
- Player player = event.getPlayer();
- if (Residence.isResAdminOn(player)) {
- return;
- }
- Material mat = event.getBlock().getType();
- String world = event.getBlock().getWorld().getName();
- String group = Residence.getPermissionManager().getGroupNameByPlayer(player);
- if (Residence.getItemManager().isIgnored(mat, group, world)) {
- return;
- }
- ClaimedResidence res = Residence.getResidenceManager().getByLoc(event.getBlock().getLocation());
- if (Residence.getConfigManager().enabledRentSystem()) {
- if (res != null) {
- String resname = res.getName();
- if (Residence.getConfigManager().preventRentModify() && Residence.getRentManager().isRented(resname)) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("RentedModifyDeny"));
- event.setCancelled(true);
- return;
- }
- }
- }
- String pname = player.getName();
- if (res != null) {
- if (!res.getItemBlacklist().isAllowed(mat)) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("ItemBlacklisted"));
- event.setCancelled(true);
- return;
- }
- }
- FlagPermissions perms = Residence.getPermsByLocForPlayer(event.getBlock().getLocation(), player);
- 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 + Residence.getLanguage().getPhrase("NoPermission"));
- return;
- }
- }
-
- @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
- public void onBlockSpread(BlockSpreadEvent event) {
- Location loc = event.getBlock().getLocation();
- FlagPermissions perms = Residence.getPermsByLoc(loc);
- if (!perms.has("spread", true)) {
- event.setCancelled(true);
- }
- }
-
- @SuppressWarnings("deprecation")
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
- public void onBlockPistonRetract(BlockPistonRetractEvent event) {
- FlagPermissions perms = Residence.getPermsByLoc(event.getBlock().getLocation());
- if (!perms.has("piston", true)){
- event.setCancelled(true);
- return;
- }
- if (event.isSticky()){
- Location location = event.getRetractLocation();
- FlagPermissions blockperms = Residence.getPermsByLoc(location);
- if (!blockperms.has("piston", true)) {
- event.setCancelled(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 onBlockPistonExtend(BlockPistonExtendEvent event) {
- FlagPermissions perms = Residence.getPermsByLoc(event.getBlock().getLocation());
- if (!perms.has("piston", true)) {
- event.setCancelled(true);
- }
- for (Block block : event.getBlocks()) {
- FlagPermissions blockpermsfrom = Residence.getPermsByLoc(block.getLocation());
- 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());
- FlagPermissions blockpermsto = Residence.getPermsByLoc(blockto);
- if (!blockpermsfrom.has("piston", true) || !blockpermsto.has("piston", true)) {
- event.setCancelled(true);
- 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 onBlockFromTo(BlockFromToEvent event) {
- FlagPermissions perms = Residence.getPermsByLoc(event.getToBlock().getLocation());
- boolean hasflow = perms.has("flow", true);
- 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 onBlockBurn(BlockBurnEvent event) {
- FlagPermissions perms = Residence.getPermsByLoc(event.getBlock().getLocation());
- if (!perms.has("firespread", 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 onBlockIgnite(BlockIgniteEvent event) {
- FlagPermissions perms = Residence.getPermsByLocForPlayer(event.getBlock().getLocation(), event.getPlayer());
- IgniteCause cause = event.getCause();
- if (cause == IgniteCause.SPREAD) {
- if (!perms.has("firespread", true)) {
- event.setCancelled(true);
- }
- } else if (cause == IgniteCause.FLINT_AND_STEEL) {
- Player player = event.getPlayer();
- if (player != null && !perms.playerHas(player.getName(), player.getWorld().getName(), "ignite", true) && !Residence.isResAdminOn(player)) {
- event.setCancelled(true);
- player.sendMessage(ChatColor.RED+Residence.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;
+ }
+ }
+ }
+
+ @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 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/com/bekvon/bukkit/residence/listeners/ResidenceEntityListener.java b/src/main/java/com/bekvon/bukkit/residence/listeners/ResidenceEntityListener.java
index 945459a..dde1a14 100644
--- a/src/main/java/com/bekvon/bukkit/residence/listeners/ResidenceEntityListener.java
+++ b/src/main/java/com/bekvon/bukkit/residence/listeners/ResidenceEntityListener.java
@@ -61,303 +61,359 @@ import com.bekvon.bukkit.residence.protection.FlagPermissions;
* @author Administrator
*/
public class ResidenceEntityListener implements Listener {
+ Residence plugin;
+
+ public ResidenceEntityListener(final Residence plugin) {
+ this.plugin = plugin;
+ }
@EventHandler(priority = EventPriority.LOWEST)
- public void AnimalKilling(EntityDamageByEntityEvent event) {
- Entity damager = event.getDamager();
+ public void AnimalKilling(final EntityDamageByEntityEvent event) {
+ final Entity damager = event.getDamager();
- if ((!(damager instanceof Arrow)) && (!(damager instanceof Player)))
+ if ((!(damager instanceof Arrow)) && (!(damager instanceof Player))) {
return;
+ }
Player cause;
- if ((damager instanceof Arrow) && (!(((Arrow) damager).getShooter() instanceof Player)))
+ if ((damager instanceof Arrow) && (!(((Arrow) damager).getShooter() instanceof Player))) {
return;
- else if (damager instanceof Player)
+ } else if (damager instanceof Player) {
cause = (Player) damager;
- else
+ } else {
cause = (Player) ((Arrow) damager).getShooter();
+ }
- if (Residence.isResAdminOn(cause))
+ if (plugin.isResAdminOn(cause)) {
return;
+ }
- Entity entity = event.getEntity();
- ClaimedResidence res = Residence.getResidenceManager().getByLoc(entity.getLocation());
+ final Entity entity = event.getEntity();
+ final ClaimedResidence res = plugin.getResidenceManager().getByLoc(entity.getLocation());
- if (res != null && !res.getPermissions().playerHas(cause.getName(), "animalkilling", true))
+ if (res != null && !res.getPermissions().playerHas(cause.getName(), "animalkilling", true)) {
if (isAnimal(entity)) {
- cause.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("NoPermission"));
+ cause.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission"));
event.setCancelled(true);
}
+ }
}
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
- public void onCreatureSpawn(CreatureSpawnEvent event) {
- FlagPermissions perms = Residence.getPermsByLoc(event.getLocation());
- Entity ent = event.getEntity();
+ public void onCreatureSpawn(final CreatureSpawnEvent event) {
+ final FlagPermissions perms = plugin.getPermsByLoc(event.getLocation());
+ final Entity ent = event.getEntity();
if (isAnimal(ent)) {
- if (!perms.has("animals", true))
+ if (!perms.has("animals", true)) {
event.setCancelled(true);
- } else if (!perms.has("monsters", true) && isMonster(ent))
+ }
+ } else if (!perms.has("monsters", true) && isMonster(ent)) {
event.setCancelled(true);
+ }
}
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
- public void onEndermanChangeBlock(EntityChangeBlockEvent event) {
- if (event.getEntityType() != EntityType.ENDERMAN && event.getEntityType() != EntityType.WITHER)
+ public void onEndermanChangeBlock(final EntityChangeBlockEvent event) {
+ if (event.getEntityType() != EntityType.ENDERMAN && event.getEntityType() != EntityType.WITHER) {
return;
- FlagPermissions perms = Residence.getPermsByLoc(event.getBlock().getLocation());
- FlagPermissions world = Residence.getWorldFlags().getPerms(event.getBlock().getWorld().getName());
+ }
+ 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)))))
+ if (!perms.has("wither", perms.has("explode", world.has("wither", world.has("explode", true))))) {
event.setCancelled(true);
- } else if (!perms.has("build", true))
+ }
+ } else if (!perms.has("build", true)) {
event.setCancelled(true);
+ }
}
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
- public void onEntityCombust(EntityCombustEvent event) {
- FlagPermissions perms = Residence.getPermsByLoc(event.getEntity().getLocation());
- if (!perms.has("burn", 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(EntityDamageEvent event) {
+ public void onEntityDamage(final EntityDamageEvent event) {
Entity ent = event.getEntity();
- if (ent.hasMetadata("NPC"))
+ if (ent.hasMetadata("NPC")) {
return;
- boolean tamedWolf = ent instanceof Wolf ? ((Wolf) ent).isTamed() : false;
- ClaimedResidence area = Residence.getResidenceManager().getByLoc(ent.getLocation());
+ }
+ final boolean tamedWolf = ent instanceof Wolf ? ((Wolf) ent).isTamed() : false;
+ final ClaimedResidence area = plugin.getResidenceManager().getByLoc(ent.getLocation());
/* Living Entities */
if (event instanceof EntityDamageByEntityEvent) {
- EntityDamageByEntityEvent attackevent = (EntityDamageByEntityEvent) event;
- Entity damager = attackevent.getDamager();
+ final EntityDamageByEntityEvent attackevent = (EntityDamageByEntityEvent) event;
+ final Entity damager = attackevent.getDamager();
ClaimedResidence srcarea = null;
- if (damager != null)
- srcarea = Residence.getResidenceManager().getByLoc(damager.getLocation());
+ if (damager != null) {
+ srcarea = plugin.getResidenceManager().getByLoc(damager.getLocation());
+ }
boolean srcpvp = true;
- if (srcarea != null)
+ 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)
+ if (damager instanceof Player) {
attacker = (Player) damager;
- else if (damager instanceof Arrow)
+ } else if (damager instanceof Arrow) {
attacker = (Player) ((Arrow) damager).getShooter();
+ }
if (!srcpvp) {
- if (attacker != null)
- attacker.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("NoPVPZone"));
+ 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 (!Residence.getWorldFlags().getPerms(damager.getWorld().getName()).has("pvp", true)) {
- if (attacker != null)
- attacker.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("WorldPVPDisabled"));
+ 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 + Residence.getLanguage().getPhrase("NoPVPZone"));
+ if (attacker != null) {
+ attacker.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPVPZone"));
+ }
event.setCancelled(true);
}
return;
- } else if ((ent instanceof Player || tamedWolf) && (damager instanceof Creeper))
+ } else if ((ent instanceof Player || tamedWolf) && (damager instanceof Creeper)) {
if (area == null) {
- if (!Residence.getWorldFlags().getPerms(damager.getWorld().getName()).has("creeper", true))
+ if (!plugin.getWorldFlags().getPerms(damager.getWorld().getName()).has("creeper", true)) {
event.setCancelled(true);
- } else if (!area.getPermissions().has("creeper", true))
+ }
+ } else if (!area.getPermissions().has("creeper", true)) {
event.setCancelled(true);
+ }
+ }
}
if (area == null) {
- if (!Residence.getWorldFlags().getPerms(ent.getWorld().getName()).has("damage", true) && (ent instanceof Player || tamedWolf))
+ 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))
+ }
+ } else if (!area.getPermissions().has("damage", true) && (ent instanceof Player || tamedWolf)) {
event.setCancelled(true);
- if (event.isCancelled())
+ }
+ 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))
+ 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(EntityDamageByEntityEvent event) {
- if (event.getEntityType() == EntityType.ITEM_FRAME || (Residence.is1_8() && event.getEntityType() == EntityType.ARMOR_STAND)) {
- Entity dmgr = event.getDamager();
+ public void onEntityDamageByEntityEvent(final EntityDamageByEntityEvent event) {
+ if (event.getEntityType() == EntityType.ITEM_FRAME || (plugin.is1_8() && event.getEntityType() == EntityType.ARMOR_STAND)) {
+ final Entity dmgr = event.getDamager();
Player player;
- if (dmgr instanceof Player)
+ if (dmgr instanceof Player) {
player = (Player) event.getDamager();
- else if (dmgr instanceof Projectile && ((Projectile) dmgr).getShooter() instanceof Player)
+ } else if (dmgr instanceof Projectile && ((Projectile) dmgr).getShooter() instanceof Player) {
player = (Player) ((Projectile) dmgr).getShooter();
- else
+ } else {
return;
+ }
- if (Residence.isResAdminOn(player))
+ if (plugin.isResAdminOn(player)) {
return;
+ }
// Note: Location of entity, not player; otherwise player could
// stand outside of res and still damage
- Location loc = event.getEntity().getLocation();
- ClaimedResidence res = Residence.getResidenceManager().getByLoc(loc);
+ final Location loc = event.getEntity().getLocation();
+ final ClaimedResidence res = plugin.getResidenceManager().getByLoc(loc);
if (res != null) {
- if (!res.getPermissions().has("container", false))
+ if (!res.getPermissions().has("container", false)) {
if (isMonster(dmgr)) {
event.setCancelled(true);
return;
}
+ }
if (!res.getPermissions().playerHas(player.getName(), "container", false)) {
event.setCancelled(true);
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("FlagDeny", "container"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "container"));
}
}
}
}
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
- public void onEntityExplode(EntityExplodeEvent event) {
- if (event.isCancelled() || event.getEntity() == null)
+ public void onEntityExplode(final EntityExplodeEvent event) {
+ if (event.isCancelled() || event.getEntity() == null) {
return;
+ }
Boolean cancel = false;
- EntityType entity = event.getEntityType();
- FlagPermissions perms = Residence.getPermsByLoc(event.getEntity().getLocation());
- FlagPermissions world = Residence.getWorldFlags().getPerms(event.getEntity().getWorld().getName());
- if (entity == EntityType.CREEPER)
- if (!perms.has("creeper", perms.has("explode", true)))
+ 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)))
+ }
+ }
+ 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)))
+ }
+ }
+ 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)))
+ }
+ }
+ 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)))))
+ }
+ }
+ 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 {
- List preserve = new ArrayList();
- for (Block block : event.blockList()) {
- FlagPermissions blockperms = Residence.getPermsByLoc(block.getLocation());
+ 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)))
+ || (!blockperms.has("creeper", blockperms.has("explode", true)) && entity == EntityType.CREEPER))) {
preserve.add(block);
+ }
}
- for (Block block : preserve)
+ for (final Block block : preserve) {
event.blockList().remove(block);
+ }
}
}
@EventHandler(priority = EventPriority.LOWEST)
- public void onEntityInteract(EntityInteractEvent event) {
- Block block = event.getBlock();
- Material mat = block.getType();
- Entity entity = event.getEntity();
- FlagPermissions perms = Residence.getPermsByLoc(block.getLocation());
- boolean hastrample = perms.has("trample", perms.has("hasbuild", true));
- if (!hastrample && !(entity.getType() == EntityType.FALLING_BLOCK) && (mat == Material.SOIL || mat == Material.SOUL_SAND))
+ 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(ExplosionPrimeEvent event) {
- EntityType entity = event.getEntityType();
- FlagPermissions perms = Residence.getPermsByLoc(event.getEntity().getLocation());
- if (entity == EntityType.CREEPER)
+ 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 (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 (entity == EntityType.FIREBALL) {
if (!perms.has("fireball", perms.has("explode", true))) {
event.setCancelled(true);
event.getEntity().remove();
}
- if (entity == EntityType.SMALL_FIREBALL)
+ }
+ 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 (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(HangingBreakEvent event) {
+ public void onHangingBreak(final HangingBreakEvent event) {
if (event instanceof HangingBreakByEntityEvent) {
- HangingBreakByEntityEvent evt = (HangingBreakByEntityEvent) event;
+ final HangingBreakByEntityEvent evt = (HangingBreakByEntityEvent) event;
if (evt.getRemover() instanceof Player) {
- Player player = (Player) evt.getRemover();
- if (Residence.isResAdminOn(player))
+ final Player player = (Player) evt.getRemover();
+ if (plugin.isResAdminOn(player)) {
return;
- String pname = player.getName();
- FlagPermissions perms = Residence.getPermsByLocForPlayer(event.getEntity().getLocation(), player);
- String world = event.getEntity().getWorld().getName();
+ }
+ 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 + Residence.getLanguage().getPhrase("NoPermission"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission"));
}
}
}
}
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
- public void onHangingPlace(HangingPlaceEvent event) {
- Player player = event.getPlayer();
- if (Residence.isResAdminOn(player))
+ public void onHangingPlace(final HangingPlaceEvent event) {
+ final Player player = event.getPlayer();
+ if (plugin.isResAdminOn(player)) {
return;
- FlagPermissions perms = Residence.getPermsByLocForPlayer(event.getEntity().getLocation(), player);
- String pname = player.getName();
- String world = player.getWorld().getName();
+ }
+ 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 + Residence.getLanguage().getPhrase("NoPermission"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission"));
}
}
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
- public void onSplashPotion(PotionSplashEvent event) {
- if (event.isCancelled())
+ public void onSplashPotion(final PotionSplashEvent event) {
+ if (event.isCancelled()) {
return;
- Entity ent = event.getEntity();
- boolean srcpvp = Residence.getPermsByLoc(ent.getLocation()).has("pvp", true);
- Iterator it = event.getAffectedEntities().iterator();
+ }
+ final Entity ent = event.getEntity();
+ final boolean srcpvp = plugin.getPermsByLoc(ent.getLocation()).has("pvp", true);
+ final Iterator it = event.getAffectedEntities().iterator();
while (it.hasNext()) {
- LivingEntity target = it.next();
+ final LivingEntity target = it.next();
if (target.getType() == EntityType.PLAYER) {
- Boolean tgtpvp = Residence.getPermsByLoc(target.getLocation()).has("pvp", true);
- if (!srcpvp || !tgtpvp)
+ final Boolean tgtpvp = plugin.getPermsByLoc(target.getLocation()).has("pvp", true);
+ if (!srcpvp || !tgtpvp) {
event.setIntensity(target, 0);
+ }
}
}
}
- private boolean isAnimal(Entity ent) {
+ private boolean isAnimal(final Entity ent) {
return (ent instanceof Horse || ent instanceof Bat || ent instanceof Snowman || ent instanceof IronGolem || ent instanceof Ocelot || ent instanceof Pig || ent instanceof Sheep
- || ent instanceof Chicken || ent instanceof Wolf || ent instanceof Cow || ent instanceof Squid || ent instanceof Villager || (Residence.is1_8() && ent instanceof Rabbit));
+ || ent instanceof Chicken || ent instanceof Wolf || ent instanceof Cow || ent instanceof Squid || ent instanceof Villager || (plugin.is1_8() && ent instanceof Rabbit));
}
- private boolean isMonster(Entity ent) {
+ private boolean isMonster(final Entity ent) {
return (ent instanceof Monster || ent instanceof Slime || ent instanceof Ghast);
}
}
diff --git a/src/main/java/com/bekvon/bukkit/residence/listeners/ResidencePlayerListener.java b/src/main/java/com/bekvon/bukkit/residence/listeners/ResidencePlayerListener.java
index 9e12fa6..ce72531 100644
--- a/src/main/java/com/bekvon/bukkit/residence/listeners/ResidencePlayerListener.java
+++ b/src/main/java/com/bekvon/bukkit/residence/listeners/ResidencePlayerListener.java
@@ -54,37 +54,40 @@ import cn.citycraft.PluginHelper.utils.ActionBar;
@SuppressWarnings("deprecation")
public class ResidencePlayerListener implements Listener {
- protected Map currentRes;
- protected Map lastUpdate;
- protected Map lastOutsideLoc;
- protected int minUpdateTime;
protected boolean chatenabled;
+ protected Map currentRes;
+ protected Map lastOutsideLoc;
+ protected Map lastUpdate;
+ protected int minUpdateTime;
protected List playerToggleChat;
+ Residence plugin;
- public ResidencePlayerListener() {
+ public ResidencePlayerListener(final Residence plugin) {
+ this.plugin = plugin;
currentRes = new HashMap();
lastUpdate = new HashMap();
lastOutsideLoc = new HashMap();
playerToggleChat = new ArrayList();
- minUpdateTime = Residence.getConfigManager().getMinMoveUpdateInterval();
- chatenabled = Residence.getConfigManager().chatEnabled();
- for (Player player : Bukkit.getServer().getOnlinePlayers())
+ minUpdateTime = plugin.getConfigManager().getMinMoveUpdateInterval();
+ chatenabled = plugin.getConfigManager().chatEnabled();
+ for (final Player player : Bukkit.getServer().getOnlinePlayers()) {
lastUpdate.put(player.getName(), System.currentTimeMillis());
+ }
}
- public String getCurrentResidenceName(String player) {
+ public String getCurrentResidenceName(final String player) {
return currentRes.get(player);
}
- public void handleNewLocation(Player player, Location loc, boolean move) {
- String pname = player.getName();
+ public void handleNewLocation(final Player player, final Location loc, final boolean move) {
+ final String pname = player.getName();
- ClaimedResidence res = Residence.getResidenceManager().getByLoc(loc);
+ ClaimedResidence res = plugin.getResidenceManager().getByLoc(loc);
String areaname = null;
boolean chatchange = false;
String subzone = null;
if (res != null) {
- areaname = Residence.getResidenceManager().getNameByLoc(loc);
+ areaname = plugin.getResidenceManager().getNameByLoc(loc);
while (res.getSubzoneByLoc(player.getLocation()) != null) {
subzone = res.getSubzoneNameByLoc(player.getLocation());
res = res.getSubzoneByLoc(player.getLocation());
@@ -93,163 +96,183 @@ public class ResidencePlayerListener implements Listener {
}
ClaimedResidence ResOld = null;
if (currentRes.containsKey(pname)) {
- ResOld = Residence.getResidenceManager().getByName(currentRes.get(pname));
- if (ResOld == null)
+ ResOld = plugin.getResidenceManager().getByName(currentRes.get(pname));
+ if (ResOld == null) {
currentRes.remove(pname);
+ }
}
if (res == null) {
lastOutsideLoc.put(pname, loc);
if (ResOld != null) {
- String leave = ResOld.getLeaveMessage();
+ final String leave = ResOld.getLeaveMessage();
// New ResidenceChangeEvent
- ResidenceChangedEvent chgEvent = new ResidenceChangedEvent(ResOld, null, player);
- Residence.getServ().getPluginManager().callEvent(chgEvent);
+ final ResidenceChangedEvent chgEvent = new ResidenceChangedEvent(ResOld, null, player);
+ plugin.getServ().getPluginManager().callEvent(chgEvent);
- if (leave != null && !leave.equals(""))
- if (Residence.getConfigManager().useActionBar())
+ if (leave != null && !leave.equals("")) {
+ if (plugin.getConfigManager().useActionBar()) {
ActionBar.send(player, (new StringBuilder()).append(ChatColor.YELLOW).append(insertMessages(player, ResOld.getName(), ResOld, leave)).toString());
- else
+ } else {
player.sendMessage(ChatColor.YELLOW + this.insertMessages(player, ResOld.getName(), ResOld, leave));
+ }
+ }
currentRes.remove(pname);
- Residence.getChatManager().removeFromChannel(pname);
+ plugin.getChatManager().removeFromChannel(pname);
}
return;
}
- if (move)
- if (!res.getPermissions().playerHas(pname, "move", true) && !Residence.isResAdminOn(player) && !player.hasPermission("residence.admin.move")) {
- Location lastLoc = lastOutsideLoc.get(pname);
- if (lastLoc != null)
+ if (move) {
+ if (!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
+ } else {
player.teleport(res.getOutsideFreeLoc(loc));
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("ResidenceMoveDeny", res.getName().split("\\.")[res.getName().split("\\.").length - 1]));
+ }
+ 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)
+ if (subzone == null) {
chatchange = true;
+ }
// "from" residence for ResidenceChangedEvent
ClaimedResidence chgFrom = null;
if (ResOld != res && ResOld != null) {
- String leave = ResOld.getLeaveMessage();
+ final String leave = ResOld.getLeaveMessage();
chgFrom = ResOld;
- if (leave != null && !leave.equals("") && ResOld != res.getParent())
- if (Residence.getConfigManager().useActionBar())
+ if (leave != null && !leave.equals("") && ResOld != res.getParent()) {
+ if (plugin.getConfigManager().useActionBar()) {
ActionBar.send(player, ChatColor.YELLOW + insertMessages(player, ResOld.getName(), ResOld, leave));
- else
+ } else {
player.sendMessage(ChatColor.YELLOW + this.insertMessages(player, ResOld.getName(), ResOld, leave));
+ }
+ }
}
- String enterMessage = res.getEnterMessage();
+ final String enterMessage = res.getEnterMessage();
// New ResidenceChangedEvent
- ResidenceChangedEvent chgEvent = new ResidenceChangedEvent(chgFrom, res, player);
- Residence.getServ().getPluginManager().callEvent(chgEvent);
+ final ResidenceChangedEvent chgEvent = new ResidenceChangedEvent(chgFrom, res, player);
+ plugin.getServ().getPluginManager().callEvent(chgEvent);
- if (enterMessage != null && !enterMessage.equals("") && !(ResOld != null && res == ResOld.getParent()))
- if (Residence.getConfigManager().useActionBar())
+ if (enterMessage != null && !enterMessage.equals("") && !(ResOld != null && res == ResOld.getParent())) {
+ if (plugin.getConfigManager().useActionBar()) {
ActionBar.send(player, (new StringBuilder()).append(ChatColor.YELLOW).append(insertMessages(player, areaname, res, enterMessage)).toString());
- else
+ } else {
player.sendMessage(ChatColor.YELLOW + this.insertMessages(player, areaname, res, enterMessage));
+ }
+ }
+ }
+ if (chatchange && chatenabled) {
+ plugin.getChatManager().setChannel(pname, areaname);
}
- if (chatchange && chatenabled)
- Residence.getChatManager().setChannel(pname, areaname);
}
- public String insertMessages(Player player, String areaname, ClaimedResidence res, String 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);
- } catch (Exception ex) {
+ } catch (final Exception ex) {
return "";
}
return message;
}
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
- public void onPlayerBucketEmpty(PlayerBucketEmptyEvent event) {
- Player player = event.getPlayer();
- if (Residence.isResAdminOn(player))
+ public void onPlayerBucketEmpty(final PlayerBucketEmptyEvent event) {
+ final Player player = event.getPlayer();
+ if (plugin.isResAdminOn(player)) {
return;
- String pname = player.getName();
- ClaimedResidence res = Residence.getResidenceManager().getByLoc(event.getBlockClicked().getLocation());
- if (res != null)
- if (Residence.getConfigManager().preventRentModify() && Residence.getConfigManager().enabledRentSystem())
- if (Residence.getRentManager().isRented(res.getName())) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("RentedModifyDeny"));
+ }
+ 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;
}
- FlagPermissions perms = Residence.getPermsByLocForPlayer(event.getBlockClicked().getLocation(), player);
+ }
+ }
+ 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 + Residence.getLanguage().getPhrase("FlagDeny", "bucket"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "bucket"));
event.setCancelled(true);
}
}
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
- public void onPlayerBucketFill(PlayerBucketFillEvent event) {
- Player player = event.getPlayer();
- String pname = player.getName();
- if (Residence.isResAdminOn(player))
+ public void onPlayerBucketFill(final PlayerBucketFillEvent event) {
+ final Player player = event.getPlayer();
+ final String pname = player.getName();
+ if (plugin.isResAdminOn(player)) {
return;
- ClaimedResidence res = Residence.getResidenceManager().getByLoc(event.getBlockClicked().getLocation());
- if (res != null)
- if (Residence.getConfigManager().preventRentModify() && Residence.getConfigManager().enabledRentSystem())
- if (Residence.getRentManager().isRented(res.getName())) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("RentedModifyDeny"));
+ }
+ 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;
}
- FlagPermissions perms = Residence.getPermsByLocForPlayer(event.getBlockClicked().getLocation(), player);
- boolean hasbucket = perms.playerHas(pname, player.getWorld().getName(), "bucket", perms.playerHas(pname, player.getWorld().getName(), "build", true));
+ }
+ }
+ 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 + Residence.getLanguage().getPhrase("FlagDeny", "bucket"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "bucket"));
event.setCancelled(true);
}
}
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
- public void onPlayerChat(AsyncPlayerChatEvent event) {
- String pname = event.getPlayer().getName();
+ public void onPlayerChat(final AsyncPlayerChatEvent event) {
+ final String pname = event.getPlayer().getName();
if (chatenabled && playerToggleChat.contains(pname)) {
- String area = currentRes.get(pname);
+ final String area = currentRes.get(pname);
if (area != null) {
- ChatChannel channel = Residence.getChatManager().getChannel(area);
- if (channel != 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(PlayerInteractEvent event) {
- Player player = event.getPlayer();
- Material heldItem = player.getItemInHand().getType();
- Block block = event.getClickedBlock();
- if (block == null)
+ 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;
- Material mat = block.getType();
+ }
+ 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)) {
- int typeId = player.getItemInHand().getTypeId();
- if (typeId != Residence.getConfigManager().getSelectionTooldID() && typeId != Residence.getConfigManager().getInfoToolID() && typeId != 351 && typeId != 416)
+ final int typeId = player.getItemInHand().getTypeId();
+ if (typeId != plugin.getConfigManager().getSelectionTooldID() && typeId != plugin.getConfigManager().getInfoToolID() && typeId != 351 && typeId != 416) {
return;
+ }
}
- FlagPermissions perms = Residence.getPermsByLocForPlayer(block.getLocation(), player);
- String world = player.getWorld().getName();
- String permgroup = Residence.getPermissionManager().getGroupNameByPlayer(player);
- boolean resadmin = Residence.isResAdminOn(player);
+ 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) {
- boolean hasuse = perms.playerHas(player.getName(), world, "use", true);
- boolean haspressure = perms.playerHas(player.getName(), world, "pressure", hasuse);
+ 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;
@@ -261,229 +284,258 @@ public class ResidencePlayerListener implements Listener {
}
return;
}
- if (!resadmin && !Residence.getItemManager().isAllowed(heldItem, permgroup, world)) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("ItemBlacklisted"));
+ 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() == Residence.getConfigManager().getSelectionTooldID()) {
- Plugin wep = Bukkit.getPluginManager().getPlugin("WorldEdit");
- if (wep != null)
- if (((WorldEditPlugin) wep).getConfig().getInt("wand-item") == Residence.getConfigManager().getSelectionTooldID())
+ 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;
- PermissionGroup group = Residence.getPermissionManager().getGroup(player);
+ }
+ }
+ 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)
+ || group.canCreateResidences() && !player.isPermissionSet("residence.create") && !player.isPermissionSet("residence.select") || resadmin) {
if (event.getAction() == Action.LEFT_CLICK_BLOCK) {
- Location loc = block.getLocation();
- Residence.getSelectionManager().placeLoc1(player, loc);
- player.sendMessage(ChatColor.GREEN + Residence.getLanguage().getPhrase("SelectPoint", Residence.getLanguage().getPhrase("Primary")) + ChatColor.RED + "(" + loc.getBlockX()
- + "," + loc.getBlockY() + "," + loc.getBlockZ() + ")" + ChatColor.GREEN + "!");
+ 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) {
- Location loc = block.getLocation();
- Residence.getSelectionManager().placeLoc2(player, loc);
- player.sendMessage(ChatColor.GREEN + Residence.getLanguage().getPhrase("SelectPoint", Residence.getLanguage().getPhrase("Secondary")) + ChatColor.RED + "(" + loc.getBlockX()
- + "," + loc.getBlockY() + "," + loc.getBlockZ() + ")" + ChatColor.GREEN + "!");
+ 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() == Residence.getConfigManager().getInfoToolID())
+ if (player.getItemInHand().getTypeId() == plugin.getConfigManager().getInfoToolID()) {
if (event.getAction() == Action.LEFT_CLICK_BLOCK) {
- Location loc = block.getLocation();
- String res = Residence.getResidenceManager().getNameByLoc(loc);
+ final Location loc = block.getLocation();
+ final String res = plugin.getResidenceManager().getNameByLoc(loc);
if (res != null) {
- Residence.getResidenceManager().printAreaInfo(res, player);
+ plugin.getResidenceManager().printAreaInfo(res, player);
event.setCancelled(true);
} else {
event.setCancelled(true);
- player.sendMessage(Residence.getLanguage().getPhrase("NoResHere"));
+ player.sendMessage(plugin.getLanguage().getPhrase("NoResHere"));
}
}
+ }
if (!resadmin) {
- if (heldItem != null)
+ if (heldItem != null) {
if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
- if (player.getItemInHand().getTypeId() == 351)
+ 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 = Residence.getPermsByLocForPlayer(block.getRelative(event.getBlockFace()).getLocation(), player);
+ perms = plugin.getPermsByLocForPlayer(block.getRelative(event.getBlockFace()).getLocation(), player);
if (!perms.playerHas(player.getName(), world, "build", true)) {
event.setCancelled(true);
return;
}
}
- if (Residence.is1_8())
+ }
+ if (plugin.is1_8()) {
if (heldItem == Material.ARMOR_STAND) {
- perms = Residence.getPermsByLocForPlayer(block.getRelative(event.getBlockFace()).getLocation(), player);
+ perms = plugin.getPermsByLocForPlayer(block.getRelative(event.getBlockFace()).getLocation(), player);
if (!perms.playerHas(player.getName(), world, "build", true)) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("NoPermission"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission"));
event.setCancelled(true);
return;
}
}
+ }
}
+ }
if (isContainer(mat, block) || isCanUseEntity(mat, block)) {
- boolean hasuse = perms.playerHas(player.getName(), world, "use", true);
- for (Entry checkMat : FlagPermissions.getMaterialUseFlagList().entrySet())
- if (mat == checkMat.getKey())
- if (!perms.playerHas(player.getName(), world, checkMat.getValue(), hasuse))
+ 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 + Residence.getLanguage().getPhrase("FlagDeny", checkMat.getValue()));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", checkMat.getValue()));
return;
} else {
event.setCancelled(true);
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("FlagDeny", "use"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "use"));
return;
}
- if (Residence.getConfigManager().getCustomContainers().contains(Integer.valueOf(block.getTypeId())))
+ }
+ }
+ }
+ if (plugin.getConfigManager().getCustomContainers().contains(Integer.valueOf(block.getTypeId()))) {
if (!perms.playerHas(player.getName(), world, "container", hasuse)) {
event.setCancelled(true);
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("FlagDeny", "container"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "container"));
return;
}
- if (Residence.getConfigManager().getCustomBothClick().contains(Integer.valueOf(block.getTypeId())))
+ }
+ if (plugin.getConfigManager().getCustomBothClick().contains(Integer.valueOf(block.getTypeId()))) {
if (!hasuse) {
event.setCancelled(true);
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("FlagDeny", "use"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "use"));
return;
}
- if (event.getAction() == Action.RIGHT_CLICK_BLOCK)
- if (Residence.getConfigManager().getCustomRightClick().contains(Integer.valueOf(block.getTypeId())))
+ }
+ if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
+ if (plugin.getConfigManager().getCustomRightClick().contains(Integer.valueOf(block.getTypeId()))) {
if (!hasuse) {
event.setCancelled(true);
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("FlagDeny", "use"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "use"));
return;
}
+ }
+ }
}
}
}
}
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
- public void onPlayerInteractEntity(PlayerInteractEntityEvent event) {
- Player player = event.getPlayer();
- if (Residence.isResAdminOn(player))
+ public void onPlayerInteractEntity(final PlayerInteractEntityEvent event) {
+ final Player player = event.getPlayer();
+ if (plugin.isResAdminOn(player)) {
return;
- Entity ent = event.getRightClicked();
+ }
+ final Entity ent = event.getRightClicked();
/* Trade */
if (ent.getType() == EntityType.VILLAGER) {
- ClaimedResidence res = Residence.getResidenceManager().getByLoc(event.getPlayer().getLocation());
+ final ClaimedResidence res = plugin.getResidenceManager().getByLoc(event.getPlayer().getLocation());
if (res != null && !res.getPermissions().playerHas(player.getName(), "trade", true)) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("NoPermission"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission"));
event.setCancelled(true);
}
}
/* Container - ItemFrame protection */
- Material heldItem = player.getItemInHand().getType();
- if (!(ent instanceof Hanging))
+ final Material heldItem = player.getItemInHand().getType();
+ if (!(ent instanceof Hanging)) {
return;
- Hanging hanging = (Hanging) ent;
- if (hanging.getType() != EntityType.ITEM_FRAME)
+ }
+ final Hanging hanging = (Hanging) ent;
+ if (hanging.getType() != EntityType.ITEM_FRAME) {
return;
- FlagPermissions perms = Residence.getPermsByLocForPlayer(ent.getLocation(), player);
- String world = player.getWorld().getName();
- String permgroup = Residence.getPermissionManager().getGroupNameByPlayer(player);
- if (!Residence.getItemManager().isAllowed(heldItem, permgroup, world)) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("ItemBlacklisted"));
+ }
+ 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 + Residence.getLanguage().getPhrase("FlagDeny", "container"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "container"));
}
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
- public void onPlayerJoin(PlayerJoinEvent event) {
- Player player = event.getPlayer();
+ public void onPlayerJoin(final PlayerJoinEvent event) {
+ final Player player = event.getPlayer();
lastUpdate.put(player.getName(), 0L);
- if (Residence.getPermissionManager().isResidenceAdmin(player))
- Residence.turnResAdminOn(player);
+ if (plugin.getPermissionManager().isResidenceAdmin(player)) {
+ plugin.turnResAdminOn(player);
+ }
handleNewLocation(player, player.getLocation(), false);
}
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
- public void onPlayerMove(PlayerMoveEvent event) {
- Player player = event.getPlayer();
- if (player == null)
+ public void onPlayerMove(final PlayerMoveEvent event) {
+ final Player player = event.getPlayer();
+ if (player == null) {
return;
- long now = System.currentTimeMillis();
+ }
+ final long now = System.currentTimeMillis();
if (!lastUpdate.containsKey(player.getName())) {
lastUpdate.put(player.getName(), now);
return;
}
- long last = lastUpdate.get(player.getName());
- if (now - last < Residence.getConfigManager().getMinMoveUpdateInterval())
+ 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)
+ 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(PlayerQuitEvent event) {
- String pname = event.getPlayer().getName();
+ public void onPlayerQuit(final PlayerQuitEvent event) {
+ final String pname = event.getPlayer().getName();
currentRes.remove(pname);
lastUpdate.remove(pname);
lastOutsideLoc.remove(pname);
- Residence.getChatManager().removeFromChannel(pname);
+ plugin.getChatManager().removeFromChannel(pname);
}
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
- public void onPlayerSpawn(PlayerRespawnEvent event) {
+ public void onPlayerSpawn(final PlayerRespawnEvent event) {
Location loc = event.getRespawnLocation();
- Boolean bed = event.isBedSpawn();
- Player player = event.getPlayer();
- ClaimedResidence res = Residence.getResidenceManager().getByLoc(loc);
- if (res == null)
+ 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))
+ }
+ if (res.getPermissions().playerHas(player.getName(), "move", true)) {
return;
- if (bed)
+ }
+ if (bed) {
loc = player.getWorld().getSpawnLocation();
- res = Residence.getResidenceManager().getByLoc(loc);
- if (res != null)
- if (!res.getPermissions().playerHas(player.getName(), "move", true))
+ }
+ res = plugin.getResidenceManager().getByLoc(loc);
+ if (res != null) {
+ if (!res.getPermissions().playerHas(player.getName(), "move", true)) {
loc = res.getOutsideFreeLoc(loc);
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("NoSpawn"));
+ }
+ }
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoSpawn"));
event.setRespawnLocation(loc);
}
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
- public void onPlayerTeleport(PlayerTeleportEvent event) {
- Location loc = event.getTo();
- Player player = event.getPlayer();
+ public void onPlayerTeleport(final PlayerTeleportEvent event) {
+ final Location loc = event.getTo();
+ final Player player = event.getPlayer();
- if (Residence.isResAdminOn(player)) {
+ if (plugin.isResAdminOn(player)) {
handleNewLocation(player, loc, false);
return;
}
- ClaimedResidence res = Residence.getResidenceManager().getByLoc(loc);
- if (event.getCause() == TeleportCause.ENDER_PEARL || event.getCause() == TeleportCause.COMMAND || event.getCause() == TeleportCause.NETHER_PORTAL)
+ final ClaimedResidence res = plugin.getResidenceManager().getByLoc(loc);
+ if (event.getCause() == TeleportCause.ENDER_PEARL || event.getCause() == TeleportCause.COMMAND || event.getCause() == TeleportCause.NETHER_PORTAL) {
if (res != null) {
- String areaname = Residence.getResidenceManager().getNameByLoc(loc);
+ final String areaname = plugin.getResidenceManager().getNameByLoc(loc);
if (!res.getPermissions().playerHas(player.getName(), "move", true)) {
event.setCancelled(true);
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("ResidenceMoveDeny", areaname));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceMoveDeny", areaname));
return;
}
}
- if (event.getCause() == TeleportCause.PLUGIN)
+ }
+ if (event.getCause() == TeleportCause.PLUGIN) {
if (res != null) {
- String areaname = Residence.getResidenceManager().getNameByLoc(loc);
+ final String areaname = plugin.getResidenceManager().getNameByLoc(loc);
if (!res.getPermissions().playerHas(player.getName(), "tp", true) && !player.hasPermission("residence.admin.tp")) {
event.setCancelled(true);
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("TeleportDeny", areaname));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("TeleportDeny", areaname));
return;
}
}
+ }
handleNewLocation(player, loc, false);
}
@@ -492,44 +544,45 @@ public class ResidencePlayerListener implements Listener {
lastUpdate = new HashMap();
lastOutsideLoc = new HashMap();
playerToggleChat = new ArrayList();
- minUpdateTime = Residence.getConfigManager().getMinMoveUpdateInterval();
- chatenabled = Residence.getConfigManager().chatEnabled();
- for (Player player : Bukkit.getServer().getOnlinePlayers())
+ minUpdateTime = plugin.getConfigManager().getMinMoveUpdateInterval();
+ chatenabled = plugin.getConfigManager().chatEnabled();
+ for (final Player player : Bukkit.getServer().getOnlinePlayers()) {
lastUpdate.put(player.getName(), System.currentTimeMillis());
- }
-
- public void tooglePlayerResidenceChat(Player player) {
- String pname = player.getName();
- if (playerToggleChat.contains(pname)) {
- playerToggleChat.remove(pname);
- player.sendMessage(ChatColor.YELLOW + Residence.getLanguage().getPhrase("ResidenceChat", ChatColor.RED + "OFF" + ChatColor.YELLOW + "!"));
- } else {
- playerToggleChat.add(pname);
- player.sendMessage(ChatColor.YELLOW + Residence.getLanguage().getPhrase("ResidenceChat", ChatColor.RED + "ON" + ChatColor.YELLOW + "!"));
}
}
- private boolean isCanUseEntity(Material mat, Block block) {
+ 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_BothClick(Material mat, Block 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
- || Residence.getConfigManager().getCustomBothClick().contains(Integer.valueOf(block.getTypeId()))
- || (Residence.is1_8() && (mat == Material.SPRUCE_DOOR || mat == Material.BIRCH_DOOR || mat == Material.JUNGLE_DOOR || mat == Material.ACACIA_DOOR || mat == Material.DARK_OAK_DOOR
+ || plugin.getConfigManager().getCustomBothClick().contains(Integer.valueOf(block.getTypeId()))
+ || (plugin.is1_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(Material mat, Block block) {
+ 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 || Residence.getConfigManager().getCustomRightClick().contains(Integer.valueOf(block.getTypeId()));
+ || mat == Material.BREWING_STAND || mat == Material.ENCHANTMENT_TABLE || plugin.getConfigManager().getCustomRightClick().contains(Integer.valueOf(block.getTypeId()));
}
- private boolean isContainer(Material mat, Block block) {
+ private boolean isContainer(final Material mat, final Block block) {
return FlagPermissions.getMaterialUseFlagList().containsKey(mat) && FlagPermissions.getMaterialUseFlagList().get(mat).equals("container")
- || Residence.getConfigManager().getCustomContainers().contains(Integer.valueOf(block.getTypeId()));
+ || plugin.getConfigManager().getCustomContainers().contains(Integer.valueOf(block.getTypeId()));
}
}
diff --git a/src/main/java/com/bekvon/bukkit/residence/listeners/ResidencePlayerListener_1_8.java b/src/main/java/com/bekvon/bukkit/residence/listeners/ResidencePlayerListener_1_8.java
index 19ec1a5..c18afc0 100644
--- a/src/main/java/com/bekvon/bukkit/residence/listeners/ResidencePlayerListener_1_8.java
+++ b/src/main/java/com/bekvon/bukkit/residence/listeners/ResidencePlayerListener_1_8.java
@@ -22,23 +22,30 @@ import com.bekvon.bukkit.residence.protection.FlagPermissions;
* @author Administrator
*/
public class ResidencePlayerListener_1_8 implements Listener {
+ Residence plugin;
+
+ public ResidencePlayerListener_1_8(final Residence plugin) {
+ this.plugin = plugin;
+ }
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
- public void onPlayerInteractAtEntity(PlayerInteractAtEntityEvent event) {
- Player player = event.getPlayer();
- if (Residence.isResAdminOn(player))
+ public void onPlayerInteractAtEntity(final PlayerInteractAtEntityEvent event) {
+ final Player player = event.getPlayer();
+ if (plugin.isResAdminOn(player)) {
return;
+ }
- Entity ent = event.getRightClicked();
- if (ent.getType() != EntityType.ARMOR_STAND)
+ final Entity ent = event.getRightClicked();
+ if (ent.getType() != EntityType.ARMOR_STAND) {
return;
+ }
- FlagPermissions perms = Residence.getPermsByLocForPlayer(ent.getLocation(), player);
- 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 + Residence.getLanguage().getPhrase("FlagDeny", "container"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "container"));
}
}
diff --git a/src/main/java/com/bekvon/bukkit/residence/listeners/flag/ResidenceFlyListener.java b/src/main/java/com/bekvon/bukkit/residence/listeners/flag/ResidenceFlyListener.java
index 7e297ca..9f2da36 100644
--- a/src/main/java/com/bekvon/bukkit/residence/listeners/flag/ResidenceFlyListener.java
+++ b/src/main/java/com/bekvon/bukkit/residence/listeners/flag/ResidenceFlyListener.java
@@ -21,78 +21,91 @@ import com.bekvon.bukkit.residence.protection.ResidencePermissions;
public class ResidenceFlyListener implements Listener {
HashMap fall = new HashMap();
+ Residence plugin;
- public ResidenceFlyListener() {
+ public ResidenceFlyListener(final Residence plugin) {
+ this.plugin = plugin;
FlagPermissions.addFlag("fly");
FlagPermissions.addResidenceOnlyFlag("fly");
}
@EventHandler(ignoreCancelled = true)
- public void FlagChange(ResidenceFlagChangeEvent e) {
- ClaimedResidence res = e.getResidence();
- for (Player p : res.getPlayersInResidence())
- if (!permCheck(p))
- if (!resPermCheck(res, p))
+ public void FlagChange(final ResidenceFlagChangeEvent e) {
+ final ClaimedResidence res = e.getResidence();
+ for (final Player p : res.getPlayersInResidence()) {
+ if (!permCheck(p)) {
+ if (!resPermCheck(res, p)) {
ChangePlayerFly(p, false);
- else
+ } else {
ChangePlayerFly(p, true);
+ }
+ }
+ }
}
// ResidenceDeleteEvent.class
// ResidenceFlagChangeEvent.class
- public void onFallDamage(EntityDamageEvent e) {
+ public void onFallDamage(final EntityDamageEvent e) {
if (e.getEntity() instanceof Player) {
- Player p = (Player) e.getEntity();
- if (e.getCause() == DamageCause.FALL)
+ final Player p = (Player) e.getEntity();
+ if (e.getCause() == DamageCause.FALL) {
if (p == fall.get(p)) {
fall.remove(p);
e.setCancelled(true);
}
+ }
}
}
@EventHandler(ignoreCancelled = true)
- public void resChange(ResidenceChangedEvent event) {
- Player player = event.getPlayer();
- ClaimedResidence resto = event.getTo();
- if (!permCheck(player))
- if (!resPermCheck(resto, player))
+ public void resChange(final ResidenceChangedEvent event) {
+ final Player player = event.getPlayer();
+ final ClaimedResidence resto = event.getTo();
+ if (!permCheck(player)) {
+ if (!resPermCheck(resto, player)) {
ChangePlayerFly(player, false);
- else
+ } else {
ChangePlayerFly(player, true);
+ }
+ }
}
@EventHandler(ignoreCancelled = true)
- public void ResDelete(ResidenceDeleteEvent e) {
- ClaimedResidence res = e.getResidence();
- for (Player p : res.getPlayersInResidence())
- if (!permCheck(p))
+ public void ResDelete(final ResidenceDeleteEvent e) {
+ final ClaimedResidence res = e.getResidence();
+ for (final Player p : res.getPlayersInResidence()) {
+ if (!permCheck(p)) {
ChangePlayerFly(p, false);
+ }
+ }
}
- void ChangePlayerFly(Player p, boolean fly) {
+ void ChangePlayerFly(final Player p, final boolean fly) {
if (p.getAllowFlight() && !fly) {
- if (p.isFlying())
+ if (p.isFlying()) {
fall.put(p, p);
+ }
p.setAllowFlight(false);
- p.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("FlagDeny", "fly"));
+ p.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "fly"));
}
if (!p.getAllowFlight() && fly) {
- if (p == fall.get(p))
+ if (p == fall.get(p)) {
fall.remove(p);
+ }
p.setAllowFlight(true);
}
}
- boolean permCheck(Player p) {
+ boolean permCheck(final Player p) {
return p.hasPermission("resfly.ignore") || p.isOp() || p.getGameMode() == GameMode.CREATIVE;
}
- boolean resPermCheck(ClaimedResidence res, Player p) {
- if (res == null)
+ boolean resPermCheck(final ClaimedResidence res, final Player p) {
+ if (res == null) {
return false;
- ResidencePermissions perms = res.getPermissions();
+ }
+ final ResidencePermissions perms = res.getPermissions();
return perms.playerHas(p.getName(), "fly", false);
}
}
\ No newline at end of file
diff --git a/src/main/java/com/bekvon/bukkit/residence/permissions/PermissionGroup.java b/src/main/java/com/bekvon/bukkit/residence/permissions/PermissionGroup.java
index f635e69..796d9b0 100644
--- a/src/main/java/com/bekvon/bukkit/residence/permissions/PermissionGroup.java
+++ b/src/main/java/com/bekvon/bukkit/residence/permissions/PermissionGroup.java
@@ -27,53 +27,55 @@ import com.bekvon.bukkit.residence.protection.FlagPermissions.FlagState;
* 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 int resmax;
- protected double costperarea;
- protected boolean tpaccess;
- protected int subzonedepth;
- protected FlagPermissions flagPerms;
- protected Map creatorDefaultFlags;
- protected Map> groupDefaultFlags;
- protected Map residenceDefaultFlags;
- protected boolean messageperms;
- protected String defaultEnterMessage;
- protected String defaultLeaveMessage;
- protected int maxLeaseTime;
- protected int leaseGiveTime;
- protected double renewcostperarea;
- protected boolean canBuy;
- protected boolean canSell;
- protected boolean buyIgnoreLimits;
- protected boolean cancreate;
- protected String groupname;
- protected int maxPhysical;
- protected boolean unstuck;
- protected boolean kick;
- protected int minHeight;
- protected int maxHeight;
- protected int maxRents;
- protected int maxRentables;
- protected boolean selectCommandAccess;
- protected boolean itemListAccess;
+ Residence plugin;
- public PermissionGroup(String name) {
- flagPerms = new FlagPermissions();
+ public PermissionGroup(final Residence plugin, final String name) {
+ this.plugin = plugin;
+ flagPerms = new FlagPermissions(plugin);
creatorDefaultFlags = new HashMap();
residenceDefaultFlags = new HashMap();
groupDefaultFlags = new HashMap>();
groupname = name;
}
- public PermissionGroup(String name, ConfigurationSection node) {
- this(name);
+ public PermissionGroup(final Residence plugin, final String name, final ConfigurationSection node) {
+ this(plugin, name);
this.parseGroup(node);
}
- public PermissionGroup(String name, ConfigurationSection node, FlagPermissions parentFlagPerms) {
- this(name, node);
+ public PermissionGroup(final Residence plugin, final String name, final ConfigurationSection node, final FlagPermissions parentFlagPerms) {
+ this(plugin, name, node);
flagPerms.setParent(parentFlagPerms);
}
@@ -173,7 +175,7 @@ public class PermissionGroup {
return minHeight;
}
- public boolean hasFlagAccess(String flag) {
+ public boolean hasFlagAccess(final String flag) {
return flagPerms.has(flag, false);
}
@@ -189,9 +191,10 @@ public class PermissionGroup {
return unstuck;
}
- public boolean inLimits(CuboidArea area) {
- if (area.getXSize() > xmax || area.getYSize() > ymax || area.getZSize() > zmax)
+ public boolean inLimits(final CuboidArea area) {
+ if (area.getXSize() > xmax || area.getYSize() > ymax || area.getZSize() > zmax) {
return false;
+ }
return true;
}
@@ -199,11 +202,11 @@ public class PermissionGroup {
return itemListAccess;
}
- public void printLimits(Player player) {
+ public void printLimits(final Player player) {
player.sendMessage(ChatColor.GRAY + "---------------------------");
- player.sendMessage(ChatColor.YELLOW + "权限 组:" + ChatColor.DARK_AQUA + " " + Residence.getPermissionManager().getPermissionsGroup(player));
+ 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 + " " + Residence.getPermissionManager().isResidenceAdmin(player));
+ 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);
@@ -212,11 +215,12 @@ public class PermissionGroup {
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 + " " + Residence.getResidenceManager().getOwnedZoneCount(player.getName()));
- if (Residence.getEconomyManager() != null)
+ 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 (Residence.getConfigManager().useLeases()) {
+ 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);
@@ -228,19 +232,20 @@ public class PermissionGroup {
return selectCommandAccess;
}
- private void parseGroup(ConfigurationSection limits) {
- if (limits == null)
+ 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);
+ }
+ cancreate = limits.getBoolean("plugin.CanCreate", false);
+ resmax = limits.getInt("plugin.MaxResidences", 0);
+ maxPhysical = limits.getInt("plugin.MaxAreasPerResidence", 2);
+ xmax = limits.getInt("plugin.MaxEastWest", 0);
+ ymax = limits.getInt("plugin.MaxUpDown", 0);
+ zmax = limits.getInt("plugin.MaxNorthSouth", 0);
+ minHeight = limits.getInt("plugin.MinHeight", 0);
+ maxHeight = limits.getInt("plugin.MaxHeight", 255);
+ tpaccess = limits.getBoolean("plugin.CanTeleport", false);
+ subzonedepth = limits.getInt("plugin.SubzoneDepth", 0);
messageperms = limits.getBoolean("Messaging.CanChange", false);
defaultEnterMessage = limits.getString("Messaging.DefaultEnter", null);
defaultLeaveMessage = limits.getString("Messaging.DefaultLeave", null);
@@ -253,59 +258,63 @@ public class PermissionGroup {
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);
+ unstuck = limits.getBoolean("plugin.Unstuck", false);
+ kick = limits.getBoolean("plugin.Kick", false);
+ selectCommandAccess = limits.getBoolean("plugin.SelectCommandAccess", true);
+ itemListAccess = limits.getBoolean("plugin.ItemListAccess", true);
ConfigurationSection node = limits.getConfigurationSection("Flags.Permission");
Set flags = null;
- if (node != null)
+ if (node != null) {
flags = node.getKeys(false);
+ }
if (flags != null) {
- Iterator flagit = flags.iterator();
+ final Iterator flagit = flags.iterator();
while (flagit.hasNext()) {
- String flagname = flagit.next();
- boolean access = limits.getBoolean("Flags.Permission." + flagname, false);
+ 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)
+ if (node != null) {
flags = node.getKeys(false);
+ }
if (flags != null) {
- Iterator flagit = flags.iterator();
+ final Iterator flagit = flags.iterator();
while (flagit.hasNext()) {
- String flagname = flagit.next();
- boolean access = limits.getBoolean("Flags.CreatorDefault." + flagname, false);
+ 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)
+ if (node != null) {
flags = node.getKeys(false);
+ }
if (flags != null) {
- Iterator flagit = flags.iterator();
+ final Iterator flagit = flags.iterator();
while (flagit.hasNext()) {
- String flagname = flagit.next();
- boolean access = limits.getBoolean("Flags.Default." + flagname, false);
+ 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)
+ if (node != null) {
groupDef = node.getKeys(false);
+ }
if (groupDef != null) {
- Iterator groupit = groupDef.iterator();
+ final Iterator groupit = groupDef.iterator();
while (groupit.hasNext()) {
- String name = groupit.next();
- Map gflags = new HashMap();
+ final String name = groupit.next();
+ final Map gflags = new HashMap();
flags = limits.getConfigurationSection("Flags.GroupDefault." + name).getKeys(false);
- Iterator flagit = flags.iterator();
+ final Iterator flagit = flags.iterator();
while (flagit.hasNext()) {
- String flagname = flagit.next();
- boolean access = limits.getBoolean("Flags.GroupDefault." + name + "." + flagname, false);
+ 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/com/bekvon/bukkit/residence/permissions/PermissionManager.java b/src/main/java/com/bekvon/bukkit/residence/permissions/PermissionManager.java
index 121661c..68ba79a 100644
--- a/src/main/java/com/bekvon/bukkit/residence/permissions/PermissionManager.java
+++ b/src/main/java/com/bekvon/bukkit/residence/permissions/PermissionManager.java
@@ -26,85 +26,75 @@ import com.bekvon.bukkit.residence.vaultinterface.ResidenceVaultAdapter;
*/
public class PermissionManager {
protected static PermissionsInterface perms;
+ protected FlagPermissions globalFlagPerms;
protected Map groups;
protected Map playersGroup;
- protected FlagPermissions globalFlagPerms;
+ Residence plugin;
- public PermissionManager(FileConfiguration config) {
+ public PermissionManager(final Residence plugin) {
try {
+ this.plugin = plugin;
groups = Collections.synchronizedMap(new HashMap());
playersGroup = Collections.synchronizedMap(new HashMap());
- globalFlagPerms = new FlagPermissions();
- this.readConfig(config);
- boolean enable = config.getBoolean("Global.EnablePermissions", true);
+ globalFlagPerms = new FlagPermissions(plugin);
+ this.readConfig(plugin.getConfig());
+ final boolean enable = plugin.getConfig().getBoolean("Global.EnablePermissions", true);
if (enable) {
this.checkPermissions();
}
- } catch (Exception ex) {
- Residence.getLog().warning("权限管理载入失败,请报告以下错误给作者,谢谢!");
- Residence.getLog().warning("错误: " + ex);
+ } catch (final Exception ex) {
+ plugin.getLog().warning("权限管理载入失败,请报告以下错误给作者,谢谢!");
+ plugin.getLog().warning("错误: " + ex);
}
}
- private void checkPermissions() {
- Server server = Residence.getServ();
- Plugin p = server.getPluginManager().getPlugin("Vault");
- if (p != null) {
- ResidenceVaultAdapter vault = new ResidenceVaultAdapter(server);
- if (vault.permissionsOK()) {
- perms = vault;
- Residence.getLog().info("发现 Vault 使用权限系统:" + vault.getPermissionsName());
- return;
- } else {
- Residence.getLog().info("发现 Vault, 但是 Vault 未找到权限系统...");
- }
- }
- Residence.getLog().warning("权限系统未找到!");
- }
-
- public PermissionGroup getGroup(Player player) {
+ public PermissionGroup getGroup(final Player player) {
return groups.get(this.getGroupNameByPlayer(player));
}
- public PermissionGroup getGroup(String player, String 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(Residence.getConfigManager().getDefaultGroup());
+ if (!groups.containsKey(group)) {
+ return groups.get(plugin.getConfigManager().getDefaultGroup());
+ }
return groups.get(group);
}
- public String getGroupNameByPlayer(Player player) {
+ public String getGroupNameByPlayer(final Player player) {
return this.getGroupNameByPlayer(player.getName(), player.getWorld().getName());
}
- public String getGroupNameByPlayer(String player, String world) {
+ 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))
+ if (group != null && groups.containsKey(group)) {
return group;
+ }
}
}
- String group = this.getPermissionsGroup(player, world);
- if (group == null || !groups.containsKey(group))
- return Residence.getConfigManager().getDefaultGroup().toLowerCase();
- else
+ final String group = this.getPermissionsGroup(player, world);
+ if (group == null || !groups.containsKey(group)) {
+ return plugin.getConfigManager().getDefaultGroup().toLowerCase();
+ } else {
return group;
+ }
}
- public String getPermissionsGroup(Player player) {
+ public String getPermissionsGroup(final Player player) {
return this.getPermissionsGroup(player.getName(), player.getWorld().getName());
}
- public String getPermissionsGroup(String player, String world) {
- if (perms == null)
- return Residence.getConfigManager().getDefaultGroup();
+ public String getPermissionsGroup(final String player, final String world) {
+ if (perms == null) {
+ return plugin.getConfigManager().getDefaultGroup();
+ }
return perms.getPlayerGroup(player, world);
}
@@ -117,43 +107,51 @@ public class PermissionManager {
return groups.containsKey(group);
}
- public boolean isResidenceAdmin(Player player) {
- return (player.hasPermission("residence.admin") || (player.isOp() && Residence
- .getConfigManager().getOpsAreAdmins()));
+ public boolean isResidenceAdmin(final Player player) {
+ return (player.hasPermission("residence.admin") || (player.isOp() && plugin.getConfigManager().getOpsAreAdmins()));
}
- private void readConfig(FileConfiguration config) {
- String defaultGroup = Residence.getConfigManager().getDefaultGroup();
- globalFlagPerms = FlagPermissions.parseFromConfigNode("FlagPermission",
- config.getConfigurationSection("Global"));
- ConfigurationSection nodes = config.getConfigurationSection("Groups");
+ private void checkPermissions() {
+ final Server server = plugin.getServ();
+ final Plugin p = server.getPluginManager().getPlugin("Vault");
+ if (p != null) {
+ final ResidenceVaultAdapter vault = new ResidenceVaultAdapter(server);
+ if (vault.permissionsOK()) {
+ perms = vault;
+ plugin.getLog().info("发现 Vault 使用权限系统:" + vault.getPermissionsName());
+ return;
+ } else {
+ plugin.getLog().info("发现 Vault, 但是 Vault 未找到权限系统...");
+ }
+ }
+ plugin.getLog().warning("权限系统未找到!");
+ }
+
+ 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) {
- Set entrys = nodes.getKeys(false);
- for (String key : entrys) {
+ final Set entrys = nodes.getKeys(false);
+ for (final String key : entrys) {
try {
- groups.put(
- key.toLowerCase(),
- new PermissionGroup(key.toLowerCase(), nodes
- .getConfigurationSection(key), globalFlagPerms));
- List mirrors = nodes.getConfigurationSection(key).getStringList(
- "Mirror");
- for (String group : mirrors) {
- groups.put(group.toLowerCase(), new PermissionGroup(key.toLowerCase(),
- nodes.getConfigurationSection(key), globalFlagPerms));
+ groups.put(key.toLowerCase(), new PermissionGroup(plugin, 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(plugin, key.toLowerCase(), nodes.getConfigurationSection(key), globalFlagPerms));
}
- } catch (Exception ex) {
- Residence.getLog().info("错误 从配置文件读取:" + key + " 抛出异常:" + ex);
+ } catch (final Exception ex) {
+ plugin.getLog().info("错误 从配置文件读取:" + key + " 抛出异常:" + ex);
}
}
}
if (!groups.containsKey(defaultGroup)) {
- groups.put(defaultGroup, new PermissionGroup(defaultGroup));
+ groups.put(defaultGroup, new PermissionGroup(plugin, defaultGroup));
}
- Set keys = config.getConfigurationSection("GroupAssignments").getKeys(false);
+ final Set keys = config.getConfigurationSection("GroupAssignments").getKeys(false);
if (keys != null) {
- for (String key : keys) {
- playersGroup.put(key.toLowerCase(),
- config.getString("GroupAssignments." + key, defaultGroup).toLowerCase());
+ for (final String key : keys) {
+ playersGroup.put(key.toLowerCase(), config.getString("GroupAssignments." + key, defaultGroup).toLowerCase());
}
}
}
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 f5eb4ac..74dd9cc 100644
--- a/src/main/java/com/bekvon/bukkit/residence/protection/ClaimedResidence.java
+++ b/src/main/java/com/bekvon/bukkit/residence/protection/ClaimedResidence.java
@@ -32,288 +32,324 @@ import com.bekvon.bukkit.residence.text.help.InformationPager;
*/
public class ClaimedResidence {
- protected ClaimedResidence parent;
-
protected Map areas;
- protected Map subzones;
- protected ResidencePermissions perms;
+
protected ResidenceBank bank;
- protected Location tpLoc;
- protected String enterMessage;
- protected String leaveMessage;
- protected ResidenceItemList ignorelist;
protected ResidenceItemList blacklist;
+ protected String enterMessage;
+ protected ResidenceItemList ignorelist;
+ protected String leaveMessage;
+ protected ClaimedResidence parent;
+ protected ResidencePermissions perms;
+ protected Residence plugin;
+ protected Map subzones;
+ protected Location tpLoc;
- public ClaimedResidence(String creationWorld) {
- this("Server Land", creationWorld);
+ public ClaimedResidence(final Residence plugin, final String creationWorld) {
+ this(plugin, "Server Land", creationWorld);
}
- public ClaimedResidence(String creator, String creationWorld) {
- this();
- perms = new ResidencePermissions(this, creator, creationWorld);
+ public ClaimedResidence(final Residence plugin, final String creator, final String creationWorld) {
+ this(plugin);
+ perms = new ResidencePermissions(plugin, this, creator, creationWorld);
}
- public ClaimedResidence(String creator, String creationWorld, ClaimedResidence parentResidence) {
- this(creator, creationWorld);
+ public ClaimedResidence(final Residence plugin, final String creator, final String creationWorld, final ClaimedResidence parentResidence) {
+ this(plugin, creator, creationWorld);
parent = parentResidence;
}
- private ClaimedResidence() {
+ private ClaimedResidence(final Residence plugin) {
+ this.plugin = plugin;
subzones = new HashMap();
areas = new HashMap();
- bank = new ResidenceBank(this);
- blacklist = new ResidenceItemList(this, ListType.BLACKLIST);
- ignorelist = new ResidenceItemList(this, ListType.IGNORELIST);
+ 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(Map root, ClaimedResidence parent) throws Exception {
- ClaimedResidence res = new ClaimedResidence();
- if (root == null)
+ public static ClaimedResidence load(final Residence 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"))
+ if (root.containsKey("StoredMoney")) {
res.bank.setStoredMoney((Integer) root.get("StoredMoney"));
- if (root.containsKey("BlackList"))
- res.blacklist = ResidenceItemList.load(res, (Map) root.get("BlackList"));
- if (root.containsKey("IgnoreList"))
- res.ignorelist = ResidenceItemList.load(res, (Map) root.get("IgnoreList"));
- Map areamap = (Map) root.get("Areas");
- res.perms = ResidencePermissions.load(res, (Map) root.get("Permissions"));
- World world = Residence.getServ().getWorld(res.perms.getWorld());
- if (world == null)
+ }
+ 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 (Entry map : areamap.entrySet())
+ }
+ for (final Entry map : areamap.entrySet()) {
res.areas.put(map.getKey(), CuboidArea.load((Map) map.getValue(), world));
- Map subzonemap = (Map) root.get("Subzones");
- for (Entry map : subzonemap.entrySet()) {
- ClaimedResidence subres = ClaimedResidence.load((Map) map.getValue(), res);
- if (Residence.getConfigManager().flagsInherit())
+ }
+ 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;
- Map tploc = (Map) root.get("TPLoc");
- if (tploc != null)
+ 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(CuboidArea area, String name) {
+ public boolean addArea(final CuboidArea area, final String name) {
return addArea(null, area, name, true);
}
- public boolean addArea(Player player, CuboidArea area, String name, boolean resadmin) {
- if (!Residence.validName(name)) {
- if (player != null)
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("InvalidNameCharacters"));
+ 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 + Residence.getLanguage().getPhrase("AreaExists"));
+ if (player != null) {
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaExists"));
+ }
return false;
}
- if (!resadmin && Residence.getConfigManager().getEnforceAreaInsideArea() && this.getParent() == null) {
+ if (!resadmin && plugin.getConfigManager().getEnforceAreaInsideArea() && this.getParent() == null) {
boolean inside = false;
- for (CuboidArea are : areas.values())
- if (are.isAreaWithinArea(area))
+ for (final CuboidArea are : areas.values()) {
+ if (are.isAreaWithinArea(area)) {
inside = true;
- if (!inside)
+ }
+ }
+ if (!inside) {
return false;
+ }
}
if (!area.getWorld().getName().equalsIgnoreCase(perms.getWorld())) {
- if (player != null)
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("AreaDiffWorld"));
+ if (player != null) {
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaDiffWorld"));
+ }
return false;
}
if (parent == null) {
- String collideResidence = Residence.getResidenceManager().checkAreaCollision(area, this);
+ final String collideResidence = plugin.getResidenceManager().checkAreaCollision(area, this);
if (collideResidence != null) {
- if (player != null)
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("AreaCollision", ChatColor.YELLOW + collideResidence));
+ if (player != null) {
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaCollision", ChatColor.YELLOW + collideResidence));
+ }
return false;
}
} else {
- String[] szs = parent.listSubzones();
- for (String sz : szs) {
- ClaimedResidence res = parent.getSubzone(sz);
- if (res != null && res != this)
+ 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 + Residence.getLanguage().getPhrase("AreaSubzoneCollision", ChatColor.YELLOW + sz));
+ 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 + Residence.getLanguage().getPhrase("NoPermission"));
+ 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 + Residence.getLanguage().getPhrase("AreaNotWithinParent"));
+ 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 + Residence.getLanguage().getPhrase("ParentNoPermission"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ParentNoPermission"));
return false;
}
}
- PermissionGroup group = Residence.getPermissionManager().getGroup(player);
+ final PermissionGroup group = plugin.getPermissionManager().getGroup(player);
if (!group.canCreateResidences() && !player.hasPermission("residence.create")) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("NoPermission"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission"));
return false;
}
if (areas.size() >= group.getMaxPhysicalPerResidence()) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("AreaMaxPhysical"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaMaxPhysical"));
return false;
}
if (!group.inLimits(area)) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("AreaSizeLimit"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaSizeLimit"));
return false;
}
if (group.getMinHeight() > area.getLowLoc().getBlockY()) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("AreaLowLimit", ChatColor.YELLOW + String.format("%d", group.getMinHeight())));
+ 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 + Residence.getLanguage().getPhrase("AreaHighLimit", ChatColor.YELLOW + String.format("%d", group.getMaxHeight())));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaHighLimit", ChatColor.YELLOW + String.format("%d", group.getMaxHeight())));
return false;
}
- if (parent == null && Residence.getConfigManager().enableEconomy()) {
- int chargeamount = (int) Math.ceil(area.getSize() * group.getCostPerBlock());
- if (!TransactionManager.chargeEconomyMoney(player, chargeamount))
+ if (parent == null && plugin.getConfigManager().enableEconomy()) {
+ final int chargeamount = (int) Math.ceil(area.getSize() * group.getCostPerBlock());
+ if (!TransactionManager.chargeEconomyMoney(plugin, player, chargeamount)) {
return false;
+ }
}
}
- Residence.getResidenceManager().removeChunkList(getName());
+ plugin.getResidenceManager().removeChunkList(getName());
areas.put(name, area);
- Residence.getResidenceManager().calculateChunks(getName());
- if (player != null)
- player.sendMessage(ChatColor.GREEN + Residence.getLanguage().getPhrase("AreaCreate", ChatColor.YELLOW + name));
+ plugin.getResidenceManager().calculateChunks(getName());
+ if (player != null) {
+ player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("AreaCreate", ChatColor.YELLOW + name));
+ }
return true;
}
- public boolean addSubzone(Player player, Location loc1, Location loc2, String name, boolean resadmin) {
- if (player == null)
+ 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);
- else
+ } else {
return this.addSubzone(player, player.getName(), loc1, loc2, name, resadmin);
+ }
}
- public boolean addSubzone(Player player, String owner, Location loc1, Location loc2, String name, boolean resadmin) {
- if (!Residence.validName(name)) {
- if (player != null)
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("InvalidNameCharacters"));
+ 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 (!(this.containsLoc(loc1) && this.containsLoc(loc2))) {
- if (player != null)
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("SubzoneSelectInside"));
+ if (player != null) {
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SubzoneSelectInside"));
+ }
return false;
}
if (subzones.containsKey(name)) {
- if (player != null)
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("SubzoneExists", ChatColor.YELLOW + 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.hasResidencePermission(player, true)) {
if (!this.perms.playerHas(player.getName(), "subzone", this.perms.playerHas(player.getName(), "admin", false))) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("NoPermission"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission"));
return false;
}
- PermissionGroup group = Residence.getPermissionManager().getGroup(player);
+ }
+ final PermissionGroup group = plugin.getPermissionManager().getGroup(player);
if (this.getZoneDepth() >= group.getMaxSubzoneDepth()) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("SubzoneMaxDepth"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SubzoneMaxDepth"));
return false;
}
}
- CuboidArea newArea = new CuboidArea(loc1, loc2);
- Set> set = subzones.entrySet();
- for (Entry resEntry : set) {
- ClaimedResidence res = resEntry.getValue();
+ 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 + Residence.getLanguage().getPhrase("SubzoneCollide", ChatColor.YELLOW + resEntry.getKey()));
+ 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(owner, perms.getWorld(), this);
+ newres = new ClaimedResidence(plugin, owner, perms.getWorld(), this);
newres.addArea(player, newArea, name, resadmin);
} else {
- newres = new ClaimedResidence(owner, perms.getWorld(), this);
+ newres = new ClaimedResidence(plugin, owner, perms.getWorld(), this);
newres.addArea(newArea, name);
}
if (newres.getAreaCount() != 0) {
newres.getPermissions().applyDefaultFlags();
if (player != null) {
- PermissionGroup group = Residence.getPermissionManager().getGroup(player);
+ final PermissionGroup group = plugin.getPermissionManager().getGroup(player);
newres.setEnterMessage(group.getDefaultEnterMessage());
newres.setLeaveMessage(group.getDefaultLeaveMessage());
}
- if (Residence.getConfigManager().flagsInherit())
+ if (plugin.getConfigManager().flagsInherit()) {
newres.getPermissions().setParent(perms);
+ }
subzones.put(name, newres);
- if (player != null)
- player.sendMessage(ChatColor.GREEN + Residence.getLanguage().getPhrase("SubzoneCreate", ChatColor.YELLOW + name));
+ if (player != null) {
+ player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("SubzoneCreate", ChatColor.YELLOW + name));
+ }
return true;
} else {
- if (player != null)
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("SubzoneCreateFail", ChatColor.YELLOW + name));
+ if (player != null) {
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SubzoneCreateFail", ChatColor.YELLOW + name));
+ }
return false;
}
}
- public boolean addSubzone(String name, Location loc1, Location loc2) {
+ public boolean addSubzone(final String name, final Location loc1, final Location loc2) {
return this.addSubzone(null, loc1, loc2, name, true);
}
- public boolean checkCollision(CuboidArea area) {
- Set set = areas.keySet();
- for (String key : set) {
- CuboidArea checkarea = areas.get(key);
- if (checkarea != null)
- if (checkarea.checkCollision(area))
+ 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(Location loc) {
- Collection keys = areas.values();
- for (CuboidArea key : keys)
+ public boolean containsLoc(final Location loc) {
+ final Collection keys = areas.values();
+ for (final CuboidArea key : keys) {
if (key.containsLoc(loc)) {
- if (parent != null)
+ if (parent != null) {
return parent.containsLoc(loc);
+ }
return true;
}
+ }
return false;
}
- public CuboidArea getArea(String name) {
+ public CuboidArea getArea(final String name) {
return areas.get(name);
}
public CuboidArea[] getAreaArray() {
- CuboidArea[] temp = new CuboidArea[areas.size()];
+ final CuboidArea[] temp = new CuboidArea[areas.size()];
int i = 0;
- for (CuboidArea area : areas.values()) {
+ for (final CuboidArea area : areas.values()) {
temp[i] = area;
i++;
}
return temp;
}
- public CuboidArea getAreaByLoc(Location loc) {
- for (CuboidArea thisarea : areas.values())
- if (thisarea.containsLoc(loc))
+ public CuboidArea getAreaByLoc(final Location loc) {
+ for (final CuboidArea thisarea : areas.values()) {
+ if (thisarea.containsLoc(loc)) {
return thisarea;
+ }
+ }
return null;
}
@@ -321,17 +357,19 @@ public class ClaimedResidence {
return areas.size();
}
- public String getAreaIDbyLoc(Location loc) {
- for (Entry area : areas.entrySet())
- if (area.getValue().containsLoc(loc))
+ 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() {
- String arealist[] = new String[areas.size()];
+ final String arealist[] = new String[areas.size()];
int i = 0;
- for (Entry entry : areas.entrySet()) {
+ for (final Entry entry : areas.entrySet()) {
arealist[i] = entry.getKey();
i++;
}
@@ -359,17 +397,18 @@ public class ClaimedResidence {
}
public String getName() {
- return Residence.getResidenceManager().getNameByRes(this);
+ return plugin.getResidenceManager().getNameByRes(this);
}
@SuppressWarnings("deprecation")
- public Location getOutsideFreeLoc(Location insideLoc) {
- int maxIt = 100;
- CuboidArea area = this.getAreaByLoc(insideLoc);
- if (area == null)
+ public Location getOutsideFreeLoc(final Location insideLoc) {
+ final int maxIt = 100;
+ final CuboidArea area = this.getAreaByLoc(insideLoc);
+ if (area == null) {
return insideLoc;
- Location highLoc = area.getHighLoc();
- Location newLoc = new Location(highLoc.getWorld(), highLoc.getBlockX(), highLoc.getBlockY(), highLoc.getBlockZ());
+ }
+ 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) {
@@ -383,15 +422,17 @@ public class ClaimedResidence {
newLoc.setY(newLoc.getY() - 1);
lowLoc.setY(lowLoc.getY() - 1);
}
- if (newLoc.getBlock().getTypeId() == 0 && lowLoc.getBlock().getTypeId() != 0)
+ if (newLoc.getBlock().getTypeId() == 0 && lowLoc.getBlock().getTypeId() != 0) {
found = true;
+ }
}
- if (found)
+ if (found) {
return newLoc;
- else {
- World world = Residence.getServ().getWorld(perms.getWorld());
- if (world != null)
+ } else {
+ final World world = Bukkit.getServer().getWorld(perms.getWorld());
+ if (world != null) {
return world.getSpawnLocation();
+ }
return insideLoc;
}
}
@@ -409,100 +450,116 @@ public class ClaimedResidence {
}
public ArrayList getPlayersInResidence() {
- ArrayList within = new ArrayList();
- for (Player player : Bukkit.getServer().getOnlinePlayers())
- if (this.containsLoc(player.getLocation()))
+ final ArrayList within = new ArrayList();
+ for (final Player player : Bukkit.getServer().getOnlinePlayers()) {
+ if (this.containsLoc(player.getLocation())) {
within.add(player);
+ }
+ }
return within;
}
- public ClaimedResidence getSubzone(String subzonename) {
- if (!subzonename.contains("."))
+ public ClaimedResidence getSubzone(final String subzonename) {
+ if (!subzonename.contains(".")) {
return subzones.get(subzonename);
- String split[] = subzonename.split("\\.");
+ }
+ final String split[] = subzonename.split("\\.");
ClaimedResidence get = subzones.get(split[0]);
for (int i = 1; i < split.length; i++) {
- if (get == null)
+ if (get == null) {
return null;
+ }
get = get.getSubzone(split[i]);
}
return get;
}
- public ClaimedResidence getSubzoneByLoc(Location loc) {
- Set> set = subzones.entrySet();
+ public ClaimedResidence getSubzoneByLoc(final Location loc) {
+ final Set> set = subzones.entrySet();
boolean found = false;
ClaimedResidence res = null;
- for (Entry entry : set) {
+ for (final Entry entry : set) {
res = entry.getValue();
if (res.containsLoc(loc)) {
found = true;
break;
}
}
- if (!found)
+ if (!found) {
return null;
- if (res == null)
+ }
+ if (res == null) {
return null;
- ClaimedResidence subrez = res.getSubzoneByLoc(loc);
- if (subrez == null)
+ }
+ final ClaimedResidence subrez = res.getSubzoneByLoc(loc);
+ if (subrez == null) {
return res;
+ }
return subrez;
}
public String[] getSubzoneList() {
- ArrayList zones = new ArrayList();
- Set set = subzones.keySet();
- for (String key : set)
- if (key != null)
+ 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(Location loc) {
- Set> set = subzones.entrySet();
+ public String getSubzoneNameByLoc(final Location loc) {
+ final Set> set = subzones.entrySet();
ClaimedResidence res = null;
String key = null;
- for (Entry entry : set) {
+ for (final Entry entry : set) {
res = entry.getValue();
if (res.containsLoc(loc)) {
key = entry.getKey();
break;
}
}
- if (key == null)
+ if (key == null) {
return null;
- if (res == null)
+ }
+ if (res == null) {
return null;
- String subname = res.getSubzoneNameByLoc(loc);
- if (subname != null)
+ }
+ final String subname = res.getSubzoneNameByLoc(loc);
+ if (subname != null) {
return key + "." + subname;
+ }
return key;
}
- public String getSubzoneNameByRes(ClaimedResidence res) {
- Set> set = subzones.entrySet();
- for (Entry entry : set) {
- if (entry.getValue() == res)
+ public String getSubzoneNameByRes(final ClaimedResidence res) {
+ final Set> set = subzones.entrySet();
+ for (final Entry entry : set) {
+ if (entry.getValue() == res) {
return entry.getKey();
- String n = entry.getValue().getSubzoneNameByRes(res);
- if (n != null)
+ }
+ final String n = entry.getValue().getSubzoneNameByRes(res);
+ if (n != null) {
return entry.getKey() + "." + n;
+ }
}
return null;
}
public ClaimedResidence getTopParent() {
- if (parent == null)
+ if (parent == null) {
return this;
+ }
return parent.getTopParent();
}
public long getTotalSize() {
- Collection set = areas.values();
+ final Collection set = areas.values();
long size = 0;
- for (CuboidArea entry : set)
+ for (final CuboidArea entry : set) {
size = size + entry.getSize();
+ }
return size;
}
@@ -521,272 +578,296 @@ public class ClaimedResidence {
}
public String[] listSubzones() {
- String list[] = new String[subzones.size()];
+ final String list[] = new String[subzones.size()];
int i = 0;
- for (String res : subzones.keySet()) {
+ for (final String res : subzones.keySet()) {
list[i] = res;
i++;
}
return list;
}
- public void printAdvancedAreaList(Player player, int page) {
- ArrayList temp = new ArrayList();
- for (Entry entry : areas.entrySet()) {
- CuboidArea a = entry.getValue();
- Location h = a.getHighLoc();
- Location l = a.getLowLoc();
+ 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(player, Residence.getLanguage().getPhrase("PhysicalAreas"), temp, page);
+ InformationPager.printInfo(plugin, player, plugin.getLanguage().getPhrase("PhysicalAreas"), temp, page);
}
- public void printAreaList(Player player, int page) {
- ArrayList temp = new ArrayList();
- for (String area : areas.keySet())
+ 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(player, Residence.getLanguage().getPhrase("PhysicalAreas"), temp, page);
+ }
+ InformationPager.printInfo(plugin, player, plugin.getLanguage().getPhrase("PhysicalAreas"), temp, page);
}
- public void printSubzoneList(Player player, int page) {
- ArrayList temp = new ArrayList();
- for (Entry sz : subzones.entrySet())
- temp.add(ChatColor.GREEN + sz.getKey() + ChatColor.YELLOW + " - " + Residence.getLanguage().getPhrase("Owner") + ": " + sz.getValue().getOwner());
- InformationPager.printInfo(player, Residence.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() {
- String name = getName();
+ final String name = getName();
if (name != null) {
- Residence.getResidenceManager().removeResidence(name);
- Residence.getResidenceManager().removeChunkList(name);
+ plugin.getResidenceManager().removeResidence(name);
+ plugin.getResidenceManager().removeChunkList(name);
}
}
- public void removeArea(Player player, String id, boolean resadmin) {
+ public void removeArea(final Player player, final String id, final boolean resadmin) {
if (this.getPermissions().hasResidencePermission(player, true) || resadmin) {
if (!areas.containsKey(id)) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("AreaNonExist"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaNonExist"));
return;
}
- if (areas.size() == 1 && !Residence.getConfigManager().allowEmptyResidences()) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("AreaRemoveLast"));
+ if (areas.size() == 1 && !plugin.getConfigManager().allowEmptyResidences()) {
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaRemoveLast"));
return;
}
removeArea(id);
- player.sendMessage(ChatColor.GREEN + Residence.getLanguage().getPhrase("AreaRemove"));
- } else
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("NoPermission"));
+ player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("AreaRemove"));
+ } else {
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission"));
+ }
}
- public void removeArea(String id) {
- Residence.getResidenceManager().removeChunkList(getName());
+ public void removeArea(final String id) {
+ plugin.getResidenceManager().removeChunkList(getName());
areas.remove(id);
- Residence.getResidenceManager().calculateChunks(getName());
+ plugin.getResidenceManager().calculateChunks(getName());
}
- public boolean removeSubzone(Player player, String name, boolean resadmin) {
- ClaimedResidence res = subzones.get(name);
+ 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 + Residence.getLanguage().getPhrase("NoPermission"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission"));
return false;
}
subzones.remove(name);
- if (player != null)
- player.sendMessage(ChatColor.GREEN + Residence.getLanguage().getPhrase("SubzoneRemove", ChatColor.YELLOW + name + ChatColor.GREEN));
+ if (player != null) {
+ player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("SubzoneRemove", ChatColor.YELLOW + name + ChatColor.GREEN));
+ }
return true;
}
- public boolean removeSubzone(String name) {
+ public boolean removeSubzone(final String name) {
return this.removeSubzone(null, name, true);
}
- public boolean renameArea(Player player, String oldName, String newName, boolean resadmin) {
- if (!Residence.validName(newName)) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("InvalidNameCharacters"));
+ 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 + Residence.getLanguage().getPhrase("AreaExists"));
+ if (player != null) {
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaExists"));
+ }
return false;
}
- CuboidArea area = areas.get(oldName);
+ final CuboidArea area = areas.get(oldName);
if (area == null) {
- if (player != null)
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("AreaInvalidName"));
+ 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 + Residence.getLanguage().getPhrase("AreaRename", oldName + "." + newName));
+ if (player != null) {
+ player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("AreaRename", oldName + "." + newName));
+ }
return true;
} else {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("NoPermission"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission"));
return false;
}
}
- public boolean renameArea(String oldName, String newName) {
+ public boolean renameArea(final String oldName, final String newName) {
return this.renameArea(null, oldName, newName, true);
}
- public boolean renameSubzone(Player player, String oldName, String newName, boolean resadmin) {
- if (!Residence.validName(newName)) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("InvalidNameCharacters"));
+ 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;
}
- ClaimedResidence res = subzones.get(oldName);
+ final ClaimedResidence res = subzones.get(oldName);
if (res == null) {
- if (player != null)
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("InvalidSubzone"));
+ 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 + Residence.getLanguage().getPhrase("NoPermission"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission"));
return false;
}
if (subzones.containsKey(newName)) {
- if (player != null)
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("SubzoneExists", ChatColor.YELLOW + 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 + Residence.getLanguage().getPhrase("SubzoneRename", oldName + "." + newName));
+ if (player != null) {
+ player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("SubzoneRename", oldName + "." + newName));
+ }
return true;
}
- public boolean renameSubzone(String oldName, String newName) {
+ public boolean renameSubzone(final String oldName, final String newName) {
return this.renameSubzone(null, oldName, newName, true);
}
- public boolean replaceArea(CuboidArea neware, String name) {
+ public boolean replaceArea(final CuboidArea neware, final String name) {
return this.replaceArea(null, neware, name, true);
}
- public boolean replaceArea(Player player, CuboidArea newarea, String name, boolean resadmin) {
+ 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 + Residence.getLanguage().getPhrase("AreaNonExist"));
+ if (player != null) {
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaNonExist"));
+ }
return false;
}
- CuboidArea oldarea = areas.get(name);
+ final CuboidArea oldarea = areas.get(name);
if (!newarea.getWorld().getName().equalsIgnoreCase(perms.getWorld())) {
- if (player != null)
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("AreaDiffWorld"));
+ if (player != null) {
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaDiffWorld"));
+ }
return false;
}
if (parent == null) {
- String collideResidence = Residence.getResidenceManager().checkAreaCollision(newarea, this);
+ final String collideResidence = plugin.getResidenceManager().checkAreaCollision(newarea, this);
if (collideResidence != null) {
- if (player != null)
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("AreaCollision", ChatColor.YELLOW + collideResidence));
+ if (player != null) {
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaCollision", ChatColor.YELLOW + collideResidence));
+ }
return false;
}
} else {
- String[] szs = parent.listSubzones();
- for (String sz : szs) {
- ClaimedResidence res = parent.getSubzone(sz);
- if (res != null && res != this)
+ 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 + Residence.getLanguage().getPhrase("AreaSubzoneCollision", ChatColor.YELLOW + sz));
+ 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
- String[] szs = listSubzones();
- for (String sz : szs) {
- ClaimedResidence res = getSubzone(sz);
+ final String[] szs = listSubzones();
+ for (final String sz : szs) {
+ final ClaimedResidence res = getSubzone(sz);
if (res != null && res != this) {
- String[] areas = res.getAreaList();
- for (String area : areas)
+ final String[] areas = res.getAreaList();
+ for (final String area : areas) {
if (!newarea.isAreaWithinArea(res.getArea(area))) {
boolean good = false;
- for (CuboidArea arae : getAreaArray())
- if (arae != oldarea && arae.isAreaWithinArea(res.getArea(area)))
+ for (final CuboidArea arae : getAreaArray()) {
+ if (arae != oldarea && arae.isAreaWithinArea(res.getArea(area))) {
good = true;
- if (!good)
+ }
+ }
+ if (!good) {
res.removeArea(area);
+ }
}
- if (res.getAreaArray().length == 0)
+ }
+ if (res.getAreaArray().length == 0) {
removeSubzone(sz);
+ }
}
}
if (!resadmin && player != null) {
if (!this.perms.hasResidencePermission(player, true)) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("NoPermission"));
+ 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 + Residence.getLanguage().getPhrase("AreaNotWithinParent"));
+ 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 + Residence.getLanguage().getPhrase("ParentNoPermission"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ParentNoPermission"));
return false;
}
}
- PermissionGroup group = Residence.getPermissionManager().getGroup(player);
+ final PermissionGroup group = plugin.getPermissionManager().getGroup(player);
if (!group.canCreateResidences() && !player.hasPermission("residence.create")) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("NoPermission"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission"));
return false;
}
if (!group.inLimits(newarea)) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("AreaSizeLimit"));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaSizeLimit"));
return false;
}
if (group.getMinHeight() > newarea.getLowLoc().getBlockY()) {
- player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("AreaLowLimit", ChatColor.YELLOW + String.format("%d", group.getMinHeight())));
+ 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 + Residence.getLanguage().getPhrase("AreaHighLimit", ChatColor.YELLOW + String.format("%d", group.getMaxHeight())));
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaHighLimit", ChatColor.YELLOW + String.format("%d", group.getMaxHeight())));
return false;
}
- if (parent == null && Residence.getConfigManager().enableEconomy()) {
- int chargeamount = (int) Math.ceil((newarea.getSize() - oldarea.getSize()) * group.getCostPerBlock());
- if (chargeamount > 0)
- if (!TransactionManager.chargeEconomyMoney(player, chargeamount))
+ 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;
+ }
+ }
}
}
- Residence.getResidenceManager().removeChunkList(getName());
+ plugin.getResidenceManager().removeChunkList(getName());
areas.remove(name);
areas.put(name, newarea);
- Residence.getResidenceManager().calculateChunks(getName());
- player.sendMessage(ChatColor.GREEN + Residence.getLanguage().getPhrase("AreaUpdate"));
+ plugin.getResidenceManager().calculateChunks(getName());
+ player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("AreaUpdate"));
return true;
}
public Map save() {
- Map root = new HashMap