From f535e468de6fdb745f8fafa05d9194263590164a Mon Sep 17 00:00:00 2001 From: j502647092 Date: Sun, 8 Nov 2015 00:39:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=BD=93=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=97=B6=E5=85=B3=E6=9C=8D=20=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E7=9A=84=E6=95=B0=E6=8D=AE=E4=B8=A2=E5=A4=B1=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8Dresreload=E5=91=BD=E4=BB=A4!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 4 +- .../cn/citycraft/Residence/ResidenceMain.java | 63 +++++++++---------- 2 files changed, 32 insertions(+), 35 deletions(-) diff --git a/pom.xml b/pom.xml index a540722..2d32f7e 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 cn.citycraft Residence - 2.8.1.0 + 2.8.1.1 Residence 重制版本的领地插件 - 喵♂呜 @@ -55,7 +55,7 @@ http://ci.citycraft.cn:8080 - &e还原protection包路径 &a兼容部分老插件 &c移除冗余Flag... + &4修复当保存数据时关服导致的领地数据丢失&c修复resreload命令... UTF-8 diff --git a/src/main/java/cn/citycraft/Residence/ResidenceMain.java b/src/main/java/cn/citycraft/Residence/ResidenceMain.java index bfae9cd..1bf8588 100644 --- a/src/main/java/cn/citycraft/Residence/ResidenceMain.java +++ b/src/main/java/cn/citycraft/Residence/ResidenceMain.java @@ -92,6 +92,11 @@ public class ResidenceMain extends JavaPlugin { public final static String[] validLanguages = { "English", "Chinese" }; public final static Pattern VER_REGEX = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)"); protected static ResidenceMain instance; + + public static ResidenceMain getInstance() { + return instance; + } + private ConfigManager cmanager; protected DataBackup backup; protected ResidenceBlockListener blistener; @@ -102,7 +107,6 @@ public class ResidenceMain extends JavaPlugin { protected EconomyInterface economy; protected ResidenceEntityListener elistener; protected EntityManager entitymanager; - protected boolean firstenable = true; protected FlagManager fmanager; protected PermissionManager gmanager; protected HandlerMainCommand hdmcnd; @@ -121,11 +125,8 @@ public class ResidenceMain extends JavaPlugin { protected TaskManager taskmanager; protected TransactionManager tmanager; protected boolean useWorldEdit; - protected WorldFlagManager wmanager; - public static ResidenceMain getInstance() { - return instance; - } + protected WorldFlagManager wmanager; public void csm(final String... msgs) { for (final String msg : msgs) { @@ -462,34 +463,30 @@ public class ResidenceMain extends JavaPlugin { taskmanager = new TaskManager(this); } final PluginManager pm = getServer().getPluginManager(); - if (firstenable) { - if (!this.isEnabled()) { - return; - } - FlagPermissions.initValidFlags(); - final Plugin wep = this.getServer().getPluginManager().getPlugin("WorldEdit"); - if (wep != null) { - smanager = new WorldEditSelectionManager(this); - useWorldEdit = true; - this.getLogger().info("发现 WorldEdit 已启用相关支持..."); - } else { - smanager = new SelectionManager(this); - useWorldEdit = false; - } - blistener = new ResidenceBlockListener(this); - plistener = new ResidencePlayerListener(this); - elistener = new ResidenceEntityListener(this); - plistener1_8 = new ResidencePlayerListener_1_8(this); - pm.registerEvents(blistener, this); - pm.registerEvents(plistener, this); - if (is1_8()) { - pm.registerEvents(plistener1_8, this); - } - pm.registerEvents(elistener, this); - firstenable = false; - } else { - plistener = new ResidencePlayerListener(this); + + if (!this.isEnabled()) { + return; } + FlagPermissions.initValidFlags(); + final Plugin wep = this.getServer().getPluginManager().getPlugin("WorldEdit"); + if (wep != null) { + smanager = new WorldEditSelectionManager(this); + useWorldEdit = true; + this.getLogger().info("发现 WorldEdit 已启用相关支持..."); + } else { + smanager = new SelectionManager(this); + useWorldEdit = false; + } + blistener = new ResidenceBlockListener(this); + plistener = new ResidencePlayerListener(this); + elistener = new ResidenceEntityListener(this); + plistener1_8 = new ResidencePlayerListener_1_8(this); + pm.registerEvents(blistener, this); + pm.registerEvents(plistener, this); + if (is1_8()) { + pm.registerEvents(plistener1_8, this); + } + pm.registerEvents(elistener, this); fmanager = new FlagManager(this); fmanager.init(); @@ -573,7 +570,7 @@ public class ResidenceMain extends JavaPlugin { config.save(); } - public void saveYml() throws IOException { + public synchronized void saveYml() throws IOException { final File saveFolder = new File(dataFolder, "Save"); final File worldFolder = new File(saveFolder, "Worlds"); worldFolder.mkdirs();