Skip to content

Commit afd62a4

Browse files
committed
[v1.3.3] 版本更新
- [A] 支持通过 PlugMan 等插件进行热重载。
1 parent c841a7b commit afd62a4

4 files changed

Lines changed: 35 additions & 10 deletions

File tree

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<groupId>cc.carm.plugin</groupId>
1616
<artifactId>ultradepository</artifactId>
1717
<packaging>jar</packaging>
18-
<version>1.3.2</version>
18+
<version>1.3.3</version>
1919

2020
<name>UltraDepository</name>
2121
<description>超级仓库插件,支持设定不同物品的存储仓库。</description>

src/main/java/cc/carm/plugin/ultradepository/UltraDepository.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,6 @@ protected boolean initialize() {
6060
return false;
6161
}
6262

63-
log("加载用户系统...");
64-
userManager = new UserManager();
65-
6663
log("加载经济系统...");
6764
if (Bukkit.getPluginManager().getPlugin("Vault") != null) {
6865
economyManager = new EconomyManager();
@@ -76,11 +73,15 @@ protected boolean initialize() {
7673
log("加载仓库管理器...");
7774
depositoryManager = new DepositoryManager();
7875
getDepositoryManager().loadDepositories();
79-
GUI.initialize(this);
76+
77+
log("加载用户系统...");
78+
userManager = new UserManager();
79+
8080

8181
log("注册监听器...");
8282
regListener(new UserListener());
8383
regListener(new CollectListener());
84+
GUI.initialize(this);
8485

8586
log("注册指令...");
8687
registerCommand("UltraDepository", new DepositoryCommand());
@@ -107,6 +108,9 @@ protected boolean initialize() {
107108
else return plugin.getDescription().getVersion();
108109
}));
109110
}
111+
112+
getUserManager().loadPlayersData();
113+
110114
return true;
111115
}
112116

@@ -123,6 +127,7 @@ protected void shutdown() {
123127

124128
log("卸载监听器...");
125129
Bukkit.getServicesManager().unregisterAll(this);
130+
126131
}
127132

128133
public static DataStorage getStorage() {

src/main/java/cc/carm/plugin/ultradepository/listener/UserListener.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,13 @@ public void onPreLogin(AsyncPlayerPreLoginEvent event) {
2020
if (event.getLoginResult() != AsyncPlayerPreLoginEvent.Result.ALLOWED) {
2121
return;
2222
}
23-
UUID uuid = event.getUniqueId();
24-
UltraDepository.getUserManager().getDataCache()
25-
.put(uuid, UltraDepository.getUserManager().loadData(uuid));
23+
UltraDepository.getUserManager().loadDataCache(event.getUniqueId());
2624
}
2725

2826
@EventHandler(priority = EventPriority.MONITOR)
2927
public void onPreLoginMonitor(AsyncPlayerPreLoginEvent event) {
3028
if (event.getLoginResult() != AsyncPlayerPreLoginEvent.Result.ALLOWED) {
31-
UltraDepository.getUserManager().getDataCache().remove(event.getUniqueId());
29+
UltraDepository.getUserManager().removeDataCache(event.getUniqueId());
3230
}
3331
}
3432

src/main/java/cc/carm/plugin/ultradepository/manager/UserManager.java

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import cc.carm.plugin.ultradepository.data.UserData;
55
import cc.carm.plugin.ultradepository.storage.DataStorage;
66
import cc.carm.plugin.ultradepository.util.DateIntUtil;
7+
import org.bukkit.Bukkit;
78
import org.bukkit.entity.Player;
89
import org.jetbrains.annotations.NotNull;
910
import 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

Comments
 (0)