9
0
mirror of https://github.com/WiIIiam278/HuskSync.git synced 2025-12-23 08:39:19 +00:00

fix: cache not cleared on /userdata delete, close #245

This commit is contained in:
William278
2024-02-13 14:38:19 +00:00
parent 19636d9447
commit 131a364f53
2 changed files with 14 additions and 1 deletions

View File

@@ -112,13 +112,14 @@ public class UserDataCommand extends Command implements TabProvider {
return; return;
} }
// Delete user data by specified UUID // Delete user data by specified UUID and clear their data cache
final UUID version = optionalUuid.get(); final UUID version = optionalUuid.get();
if (!plugin.getDatabase().deleteSnapshot(user, version)) { if (!plugin.getDatabase().deleteSnapshot(user, version)) {
plugin.getLocales().getLocale("error_invalid_version_uuid") plugin.getLocales().getLocale("error_invalid_version_uuid")
.ifPresent(executor::sendMessage); .ifPresent(executor::sendMessage);
return; return;
} }
plugin.getRedisManager().clearUserData(user);
plugin.getLocales().getLocale("data_deleted", plugin.getLocales().getLocale("data_deleted",
version.toString().split("-")[0], version.toString().split("-")[0],

View File

@@ -255,6 +255,18 @@ public class RedisManager extends JedisPubSub {
} }
} }
@Blocking
public void clearUserData(@NotNull User user) {
try (Jedis jedis = jedisPool.getResource()) {
jedis.del(
getKey(RedisKeyType.LATEST_SNAPSHOT, user.getUuid(), clusterId)
);
plugin.debug(String.format("[%s] Cleared %s on Redis", user.getUsername(), RedisKeyType.LATEST_SNAPSHOT));
} catch (Throwable e) {
plugin.log(Level.SEVERE, "An exception occurred clearing user data on Redis", e);
}
}
@Blocking @Blocking
public void setUserCheckedOut(@NotNull User user, boolean checkedOut) { public void setUserCheckedOut(@NotNull User user, boolean checkedOut) {
try (Jedis jedis = jedisPool.getResource()) { try (Jedis jedis = jedisPool.getResource()) {