Merge pull request #14 from GTNewHorizons/fixBaubleSyncing

Fix client baubles not all being synced
This commit is contained in:
jss2a98aj authored and GitHub committed 2025-05-20 14:16:19 -04:00
commit deeaec99fe
2 files changed
+22 -22

No files matched your search

@@ -18,14 +18,12 @@ public class EventHandlerEntity {
// player directory
private File playerDirectory;
@SubscribeEvent
public void playerTick(PlayerEvent.LivingUpdateEvent event) {
// player events
if (event.entity instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.entity;
if (event.entity instanceof EntityPlayer player) {
InventoryBaubles baubles = PlayerHandler.getPlayerBaubles(player);
for (int a = 0; a < baubles.getSizeInventory(); a++) {
if (baubles.getStackInSlot(a) != null
@@ -56,18 +54,18 @@ public class EventHandlerEntity {
playerLoadDo(event.entityPlayer, event.playerDirectory, event.entityPlayer.capabilities.isCreativeMode);
playerDirectory = event.playerDirectory;
}
private void playerLoadDo(EntityPlayer player, File directory, Boolean gamemode) {
PlayerHandler.clearPlayerBaubles(player);
File mainFile, backupFile;
final String fileExtension = "baub";
final String fileExtensionBackup = "baubback";
// look for normal files first
mainFile = getPlayerFile(fileExtension, directory, player.getCommandSenderName());
backupFile = getPlayerFile(fileExtensionBackup, directory, player.getCommandSenderName());
// look for uuid files when normal file missing
if (!mainFile.exists()) {
File filep = getPlayerFile(fileExtension, directory, player.getGameProfile().getId().toString());
@@ -77,7 +75,7 @@ public class EventHandlerEntity {
Baubles.log.info("Using and converting UUID Baubles savefile for " + player.getCommandSenderName());
filep.delete();
File fb = getPlayerFile(fileExtensionBackup, directory, player.getGameProfile().getId().toString());
if (fb.exists()) fb.delete();
if (fb.exists()) fb.delete();
} catch (IOException e) {}
}
}
@@ -85,7 +83,7 @@ public class EventHandlerEntity {
PlayerHandler.loadPlayerBaubles(player, mainFile, backupFile);
EventHandlerNetwork.syncBaubles(player);
}
public File getPlayerFile(String extension, File playerDirectory, String playerName) {
if("dat".equals(extension)) throw new IllegalArgumentException("The extension 'dat' is reserved");
return new File(playerDirectory, playerName + "." + extension);
@@ -95,10 +93,10 @@ public class EventHandlerEntity {
public void playerSave(PlayerEvent.SaveToFile event) {
playerSaveDo(event.entityPlayer, event.playerDirectory, event.entityPlayer.capabilities.isCreativeMode);
}
private void playerSaveDo(EntityPlayer player, File directory, Boolean gamemode) {
PlayerHandler.savePlayerBaubles(player,
getPlayerFile("baub", directory, player.getCommandSenderName()),
PlayerHandler.savePlayerBaubles(player,
getPlayerFile("baub", directory, player.getCommandSenderName()),
getPlayerFile("baubback", directory, player.getCommandSenderName()));
}
@@ -1,5 +1,6 @@
package baubles.common.event;
import baubles.common.container.InventoryBaubles;
import baubles.common.lib.PlayerHandler;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
@@ -8,20 +9,21 @@ import cpw.mods.fml.relauncher.Side;
import net.minecraft.entity.player.EntityPlayer;
public class EventHandlerNetwork {
@SubscribeEvent
public void playerLoggedInEvent (PlayerEvent.PlayerLoggedInEvent event) {
Side side = FMLCommonHandler.instance().getEffectiveSide();
@SubscribeEvent
public void playerLoggedInEvent (PlayerEvent.PlayerLoggedInEvent event) {
Side side = FMLCommonHandler.instance().getEffectiveSide();
if (side == Side.SERVER) {
syncBaubles(event.player);
}
}
public static void syncBaubles(EntityPlayer player) {
for (int a = 0; a < 4; a++) {
PlayerHandler.getPlayerBaubles(player).syncSlotToClients(a);
InventoryBaubles baubles = PlayerHandler.getPlayerBaubles(player);
for (int i = 0; i < baubles.getSizeInventory(); i++) {
baubles.syncSlotToClients(i);
}
}
}