Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0f6ee71733 | ||
|
|
4dafa959c1 |
No files matched your search
@@ -72,10 +72,22 @@ public final class EventManager {
|
||||
}
|
||||
}
|
||||
|
||||
public void registerListeners(final PacketListener... listeners) {
|
||||
for(final PacketListener listener : listeners) {
|
||||
registerListener(listener);
|
||||
}
|
||||
}
|
||||
|
||||
public void unregisterListener(final PacketListener e) {
|
||||
registeredMethods.remove(e);
|
||||
}
|
||||
|
||||
public void unregisterListeners(final PacketListener... listeners) {
|
||||
for(final PacketListener listener : listeners) {
|
||||
unregisterListener(listener);
|
||||
}
|
||||
}
|
||||
|
||||
public void unregisterAllListeners() {
|
||||
registeredMethods.clear();
|
||||
}
|
||||
|
||||
@@ -1,179 +0,0 @@
|
||||
package io.github.retrooper.packetevents.packet;
|
||||
|
||||
import io.github.retrooper.packetevents.PacketEvents;
|
||||
import io.github.retrooper.packetevents.enums.ServerVersion;
|
||||
import io.github.retrooper.packetevents.reflectionutils.Reflection;
|
||||
import io.github.retrooper.packetevents.utils.NMSUtils;
|
||||
|
||||
@Deprecated
|
||||
public final class PacketTypeNames {
|
||||
private static final ServerVersion version = PacketEvents.getAPI().getServerUtilities().getServerVersion();
|
||||
|
||||
|
||||
public static final class Util {
|
||||
private static Class<?> packetPlayInFlying, packetPlayInPosition, packetPlayInPositionLook, packetPlayInLook, packetPlayInUseEntity;
|
||||
|
||||
static {
|
||||
try {
|
||||
//Only exists in 1.7->1.8.8 & 1.16 protocol
|
||||
packetPlayInFlying = NMSUtils.getNMSClass(Client.FLYING);
|
||||
} catch (ClassNotFoundException e) {
|
||||
//That is fine, they are on 1.9->1.15.2
|
||||
}
|
||||
try {
|
||||
packetPlayInPosition = NMSUtils.getNMSClass(Client.POSITION);
|
||||
packetPlayInPositionLook = NMSUtils.getNMSClass(Client.POSITION_LOOK);
|
||||
packetPlayInLook = NMSUtils.getNMSClass(Client.LOOK);
|
||||
|
||||
} catch (ClassNotFoundException e) {
|
||||
packetPlayInPosition = Reflection.getSubClass(packetPlayInFlying, Client.POSITION);
|
||||
packetPlayInPositionLook = Reflection.getSubClass(packetPlayInFlying, Client.POSITION_LOOK);
|
||||
packetPlayInLook = Reflection.getSubClass(packetPlayInFlying, Client.LOOK);
|
||||
}
|
||||
|
||||
try {
|
||||
packetPlayInUseEntity = NMSUtils.getNMSClass(Client.USE_ENTITY);
|
||||
} catch (ClassNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Is this NMS packet an instance of the "PacketPlayInFlying" packet?
|
||||
* Supports 1.9->1.15.2 too!
|
||||
*
|
||||
* @param nmsPacket
|
||||
* @return If the nms packet provided is an instanceof the "PacketPlayInFlying" packet in the 1.8 protocol & 1.16 protocol!
|
||||
*/
|
||||
public static boolean isInstanceOfFlyingPacket(final Object nmsPacket) {
|
||||
//1.7->1.8.8
|
||||
if (packetPlayInFlying != null) {
|
||||
return packetPlayInFlying.isInstance(nmsPacket);
|
||||
} else {
|
||||
//1.9->1.15.2
|
||||
return isInstanceOfPositionOrPositionLook(nmsPacket) || isInstanceOfPositionLookPacket(nmsPacket);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Is this NMS packet an instance of the "PacketPlayInPosition" packet?
|
||||
*
|
||||
* @param nmsPacket
|
||||
* @return nmsPacket instanceof PacketPlayInPosition
|
||||
*/
|
||||
public static boolean isInstanceOfPositionPacket(final Object nmsPacket) {
|
||||
return packetPlayInPosition.isInstance(nmsPacket);
|
||||
}
|
||||
|
||||
/**
|
||||
* Is this NMS packet an instance of the "PacketPlayInPositionLook" packet?
|
||||
*
|
||||
* @param nmsPacket
|
||||
* @return nmsPacket instanceof PacketPlayInPositionLook
|
||||
*/
|
||||
public static boolean isInstanceOfPositionLookPacket(final Object nmsPacket) {
|
||||
return packetPlayInPositionLook.isInstance(nmsPacket);
|
||||
}
|
||||
|
||||
/**
|
||||
* Is this NMS Packet an instanceof the "PacketPlayInPosition" or "PacketPlayInPositionLook"
|
||||
*
|
||||
* @param nmsPacket
|
||||
* @return nmsPacket instanceof PacketPlayInPosition || nmsPacket instanceof PacketPlayInPositionLook
|
||||
*/
|
||||
public static boolean isInstanceOfPositionOrPositionLook(final Object nmsPacket) {
|
||||
return isInstanceOfPositionPacket(nmsPacket) || isInstanceOfPositionLookPacket(nmsPacket);
|
||||
}
|
||||
|
||||
/**
|
||||
* Is this NMS Packet an instance of the "PacketPlayInLook" packet?
|
||||
*
|
||||
* @param nmsPacket
|
||||
* @return nmsPacket instanceof PacketPlayInLook
|
||||
*/
|
||||
public static boolean isInstanceOfLook(final Object nmsPacket) {
|
||||
return packetPlayInLook.isInstance(nmsPacket);
|
||||
}
|
||||
|
||||
public static boolean isInstanceOfUseEntity(final Object nmsPacket) {
|
||||
return packetPlayInUseEntity.isInstance(nmsPacket);
|
||||
}
|
||||
}
|
||||
|
||||
public static final class Client {
|
||||
private static final String c = "PacketPlayIn";
|
||||
/*
|
||||
* Only exists in 1.7.10->1.8.8 & 1.16+
|
||||
*/
|
||||
public static final String FLYING = c + "Flying";
|
||||
|
||||
|
||||
public static final String POSITION = c + "Position";
|
||||
|
||||
public static final String POSITION_LOOK = c + "PositionLook";
|
||||
|
||||
public static final String LOOK = c + "Look";
|
||||
public static final String CLIENT_COMMAND = c + "ClientCommand";
|
||||
|
||||
public static final String TRANSACTION = c + "Transaction";
|
||||
public static final String BLOCK_DIG = c + "BlockDig";
|
||||
public static final String ENTITY_ACTION = c + "EntityAction";
|
||||
public static final String USE_ENTITY = c + "UseEntity";
|
||||
public static final String WINDOW_CLICK = c + "WindowClick";
|
||||
public static final String STEER_VEHICLE = c + "SteerVehicle";
|
||||
public static final String CUSTOM_PAYLOAD = c + "CustomPayload";
|
||||
public static final String ARM_ANIMATION = c + "ArmAnimation";
|
||||
/**
|
||||
* The packet name of the block place depending on your server version, "PacketPlayInBlockPlace" or "PacketPlayInUseItem"
|
||||
*/
|
||||
public static final String BLOCK_PLACE = c + ((ServerVersion.getVersion().isHigherThan(ServerVersion.v_1_8_8)) ? "UseItem" : "BlockPlace");
|
||||
|
||||
public static final String ABILITIES = c + "Abilities";
|
||||
public static final String HELD_ITEM_SLOT = c + "HeldItemSlot";
|
||||
public static final String CLOSE_WINDOW = c + "CloseWindow";
|
||||
public static final String TAB_COMPLETE = c + "TabComplete";
|
||||
public static final String CHAT = c + "Chat";
|
||||
public static final String SET_CREATIVE_SLOT = c + "SetCreativeSlot";
|
||||
|
||||
public static final String KEEP_ALIVE = c + "KeepAlive";
|
||||
}
|
||||
|
||||
public static final class Server {
|
||||
private static final String s = "PacketPlayOut";
|
||||
|
||||
public static final String ANIMATION = s + "Animation";
|
||||
public static final String KEEP_ALIVE = s + "KeepAlive";
|
||||
public static final String CHAT = s + "Chat";
|
||||
public static final String POSITION = s + "Position";
|
||||
public static final String TRANSACTION = s + "Transaction";
|
||||
public static final String NAMED_ENTITY_SPAWN = s + "NamedEntitySpawn";
|
||||
public static final String SPAWN_ENTITY_LIVING = s + "SpawnEntityLiving";
|
||||
public static final String SPAWN_ENTITY = s + "SpawnEntity";
|
||||
public static final String CUSTOM_PAYLOAD = s + "CustomPayload";
|
||||
public static final String ABILITIES = s + "Abilities";
|
||||
public static final String ENTITY_METADATA = s + "EntityMetadata";
|
||||
public static final String ENTITY_VELOCITY = s + "EntityVelocity";
|
||||
public static final String ENTITY_DESTROY = s + "EntityDestroy";
|
||||
public static final String ENTITY_HEAD_ROTATION = s + "EntityHeadRotation";
|
||||
public static final String BLOCK_CHANGE = s + "BlockChange";
|
||||
public static final String CLOSE_WINDOW = s + "CloseWindow";
|
||||
public static final String HELD_ITEM_SLOT = s + "HeldItemSlot";
|
||||
public static final String TAB_COMPLETE = s + "TabComplete";
|
||||
public static final String RESPAWN = s + "Respawn";
|
||||
public static final String WORLD_PARTICLES = s + "WorldParticles";
|
||||
public static final String COMMANDS = s + "Commands";
|
||||
public static final String OPEN_WINDOW = s + "OpenWindow";
|
||||
public static final String LOGIN = s + "Login";
|
||||
public static final String SERVER_DIFFICULTY = s + "ServerDifficulty";
|
||||
}
|
||||
|
||||
public static final class Login {
|
||||
public static final String HANDSHAKE = "PacketHandshakingInSetProtocol";
|
||||
public static final String PING = "PacketStatusInPing";
|
||||
public static final String START = "PacketStatusInStart";
|
||||
public static final String SUCCESS = "PacketLoginOutSuccess";
|
||||
public static final String ENCRYPTION_BEGIN_IN = "PacketLoginInEncryptionBegin";
|
||||
public static final String ENCRYPTION_BEGIN_OUT = "PacketLoginOutEncryptionBegin";
|
||||
}
|
||||
|
||||
}
|
||||
+90
@@ -0,0 +1,90 @@
|
||||
package io.github.retrooper.packetevents.packetwrappers.out.entity;
|
||||
|
||||
import io.github.retrooper.packetevents.enums.ServerVersion;
|
||||
import io.github.retrooper.packetevents.packetwrappers.api.WrappedPacket;
|
||||
import io.github.retrooper.packetevents.reflectionutils.Reflection;
|
||||
import io.github.retrooper.packetevents.utils.NMSUtils;
|
||||
|
||||
public class WrappedPacketOutEntity extends WrappedPacket {
|
||||
private int entityId;
|
||||
private double deltaX, deltaY, deltaZ;
|
||||
private byte yaw, pitch;
|
||||
private boolean onGround;
|
||||
public WrappedPacketOutEntity(Object packet) {
|
||||
super(packet);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setup(){
|
||||
try {
|
||||
this.entityId = Reflection.getField(packetClass, int.class, 0).getInt(packet);
|
||||
this.onGround = Reflection.getField(packetClass, boolean.class, 0).getBoolean(packet);
|
||||
if(version.isLowerThan(ServerVersion.v_1_9)) {
|
||||
byte dX = Reflection.getField(packetClass, byte.class, 0).getByte(packet);
|
||||
byte dY = Reflection.getField(packetClass, byte.class, 1).getByte(packet);
|
||||
byte dZ = Reflection.getField(packetClass, byte.class, 2).getByte(packet);
|
||||
|
||||
this.deltaX = dX / 32.0;
|
||||
this.deltaY = dY / 32.0;
|
||||
this.deltaZ = dZ / 32.0;
|
||||
|
||||
this.yaw = Reflection.getField(packetClass, byte.class, 3).getByte(packet);
|
||||
this.pitch = Reflection.getField(packetClass, byte.class, 4).getByte(packet);
|
||||
}
|
||||
else {
|
||||
short dX = Reflection.getField(packetClass, short.class, 0).getShort(packet);
|
||||
short dY = Reflection.getField(packetClass, short.class, 1).getShort(packet);
|
||||
short dZ = Reflection.getField(packetClass, short.class, 2).getShort(packet);
|
||||
|
||||
this.deltaX = dX / 4096.0;
|
||||
this.deltaY = dY / 4096.0;
|
||||
this.deltaZ = dZ / 4096.0;
|
||||
|
||||
this.yaw = Reflection.getField(packetClass, byte.class, 0).getByte(packet);
|
||||
this.pitch = Reflection.getField(packetClass, byte.class, 1).getByte(packet);
|
||||
}
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public byte getPitch() {
|
||||
return pitch;
|
||||
}
|
||||
|
||||
public byte getYaw() {
|
||||
return yaw;
|
||||
}
|
||||
|
||||
public double getDeltaZ() {
|
||||
return deltaZ;
|
||||
}
|
||||
|
||||
public double getDeltaY() {
|
||||
return deltaY;
|
||||
}
|
||||
|
||||
public double getDeltaX() {
|
||||
return deltaX;
|
||||
}
|
||||
|
||||
public int getEntityId() {
|
||||
return entityId;
|
||||
}
|
||||
|
||||
public boolean isOnGround() {
|
||||
return onGround;
|
||||
}
|
||||
|
||||
private static Class<?> packetClass;
|
||||
|
||||
static {
|
||||
try {
|
||||
packetClass = NMSUtils.getNMSClass("PacketPlayOutEntity");
|
||||
} catch (ClassNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user