Java 类net.minecraftforge.fml.common.network.FMLEmbeddedChannel 实例源码
项目:justenoughdimensions
文件:JEDEventHandler.java
@SubscribeEvent
public void onConnectionCreated(FMLNetworkEvent.ServerConnectionFromClientEvent event)
{
JustEnoughDimensions.logInfo("FMLNetworkEvent.ServerConnectionFromClientEvent: Syncing dimension data to client");
DimensionSyncPacket packet = new DimensionSyncPacket();
packet.addDimensionData(DimensionConfig.instance().getRegisteredDimensions());
FMLEmbeddedChannel channel = JustEnoughDimensions.channels.get(Side.SERVER);
channel.attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.DISPATCHER);
channel.attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(event.getManager().channel().attr(NetworkDispatcher.FML_DISPATCHER).get());
channel.writeOutbound(packet);
}
项目:CustomWorldGen
文件:SimpleNetworkWrapper.java
/**
* Register a message and it's associated handler. The message will have the supplied discriminator byte. The message handler will
* be registered on the supplied side (this is the side where you want the message to be processed and acted upon).
*
* @param messageHandler the message handler instance
* @param requestMessageType the message type
* @param discriminator a discriminator byte
* @param side the side for the handler
*/
public <REQ extends IMessage, REPLY extends IMessage> void registerMessage(IMessageHandler<? super REQ, ? extends REPLY> messageHandler, Class<REQ> requestMessageType, int discriminator, Side side)
{
packetCodec.addDiscriminator(discriminator, requestMessageType);
FMLEmbeddedChannel channel = channels.get(side);
String type = channel.findChannelHandlerNameForType(SimpleIndexedCodec.class);
if (side == Side.SERVER)
{
addServerHandlerAfter(channel, type, messageHandler, requestMessageType);
}
else
{
addClientHandlerAfter(channel, type, messageHandler, requestMessageType);
}
}
项目:CustomWorldGen
文件:ForgeNetworkHandler.java
public static void registerChannel(ForgeModContainer forgeModContainer, Side side)
{
channelPair = NetworkRegistry.INSTANCE.newChannel(forgeModContainer, "FORGE", new ForgeRuntimeCodec());
if (side == Side.CLIENT)
{
addClientHandlers();
}
FMLEmbeddedChannel serverChannel = channelPair.get(Side.SERVER);
serverChannel.attr(FMLOutboundHandler.FML_MESSAGETARGET).set(OutboundTarget.NOWHERE);
String handlerName = serverChannel.findChannelHandlerNameForType(ForgeRuntimeCodec.class);
serverChannel.pipeline().addAfter(handlerName, "ServerToClientConnection", new ServerToClientConnectionEstablishedHandler());
}
项目:CustomWorldGen
文件:ForgeNetworkHandler.java
@SideOnly(Side.CLIENT)
private static void addClientHandlers()
{
FMLEmbeddedChannel clientChannel = channelPair.get(Side.CLIENT);
String handlerName = clientChannel.findChannelHandlerNameForType(ForgeRuntimeCodec.class);
clientChannel.pipeline().addAfter(handlerName, "DimensionHandler", new DimensionMessageHandler());
clientChannel.pipeline().addAfter(handlerName, "FluidIdRegistryHandler", new FluidIdRegistryMessageHandler());
}
项目:CodeChickenLib
文件:PacketCustom.java
public static FMLEmbeddedChannel getOrCreateChannel(String channelName, Side side) {
if (!NetworkRegistry.INSTANCE.hasChannel(channelName, side)) {
NetworkRegistry.INSTANCE.newChannel(channelName, new CustomInboundHandler());
}
return NetworkRegistry.INSTANCE.getChannel(channelName, side);
}
项目:CodeChickenLib
文件:PacketCustom.java
public static void assignHandler(Object channelKey, ICustomPacketHandler handler) {
String channelName = channelName(channelKey);
Side side = handler instanceof IServerPacketHandler ? Side.SERVER : Side.CLIENT;
FMLEmbeddedChannel channel = getOrCreateChannel(channelName, side);
channel.attr(cclHandler).get().handlers.put(side, side == Side.SERVER ? new ServerInboundHandler(handler) : new ClientInboundHandler(handler));
}
项目:OpenModsLib
文件:SyncChannelHolder.java
private SyncChannelHolder() {
final EnumMap<Side, FMLEmbeddedChannel> channels = NetworkRegistry.INSTANCE.newChannel(CHANNEL_NAME, new InboundSyncHandler());
for (Map.Entry<Side, FMLEmbeddedChannel> e : channels.entrySet()) {
final FMLEmbeddedChannel channel = e.getValue();
ExtendedOutboundHandler.install(channel);
senders.put(e.getKey(), ExtPacketSenderFactory.createMultiplePlayersSender(channel));
}
}
项目:iChunUtil
文件:PacketChannel.java
public void registerPacket(String modId, int i, Class<? extends AbstractPacket> packetClass)
{
packetCodec.addDiscriminator(i, packetClass);
try
{
Side side = packetClass.newInstance().receivingSide();
if(side == null)
{
FMLEmbeddedChannel channelServer = channels.get(Side.SERVER);
String typeServer = channelServer.findChannelHandlerNameForType(AbstractPacketCodec.class);
PacketHandlerWrapper handlerServer = new PacketHandlerWrapper(Side.SERVER, packetClass);
channelServer.pipeline().addAfter(typeServer, generateName(channelServer.pipeline(), handlerServer), handlerServer);
FMLEmbeddedChannel channelClient = channels.get(Side.CLIENT);
String typeClient = channelClient.findChannelHandlerNameForType(AbstractPacketCodec.class);
PacketHandlerWrapper handlerClient = new PacketHandlerWrapper(Side.CLIENT, packetClass);
channelClient.pipeline().addAfter(typeClient, generateName(channelClient.pipeline(), handlerClient), handlerClient);
}
else
{
FMLEmbeddedChannel channel = channels.get(side);
String type = channel.findChannelHandlerNameForType(AbstractPacketCodec.class);
PacketHandlerWrapper handler = new PacketHandlerWrapper(side, packetClass);
channel.pipeline().addAfter(type, generateName(channel.pipeline(), handler), handler);
}
}
catch(Exception e)
{
iChunUtil.LOGGER.warn("Could not create packet for class " + packetClass.getName() + " for channel " + modId + ". Is there a default constructor in that class?");
throw Throwables.propagate(e);
}
}
项目:UniversalRemote
文件:RemoteGuiNetworkManager.java
@SuppressWarnings("unchecked")
public void preInit(FMLPreInitializationEvent event)
{
Util.logger.info("Injecting FML packet filter...");
try {
EnumMap<Side, FMLEmbeddedChannel> channelPair
= InjectionHandler.readStaticFieldOfType(FMLNetworkHandler.class, EnumMap.class);
String targetName = channelPair.get(Side.SERVER).findChannelHandlerNameForType(FMLRuntimeCodec.class);
ChannelPipeline pipeline = channelPair.get(Side.SERVER).pipeline();
pipeline.addAfter(targetName, "universalremote_OpenGuiFilter", m_openGuiFilter);
} catch (Exception e) {
Util.logger.logException("Unable to inject into FMLNetworkHandler!", e);
}
}
项目:CustomWorldGen
文件:SimpleNetworkWrapper.java
private <REQ extends IMessage, REPLY extends IMessage, NH extends INetHandler> void addServerHandlerAfter(FMLEmbeddedChannel channel, String type, IMessageHandler<? super REQ, ? extends REPLY> messageHandler, Class<REQ> requestType)
{
SimpleChannelHandlerWrapper<REQ, REPLY> handler = getHandlerWrapper(messageHandler, Side.SERVER, requestType);
channel.pipeline().addAfter(type, generateName(channel.pipeline(), handler), handler);
}
项目:CustomWorldGen
文件:SimpleNetworkWrapper.java
private <REQ extends IMessage, REPLY extends IMessage, NH extends INetHandler> void addClientHandlerAfter(FMLEmbeddedChannel channel, String type, IMessageHandler<? super REQ, ? extends REPLY> messageHandler, Class<REQ> requestType)
{
SimpleChannelHandlerWrapper<REQ, REPLY> handler = getHandlerWrapper(messageHandler, Side.CLIENT, requestType);
channel.pipeline().addAfter(type, generateName(channel.pipeline(), handler), handler);
}
项目:FFS
文件:NetworkHandler.java
public static void sendPacketToPlayer(FFSPacket packet, EntityPlayer player) {
FMLEmbeddedChannel channel = channels.get(Side.SERVER);
channel.attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.PLAYER);
channel.attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(player);
channel.writeOutbound(packet);
}
项目:FFS
文件:NetworkHandler.java
public static void sendPacketToAllPlayers(FFSPacket packet) {
FMLEmbeddedChannel channel = channels.get(Side.SERVER);
channel.attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.ALL);
channel.writeOutbound(packet);
}
项目:FFS
文件:NetworkHandler.java
public static void sendPacketToServer(FFSPacket packet) {
FMLEmbeddedChannel channel = channels.get(Side.CLIENT);
channel.attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.TOSERVER);
channel.writeOutbound(packet);
}
项目:CodeChickenLib
文件:PacketCustom.java
public static void assignHandshakeHandler(Object channelKey, IHandshakeHandler handler) {
FMLEmbeddedChannel channel = getOrCreateChannel(channelName(channelKey), Side.SERVER);
channel.pipeline().addLast(new HandshakeInboundHandler(handler));
}
项目:HazardousResearch
文件:PacketHandler.java
public static EnumMap<Side, FMLEmbeddedChannel> getChannels()
{
return channels;
}
项目:HazardousResearch
文件:PacketHandler.java
public static void setChannels(EnumMap<Side, FMLEmbeddedChannel> _channels)
{
channels = _channels;
}
项目:SasaLib
文件:PacketDispatcher.java
public Packet toMCPacket(SasaPacketBase packet)
{
return ((FMLEmbeddedChannel)channels.get(FMLCommonHandler.instance().getEffectiveSide())).generatePacketFrom(packet);
}
项目:OpenModsLib
文件:RpcCallDispatcher.java
@Override
protected FMLEmbeddedChannel getChannel(Side side) {
return channels.get(side);
}
项目:OpenModsLib
文件:NetworkEventDispatcher.java
@Override
protected FMLEmbeddedChannel getChannel(Side side) {
return channels.get(side);
}
项目:OpenModsLib
文件:ExtendedOutboundHandler.java
public static void install(Map<Side, FMLEmbeddedChannel> channels) {
for (Side side : Side.values())
install(channels.get(side));
}
项目:OpenModsLib
文件:ExtendedOutboundHandler.java
public static void install(FMLEmbeddedChannel fmlEmbeddedChannel) {
fmlEmbeddedChannel.pipeline().addAfter("fml:outbound", "om:outbound", new ExtendedOutboundHandler());
}