mirror of
https://github.com/MinecraftForge/MinecraftForge.git
synced 2026-11-13 00:37:52 +00:00
Fixed remote and local connections work with mods now.
This commit is contained in:
1 parent
89e4e483c2
commit
cd417c6786
4 files changed
+43
-14
No files matched your search
@@ -56,7 +56,25 @@ enum FMLHandshakeClientState implements IHandshakeState<FMLHandshakeClientState>
|
||||
dispatcher.rejectHandshake(result);
|
||||
return ERROR;
|
||||
}
|
||||
ctx.writeAndFlush(new FMLHandshakeMessage.ClientAck());
|
||||
ctx.writeAndFlush(new FMLHandshakeMessage.HandshakeAck());
|
||||
if (!ctx.channel().attr(NetworkDispatcher.IS_LOCAL).get())
|
||||
{
|
||||
return WAITINGSERVERCOMPLETE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return COMPLETE;
|
||||
}
|
||||
}
|
||||
},
|
||||
WAITINGSERVERCOMPLETE
|
||||
{
|
||||
@Override
|
||||
public FMLHandshakeClientState accept(ChannelHandlerContext ctx, FMLHandshakeMessage msg)
|
||||
{
|
||||
FMLHandshakeMessage.ModIdData modIds = (FMLHandshakeMessage.ModIdData)msg;
|
||||
GameData.injectWorldIDMap(modIds.dataList());
|
||||
ctx.writeAndFlush(new FMLHandshakeMessage.HandshakeAck());
|
||||
return COMPLETE;
|
||||
}
|
||||
},
|
||||
@@ -67,13 +85,16 @@ enum FMLHandshakeClientState implements IHandshakeState<FMLHandshakeClientState>
|
||||
{
|
||||
NetworkDispatcher dispatcher = ctx.channel().attr(NetworkDispatcher.FML_DISPATCHER).get();
|
||||
dispatcher.continueToClientPlayState();
|
||||
if (!ctx.channel().attr(NetworkDispatcher.IS_LOCAL).get())
|
||||
{
|
||||
FMLHandshakeMessage.ModIdData modIds = (FMLHandshakeMessage.ModIdData)msg;
|
||||
GameData.injectWorldIDMap(modIds.dataList());
|
||||
}
|
||||
FMLLog.info("Client side modded connection established");
|
||||
ctx.writeAndFlush(new FMLHandshakeMessage.ClientAck());
|
||||
ctx.writeAndFlush(new FMLHandshakeMessage.HandshakeAck());
|
||||
return DONE;
|
||||
}
|
||||
},
|
||||
DONE
|
||||
{
|
||||
@Override
|
||||
public FMLHandshakeClientState accept(ChannelHandlerContext ctx, FMLHandshakeMessage msg)
|
||||
{
|
||||
return this;
|
||||
}
|
||||
},
|
||||
|
||||
@@ -11,7 +11,7 @@ public class FMLHandshakeCodec extends FMLIndexedMessageToMessageCodec<FMLHandsh
|
||||
addDiscriminator((byte)1, FMLHandshakeMessage.ClientHello.class);
|
||||
addDiscriminator((byte)2, FMLHandshakeMessage.ModList.class);
|
||||
addDiscriminator((byte)3, FMLHandshakeMessage.ModIdData.class);
|
||||
addDiscriminator((byte)-1, FMLHandshakeMessage.ClientAck.class);
|
||||
addDiscriminator((byte)-1, FMLHandshakeMessage.HandshakeAck.class);
|
||||
}
|
||||
@Override
|
||||
public void encodeInto(ChannelHandlerContext ctx, FMLHandshakeMessage msg, ByteBuf target) throws Exception
|
||||
|
||||
@@ -151,7 +151,7 @@ public abstract class FMLHandshakeMessage {
|
||||
return modIds;
|
||||
}
|
||||
}
|
||||
public static class ClientAck extends FMLHandshakeMessage {
|
||||
public static class HandshakeAck extends FMLHandshakeMessage {
|
||||
|
||||
}
|
||||
public void fromBytes(ByteBuf buffer)
|
||||
|
||||
@@ -44,10 +44,6 @@ enum FMLHandshakeServerState implements IHandshakeState<FMLHandshakeServerState>
|
||||
return ERROR;
|
||||
}
|
||||
ctx.writeAndFlush(new FMLHandshakeMessage.ModList(Loader.instance().getActiveModList()));
|
||||
if (ctx.channel().attr(NetworkDispatcher.IS_LOCAL).get())
|
||||
{
|
||||
return COMPLETE;
|
||||
}
|
||||
return WAITINGCACK;
|
||||
}
|
||||
},
|
||||
@@ -56,7 +52,11 @@ enum FMLHandshakeServerState implements IHandshakeState<FMLHandshakeServerState>
|
||||
@Override
|
||||
public FMLHandshakeServerState accept(ChannelHandlerContext ctx, FMLHandshakeMessage msg)
|
||||
{
|
||||
ctx.writeAndFlush(new FMLHandshakeMessage.ModIdData(GameData.buildItemDataList()));
|
||||
if (!ctx.channel().attr(NetworkDispatcher.IS_LOCAL).get())
|
||||
{
|
||||
ctx.writeAndFlush(new FMLHandshakeMessage.ModIdData(GameData.buildItemDataList()));
|
||||
}
|
||||
ctx.writeAndFlush(new FMLHandshakeMessage.HandshakeAck());
|
||||
return COMPLETE;
|
||||
}
|
||||
},
|
||||
@@ -68,6 +68,14 @@ enum FMLHandshakeServerState implements IHandshakeState<FMLHandshakeServerState>
|
||||
NetworkDispatcher dispatcher = ctx.channel().attr(NetworkDispatcher.FML_DISPATCHER).get();
|
||||
FMLLog.info("Server side modded connection established");
|
||||
dispatcher.continueToServerPlayState();
|
||||
return DONE;
|
||||
}
|
||||
},
|
||||
DONE
|
||||
{
|
||||
@Override
|
||||
public FMLHandshakeServerState accept(ChannelHandlerContext ctx, FMLHandshakeMessage msg)
|
||||
{
|
||||
return this;
|
||||
}
|
||||
},
|
||||
|
||||
Reference in new issue
Block a user