Fixed NotSerializableException when killing certain entities (fixes #589)

This commit is contained in:
Intelli 2024-07-23 20:06:18 -06:00
parent 77a4a9476a
commit a93bf2f047
3 changed files with 29 additions and 5 deletions

View file

@ -4,7 +4,9 @@ import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Frog;
import org.bukkit.entity.Goat;
@ -31,7 +33,7 @@ public class Bukkit_v1_19 extends Bukkit_v1_18 implements BukkitInterface {
public boolean getEntityMeta(LivingEntity entity, List<Object> info) {
if (entity instanceof Frog) {
Frog frog = (Frog) entity;
info.add(frog.getVariant());
info.add(frog.getVariant().getKey().asString());
}
else if (entity instanceof Tadpole) {
Tadpole tadpole = (Tadpole) entity;
@ -58,6 +60,10 @@ public class Bukkit_v1_19 extends Bukkit_v1_18 implements BukkitInterface {
if (entity instanceof Frog) {
Frog frog = (Frog) entity;
if (count == 0) {
if (value instanceof String) {
NamespacedKey namespacedKey = NamespacedKey.fromString((String) value);
value = Bukkit.getRegistry(Frog.Variant.class).get(namespacedKey);
}
Frog.Variant set = (Frog.Variant) value;
frog.setVariant(set);
}