Skip to content

Commit 1e2d1a4

Browse files
committed
fix guid resolver
1 parent 4d57c62 commit 1e2d1a4

File tree

4 files changed

+24
-18
lines changed

4 files changed

+24
-18
lines changed

playersql/src/main/java/com/mengcraft/playersql/EventExecutor.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.mengcraft.playersql;
22

3+
import com.mengcraft.playersql.internal.GuidResolveService;
34
import com.mengcraft.playersql.lib.BiRegistry;
45
import com.mengcraft.playersql.lib.CustomInventory;
56
import com.mengcraft.playersql.peer.DataRequest;
@@ -102,16 +103,17 @@ public void handle(PlayerJoinEvent event) {
102103

103104
manager.lockUser(player);
104105
UUID id = player.getUniqueId();
105-
PlayerData pend = (PlayerData) pending.remove(id);
106+
Object pend = pending.remove(id);
106107
if (pend == null) {
107108
FetchUserTask task = new FetchUserTask(player);
108109
pending.put(id, task);
109110
task.runTaskTimerAsynchronously(main, Config.SYN_DELAY, Config.SYN_DELAY);
110-
} else {
111+
} else if (pend instanceof PlayerData) {
111112
main.debug("process pending data_buf on join event");
113+
UUID guid = GuidResolveService.getService().getGuid(player);
112114
main.run(() -> {
113-
manager.pend(player, pend);
114-
runAsync(() -> manager.updateDataLock(id, true));
115+
manager.pend(player, (PlayerData) pend);
116+
runAsync(() -> manager.updateDataLock(guid, true));
115117
});
116118
}
117119
}
@@ -161,7 +163,8 @@ public void handle(PlayerQuitEvent event) {
161163
runAsync(() -> manager.saveUser(data, false)).thenRun(() -> main.run(() -> manager.unlockUser(player)));
162164
}
163165
} else {
164-
runAsync(() -> manager.updateDataLock(id, false)).thenRun(() -> main.run(() -> manager.unlockUser(player)));
166+
UUID guid = GuidResolveService.getService().getGuid(player);
167+
runAsync(() -> manager.updateDataLock(guid, false)).thenRun(() -> main.run(() -> manager.unlockUser(player)));
165168
}
166169
pending.remove(id);
167170
LocalDataMgr.quit(player);

playersql/src/main/java/com/mengcraft/playersql/UserManager.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ void onLoadFailed(Player who) {
185185
who.kickPlayer(PluginMain.getMessenger().find("kick_load", "Your game data loading error, please contact the operator"));
186186
} else {
187187
unlockUser(who);
188-
createTask(who.getUniqueId());
188+
createTask(who);
189189
}
190190
}
191191

@@ -261,7 +261,7 @@ private void syncUserdata(Player who, PlayerData data) {
261261
if (Config.SYN_CHEST) {
262262
who.getEnderChest().setContents(toStack(data.getChest()));
263263
}
264-
createTask(who.getUniqueId());
264+
createTask(who);
265265
unlockUser(who);
266266
}
267267

@@ -336,17 +336,17 @@ public void cancelTimerSaver(UUID uuid) {
336336
}
337337
}
338338

339-
public void createTask(UUID who) {
339+
public void createTask(Player player) {
340340
if (Config.DEBUG) {
341-
this.main.log("Scheduling daily save task for user " + who + '.');
341+
this.main.log("Scheduling daily save task for user " + player.getName() + '.');
342342
}
343-
val task = new DailySaveTask(who);
343+
val task = new DailySaveTask(player);
344344
task.runTaskTimer(main, 6000, 6000);
345-
val old = scheduled.put(who, task);
345+
val old = scheduled.put(player.getUniqueId(), task);
346346
if (!nil(old)) {
347347
old.cancel();
348348
if (Config.DEBUG) {
349-
this.main.log("Already scheduled task for user " + who + '!');
349+
this.main.log("Already scheduled task for user " + player.getName() + '!');
350350
}
351351
}
352352
}

playersql/src/main/java/com/mengcraft/playersql/task/DailySaveTask.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@
22

33
import com.mengcraft.playersql.Config;
44
import com.mengcraft.playersql.PlayerData;
5+
import com.mengcraft.playersql.PluginMain;
56
import com.mengcraft.playersql.UserManager;
67
import lombok.RequiredArgsConstructor;
8+
9+
import org.bukkit.entity.Player;
710
import org.bukkit.scheduler.BukkitRunnable;
811

912
import java.util.UUID;
@@ -17,23 +20,23 @@
1720
public class DailySaveTask extends BukkitRunnable {
1821

1922
private UserManager manager = UserManager.INSTANCE;
20-
private final UUID who;
23+
private final Player player;
2124
private int count;
2225

2326
@Override
2427
public void run() {
25-
PlayerData user = manager.getUserData(this.who, false);
28+
PlayerData user = manager.getUserData(player, false);
2629
if (nil(user)) {
2730
if (Config.DEBUG) {
28-
manager.getMain().log("Cancel task for " + who + " offline!");
31+
manager.getMain().log("Cancel task for " + player.getName() + " offline!");
2932
}
3033
cancel();
3134
} else {
3235
this.count++;
3336
if (Config.DEBUG) {
34-
manager.getMain().log("Save user " + this.who + " count " + this.count + '.');
37+
manager.getMain().log("Save user " + player.getName() + " count " + this.count + '.');
3538
}
36-
manager.getMain().runAsync(() -> manager.saveUser(user, true));
39+
PluginMain.runAsync(() -> manager.saveUser(user, true));
3740
}
3841
}
3942

playersql/src/main/java/com/mengcraft/playersql/task/FetchUserTask.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public synchronized void run() {
5757
PluginMain.resetPlayerState(player);
5858
}
5959
manager.unlockUser(player);
60-
manager.createTask(id);
60+
manager.createTask(player);
6161
});
6262

6363
if (Config.DEBUG) {

0 commit comments

Comments
 (0)