From 907cf2d925ae0c29b58fd1fcd8b4a34feb88160a Mon Sep 17 00:00:00 2001 From: Christian Date: Thu, 23 Aug 2012 00:37:45 -0400 Subject: [PATCH] More ML compatibility - fix up dragon mounts, thanks! --- .../fml/client/modloader/ModLoaderClientHelper.java | 8 ++++++++ client/net/minecraft/src/BaseMod.java | 11 +++++++++++ client/net/minecraft/src/ModLoader.java | 13 +++++++++++++ .../cpw/mods/fml/common/modloader/BaseModProxy.java | 3 +++ .../fml/common/modloader/IModLoaderSidedHelper.java | 3 +++ .../common/modloader/ModLoaderPacketHandler.java | 4 ++-- .../net/minecraft/src/NetServerHandler.java.patch | 5 +++-- 7 files changed, 43 insertions(+), 4 deletions(-) diff --git a/client/cpw/mods/fml/client/modloader/ModLoaderClientHelper.java b/client/cpw/mods/fml/client/modloader/ModLoaderClientHelper.java index e3375097f2..6a0c109ce3 100644 --- a/client/cpw/mods/fml/client/modloader/ModLoaderClientHelper.java +++ b/client/cpw/mods/fml/client/modloader/ModLoaderClientHelper.java @@ -11,6 +11,7 @@ import net.minecraft.src.Entity; import net.minecraft.src.EntityClientPlayerMP; import net.minecraft.src.EntityPlayer; import net.minecraft.src.KeyBinding; +import net.minecraft.src.Packet250CustomPayload; import net.minecraft.src.Render; import com.google.common.base.Supplier; @@ -114,4 +115,11 @@ public class ModLoaderClientHelper implements IModLoaderSidedHelper { return ((net.minecraft.src.BaseMod)mod).spawnEntity(er.getModEntityId(), client.field_71441_e, input.scaledX, input.scaledY, input.scaledZ); } + + + @Override + public void sendClientPacket(BaseModProxy mod, Packet250CustomPayload packet) + { + ((net.minecraft.src.BaseMod)mod).clientCustomPayload(client.field_71439_g.field_71174_a, packet); + } } diff --git a/client/net/minecraft/src/BaseMod.java b/client/net/minecraft/src/BaseMod.java index ed956a1e32..35d90432e9 100644 --- a/client/net/minecraft/src/BaseMod.java +++ b/client/net/minecraft/src/BaseMod.java @@ -367,6 +367,12 @@ public abstract class BaseMod implements cpw.mods.fml.common.modloader.BaseModPr } + @Override + public void serverCustomPayload(NetServerHandler handler, Packet250CustomPayload packet) + { + + } + @Override public void serverDisconnect() { @@ -481,4 +487,9 @@ public abstract class BaseMod implements cpw.mods.fml.common.modloader.BaseModPr return null; } + public void clientCustomPayload(NetClientHandler handler, Packet250CustomPayload packet) + { + + } + } diff --git a/client/net/minecraft/src/ModLoader.java b/client/net/minecraft/src/ModLoader.java index daacbaf229..7f27f2f0f6 100644 --- a/client/net/minecraft/src/ModLoader.java +++ b/client/net/minecraft/src/ModLoader.java @@ -45,6 +45,10 @@ import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; import cpw.mods.fml.server.FMLServerHandler; +/** + * @author cpw + * + */ public class ModLoader { public static final String fmlMarker = "This is an FML marker"; @@ -290,6 +294,15 @@ public class ModLoader EntityRegistry.addSpawn(entityName, weightedProb, min, max, spawnList, biomes); } + /** + * Send a packet from the client + * @param packet + */ + public static void clientSendPacket(Packet packet) + { + PacketDispatcher.sendPacketToServer(packet); + } + /** * This method is a call in hook from modified external code. Implemented elsewhere. * diff --git a/common/cpw/mods/fml/common/modloader/BaseModProxy.java b/common/cpw/mods/fml/common/modloader/BaseModProxy.java index 73dfa045e8..d6c2c2ea20 100644 --- a/common/cpw/mods/fml/common/modloader/BaseModProxy.java +++ b/common/cpw/mods/fml/common/modloader/BaseModProxy.java @@ -22,6 +22,7 @@ import net.minecraft.src.GuiScreen; import net.minecraft.src.IInventory; import net.minecraft.src.ItemStack; import net.minecraft.src.NetHandler; +import net.minecraft.src.NetServerHandler; import net.minecraft.src.NetworkManager; import net.minecraft.src.Packet250CustomPayload; import net.minecraft.src.World; @@ -90,4 +91,6 @@ public interface BaseModProxy public abstract int dispenseEntity(World world, ItemStack item, Random rnd, double x, double y, double z, int xVel, int zVel, double entX, double entY, double entZ); + + public abstract void serverCustomPayload(NetServerHandler handler, Packet250CustomPayload packet); } diff --git a/common/cpw/mods/fml/common/modloader/IModLoaderSidedHelper.java b/common/cpw/mods/fml/common/modloader/IModLoaderSidedHelper.java index a085e3e9ec..793c484b5b 100644 --- a/common/cpw/mods/fml/common/modloader/IModLoaderSidedHelper.java +++ b/common/cpw/mods/fml/common/modloader/IModLoaderSidedHelper.java @@ -4,6 +4,7 @@ import cpw.mods.fml.common.network.EntitySpawnPacket; import cpw.mods.fml.common.registry.EntityRegistry.EntityRegistration; import net.minecraft.src.Entity; import net.minecraft.src.EntityPlayer; +import net.minecraft.src.Packet250CustomPayload; public interface IModLoaderSidedHelper { @@ -14,4 +15,6 @@ public interface IModLoaderSidedHelper Entity spawnEntity(BaseModProxy mod, EntitySpawnPacket input, EntityRegistration registration); + void sendClientPacket(BaseModProxy mod, Packet250CustomPayload packet); + } diff --git a/common/cpw/mods/fml/common/modloader/ModLoaderPacketHandler.java b/common/cpw/mods/fml/common/modloader/ModLoaderPacketHandler.java index 018581b8a1..4155126567 100644 --- a/common/cpw/mods/fml/common/modloader/ModLoaderPacketHandler.java +++ b/common/cpw/mods/fml/common/modloader/ModLoaderPacketHandler.java @@ -21,11 +21,11 @@ public class ModLoaderPacketHandler implements IPacketHandler { if (player instanceof EntityPlayerMP) { - mod.onPacket250Received((EntityPlayer) player, packet); + mod.serverCustomPayload(((EntityPlayerMP)player).field_71135_a, packet); } else { - mod.receiveCustomPacket(packet); + ModLoaderHelper.sidedHelper.sendClientPacket(mod, packet); } } diff --git a/patches/common/net/minecraft/src/NetServerHandler.java.patch b/patches/common/net/minecraft/src/NetServerHandler.java.patch index 3d29654475..75ca53ec3a 100644 --- a/patches/common/net/minecraft/src/NetServerHandler.java.patch +++ b/patches/common/net/minecraft/src/NetServerHandler.java.patch @@ -21,13 +21,14 @@ DataInputStream var2; ItemStack var3; ItemStack var4; -@@ -1029,4 +1036,10 @@ +@@ -1029,4 +1036,11 @@ } } } + ++ // modloader compat -- yuk! + @Override -+ public EntityPlayer getPlayer() ++ public EntityPlayerMP getPlayer() + { + return field_72574_e; + }