Skip to content

Commit

Permalink
Merge branch 'dev/feature' into fix/durability-error
Browse files Browse the repository at this point in the history
  • Loading branch information
APickledWalrus authored Jul 10, 2024
2 parents a6e4943 + 8a5ceae commit 3c3137f
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -43,27 +43,27 @@ public RegistrySerializer(Registry<R> registry) {
@Override
public @NotNull Fields serialize(R o) {
Fields fields = new Fields();
fields.putPrimitive("name", o.getKey().toString());
fields.putObject("name", o.getKey().toString());
return fields;
}

@Override
protected R deserialize(Fields fields) {
try {
String name = fields.getAndRemovePrimitive("name", String.class);
NamespacedKey namespacedKey;
if (!name.contains(":")) {
// Old variables
namespacedKey = NamespacedKey.minecraft(name);
} else {
namespacedKey = NamespacedKey.fromString(name);
}
if (namespacedKey == null)
return null;
return registry.get(namespacedKey);
} catch (StreamCorruptedException e) {
return null;
protected R deserialize(Fields fields) throws StreamCorruptedException {
String name = fields.getAndRemoveObject("name", String.class);
assert name != null;
NamespacedKey namespacedKey;
if (!name.contains(":")) {
// Old variables
namespacedKey = NamespacedKey.minecraft(name);
} else {
namespacedKey = NamespacedKey.fromString(name);
}
if (namespacedKey == null)
throw new StreamCorruptedException("Invalid namespacedkey: " + name);
R object = registry.get(namespacedKey);
if (object == null)
throw new StreamCorruptedException("Invalid object from registry: " + namespacedKey);
return object;
}

@Override
Expand Down
8 changes: 8 additions & 0 deletions src/test/skript/tests/misc/registry.sk
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
test "registry" when minecraft version is "1.14":

# Test namespaced keys
assert curse of vanishing = minecraft:vanishing_curse with "'curse of vanishing' enchant should match namespace key"

# Test serialization
set {test::enchantment} to minecraft:sharpness
assert {test::enchantment} = sharpness with "variable should have been set to sharpness enchantment"

0 comments on commit 3c3137f

Please sign in to comment.