diff --git a/pom.xml b/pom.xml
index 0b0f14f..7d54459 100644
--- a/pom.xml
+++ b/pom.xml
@@ -15,7 +15,7 @@
cc.carm.plugin
ultradepository
jar
- 1.3.2
+ 1.3.3
UltraDepository
超级仓库插件,支持设定不同物品的存储仓库。
diff --git a/src/main/java/cc/carm/plugin/ultradepository/UltraDepository.java b/src/main/java/cc/carm/plugin/ultradepository/UltraDepository.java
index ca90c32..e54fa24 100644
--- a/src/main/java/cc/carm/plugin/ultradepository/UltraDepository.java
+++ b/src/main/java/cc/carm/plugin/ultradepository/UltraDepository.java
@@ -60,9 +60,6 @@ public class UltraDepository extends EasyPlugin {
return false;
}
- log("加载用户系统...");
- userManager = new UserManager();
-
log("加载经济系统...");
if (Bukkit.getPluginManager().getPlugin("Vault") != null) {
economyManager = new EconomyManager();
@@ -76,11 +73,15 @@ public class UltraDepository extends EasyPlugin {
log("加载仓库管理器...");
depositoryManager = new DepositoryManager();
getDepositoryManager().loadDepositories();
- GUI.initialize(this);
+
+ log("加载用户系统...");
+ userManager = new UserManager();
+
log("注册监听器...");
regListener(new UserListener());
regListener(new CollectListener());
+ GUI.initialize(this);
log("注册指令...");
registerCommand("UltraDepository", new DepositoryCommand());
@@ -107,6 +108,9 @@ public class UltraDepository extends EasyPlugin {
else return plugin.getDescription().getVersion();
}));
}
+
+ getUserManager().loadPlayersData();
+
return true;
}
@@ -123,6 +127,7 @@ public class UltraDepository extends EasyPlugin {
log("卸载监听器...");
Bukkit.getServicesManager().unregisterAll(this);
+
}
public static DataStorage getStorage() {
diff --git a/src/main/java/cc/carm/plugin/ultradepository/listener/UserListener.java b/src/main/java/cc/carm/plugin/ultradepository/listener/UserListener.java
index eeb9480..c70ba63 100644
--- a/src/main/java/cc/carm/plugin/ultradepository/listener/UserListener.java
+++ b/src/main/java/cc/carm/plugin/ultradepository/listener/UserListener.java
@@ -20,15 +20,13 @@ public class UserListener implements Listener {
if (event.getLoginResult() != AsyncPlayerPreLoginEvent.Result.ALLOWED) {
return;
}
- UUID uuid = event.getUniqueId();
- UltraDepository.getUserManager().getDataCache()
- .put(uuid, UltraDepository.getUserManager().loadData(uuid));
+ UltraDepository.getUserManager().loadDataCache(event.getUniqueId());
}
@EventHandler(priority = EventPriority.MONITOR)
public void onPreLoginMonitor(AsyncPlayerPreLoginEvent event) {
if (event.getLoginResult() != AsyncPlayerPreLoginEvent.Result.ALLOWED) {
- UltraDepository.getUserManager().getDataCache().remove(event.getUniqueId());
+ UltraDepository.getUserManager().removeDataCache(event.getUniqueId());
}
}
diff --git a/src/main/java/cc/carm/plugin/ultradepository/manager/UserManager.java b/src/main/java/cc/carm/plugin/ultradepository/manager/UserManager.java
index f0f6619..bc4d359 100644
--- a/src/main/java/cc/carm/plugin/ultradepository/manager/UserManager.java
+++ b/src/main/java/cc/carm/plugin/ultradepository/manager/UserManager.java
@@ -4,6 +4,7 @@ import cc.carm.plugin.ultradepository.UltraDepository;
import cc.carm.plugin.ultradepository.data.UserData;
import cc.carm.plugin.ultradepository.storage.DataStorage;
import cc.carm.plugin.ultradepository.util.DateIntUtil;
+import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -20,6 +21,27 @@ public class UserManager {
return dataCache;
}
+ public void loadPlayersData() {
+ if (Bukkit.getOnlinePlayers().size() < 1) return;
+
+ UltraDepository.getInstance().log("加载当前在线玩家数据...");
+ // 用于热加载时重载玩家数据。
+ Bukkit.getOnlinePlayers().forEach(player -> loadDataCache(player.getUniqueId()));
+ }
+
+ public @NotNull UserData loadDataCache(@NotNull UUID userUUID) {
+ UserData data = loadData(userUUID);
+ UltraDepository.getUserManager().getDataCache().put(userUUID, data);
+ return data;
+ }
+
+
+ public boolean removeDataCache(@NotNull UUID userUUID) {
+ boolean contains = getDataCache().containsKey(userUUID);
+ getDataCache().remove(userUUID);
+ return contains;
+ }
+
public @Nullable UserData getData(@NotNull UUID userUUID) {
return getDataCache().get(userUUID);
}
@@ -56,7 +78,7 @@ public class UserManager {
UserData data = getData(uuid);
if (data == null) return;
if (save) saveData(data);
- dataCache.remove(uuid);
+ removeDataCache(uuid);
}
public void saveData(UserData data) {