mirror of
https://github.com/GTNewHorizons/CodeChickenCore.git
synced 2026-11-11 15:57:42 +00:00
Acquire NetClientHandler for packets sent before the Player and World are established.
This commit is contained in:
1 parent
56776c8149
commit
7f42cd94e0
1 file changed
+53
-1
@@ -14,6 +14,7 @@ import codechicken.lib.vec.BlockCoord;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import cpw.mods.fml.common.network.FMLNetworkHandler;
|
||||
import cpw.mods.fml.common.network.IConnectionHandler;
|
||||
import cpw.mods.fml.common.network.IPacketHandler;
|
||||
import cpw.mods.fml.common.network.ITinyPacketHandler;
|
||||
import cpw.mods.fml.common.network.NetworkModHandler;
|
||||
@@ -28,10 +29,12 @@ import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.CompressedStreamTools;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.network.INetworkManager;
|
||||
import net.minecraft.network.NetLoginHandler;
|
||||
import net.minecraft.network.NetServerHandler;
|
||||
import net.minecraft.network.packet.NetHandler;
|
||||
import net.minecraft.network.packet.Packet;
|
||||
import net.minecraft.network.packet.Packet131MapData;
|
||||
import net.minecraft.network.packet.Packet1Login;
|
||||
import net.minecraft.network.packet.Packet250CustomPayload;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.server.management.PlayerInstance;
|
||||
@@ -148,6 +151,7 @@ public final class PacketCustom implements MCDataInput, MCDataOutput
|
||||
public ClientPacketHandler(String channel)
|
||||
{
|
||||
super(channel);
|
||||
NetClientHandlerHelper.register();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -159,7 +163,7 @@ public final class PacketCustom implements MCDataInput, MCDataOutput
|
||||
@Override
|
||||
public void handle(ICustomPacketHandler handler, PacketCustom packet, Player player)
|
||||
{
|
||||
((IClientPacketHandler)handler).handlePacket(packet, Minecraft.getMinecraft().getNetHandler(), Minecraft.getMinecraft());
|
||||
((IClientPacketHandler)handler).handlePacket(packet, NetClientHandlerHelper.handler, Minecraft.getMinecraft());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -254,6 +258,54 @@ public final class PacketCustom implements MCDataInput, MCDataOutput
|
||||
}
|
||||
}
|
||||
|
||||
private static class NetClientHandlerHelper implements IConnectionHandler
|
||||
{
|
||||
private static boolean registered = false;
|
||||
public static NetClientHandler handler;
|
||||
|
||||
public static void register()
|
||||
{
|
||||
if(registered)
|
||||
return;
|
||||
|
||||
NetworkRegistry.instance().registerConnectionHandler(new NetClientHandlerHelper());
|
||||
registered = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void connectionOpened(NetHandler netClientHandler, MinecraftServer server, INetworkManager manager)
|
||||
{
|
||||
handler = (NetClientHandler) netClientHandler;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void connectionOpened(NetHandler netClientHandler, String server, int port, INetworkManager manager)
|
||||
{
|
||||
handler = (NetClientHandler) netClientHandler;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void connectionClosed(INetworkManager manager)
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
public String connectionReceived(NetLoginHandler netHandler, INetworkManager manager)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clientLoggedIn(NetHandler clientHandler, INetworkManager manager, Packet1Login login)
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void playerLoggedIn(Player player, NetHandler netHandler, INetworkManager manager)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public static interface IPacketCarrier
|
||||
{
|
||||
public int readType(Packet packet);
|
||||
|
||||
Reference in new issue
Block a user