MightyDanp

Untitled

Jul 14th, 2015
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.30 KB | None | 0 0
  1. package com.mightydanp.eot.network;
  2.  
  3. import net.minecraft.entity.player.EntityPlayer;
  4. import net.minecraft.entity.player.EntityPlayerMP;
  5.  
  6. import com.mightydanp.eot.lib.References;
  7. import com.mightydanp.eot.network.client.SyncPlayerPropsMessage;
  8. import com.mightydanp.eot.network.server.OpenGuiMessage;
  9.  
  10. import cpw.mods.fml.common.network.NetworkRegistry;
  11. import cpw.mods.fml.common.network.simpleimpl.IMessage;
  12. import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
  13. import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper;
  14. import cpw.mods.fml.relauncher.Side;
  15.  
  16. public class PacketDispatcher {
  17.  
  18. public static byte packetId = 0;
  19.  
  20. public static final SimpleNetworkWrapper dispatcher = NetworkRegistry.INSTANCE.newSimpleChannel(References.MODID);
  21.  
  22. public static final void registerPackets() {
  23. PacketDispatcher.registerMessage(OpenGuiMessage.Handler.class,OpenGuiMessage.class, Side.SERVER);
  24. PacketDispatcher.registerMessage(SyncPlayerPropsMessage.Handler.class, SyncPlayerPropsMessage.class, Side.CLIENT);
  25.  
  26. }
  27.  
  28. private static final <T extends AbstractMessage<T> & IMessageHandler<T, IMessage>> void registerMessage(Class<T> clazz) {
  29. // We can tell by the message class which side to register it on by using #isAssignableFrom (google it)
  30.  
  31. // Also, one can see the convenience of using a static counter 'packetId' to keep
  32. // track of the current index, rather than hard-coding them all, plus it's one less
  33. // parameter to pass.
  34. if (AbstractMessage.AbstractClientMessage.class.isAssignableFrom(clazz)) {
  35. PacketDispatcher.dispatcher.registerMessage(clazz, clazz, packetId++, Side.CLIENT);
  36. } else if (AbstractMessage.AbstractServerMessage.class.isAssignableFrom(clazz)) {
  37. PacketDispatcher.dispatcher.registerMessage(clazz, clazz, packetId++, Side.SERVER);
  38. } else {
  39. // hopefully you didn't forget to extend the right class, or you will get registered on both sides
  40. PacketDispatcher.dispatcher.registerMessage(clazz, clazz, packetId, Side.CLIENT);
  41. PacketDispatcher.dispatcher.registerMessage(clazz, clazz, packetId++, Side.SERVER);
  42. }
  43. }
  44.  
  45. private static final void registerMessage(Class handlerClass,Class messageClass, Side side) {
  46. PacketDispatcher.dispatcher.registerMessage(handlerClass, messageClass, packetId++, side);
  47. }
  48.  
  49. public static final void sendTo(IMessage message, EntityPlayerMP player) {
  50. PacketDispatcher.dispatcher.sendTo(message, player);
  51. }
  52.  
  53. public static final void sendToAllAround(IMessage message, NetworkRegistry.TargetPoint point) {
  54. PacketDispatcher.dispatcher.sendToAllAround(message, point);
  55. }
  56.  
  57. public static final void sendToAllAround(IMessage message, int dimension, double x, double y, double z, double range) {
  58. PacketDispatcher.sendToAllAround(message, new NetworkRegistry.TargetPoint(dimension, x, y, z, range));
  59. }
  60.  
  61. public static final void sendToAllAround(IMessage message, EntityPlayer player, double range) {
  62. PacketDispatcher.sendToAllAround(message, player.worldObj.provider.dimensionId, player.posX, player.posY, player.posZ, range);
  63. }
  64.  
  65. public static final void sendToDimension(IMessage message, int dimensionId) {
  66. PacketDispatcher.dispatcher.sendToDimension(message, dimensionId);
  67. }
  68.  
  69. public static final void sendToServer(IMessage message) {
  70. PacketDispatcher.dispatcher.sendToServer(message);
  71. }
  72. }
Advertisement
Add Comment
Please, Sign In to add comment