Advertisement
Lokha

Untitled

Jan 28th, 2020
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. package ua.lokha.multiprotocol.packet.play;
  2.  
  3. import io.netty.buffer.ByteBuf;
  4. import it.unimi.dsi.fastutil.ints.IntList;
  5. import it.unimi.dsi.fastutil.ints.IntListIterator;
  6. import it.unimi.dsi.fastutil.ints.IntLists;
  7. import ua.lokha.multiprotocol.Connection;
  8. import ua.lokha.multiprotocol.Packet;
  9. import ua.lokha.multiprotocol.Version;
  10. import ua.lokha.multiprotocol.exception.UnsupportedVersionException;
  11.  
  12. import java.util.ArrayList;
  13. import java.util.Collections;
  14. import java.util.List;
  15.  
  16. public class SetPassengersPacket implements Packet {
  17.  
  18. private List<Integer> detach = Collections.emptyList();
  19.  
  20. @Override
  21. public void read(ByteBuf buf, Version version, Connection connection) {
  22. detach = /* получаем список мобов из Connection */;
  23. }
  24.  
  25. @Override
  26. public void read(ByteBuf buf, Version version) {
  27. throw new UnsupportedOperationException();
  28. }
  29.  
  30. @Override
  31. public void write(ByteBuf buf, Version version) {
  32. if (version.isBefore(Version.MINECRAFT_1_9)) {
  33. // write не будет вызван для 1.9, потому что зайствован метод map, который преобразовывет пакет в EntityAttachPacket
  34. throw new UnsupportedVersionException(version);
  35. }
  36. }
  37.  
  38. @Override
  39. public List<Packet> map(Version version) {
  40. if (version.isAfterOrEq(Version.MINECRAFT_1_9)) {
  41. return Collections.singletonList(this); // если версия 1.9+, то отправляем этот пакет
  42. }
  43.  
  44. // если версия 1.8, то заменяем пакет
  45. List<Packet> packets = new ArrayList<>(detach.size());
  46. for (Integer entityId : detach) {
  47. packets.add(new EntityAttachPacket(entityId));
  48. }
  49. return packets;
  50. }
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement