Check if firework item explosions tag is null (corresponding entity fix) (#633)

* Check if firework item explosions tag is null (corresponding entity fix)

* Add null check on flight

* Add null check around Flight

* Fix newline on if statement

* Fix newline on if statement, add null check on flight, remove debug code.

* fix missing space..
This commit is contained in:
Arktisfox 2020-05-24 14:15:02 -04:00 committed by GitHub
parent 286970676b
commit d918139c44
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -60,17 +60,16 @@ public class FireworkEntity extends Entity {
CompoundTag fireworks = tag.get("Fireworks"); CompoundTag fireworks = tag.get("Fireworks");
CompoundTagBuilder fireworksBuilder = CompoundTagBuilder.builder(); CompoundTagBuilder fireworksBuilder = CompoundTagBuilder.builder();
if (fireworks.get("Flight") != null) {
fireworksBuilder.byteTag("Flight", (Byte) fireworks.get("Flight").getValue()); fireworksBuilder.byteTag("Flight", (Byte) fireworks.get("Flight").getValue());
}
List<com.nukkitx.nbt.tag.CompoundTag> explosions = new ArrayList<>(); List<com.nukkitx.nbt.tag.CompoundTag> explosions = new ArrayList<>();
if (fireworks.get("Explosions") != null) {
for (Tag effect : ((ListTag) fireworks.get("Explosions")).getValue()) { for (Tag effect : ((ListTag) fireworks.get("Explosions")).getValue()) {
CompoundTag effectData = (CompoundTag) effect; CompoundTag effectData = (CompoundTag) effect;
try {
GeyserConnector.getInstance().getLogger().debug("Effect: " + new ObjectMapper().writeValueAsString(effect));
} catch (JsonProcessingException e) { }
CompoundTagBuilder effectBuilder = CompoundTagBuilder.builder(); CompoundTagBuilder effectBuilder = CompoundTagBuilder.builder();
if (effectData.get("Type") != null) { if (effectData.get("Type") != null) {
effectBuilder.byteTag("FireworkType", (Byte) effectData.get("Type").getValue()); effectBuilder.byteTag("FireworkType", (Byte) effectData.get("Type").getValue());
} }
@ -109,6 +108,7 @@ public class FireworkEntity extends Entity {
explosions.add(effectBuilder.buildRootTag()); explosions.add(effectBuilder.buildRootTag());
} }
}
fireworksBuilder.tag(new com.nukkitx.nbt.tag.ListTag<>("Explosions", com.nukkitx.nbt.tag.CompoundTag.class, explosions)); fireworksBuilder.tag(new com.nukkitx.nbt.tag.ListTag<>("Explosions", com.nukkitx.nbt.tag.CompoundTag.class, explosions));