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

feat/data-edit-commands 3.3.2
William278 1 year ago
parent 19636d9447
commit 131a364f53

@ -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],

@ -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()) {

Loading…
Cancel
Save