Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ua.lokha.multiprotocol.packet.play;
- import io.netty.buffer.ByteBuf;
- import it.unimi.dsi.fastutil.ints.IntList;
- import it.unimi.dsi.fastutil.ints.IntListIterator;
- import it.unimi.dsi.fastutil.ints.IntLists;
- import ua.lokha.multiprotocol.Connection;
- import ua.lokha.multiprotocol.Packet;
- import ua.lokha.multiprotocol.Version;
- import ua.lokha.multiprotocol.exception.UnsupportedVersionException;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- public class SetPassengersPacket implements Packet {
- private List<Integer> detach = Collections.emptyList();
- @Override
- public void read(ByteBuf buf, Version version, Connection connection) {
- detach = /* получаем список мобов из Connection */;
- }
- @Override
- public void read(ByteBuf buf, Version version) {
- throw new UnsupportedOperationException();
- }
- @Override
- public void write(ByteBuf buf, Version version) {
- if (version.isBefore(Version.MINECRAFT_1_9)) {
- // write не будет вызван для 1.9, потому что зайствован метод map, который преобразовывет пакет в EntityAttachPacket
- throw new UnsupportedVersionException(version);
- }
- }
- @Override
- public List<Packet> map(Version version) {
- if (version.isAfterOrEq(Version.MINECRAFT_1_9)) {
- return Collections.singletonList(this); // если версия 1.9+, то отправляем этот пакет
- }
- // если версия 1.8, то заменяем пакет
- List<Packet> packets = new ArrayList<>(detach.size());
- for (Integer entityId : detach) {
- packets.add(new EntityAttachPacket(entityId));
- }
- return packets;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement