Skip to content

Commit

Permalink
Add logging to sync events
Browse files Browse the repository at this point in the history
  • Loading branch information
Michael Ruf committed Feb 2, 2023
1 parent 3c438c5 commit 0a6268a
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 6 deletions.
4 changes: 1 addition & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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
18 changes: 15 additions & 3 deletions src/main/java/de/michiruf/invsync/event/InvSyncEvents.java
Original file line number Diff line number Diff line change
@@ -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<PlayerDataHandler> 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<PlayerDataHandler> 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;
}
}

0 comments on commit 0a6268a

Please sign in to comment.