mirror of
https://github.com/WiIIiam278/HuskSync.git
synced 2025-12-25 17:49:20 +00:00
Prevent synchronisation of newer user data formats, tweak error messages
This commit is contained in:
@@ -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<>() {{
|
||||
|
||||
Reference in New Issue
Block a user