Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.mightydanp.eot.network;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.entity.player.EntityPlayerMP;
- import com.mightydanp.eot.lib.References;
- import com.mightydanp.eot.network.client.SyncPlayerPropsMessage;
- import com.mightydanp.eot.network.server.OpenGuiMessage;
- import cpw.mods.fml.common.network.NetworkRegistry;
- import cpw.mods.fml.common.network.simpleimpl.IMessage;
- import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
- import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper;
- import cpw.mods.fml.relauncher.Side;
- public class PacketDispatcher {
- public static byte packetId = 0;
- public static final SimpleNetworkWrapper dispatcher = NetworkRegistry.INSTANCE.newSimpleChannel(References.MODID);
- public static final void registerPackets() {
- PacketDispatcher.registerMessage(OpenGuiMessage.Handler.class,OpenGuiMessage.class, Side.SERVER);
- PacketDispatcher.registerMessage(SyncPlayerPropsMessage.Handler.class, SyncPlayerPropsMessage.class, Side.CLIENT);
- }
- private static final <T extends AbstractMessage<T> & IMessageHandler<T, IMessage>> void registerMessage(Class<T> clazz) {
- // We can tell by the message class which side to register it on by using #isAssignableFrom (google it)
- // Also, one can see the convenience of using a static counter 'packetId' to keep
- // track of the current index, rather than hard-coding them all, plus it's one less
- // parameter to pass.
- if (AbstractMessage.AbstractClientMessage.class.isAssignableFrom(clazz)) {
- PacketDispatcher.dispatcher.registerMessage(clazz, clazz, packetId++, Side.CLIENT);
- } else if (AbstractMessage.AbstractServerMessage.class.isAssignableFrom(clazz)) {
- PacketDispatcher.dispatcher.registerMessage(clazz, clazz, packetId++, Side.SERVER);
- } else {
- // hopefully you didn't forget to extend the right class, or you will get registered on both sides
- PacketDispatcher.dispatcher.registerMessage(clazz, clazz, packetId, Side.CLIENT);
- PacketDispatcher.dispatcher.registerMessage(clazz, clazz, packetId++, Side.SERVER);
- }
- }
- private static final void registerMessage(Class handlerClass,Class messageClass, Side side) {
- PacketDispatcher.dispatcher.registerMessage(handlerClass, messageClass, packetId++, side);
- }
- public static final void sendTo(IMessage message, EntityPlayerMP player) {
- PacketDispatcher.dispatcher.sendTo(message, player);
- }
- public static final void sendToAllAround(IMessage message, NetworkRegistry.TargetPoint point) {
- PacketDispatcher.dispatcher.sendToAllAround(message, point);
- }
- public static final void sendToAllAround(IMessage message, int dimension, double x, double y, double z, double range) {
- PacketDispatcher.sendToAllAround(message, new NetworkRegistry.TargetPoint(dimension, x, y, z, range));
- }
- public static final void sendToAllAround(IMessage message, EntityPlayer player, double range) {
- PacketDispatcher.sendToAllAround(message, player.worldObj.provider.dimensionId, player.posX, player.posY, player.posZ, range);
- }
- public static final void sendToDimension(IMessage message, int dimensionId) {
- PacketDispatcher.dispatcher.sendToDimension(message, dimensionId);
- }
- public static final void sendToServer(IMessage message) {
- PacketDispatcher.dispatcher.sendToServer(message);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment