diff --git a/CHANGELOG.md b/CHANGELOG.md index 18e0047..795964c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1 @@ -Update fork -Add config flag SYNCHRONIZATION_DELAY_METHOD -Potential change of the event order to synchronize achievements before the inventory (this has never been a problem before, but still) +Add logging to the inv sync events that occur on loading or saving the inventory diff --git a/src/main/java/de/michiruf/invsync/event/InvSyncEvents.java b/src/main/java/de/michiruf/invsync/event/InvSyncEvents.java index b819981..f3b51ed 100644 --- a/src/main/java/de/michiruf/invsync/event/InvSyncEvents.java +++ b/src/main/java/de/michiruf/invsync/event/InvSyncEvents.java @@ -1,26 +1,38 @@ package de.michiruf.invsync.event; +import de.michiruf.invsync.Logger; import de.michiruf.invsync.data.entity.PlayerData; import net.fabricmc.fabric.api.event.Event; import net.fabricmc.fabric.api.event.EventFactory; import net.minecraft.server.network.ServerPlayerEntity; +import org.apache.logging.log4j.Level; public class InvSyncEvents { public static final Event FETCH_PLAYER_DATA = EventFactory.createArrayBacked(PlayerDataHandler.class, callbacks -> (player, playerData) -> { for (var callback : callbacks) if (playerData != null) - callback.handle(player, playerData); + try { + callback.handle(player, playerData); + } catch (Exception e) { + Logger.logException(Level.ERROR, e); + } + else + Logger.log(Level.WARN, "PlayerData is null"); }); public static final Event SAVE_PLAYER_DATA = EventFactory.createArrayBacked(PlayerDataHandler.class, callbacks -> (player, playerData) -> { for (var callback : callbacks) - callback.handle(player, playerData); + try { + callback.handle(player, playerData); + } catch (Exception e) { + Logger.logException(Level.ERROR, e); + } }); @FunctionalInterface public interface PlayerDataHandler { - void handle(ServerPlayerEntity player, PlayerData playerData); + void handle(ServerPlayerEntity player, PlayerData playerData) throws Exception; } }