@Override
protected void channelRead0(ChannelHandlerContext ctx, REQ msg) throws Exception
{
INetHandler iNetHandler = ctx.channel().attr(NetworkRegistry.NET_HANDLER).get();
MessageContext context = new MessageContext(iNetHandler, side);
REPLY result = messageHandler.onMessage(msg, context);
if (result != null)
{
ctx.channel().attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.REPLY);
ctx.writeAndFlush(result).addListener(ChannelFutureListener.FIRE_EXCEPTION_ON_FAILURE);
}
}
java类net.minecraftforge.fml.common.network.NetworkRegistry的实例源码
SimpleChannelHandlerWrapper.java 文件源码
项目:CustomWorldGen
阅读 25
收藏 0
点赞 0
评论 0
BlockCrank.java 文件源码
项目:Machines-and-Stuff
阅读 15
收藏 0
点赞 0
评论 0
@Override
public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
if(worldIn.isRemote) {
return true;
}
TileEntityCrank tile = (TileEntityCrank) worldIn.getTileEntity(pos);
if(tile.generationTimerDefault <= 100) {
tile.generationTimerDefault += 5;
tile.generationTimer += 5;
PacketHandler.INSTANCE.sendToAllAround(new MessageCrank(tile), new NetworkRegistry.TargetPoint(worldIn.provider.getDimension(), (double) pos.getX(), (double) pos.getY(), (double) pos.getZ(), 128d));
}
return true;
}
BlockBaseGenerator.java 文件源码
项目:Machines-and-Stuff
阅读 23
收藏 0
点赞 0
评论 0
public static void setState(boolean active, World worldIn, BlockPos pos) {
IBlockState iblockstate = worldIn.getBlockState(pos);
TileEntity tileentity = worldIn.getTileEntity(pos);
worldIn.setBlockState(pos, iblockstate.getBlock().getDefaultState().withProperty(FACING, iblockstate.getValue(FACING)).withProperty(isActive, active), 3);
if(tileentity != null) {
tileentity.validate();
worldIn.setTileEntity(pos, tileentity);
PacketHandler.INSTANCE.sendToAllAround(new MessageGenerator(tileentity), new NetworkRegistry.TargetPoint(worldIn.provider.getDimension(), tileentity.getPos().getX(), tileentity.getPos().getY(), tileentity.getPos().getZ(), 128d));
}
}
BlockMachine.java 文件源码
项目:Machines-and-Stuff
阅读 17
收藏 0
点赞 0
评论 0
public void setState(boolean active, World worldIn, BlockPos pos) {
IBlockState iblockstate = worldIn.getBlockState(pos);
TileEntity tileentity = worldIn.getTileEntity(pos);
worldIn.setBlockState(pos, getDefaultState().withProperty(FACING, iblockstate.getValue(FACING)).withProperty(isActive, active), 3);
worldIn.setBlockState(pos, getDefaultState().withProperty(FACING, iblockstate.getValue(FACING)).withProperty(isActive, active), 3);
if(tileentity != null) {
tileentity.validate();
worldIn.setTileEntity(pos, tileentity);
PacketHandler.INSTANCE.sendToAllAround(new MessageMachineBase((TileEntityMachineBase) tileentity), new NetworkRegistry.TargetPoint(worldIn.provider.getDimension(), (double) tileentity.getPos().getX(), (double) tileentity.getPos().getY(), (double) tileentity.getPos().getZ(), 128d));
}
}
TileEntityCrank.java 文件源码
项目:Machines-and-Stuff
阅读 14
收藏 0
点赞 0
评论 0
@Override
public void update() {
boolean sendUpdate = false;
if(generationTimer < 0) {
generationTimerDefault = -1;
generationTimer = -1;
if(!world.isRemote)
sendUpdate = true;
}
if(container.getStoredPower() > 0)
if(pushEnergy()) {
sendUpdate = true;
}
if(generationTimerDefault > 0 && this.container.getStoredPower() < this.container.getCapacity()) {
generationTimer--;
this.container.givePower(5, false);
if(!world.isRemote)
sendUpdate = true;
}
if(!world.isRemote) {
if(sendUpdate) {
this.markDirty();
PacketHandler.INSTANCE.sendToAllAround(new MessageCrank(this), new NetworkRegistry.TargetPoint(this.world.provider.getDimension(), (double) this.getPos().getX(), (double) this.getPos().getY(), (double) this.getPos().getZ(), 128d));
this.world.notifyNeighborsOfStateChange(getPos(), getBlockType(), true);
}
}
}
PacketHandler.java 文件源码
项目:VanillaExtras
阅读 27
收藏 0
点赞 0
评论 0
public static void registerMessages(String channelName) {
NETWORKINSTANCE = NetworkRegistry.INSTANCE.newSimpleChannel(channelName);
NETWORKINSTANCE.registerMessage(PacketGetWorker.Handler.class, PacketGetWorker.class, nextID(), Side.SERVER);
NETWORKINSTANCE.registerMessage(PacketReturnWorker.Handler.class, PacketReturnWorker.class, nextID(),
Side.CLIENT);
}
LithiumMod.java 文件源码
项目:Lithium-Forge
阅读 29
收藏 0
点赞 0
评论 0
@SideOnly(Side.CLIENT)
@EventHandler
public void init(FMLInitializationEvent event) {
overlayRenderer = new LithiumOverlay();
MinecraftForge.EVENT_BUS.register(NetworkEventHandler.INSTANCE);
MinecraftForge.EVENT_BUS.register(overlayRenderer);
network = NetworkRegistry.INSTANCE.newSimpleChannel(LithiumMod.CHANNELNAME);
Handle.setPacketHandler(new PacketHandlerImpl());
getSimpleNetworkWrapper().registerMessage(Handle.class, LithiumMessage.class, 0, Side.CLIENT);
}
MalmoMod.java 文件源码
项目:Proyecto-DASI
阅读 29
收藏 0
点赞 0
评论 0
@EventHandler
public void preInit(FMLPreInitializationEvent event)
{
if (!SchemaHelper.testSchemaVersionNumbers(Loader.instance().activeModContainer().getVersion()))
throw new RuntimeException("This mod has been incorrectly built; check schema version numbers.");
if (event.getModMetadata().version.equals("${version}"))
{
// The mcmod.info version number is populated by gradle; if we've been built without gradle,
// via eclipse say, then we can just use the internal version number instead, which comes to us from the version.properties file.
// (There's no real benefit to doing this; it just looks nicer in the Mod GUI if the version number is filled in.)
event.getModMetadata().version = Loader.instance().activeModContainer().getVersion();
}
// Load the correct configs (client or server)
File configDir = event.getModConfigurationDirectory();
File sessionConfigFile = new File(configDir, MODID + event.getSide().toString() + ".cfg");
File permanentConfigFile = new File(configDir, MODID + event.getSide().toString() + "Permanent.cfg");
this.sessionConfig = new Configuration(sessionConfigFile);
this.sessionConfig.load();
this.permanentConfig = new Configuration(permanentConfigFile);
this.permanentConfig.load();
AddressHelper.update(this.sessionConfig);
ScreenHelper.update(this.permanentConfig);
network = NetworkRegistry.INSTANCE.newSimpleChannel("Malmo");
network.registerMessage(ObservationFromFullStatsImplementation.FullStatsRequestMessageHandler.class, ObservationFromFullStatsImplementation.FullStatsRequestMessage.class, 1, Side.SERVER);
network.registerMessage(ObservationFromGridImplementation.GridRequestMessageHandler.class, ObservationFromGridImplementation.GridRequestMessage.class, 2, Side.SERVER);
network.registerMessage(MalmoMessageHandler.class, MalmoMessage.class, 3, Side.CLIENT); // Malmo messages from server to client
network.registerMessage(SimpleCraftCommandsImplementation.CraftMessageHandler.class, SimpleCraftCommandsImplementation.CraftMessage.class, 4, Side.SERVER);
network.registerMessage(AbsoluteMovementCommandsImplementation.TeleportMessageHandler.class, AbsoluteMovementCommandsImplementation.TeleportMessage.class, 5, Side.SERVER);
network.registerMessage(MalmoMessageHandler.class, MalmoMessage.class, 6, Side.SERVER); // Malmo messages from client to server
network.registerMessage(InventoryCommandsImplementation.InventoryMessageHandler.class, InventoryCommandsImplementation.InventoryMessage.class, 7, Side.SERVER);
network.registerMessage(DiscreteMovementCommandsImplementation.UseActionMessageHandler.class, DiscreteMovementCommandsImplementation.UseActionMessage.class, 8, Side.SERVER);
network.registerMessage(DiscreteMovementCommandsImplementation.AttackActionMessageHandler.class, DiscreteMovementCommandsImplementation.AttackActionMessage.class, 9, Side.SERVER);
}
MalmoMod.java 文件源码
项目:Proyecto-DASI
阅读 58
收藏 0
点赞 0
评论 0
@EventHandler
public void preInit(FMLPreInitializationEvent event)
{
if (!SchemaHelper.testSchemaVersionNumbers(Loader.instance().activeModContainer().getVersion()))
throw new RuntimeException("This mod has been incorrectly built; check schema version numbers.");
if (event.getModMetadata().version.equals("${version}"))
{
// The mcmod.info version number is populated by gradle; if we've been built without gradle,
// via eclipse say, then we can just use the internal version number instead, which comes to us from the version.properties file.
// (There's no real benefit to doing this; it just looks nicer in the Mod GUI if the version number is filled in.)
event.getModMetadata().version = Loader.instance().activeModContainer().getVersion();
}
// Load the correct configs (client or server)
File configDir = event.getModConfigurationDirectory();
File sessionConfigFile = new File(configDir, MODID + event.getSide().toString() + ".cfg");
File permanentConfigFile = new File(configDir, MODID + event.getSide().toString() + "Permanent.cfg");
this.sessionConfig = new Configuration(sessionConfigFile);
this.sessionConfig.load();
this.permanentConfig = new Configuration(permanentConfigFile);
this.permanentConfig.load();
AddressHelper.update(this.sessionConfig);
ScreenHelper.update(this.permanentConfig);
network = NetworkRegistry.INSTANCE.newSimpleChannel("Malmo");
network.registerMessage(ObservationFromFullStatsImplementation.FullStatsRequestMessageHandler.class, ObservationFromFullStatsImplementation.FullStatsRequestMessage.class, 1, Side.SERVER);
network.registerMessage(ObservationFromGridImplementation.GridRequestMessageHandler.class, ObservationFromGridImplementation.GridRequestMessage.class, 2, Side.SERVER);
network.registerMessage(MalmoMessageHandler.class, MalmoMessage.class, 3, Side.CLIENT); // Malmo messages from server to client
network.registerMessage(SimpleCraftCommandsImplementation.CraftMessageHandler.class, SimpleCraftCommandsImplementation.CraftMessage.class, 4, Side.SERVER);
network.registerMessage(AbsoluteMovementCommandsImplementation.TeleportMessageHandler.class, AbsoluteMovementCommandsImplementation.TeleportMessage.class, 5, Side.SERVER);
network.registerMessage(MalmoMessageHandler.class, MalmoMessage.class, 6, Side.SERVER); // Malmo messages from client to server
network.registerMessage(InventoryCommandsImplementation.InventoryMessageHandler.class, InventoryCommandsImplementation.InventoryMessage.class, 7, Side.SERVER);
network.registerMessage(DiscreteMovementCommandsImplementation.UseActionMessageHandler.class, DiscreteMovementCommandsImplementation.UseActionMessage.class, 8, Side.SERVER);
network.registerMessage(DiscreteMovementCommandsImplementation.AttackActionMessageHandler.class, DiscreteMovementCommandsImplementation.AttackActionMessage.class, 9, Side.SERVER);
}
PanguCore.java 文件源码
项目:Pangu
阅读 28
收藏 0
点赞 0
评论 0
/**
* ==============================
* FML Initialization
* ==============================
*/
@Mod.EventHandler
public void preInit(FMLPreInitializationEvent event) {
// Init the network
network = NetworkRegistry.INSTANCE.newSimpleChannel(MODID);
proxy.preInit(event);
}