Advertisement
Guest User

Untitled

a guest
Jul 28th, 2020
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.89 KB | None | 0 0
  1. package binary404.mystictools.common.network;
  2.  
  3. import binary404.mystictools.common.tile.TileEntityUpgrader;
  4. import net.minecraft.network.PacketBuffer;
  5. import net.minecraft.tileentity.TileEntity;
  6. import net.minecraft.util.math.BlockPos;
  7. import net.minecraftforge.fml.network.NetworkEvent;
  8.  
  9. import java.util.function.Supplier;
  10.  
  11. public class PacketUpgrader {
  12.  
  13. double x, y, z;
  14. int flags;
  15.  
  16. public PacketUpgrader(double x, double y, double z, int flags) {
  17. this.x = x;
  18. this.y = y;
  19. this.z = z;
  20. this.flags = flags;
  21. }
  22.  
  23. public static void encode(PacketUpgrader msg, PacketBuffer buffer) {
  24. buffer.writeDouble(msg.x);
  25. buffer.writeDouble(msg.y);
  26. buffer.writeDouble(msg.z);
  27. buffer.writeInt(msg.flags);
  28. }
  29.  
  30. public static PacketUpgrader decode(PacketBuffer buffer) {
  31. return new PacketUpgrader(buffer.readDouble(), buffer.readDouble(), buffer.readDouble(), buffer.readInt());
  32. }
  33.  
  34. public static void handle(PacketUpgrader packet, Supplier<NetworkEvent.Context> ctx) {
  35. if (ctx.get().getDirection().getReceptionSide().isClient()) {
  36. ctx.get().setPacketHandled(true);
  37. return;
  38. }
  39. ctx.get().enqueueWork(() -> {
  40. BlockPos pos = new BlockPos(packet.x, packet.y, packet.z);
  41.  
  42. TileEntity tileEntity = ctx.get().getSender().world.getTileEntity(pos);
  43.  
  44. if (tileEntity instanceof TileEntityUpgrader) {
  45. TileEntityUpgrader upgrader = (TileEntityUpgrader) tileEntity;
  46.  
  47. switch (packet.flags) {
  48. case 0:
  49. upgrader.reroll();
  50. break;
  51. case 1:
  52. upgrader.upgrade();
  53. break;
  54. }
  55. }
  56. });
  57. ctx.get().setPacketHandled(true);
  58. }
  59.  
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement