diff --git a/src/main/java/modchest/mixin/ServerPlayerEntityMixin.java b/src/main/java/modchest/mixin/ServerPlayerEntityMixin.java index 06c2e4a..0a70b69 100644 --- a/src/main/java/modchest/mixin/ServerPlayerEntityMixin.java +++ b/src/main/java/modchest/mixin/ServerPlayerEntityMixin.java @@ -32,13 +32,25 @@ public abstract class ServerPlayerEntityMixin implements ServerPlayerEntityInter @Inject(method = "writeCustomDataToNbt", at = @At("TAIL")) public void writeCustomDataToNbt(NbtCompound nbt, CallbackInfo ci) { //Immer wenn eine andere Methode aufruft, dass Daten abgespeichert werden sollen, tun wir das jetzt auch - nbt.put("REServerMod", this.dataSaver); + if (dataSaver != null) { //wenn der dataSaver null ist, wuerde sonst ein Error kommen, weil Minecraft keine leeren NBTs absepeicheern kann :( + try { + nbt.put("REServerMod", this.dataSaver); + } catch (Exception e) { + REServerMod.LOGGER.info("Error while saving custom NBt-Data: " + e); + } + } else { + REServerMod.LOGGER.info("write failed! This probably means, that the player hasn't set a custom spanpoint yet"); + } //REServerMod.LOGGER.info("writeCustomDataToNbt called"); } @Inject(method = "readCustomDataFromNbt", at = @At("TAIL")) public void readCustomDataFromNbt(NbtCompound nbt, CallbackInfo ci) { //gleiches beim einlesen. Werden NBT-Daten eingelesen, tun wird das auch - dataSaver = (NbtCompound) nbt.get("REServerMod"); + try { + dataSaver = (NbtCompound) nbt.get("REServerMod"); + } catch (Exception e) { + REServerMod.LOGGER.info("Error while saving custom NBt-Data: " + e); + } //REServerMod.LOGGER.info("readCustomDataFromNbt called with following Data: " + Arrays.toString(nbt.getIntArray("REServerMod.sleep_data"))); }