Prevent synchronisation of newer user data formats, tweak error messages

feat/data-edit-commands
William 3 years ago
parent fc6a760848
commit e4262abfd7

@ -15,7 +15,7 @@ public class UserData {
* </p>
* This value is to be incremented whenever the format changes.
*/
private static final int CURRENT_FORMAT_VERSION = 1;
public static final int CURRENT_FORMAT_VERSION = 1;
/**
* Stores the user's status data, including health, food, etc.
@ -136,4 +136,8 @@ public class UserData {
return minecraftVersion;
}
public int getFormatVersion() {
return formatVersion;
}
}

@ -175,13 +175,22 @@ public abstract class OnlineUser extends User {
@NotNull EventCannon eventCannon, @NotNull Logger logger,
@NotNull Version serverMinecraftVersion) {
return CompletableFuture.supplyAsync(() -> {
// Prevent synchronizing newer versions of Minecraft
// Prevent synchronising user data from newer versions of Minecraft
if (Version.minecraftVersion(data.getMinecraftVersion()).compareTo(serverMinecraftVersion) > 0) {
logger.log(Level.SEVERE, "Cannot set data for player " + username + " with Minecraft version \""
+ data.getMinecraftVersion() + "\" because it is newer than the server's version, \""
+ serverMinecraftVersion + "\"");
logger.log(Level.SEVERE, "Cannot set data for " + username +
" because the Minecraft version of their user data (" + data.getMinecraftVersion() +
") is newer than the server's Minecraft version (" + serverMinecraftVersion + ").");
return false;
}
// Prevent synchronising user data from newer versions of the plugin
if (data.getFormatVersion() > UserData.CURRENT_FORMAT_VERSION) {
logger.log(Level.SEVERE, "Cannot set data for " + username +
" because the format version of their user data (v" + data.getFormatVersion() +
") is newer than the current format version (v" + UserData.CURRENT_FORMAT_VERSION + ").");
return false;
}
// Fire the PreSyncEvent
final PreSyncEvent preSyncEvent = (PreSyncEvent) eventCannon.firePreSyncEvent(this, data).join();
final UserData finalData = preSyncEvent.getUserData();
final List<CompletableFuture<Void>> dataSetOperations = new ArrayList<>() {{

Loading…
Cancel
Save