mirror of
https://github.com/WiIIiam278/HuskSync.git
synced 2025-12-21 07:49:13 +00:00
Hotfix: Fix IllegalArgumentException when attempting to set non-primitive PersistentDataContainer key types.
This commit is contained in:
@@ -26,6 +26,7 @@ import java.util.*;
|
|||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
import java.util.concurrent.atomic.AtomicReference;
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bukkit implementation of an {@link OnlineUser}
|
* Bukkit implementation of an {@link OnlineUser}
|
||||||
@@ -402,10 +403,18 @@ public class BukkitPlayer extends OnlineUser {
|
|||||||
return new PersistentDataContainerData(new HashMap<>());
|
return new PersistentDataContainerData(new HashMap<>());
|
||||||
}
|
}
|
||||||
final HashMap<String, Byte[]> persistentDataMap = new HashMap<>();
|
final HashMap<String, Byte[]> persistentDataMap = new HashMap<>();
|
||||||
for (NamespacedKey key : container.getKeys()) {
|
// Set persistent data keys; ignore keys that we cannot synchronise as byte arrays
|
||||||
persistentDataMap.put(key.toString(), ArrayUtils.toObject(container.get(key, PersistentDataType.BYTE_ARRAY)));
|
for (final NamespacedKey key : container.getKeys()) {
|
||||||
|
try {
|
||||||
|
persistentDataMap.put(key.toString(), ArrayUtils.toObject(container.get(key, PersistentDataType.BYTE_ARRAY)));
|
||||||
|
} catch (IllegalArgumentException | NullPointerException ignored) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return new PersistentDataContainerData(persistentDataMap);
|
return new PersistentDataContainerData(persistentDataMap);
|
||||||
|
}).exceptionally(throwable -> {
|
||||||
|
BukkitHuskSync.getInstance().getLoggingAdapter().log(Level.WARNING, "Could not read " + player.getName() + "'s persistent data map, skipping!");
|
||||||
|
throwable.printStackTrace();
|
||||||
|
return new PersistentDataContainerData(new HashMap<>());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user