Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Packet sent to players upon joining the server, for sending registry information as loaded or otherwise held by the
- * server.
- */
- public class PlayerJoinPacket implements IMessage
- {
- /**
- * The packet handler, for copying config information from the server into the client.
- */
- public static class Handler implements IMessageHandler<PlayerJoinPacket, IMessage>
- {
- @Override
- public IMessage onMessage(PlayerJoinPacket message, MessageContext ctx)
- {
- ArcaneBooks.instance.registries.spellEffects.loadFromString(message.unparsedSpellEffects);
- return null;
- }
- /*
- Version of the above method for Minecraft v1.8.
- @Override
- public IMessage onMessage(PlayerJoinPacket message, MessageContext ctx)
- {
- IThreadListener mainThread = Minecraft.getMinecraft();
- mainThread.addScheduledTask(new Runnable()
- {
- @Override
- public void run()
- { ArcaneBooks.instance.registries.spellEffects.fillFromString(message.unparsedSpellEffects); }
- });
- return null;
- }
- */
- }
- String unparsedSpellEffects = null;
- @Override
- public void fromBytes(ByteBuf buf)
- { unparsedSpellEffects = ByteBufUtils.readUTF8String(buf); }
- @Override
- public void toBytes(ByteBuf buf)
- { ByteBufUtils.writeUTF8String(buf, ArcaneBooks.instance.registries.spellEffects.toString()); }
- }
- -----------------------------------------------------------------------------------------------------------
- // In the main mod class.
- @Mod.EventHandler
- public void PreInitializationEvent(FMLPreInitializationEvent event)
- {
- packetChannel = NetworkRegistry.INSTANCE.newSimpleChannel("ArcaneBooks");
- packetChannel.registerMessage(PlayerJoinPacket.Handler.class, PlayerJoinPacket.class, 1, Side.CLIENT);
- FMLCommonHandler.instance().bus().register(new PlayerJoinServerListener());
- }
- ------------------------------------------------------------------------------------------------------------
- /**
- * Listens to players logging into the server, so that the server can send the player a packet containing registry
- * information/contents as loaded or otherwise held by the server.
- */
- public class PlayerJoinServerListener
- {
- @SubscribeEvent
- public void onPlayerJoin(PlayerLoggedInEvent event)
- {
- boolean runningOnServer = !DimensionManager.getWorld(0).isRemote;
- if(runningOnServer)
- ArcaneBooks.instance.packetChannel.sendTo(new PlayerJoinPacket(), (EntityPlayerMP)event.player);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment