44import cc .carm .plugin .ultradepository .data .UserData ;
55import cc .carm .plugin .ultradepository .storage .DataStorage ;
66import cc .carm .plugin .ultradepository .util .DateIntUtil ;
7+ import org .bukkit .Bukkit ;
78import org .bukkit .entity .Player ;
89import org .jetbrains .annotations .NotNull ;
910import org .jetbrains .annotations .Nullable ;
@@ -20,6 +21,27 @@ public HashMap<UUID, UserData> getDataCache() {
2021 return dataCache ;
2122 }
2223
24+ public void loadPlayersData () {
25+ if (Bukkit .getOnlinePlayers ().size () < 1 ) return ;
26+
27+ UltraDepository .getInstance ().log ("加载当前在线玩家数据..." );
28+ // 用于热加载时重载玩家数据。
29+ Bukkit .getOnlinePlayers ().forEach (player -> loadDataCache (player .getUniqueId ()));
30+ }
31+
32+ public @ NotNull UserData loadDataCache (@ NotNull UUID userUUID ) {
33+ UserData data = loadData (userUUID );
34+ UltraDepository .getUserManager ().getDataCache ().put (userUUID , data );
35+ return data ;
36+ }
37+
38+
39+ public boolean removeDataCache (@ NotNull UUID userUUID ) {
40+ boolean contains = getDataCache ().containsKey (userUUID );
41+ getDataCache ().remove (userUUID );
42+ return contains ;
43+ }
44+
2345 public @ Nullable UserData getData (@ NotNull UUID userUUID ) {
2446 return getDataCache ().get (userUUID );
2547 }
@@ -56,7 +78,7 @@ public void unloadData(UUID uuid, boolean save) {
5678 UserData data = getData (uuid );
5779 if (data == null ) return ;
5880 if (save ) saveData (data );
59- dataCache . remove (uuid );
81+ removeDataCache (uuid );
6082 }
6183
6284 public void saveData (UserData data ) {
0 commit comments