From c9c03a3971df3636fbdbdcfa5c4ed35d621227eb Mon Sep 17 00:00:00 2001
From: Nick <speedynutty68@gmail.com>
Date: Thu, 17 Mar 2016 17:39:32 -0700
Subject: [PATCH] Sync Waila mode to client when connecting to server

No more sneaky bypassing
---
 .../network/BloodMagicPacketHandler.java      |  1 +
 .../bloodmagic/network/PacketSyncConfig.java  | 29 +++++++++++++++++++
 .../bloodmagic/util/handler/EventHandler.java |  9 ++++++
 3 files changed, 39 insertions(+)
 create mode 100644 src/main/java/WayofTime/bloodmagic/network/PacketSyncConfig.java

diff --git a/src/main/java/WayofTime/bloodmagic/network/BloodMagicPacketHandler.java b/src/main/java/WayofTime/bloodmagic/network/BloodMagicPacketHandler.java
index 7107c6ec..66bd7e6d 100644
--- a/src/main/java/WayofTime/bloodmagic/network/BloodMagicPacketHandler.java
+++ b/src/main/java/WayofTime/bloodmagic/network/BloodMagicPacketHandler.java
@@ -17,6 +17,7 @@ public class BloodMagicPacketHandler
     {
         INSTANCE.registerMessage(ChatUtil.PacketNoSpamChat.Handler.class, ChatUtil.PacketNoSpamChat.class, 0, Side.CLIENT);
         INSTANCE.registerMessage(ItemRouterButtonPacketProcessor.class, ItemRouterButtonPacketProcessor.class, 1, Side.SERVER);
+        INSTANCE.registerMessage(PacketSyncConfig.class, PacketSyncConfig.class, 2, Side.CLIENT);
     }
 
     public static void sendToAllAround(IMessage message, TileEntity te, int range)
diff --git a/src/main/java/WayofTime/bloodmagic/network/PacketSyncConfig.java b/src/main/java/WayofTime/bloodmagic/network/PacketSyncConfig.java
new file mode 100644
index 00000000..bca535dc
--- /dev/null
+++ b/src/main/java/WayofTime/bloodmagic/network/PacketSyncConfig.java
@@ -0,0 +1,29 @@
+package WayofTime.bloodmagic.network;
+
+import WayofTime.bloodmagic.ConfigHandler;
+import io.netty.buffer.ByteBuf;
+import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
+import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
+import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
+
+public class PacketSyncConfig implements IMessage, IMessageHandler<PacketSyncConfig, IMessage>
+{
+
+    @Override
+    public void fromBytes(ByteBuf buf)
+    {
+        ConfigHandler.wailaAltarDisplayMode = buf.readInt();
+    }
+
+    @Override
+    public void toBytes(ByteBuf buf)
+    {
+        buf.writeInt(ConfigHandler.wailaAltarDisplayMode);
+    }
+
+    @Override
+    public IMessage onMessage(PacketSyncConfig message, MessageContext ctx)
+    {
+        return null;
+    }
+}
diff --git a/src/main/java/WayofTime/bloodmagic/util/handler/EventHandler.java b/src/main/java/WayofTime/bloodmagic/util/handler/EventHandler.java
index 5ecefdc9..dbb38ace 100644
--- a/src/main/java/WayofTime/bloodmagic/util/handler/EventHandler.java
+++ b/src/main/java/WayofTime/bloodmagic/util/handler/EventHandler.java
@@ -9,6 +9,8 @@ import java.util.concurrent.CopyOnWriteArrayList;
 import WayofTime.bloodmagic.api.network.SoulNetwork;
 import WayofTime.bloodmagic.api.orb.IBloodOrb;
 import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
+import WayofTime.bloodmagic.network.BloodMagicPacketHandler;
+import WayofTime.bloodmagic.network.PacketSyncConfig;
 import net.minecraft.block.Block;
 import net.minecraft.enchantment.Enchantment;
 import net.minecraft.enchantment.EnchantmentHelper;
@@ -48,6 +50,7 @@ import net.minecraftforge.fml.common.eventhandler.Event.Result;
 import net.minecraftforge.fml.common.eventhandler.EventPriority;
 import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
 import net.minecraftforge.fml.common.gameevent.TickEvent;
+import net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerLoggedInEvent;
 import net.minecraftforge.fml.relauncher.Side;
 import WayofTime.bloodmagic.ConfigHandler;
 import WayofTime.bloodmagic.api.BloodMagicAPI;
@@ -210,6 +213,12 @@ public class EventHandler
         }
     }
 
+    @SubscribeEvent
+    public void onLoggedIn(PlayerLoggedInEvent event)
+    {
+        BloodMagicPacketHandler.sendTo(new PacketSyncConfig(), (EntityPlayerMP) event.player);
+    }
+
     @SubscribeEvent(priority = EventPriority.HIGHEST)
     public void onEntityUpdate(LivingEvent.LivingUpdateEvent event)
     {