Skip to content

Commit

Permalink
fix: Save only loaded users
Browse files Browse the repository at this point in the history
  • Loading branch information
GeorgeV220 committed Feb 5, 2023
1 parent b9a9b64 commit e9bf334
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 41 deletions.
5 changes: 2 additions & 3 deletions core/src/main/java/com/georgev22/skinoverlay/SkinOverlay.java
Original file line number Diff line number Diff line change
Expand Up @@ -124,14 +124,13 @@ public void onEnable() {
} catch (Exception e) {
e.printStackTrace();
}
if(OptionsUtil.UPDATER.getBooleanValue()) {
if (OptionsUtil.UPDATER.getBooleanValue()) {
new Updater();
}
}

public void onDisable() {
onlinePlayers().forEach(player -> {
UserData userData = UserData.getUser(player.playerUUID());
UserData.getLoadedUsers().forEach((userData, user) -> {
userData.save(false, new Utils.Callback<>() {
@Override
public Boolean onSuccess() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,49 +50,52 @@ public void onHelp(final @NotNull CommandIssuer issuer) {
@CommandAlias("skinoverlayreload|soverlayreload|skinoreload|sreload")
@CommandPermission("skinoverlay.reload")
public void reload(final @NotNull CommandIssuer issuer) {
UserData.getAllUsersMap().forEach((uuid, skinUser) ->
UserData.getUser(uuid).save(false, new Utils.Callback<>() {
@Override
public Boolean onSuccess() {
final AtomicBoolean atomicBoolean = new AtomicBoolean(false);
try {
UserData.getUser(uuid).load(new Utils.Callback<>() {
@Override
public Boolean onSuccess() {
atomicBoolean.set(true);
Utilities.updateSkin(skinUser.getPlayer().orElseThrow(), true, false);
return atomicBoolean.get();
}
UserData.getLoadedUsers().forEach((userData, user) -> {
userData.save(false, new Utils.Callback<>() {
@Override
public Boolean onSuccess() {
final AtomicBoolean atomicBoolean = new AtomicBoolean(false);
try {
UserData.getLoadedUsers().remove(userData);
userData.load(new Utils.Callback<>() {
@Override
public Boolean onSuccess() {
atomicBoolean.set(true);
Utilities.updateSkin(user.getPlayer().orElseThrow(), true, false);
UserData.getLoadedUsers().append(userData, userData.user());
return atomicBoolean.get();
}

@Override
public Boolean onFailure() {
atomicBoolean.set(false);
return atomicBoolean.get();
}
@Override
public Boolean onFailure() {
atomicBoolean.set(false);
return atomicBoolean.get();
}

@Override
public Boolean onFailure(Throwable throwable) {
atomicBoolean.set(false);
return super.onFailure(throwable);
}
});
} catch (Exception e) {
atomicBoolean.set(false);
skinOverlay.getLogger().log(Level.SEVERE, "Error: ", e);
}
return atomicBoolean.get();
@Override
public Boolean onFailure(Throwable throwable) {
atomicBoolean.set(false);
return super.onFailure(throwable);
}
});
} catch (Exception e) {
atomicBoolean.set(false);
skinOverlay.getLogger().log(Level.SEVERE, "Error: ", e);
}
return atomicBoolean.get();
}

@Override
public Boolean onFailure() {
return false;
}
@Override
public Boolean onFailure() {
return false;
}

@Override
public Boolean onFailure(Throwable throwable) {
return super.onFailure(throwable);
}
}));
@Override
public Boolean onFailure(Throwable throwable) {
return super.onFailure(throwable);
}
});
});
skinOverlay.getFileManager().getConfig().reloadFile();
skinOverlay.getFileManager().getData().reloadFile();
skinOverlay.getFileManager().getMessages().reloadFile();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,7 @@ public Boolean onSuccess() {
updateSkin();
}
});
UserData.getLoadedUsers().append(userData, userData.user());
return true;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ public record UserData(User user) {

private static final ObjectMap<UUID, User> allUsersMap = new ConcurrentObjectMap<>();

private static final ObjectMap<UserData, User> loadedUsers = new ConcurrentObjectMap<>();

public UserData(@NotNull User user) {
if (!allUsersMap.containsKey(user.getUniqueId())) {
allUsersMap.append(user.getUniqueId(), new User(user.getUniqueId()));
Expand Down Expand Up @@ -176,6 +178,10 @@ public UserData delete() {
return this;
}

public static ObjectMap<UserData, User> getLoadedUsers() {
return loadedUsers;
}

public static class SQLUserUtils implements IDatabaseType {
@Override
public void save(@NotNull User user) throws SQLException, ClassNotFoundException {
Expand Down

0 comments on commit e9bf334

Please sign in to comment.