From 8ff8b78ed8b5ec9edcc0707424c794224defb322 Mon Sep 17 00:00:00 2001 From: Jonathan Coates Date: Mon, 31 May 2021 19:23:17 +0100 Subject: [PATCH] Better error handling in treasure disks - Return a more sensible string for empty treasure disks (i.e. those given by /give). This should help identify packs which are giving items in non-supported ways. - Fix NPE when the treasure mount doesn't exist. Fixes #801 --- .../computercraft/shared/media/items/ItemTreasureDisk.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/dan200/computercraft/shared/media/items/ItemTreasureDisk.java b/src/main/java/dan200/computercraft/shared/media/items/ItemTreasureDisk.java index 6b663ed34..60c565a1e 100644 --- a/src/main/java/dan200/computercraft/shared/media/items/ItemTreasureDisk.java +++ b/src/main/java/dan200/computercraft/shared/media/items/ItemTreasureDisk.java @@ -68,6 +68,8 @@ public String getLabel( @Nonnull ItemStack stack ) public IMount createDataMount( @Nonnull ItemStack stack, @Nonnull World world ) { IMount rootTreasure = getTreasureMount(); + if( rootTreasure == null ) return null; + String subPath = getSubPath( stack ); try { @@ -121,7 +123,7 @@ private static IMount getTreasureMount() private static String getTitle( @Nonnull ItemStack stack ) { CompoundNBT nbt = stack.getTag(); - return nbt != null && nbt.contains( NBT_TITLE ) ? nbt.getString( NBT_TITLE ) : "'alongtimeago' by dan200"; + return nbt != null && nbt.contains( NBT_TITLE ) ? nbt.getString( NBT_TITLE ) : "'missingno' by how did you get this anyway?"; } @Nonnull