156 lines
6.3 KiB
Diff
156 lines
6.3 KiB
Diff
--- ../src_base/minecraft/net/minecraft/src/NetClientHandler.java 0000-00-00 00:00:00.000000000 -0000
|
|
+++ ../src_work/minecraft/net/minecraft/src/NetClientHandler.java 0000-00-00 00:00:00.000000000 -0000
|
|
@@ -14,9 +14,16 @@
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Random;
|
|
+import java.util.logging.Level;
|
|
|
|
import cpw.mods.fml.client.FMLClientHandler;
|
|
import net.minecraft.client.Minecraft;
|
|
+import net.minecraft.src.forge.ForgeHooks;
|
|
+import net.minecraft.src.forge.ForgeHooksClient;
|
|
+import net.minecraft.src.forge.MessageManager;
|
|
+import net.minecraft.src.forge.ModCompatibilityClient;
|
|
+import net.minecraft.src.forge.packets.ForgePacket;
|
|
+import java.io.UnsupportedEncodingException;
|
|
|
|
public class NetClientHandler extends NetHandler
|
|
{
|
|
@@ -50,6 +57,8 @@
|
|
this.mc = par1Minecraft;
|
|
Socket var4 = new Socket(InetAddress.getByName(par2Str), par3);
|
|
this.netManager = new NetworkManager(var4, "Client", this);
|
|
+
|
|
+ ForgeHooks.onConnect(netManager);
|
|
}
|
|
|
|
/**
|
|
@@ -78,6 +87,7 @@
|
|
this.currentServerMaxPlayers = par1Packet1Login.maxPlayers;
|
|
((PlayerControllerMP)this.mc.playerController).setCreative(par1Packet1Login.serverMode == 1);
|
|
FMLClientHandler.instance().handleServerLogin(par1Packet1Login, this, netManager);
|
|
+ ForgeHooksClient.onLogin(par1Packet1Login, this, netManager);
|
|
}
|
|
|
|
public void handlePickupSpawn(Packet21PickupSpawn par1Packet21PickupSpawn)
|
|
@@ -182,6 +192,19 @@
|
|
{
|
|
var8 = new EntityFallingSand(this.worldClient, var2, var4, var6, Block.dragonEgg.blockID);
|
|
}
|
|
+
|
|
+ try
|
|
+ {
|
|
+ var8 = ModCompatibilityClient.mlmpVehicleSpawn(par1Packet23VehicleSpawn.type,
|
|
+ worldClient, var2, var4, var6,
|
|
+ getEntityByID(par1Packet23VehicleSpawn.throwerEntityId), var8);
|
|
+ }
|
|
+ catch (Exception e)
|
|
+ {
|
|
+ ModLoader.getLogger().throwing("NetClientHandler", "handleVehicleSpawn", e);
|
|
+ ModLoader.throwException(String.format("Error initalizing entity of type %d", par1Packet23VehicleSpawn.type), e);
|
|
+ return;
|
|
+ }
|
|
|
|
if (var8 != null)
|
|
{
|
|
@@ -438,7 +461,7 @@
|
|
{
|
|
short var6 = var4.readShort();
|
|
short var7 = var4.readShort();
|
|
- int var8 = (var7 & 4095) >> 4;
|
|
+ int var8 = (var7 & 0xFFF0) >> 4; //4096 fix, And vanilla bug fix
|
|
int var9 = var7 & 15;
|
|
int var10 = var6 >> 12 & 15;
|
|
int var11 = var6 >> 8 & 15;
|
|
@@ -486,7 +509,7 @@
|
|
|
|
public void handleKickDisconnect(Packet255KickDisconnect par1Packet255KickDisconnect)
|
|
{
|
|
- this.netManager.networkShutdown("disconnect.kicked", new Object[0]);
|
|
+ this.netManager.networkShutdown("disconnect.kicked", par1Packet255KickDisconnect.reason);
|
|
this.disconnected = true;
|
|
this.mc.changeWorld1((World)null);
|
|
this.mc.displayGuiScreen(new GuiDisconnected("disconnect.disconnected", "disconnect.genericReason", new Object[] {par1Packet255KickDisconnect.reason}));
|
|
@@ -550,8 +573,12 @@
|
|
|
|
public void handleChat(Packet3Chat par1Packet3Chat)
|
|
{
|
|
- FMLClientHandler.instance().handleChatPacket(par1Packet3Chat);
|
|
- this.mc.ingameGUI.addChatMessage(par1Packet3Chat.message);
|
|
+ par1Packet3Chat.message = ForgeHooks.onClientChatRecv(par1Packet3Chat.message);
|
|
+ if (par1Packet3Chat.message != null)
|
|
+ {
|
|
+ FMLClientHandler.instance().handleChatPacket(par1Packet3Chat);
|
|
+ this.mc.ingameGUI.addChatMessage(par1Packet3Chat.message);
|
|
+ }
|
|
}
|
|
|
|
public void handleAnimation(Packet18Animation par1Packet18Animation)
|
|
@@ -641,7 +668,7 @@
|
|
}
|
|
else if (par1Packet2Handshake.username.equals("-"))
|
|
{
|
|
- this.addToSendQueue(new Packet1Login(this.mc.session.username, 29));
|
|
+ this.addToSendQueue(ForgeHooksClient.onSendLogin(new Packet1Login(this.mc.session.username, 29)));
|
|
}
|
|
else
|
|
{
|
|
@@ -654,7 +681,7 @@
|
|
|
|
if (var6.equalsIgnoreCase("ok"))
|
|
{
|
|
- this.addToSendQueue(new Packet1Login(this.mc.session.username, 29));
|
|
+ this.addToSendQueue(ForgeHooksClient.onSendLogin(new Packet1Login(this.mc.session.username, 29)));
|
|
}
|
|
else
|
|
{
|
|
@@ -835,6 +862,9 @@
|
|
case 5:
|
|
var2.displayGUIBrewingStand(new TileEntityBrewingStand());
|
|
var2.craftingInventory.windowId = par1Packet100OpenWindow.windowId;
|
|
+ break;
|
|
+ default:
|
|
+ ModCompatibilityClient.mlmpOpenWindow(par1Packet100OpenWindow);
|
|
}
|
|
}
|
|
|
|
@@ -941,6 +971,19 @@
|
|
{
|
|
((TileEntityMobSpawner)var2).setMobID(EntityList.getStringFromID(par1Packet132TileEntityData.customParam1));
|
|
}
|
|
+ else if (var2 != null)
|
|
+ {
|
|
+ var2.onDataPacket(netManager, par1Packet132TileEntityData);
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ Packet132TileEntityData pkt = par1Packet132TileEntityData;
|
|
+ ModLoader.getLogger().log(Level.WARNING, String.format(
|
|
+ "Received a TileEntityData packet for a location that did not have a TileEntity: (%d, %d, %d) %d: %d, %d, %d",
|
|
+ pkt.xPosition, pkt.yPosition, pkt.zPosition,
|
|
+ pkt.actionType,
|
|
+ pkt.customParam1, pkt.customParam2, pkt.customParam3));
|
|
+ }
|
|
}
|
|
}
|
|
|
|
@@ -1014,6 +1057,10 @@
|
|
{
|
|
ItemMap.getMPMapData(par1Packet131MapData.uniqueID, this.mc.theWorld).updateMPMapData(par1Packet131MapData.itemData);
|
|
}
|
|
+ else if (ForgeHooks.onItemDataPacket(netManager, par1Packet131MapData))
|
|
+ {
|
|
+ ;
|
|
+ }
|
|
else
|
|
{
|
|
System.out.println("Unknown itemid: " + par1Packet131MapData.uniqueID);
|
|
@@ -1120,5 +1167,6 @@
|
|
public void handleCustomPayload(Packet250CustomPayload par1Packet250CustomPayload)
|
|
{
|
|
FMLClientHandler.instance().handlePacket250(par1Packet250CustomPayload);
|
|
+ ForgeHooksClient.onCustomPayload(par1Packet250CustomPayload, netManager);
|
|
}
|
|
}
|