Compare commits

..
1 Commits
Author SHA1 Message Date
Retrooper 66a6c2d8f9 PacketEvents 1.4 Release
* Optimization Update, all packet comparisons now done with integer IDs.
2020-07-04 19:01:32 +08:00
9 changed files with 308 additions and 34 deletions

No files matched your search

+1 -2
View File
@@ -6,14 +6,13 @@
<groupId>io.github.retrooper</groupId>
<artifactId>packetevents</artifactId>
<version>1.3.9</version>
<version>1.4</version>
<packaging>jar</packaging>
<name>packetevents</name>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<defaultGoal>clean package</defaultGoal>
<plugins>
@@ -6,6 +6,7 @@ import io.github.retrooper.packetevents.event.impl.BukkitMoveEvent;
import io.github.retrooper.packetevents.event.impl.PacketReceiveEvent;
import io.github.retrooper.packetevents.event.impl.PlayerInjectEvent;
import io.github.retrooper.packetevents.event.impl.ServerTickEvent;
import io.github.retrooper.packetevents.packet.PacketType;
import io.github.retrooper.packetevents.packet.PacketTypeClasses;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
@@ -22,21 +23,23 @@ public final class PacketEvents implements PacketListener, Listener {
private static int currentTick;
private static Plugin plugin;
private static boolean hasLoaded;
/**
* Call this before start(), this is also very heavy
*/
public static void load() {
PacketTypeClasses.Client.load();
PacketTypeClasses.Server.load();
hasLoaded = true;
}
/**
* Starts the server tick task and initiates the TinyProtocolHandler
* Starts the server tick task and registers what is needed to be registered
*
* @param plugin
*/
public static void start(final Plugin plugin) {
if(!hasLoaded) {
if (!hasLoaded) {
load();
}
if (!hasRegistered) {
@@ -49,7 +52,7 @@ public final class PacketEvents implements PacketListener, Listener {
final Runnable tickRunnable = new Runnable() {
@Override
public void run() {
getAPI().getEventManager().callEvent(new ServerTickEvent(currentTick++, PacketEvents.getAPI().currentPreciseMillis()));
getAPI().getEventManager().callEvent(new ServerTickEvent(currentTick++, PacketEvents.getAPI().currentMillis()));
}
};
getAPI().setServerTickTask(Bukkit.getScheduler().runTaskTimerAsynchronously(plugin, tickRunnable, 0L, 1L));
@@ -66,6 +69,9 @@ public final class PacketEvents implements PacketListener, Listener {
getAPI().getServerTickTask().cancel();
}
getAPI().getEventManager().unregisterAllListeners();
PacketType.Client.packetIds.clear();
PacketType.Server.packetIds.clear();
}
public static PacketEventsAPI getAPI() {
@@ -2,7 +2,6 @@ package io.github.retrooper.packetevents.event.impl;
import io.github.retrooper.packetevents.event.PacketEvent;
import io.github.retrooper.packetevents.packet.PacketType;
import io.github.retrooper.packetevents.packet.PacketTypeClasses;
import org.bukkit.entity.Player;
public final class PacketReceiveEvent extends PacketEvent {
@@ -55,13 +54,15 @@ public final class PacketReceiveEvent extends PacketEvent {
/**
* Get the ID of the packet
*
* @return packet id
*/
public int getPacketId() {
if(PacketTypeClasses.Client.ARM_ANIMATION == null) {
System.out.println("why is arm null");
Integer id = PacketType.Client.packetIds.get(getNMSPacketClass());
if (id == null) {
return -1;
}
return PacketType.Client.packetIds.get(getNMSPacketClass());
return id;
}
/**
@@ -27,6 +27,19 @@ public final class PacketSendEvent extends PacketEvent {
return this.name;
}
/**
* Get the ID of the packet
*
* @return packet id
*/
public int getPacketId() {
Integer id =
PacketType.Server.packetIds.get(getNMSPacketClass());
if (id == null) {
return -1;
}
return id;
}
/**
* Get the NMS packet object
@@ -1,13 +1,6 @@
package io.github.retrooper.packetevents.example;
import io.github.retrooper.packetevents.PacketEvents;
import io.github.retrooper.packetevents.annotations.PacketHandler;
import io.github.retrooper.packetevents.event.PacketListener;
import io.github.retrooper.packetevents.event.impl.PacketReceiveEvent;
import io.github.retrooper.packetevents.packet.PacketType;
import io.github.retrooper.packetevents.packetwrappers.in.useentity.WrappedPacketInUseEntity;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import static io.github.retrooper.packetevents.PacketEvents.getAPI;
@@ -23,7 +16,6 @@ public class MainExample extends JavaPlugin {
public void onEnable() {
PacketEvents.start(this);
getAPI().getServerTickTask().cancel();
}
@Override
@@ -1,7 +1,6 @@
package io.github.retrooper.packetevents.handler;
import io.github.retrooper.packetevents.PacketEvents;
import io.github.retrooper.packetevents.enums.ServerVersion;
import io.github.retrooper.packetevents.event.impl.PacketReceiveEvent;
import io.github.retrooper.packetevents.event.impl.PacketSendEvent;
import io.github.retrooper.packetevents.event.impl.PlayerInjectEvent;
@@ -10,24 +10,29 @@ public class PacketType {
public static class Util {
public static boolean isInstanceOfFlying(final int packetId) {
return packetId == FLYING
|| packetId == POSITION || packetId == POSITION_LOOK || packetId == LOOK;
|| packetId == POSITION
|| packetId == POSITION_LOOK
|| packetId == LOOK;
}
}
public static final Map<Class<?>, Integer> packetIds = new HashMap<Class<?>, Integer>();
public static final int TELEPORT_ACCEPT = 0,
TILE_NBT_QUERY = 1,
DIFFICULTY_CHANGE = 2,
CHAT = 3,
CLIENT_COMMAND = 4,
SETTINGS = 5,
TAB_COMPLETE = 6, TRANSACTION = 7, ENCHANT_ITEM =8,
WINDOW_CLICK = 9, CLOSE_WINDOW =10, CUSTOM_PAYLOAD = 11,
B_EDIT = 12, ENTITY_NBT_QUERY = 13, USE_ENTITY = 14, JIGSAW_GENERATE = 15, KEEP_ALIVE= 16, DIFFICULTY_LOCK = 17,
POSITION = 18, POSITION_LOOK = 19, LOOK = 20, FLYING = 21, VEHICLE_MOVE = 22, BOAT_MOVE = 23, PICK_ITEM = 24, AUTO_RECIPE = 25, ABILITIES = 26, BLOCK_DIG = 27, ENTITY_ACTION = 28, STEER_VEHICLE = 29, RECIPE_DISPLAYED = 30, ITEM_NAME = 31, RESOURCE_PACK_STATUS = 32, ADVANCEMENTS = 33, TR_SEL = 34, BEACON = 35, HELD_ITEM_SLOT = 36, SET_COMMAND_BLOCK = 37,
SET_COMMAND_MINECART = 38, SET_CREATIVE_SLOT = 39, SET_JIGSAW = 40, STRUCT = 41, UPDATE_SIGN = 42, ARM_ANIMATION = 43, SPECTATE = 44, USE_ITEM = 45, BLOCK_PLACE = 46;
TILE_NBT_QUERY = 1, DIFFICULTY_CHANGE = 2, CHAT = 3, CLIENT_COMMAND = 4,
SETTINGS = 5, TAB_COMPLETE = 6, TRANSACTION = 7, ENCHANT_ITEM = 8,
WINDOW_CLICK = 9, CLOSE_WINDOW = 10, CUSTOM_PAYLOAD = 11, B_EDIT = 12,
ENTITY_NBT_QUERY = 13, USE_ENTITY = 14, JIGSAW_GENERATE = 15, KEEP_ALIVE = 16,
DIFFICULTY_LOCK = 17, POSITION = 18, POSITION_LOOK = 19, LOOK = 20,
FLYING = 21, VEHICLE_MOVE = 22, BOAT_MOVE = 23, PICK_ITEM = 24,
AUTO_RECIPE = 25, ABILITIES = 26, BLOCK_DIG = 27, ENTITY_ACTION = 28,
STEER_VEHICLE = 29, RECIPE_DISPLAYED = 30, ITEM_NAME = 31, RESOURCE_PACK_STATUS = 32,
ADVANCEMENTS = 33, TR_SEL = 34, BEACON = 35, HELD_ITEM_SLOT = 36,
SET_COMMAND_BLOCK = 37, SET_COMMAND_MINECART = 38, SET_CREATIVE_SLOT = 39, SET_JIGSAW = 40,
STRUCT = 41, UPDATE_SIGN = 42, ARM_ANIMATION = 43, SPECTATE = 44,
USE_ITEM = 45, BLOCK_PLACE = 46;
public static void init(){
public static void init() {
packetIds.put(PacketTypeClasses.Client.TELEPORT_ACCEPT, TELEPORT_ACCEPT);
packetIds.put(PacketTypeClasses.Client.TILE_NBT_QUERY, TILE_NBT_QUERY);
packetIds.put(PacketTypeClasses.Client.DIFFICULTY_CHANGE, DIFFICULTY_CHANGE);
@@ -77,4 +82,130 @@ public class PacketType {
packetIds.put(PacketTypeClasses.Client.BLOCK_PLACE, BLOCK_PLACE);
}
}
public static class Server {
public static final Map<Class<?>, Integer> packetIds = new HashMap<Class<?>, Integer>();
public static int SPAWN_ENTITY = 0, SPAWN_ENTITY_EXPERIENCE_ORB = 1, SPAWN_ENTITY_WEATHER = 2, SPAWN_ENTITY_LIVING = 3,
SPAWN_ENTITY_PAINTING = 4, SPAWN_ENTITY_SPAWN = 5, ANIMATION = 6, STATISTIC = 7,
BLOCK_BREAK = 8, BLOCK_BREAK_ANIMATION = 9, TILE_ENTITY_DATA = 10, BLOCK_ACTION = 11,
BLOCK_CHANGE = 12, BOSS = 13, SERVER_DIFFICULTY = 14, CHAT = 15, MULTI_BLOCK_CHANGE = 16,
TAB_COMPLETE = 17, COMMANDS = 18, TRANSACTION = 19, CLOSE_WINDOW = 20,
WINDOW_ITEMS = 21, WINDOW_DATA = 22, SET_SLOT = 23, SET_COOLDOWN = 24,
CUSTOM_PAYLOAD = 25, CUSTOM_SOUND_EFFECT = 26, KICK_DISCONNECT = 27, ENTITY_STATUS = 28,
EXPLOSION = 29, UNLOAD_CHUNK = 30, GAME_STATE_CHANGE = 31, OPEN_WINDOW_HORSE = 32,
KEEP_ALIVE = 33, MAP_CHUNK = 34, WORLD_EVENT = 35, WORLD_PARTICLES = 36,
LIGHT_UPDATE = 37, LOGIN = 38, MAP = 39, OPEN_WINDOW_MERCHANT = 40,
REL_ENTITY_MOVE = 41, REL_ENTITY_MOVE_LOOK = 42, ENTITY_LOOK = 43, ENTITY = 44,
VEHICLE_MOVE = 45, OPEN_BOOK = 46, OPEN_WINDOW = 47, OPEN_SIGN_EDITOR = 48,
AUTO_RECIPE = 49, ABILITIES = 50, COMBAT_EVENT = 51, PLAYER_INFO = 52,
LOOK_AT = 53, POSITION = 54, RECIPES = 55, ENTITY_DESTROY = 56,
REMOVE_ENTITY_EFFECT = 57, RESOURCE_PACK_SEND = 58, RESPAWN = 59, ENTITY_HEAD_ROTATION = 60,
SELECT_ADVANCEMENT_TAB = 61, WORLD_BORDER = 62, CAMERA = 63, HELD_ITEM_SLOT = 64,
VIEW_CENTRE = 65, VIEW_DISTANCE = 66, SCOREBOARD_DISPLAY_OBJECTIVE = 67, ENTITY_METADATA = 68,
ATTACH_ENTITY = 69, ENTITY_VELOCITY = 70, ENTITY_EQUIPMENT = 71, EXPERIENCE = 72,
UPDATE_HEALTH = 73, SCOREBOARD_OBJECTIVE = 74, MOUNT = 75, SCOREBOARD_TEAM = 76,
SCOREBOARD_SCORE = 77, SPAWN_POSITION = 78, UPDATE_TIME = 79, TITLE = 80,
ENTITY_SOUND = 81, NAMED_SOUND_EFFECT = 82, STOP_SOUND = 83, PLAYER_LIST_HEADER_FOOTER = 84,
NBT_QUERY = 85, COLLECT = 86, ENTITY_TELEPORT = 87, ADVANCEMENTS = 88, UPDATE_ATTRIBUTES = 89,
ENTITY_EFFECT = 90, RECIPE_UPDATE = 91, TAGS = 92, MAP_CHUNK_BULK = 93;
public static void init() {
packetIds.put(PacketTypeClasses.Server.SPAWN_ENTITY, SPAWN_ENTITY);
packetIds.put(PacketTypeClasses.Server.SPAWN_ENTITY_EXPERIENCE_ORB, SPAWN_ENTITY_EXPERIENCE_ORB);
packetIds.put(PacketTypeClasses.Server.SPAWN_ENTITY_WEATHER, SPAWN_ENTITY_WEATHER);
packetIds.put(PacketTypeClasses.Server.SPAWN_ENTITY_LIVING, SPAWN_ENTITY_LIVING);
packetIds.put(PacketTypeClasses.Server.SPAWN_ENTITY_PAINTING, SPAWN_ENTITY_PAINTING);
packetIds.put(PacketTypeClasses.Server.SPAWN_ENTITY_SPAWN, SPAWN_ENTITY_SPAWN);
packetIds.put(PacketTypeClasses.Server.ANIMATION, ANIMATION);
packetIds.put(PacketTypeClasses.Server.STATISTIC, STATISTIC);
packetIds.put(PacketTypeClasses.Server.BLOCK_BREAK, BLOCK_BREAK);
packetIds.put(PacketTypeClasses.Server.BLOCK_BREAK_ANIMATION, BLOCK_BREAK_ANIMATION);
packetIds.put(PacketTypeClasses.Server.TILE_ENTITY_DATA, TILE_ENTITY_DATA);
packetIds.put(PacketTypeClasses.Server.BLOCK_ACTION, BLOCK_ACTION);
packetIds.put(PacketTypeClasses.Server.BLOCK_CHANGE, BLOCK_CHANGE);
packetIds.put(PacketTypeClasses.Server.BOSS, BOSS);
packetIds.put(PacketTypeClasses.Server.SPAWN_ENTITY, SPAWN_ENTITY);
packetIds.put(PacketTypeClasses.Server.SERVER_DIFFICULTY, SERVER_DIFFICULTY);
packetIds.put(PacketTypeClasses.Server.CHAT, CHAT);
packetIds.put(PacketTypeClasses.Server.MULTI_BLOCK_CHANGE, MULTI_BLOCK_CHANGE);
packetIds.put(PacketTypeClasses.Server.TAB_COMPLETE, TAB_COMPLETE);
packetIds.put(PacketTypeClasses.Server.COMMANDS, COMMANDS);
packetIds.put(PacketTypeClasses.Server.TRANSACTION, TRANSACTION);
packetIds.put(PacketTypeClasses.Server.CLOSE_WINDOW, CLOSE_WINDOW);
packetIds.put(PacketTypeClasses.Server.WINDOW_ITEMS, WINDOW_ITEMS);
packetIds.put(PacketTypeClasses.Server.WINDOW_DATA, WINDOW_DATA);
packetIds.put(PacketTypeClasses.Server.SET_SLOT, SET_SLOT);
packetIds.put(PacketTypeClasses.Server.CUSTOM_PAYLOAD, CUSTOM_PAYLOAD);
packetIds.put(PacketTypeClasses.Server.CUSTOM_SOUND_EFFECT, CUSTOM_SOUND_EFFECT);
packetIds.put(PacketTypeClasses.Server.KICK_DISCONNECT, KICK_DISCONNECT);
packetIds.put(PacketTypeClasses.Server.ENTITY_STATUS, ENTITY_STATUS);
packetIds.put(PacketTypeClasses.Server.EXPLOSION, EXPLOSION);
packetIds.put(PacketTypeClasses.Server.UNLOAD_CHUNK, UNLOAD_CHUNK);
packetIds.put(PacketTypeClasses.Server.GAME_STATE_CHANGE, GAME_STATE_CHANGE);
packetIds.put(PacketTypeClasses.Server.OPEN_WINDOW_HORSE, OPEN_WINDOW_HORSE);
packetIds.put(PacketTypeClasses.Server.KEEP_ALIVE, KEEP_ALIVE);
packetIds.put(PacketTypeClasses.Server.MAP_CHUNK, MAP_CHUNK);
packetIds.put(PacketTypeClasses.Server.WORLD_EVENT, SPAWN_ENTITY);
packetIds.put(PacketTypeClasses.Server.WORLD_PARTICLES, WORLD_PARTICLES);
packetIds.put(PacketTypeClasses.Server.LIGHT_UPDATE, LIGHT_UPDATE);
packetIds.put(PacketTypeClasses.Server.LOGIN, LOGIN);
packetIds.put(PacketTypeClasses.Server.MAP, MAP);
packetIds.put(PacketTypeClasses.Server.OPEN_WINDOW_MERCHANT, OPEN_WINDOW_MERCHANT);
packetIds.put(PacketTypeClasses.Server.REL_ENTITY_MOVE, REL_ENTITY_MOVE);
packetIds.put(PacketTypeClasses.Server.REL_ENTITY_MOVE_LOOK, REL_ENTITY_MOVE_LOOK);
packetIds.put(PacketTypeClasses.Server.ENTITY_LOOK, ENTITY_LOOK);
packetIds.put(PacketTypeClasses.Server.ENTITY, ENTITY);
packetIds.put(PacketTypeClasses.Server.VEHICLE_MOVE, VEHICLE_MOVE);
packetIds.put(PacketTypeClasses.Server.OPEN_BOOK, OPEN_BOOK);
packetIds.put(PacketTypeClasses.Server.OPEN_WINDOW, OPEN_WINDOW);
packetIds.put(PacketTypeClasses.Server.OPEN_SIGN_EDITOR, OPEN_SIGN_EDITOR);
packetIds.put(PacketTypeClasses.Server.AUTO_RECIPE, AUTO_RECIPE);
packetIds.put(PacketTypeClasses.Server.ABILITIES, ABILITIES);
packetIds.put(PacketTypeClasses.Server.COMBAT_EVENT, COMBAT_EVENT);
packetIds.put(PacketTypeClasses.Server.PLAYER_INFO, PLAYER_INFO);
packetIds.put(PacketTypeClasses.Server.LOOK_AT, LOOK_AT);
packetIds.put(PacketTypeClasses.Server.POSITION, POSITION);
packetIds.put(PacketTypeClasses.Server.RECIPES, RECIPES);
packetIds.put(PacketTypeClasses.Server.ENTITY_DESTROY, ENTITY_DESTROY);
packetIds.put(PacketTypeClasses.Server.REMOVE_ENTITY_EFFECT, REMOVE_ENTITY_EFFECT);
packetIds.put(PacketTypeClasses.Server.RESOURCE_PACK_SEND, RESOURCE_PACK_SEND);
packetIds.put(PacketTypeClasses.Server.RESPAWN, RESPAWN);
packetIds.put(PacketTypeClasses.Server.ENTITY_HEAD_ROTATION, ENTITY_HEAD_ROTATION);
packetIds.put(PacketTypeClasses.Server.SELECT_ADVANCEMENT_TAB, SELECT_ADVANCEMENT_TAB);
packetIds.put(PacketTypeClasses.Server.WORLD_BORDER, WORLD_BORDER);
packetIds.put(PacketTypeClasses.Server.CAMERA, CAMERA);
packetIds.put(PacketTypeClasses.Server.HELD_ITEM_SLOT, HELD_ITEM_SLOT);
packetIds.put(PacketTypeClasses.Server.VIEW_CENTRE, VIEW_CENTRE);
packetIds.put(PacketTypeClasses.Server.VIEW_DISTANCE, VIEW_DISTANCE);
packetIds.put(PacketTypeClasses.Server.SCOREBOARD_DISPLAY_OBJECTIVE, SCOREBOARD_DISPLAY_OBJECTIVE);
packetIds.put(PacketTypeClasses.Server.ENTITY_METADATA, ENTITY_METADATA);
packetIds.put(PacketTypeClasses.Server.ATTACH_ENTITY, ATTACH_ENTITY);
packetIds.put(PacketTypeClasses.Server.ENTITY_VELOCITY, ENTITY_VELOCITY);
packetIds.put(PacketTypeClasses.Server.ENTITY_EQUIPMENT, ENTITY_EQUIPMENT);
packetIds.put(PacketTypeClasses.Server.EXPERIENCE, EXPERIENCE);
packetIds.put(PacketTypeClasses.Server.UPDATE_HEALTH, UPDATE_HEALTH);
packetIds.put(PacketTypeClasses.Server.SCOREBOARD_OBJECTIVE, SCOREBOARD_OBJECTIVE);
packetIds.put(PacketTypeClasses.Server.MOUNT, MOUNT);
packetIds.put(PacketTypeClasses.Server.SCOREBOARD_TEAM, SCOREBOARD_TEAM);
packetIds.put(PacketTypeClasses.Server.SCOREBOARD_SCORE, SCOREBOARD_SCORE);
packetIds.put(PacketTypeClasses.Server.SPAWN_POSITION, SPAWN_POSITION);
packetIds.put(PacketTypeClasses.Server.UPDATE_TIME, UPDATE_TIME);
packetIds.put(PacketTypeClasses.Server.TITLE, TITLE);
packetIds.put(PacketTypeClasses.Server.ENTITY_SOUND, ENTITY_SOUND);
packetIds.put(PacketTypeClasses.Server.NAMED_SOUND_EFFECT, NAMED_SOUND_EFFECT);
packetIds.put(PacketTypeClasses.Server.STOP_SOUND, STOP_SOUND);
packetIds.put(PacketTypeClasses.Server.PLAYER_LIST_HEADER_FOOTER, PLAYER_LIST_HEADER_FOOTER);
packetIds.put(PacketTypeClasses.Server.NBT_QUERY, NBT_QUERY);
packetIds.put(PacketTypeClasses.Server.COLLECT, COLLECT);
packetIds.put(PacketTypeClasses.Server.ENTITY_TELEPORT, ENTITY_TELEPORT);
packetIds.put(PacketTypeClasses.Server.ADVANCEMENTS, ADVANCEMENTS);
packetIds.put(PacketTypeClasses.Server.UPDATE_ATTRIBUTES, UPDATE_ATTRIBUTES);
packetIds.put(PacketTypeClasses.Server.ENTITY_EFFECT, ENTITY_EFFECT);
packetIds.put(PacketTypeClasses.Server.RECIPE_UPDATE, RECIPE_UPDATE);
packetIds.put(PacketTypeClasses.Server.TAGS, TAGS);
packetIds.put(PacketTypeClasses.Server.MAP_CHUNK_BULK, MAP_CHUNK_BULK);
}
}
}
@@ -11,9 +11,9 @@ public class PacketTypeClasses {
WINDOW_CLICK, STEER_VEHICLE, CUSTOM_PAYLOAD, ARM_ANIMATION,
BLOCK_PLACE, USE_ITEM, ABILITIES, HELD_ITEM_SLOT,
CLOSE_WINDOW, TAB_COMPLETE, CHAT, SET_CREATIVE_SLOT,
KEEP_ALIVE, SETTINGS , ENCHANT_ITEM, TELEPORT_ACCEPT,
KEEP_ALIVE, SETTINGS, ENCHANT_ITEM, TELEPORT_ACCEPT,
TILE_NBT_QUERY, DIFFICULTY_CHANGE, B_EDIT, ENTITY_NBT_QUERY,
JIGSAW_GENERATE, DIFFICULTY_LOCK, VEHICLE_MOVE, BOAT_MOVE,PICK_ITEM,
JIGSAW_GENERATE, DIFFICULTY_LOCK, VEHICLE_MOVE, BOAT_MOVE, PICK_ITEM,
AUTO_RECIPE, RECIPE_DISPLAYED, ITEM_NAME, RESOURCE_PACK_STATUS,
ADVANCEMENTS, TR_SEL, BEACON, SET_COMMAND_BLOCK,
SET_COMMAND_MINECART, SET_JIGSAW, STRUCT, UPDATE_SIGN, SPECTATE;
@@ -29,11 +29,11 @@ public class PacketTypeClasses {
} catch (ClassNotFoundException e) {
POSITION = Reflection.getSubClass(FLYING, c + "Position");
POSITION_LOOK = Reflection.getSubClass(FLYING, c + "PositionLook");
LOOK = Reflection.getSubClass(FLYING, c +"Look");
LOOK = Reflection.getSubClass(FLYING, c + "Look");
}
try {
SETTINGS = NMSUtils.getNMSClass(c +"Settings");
SETTINGS = NMSUtils.getNMSClass(c + "Settings");
ENCHANT_ITEM = NMSUtils.getNMSClass(c + "EnchantItem");
CLIENT_COMMAND = NMSUtils.getNMSClass(c + "ClientCommand");
@@ -97,6 +97,138 @@ public class PacketTypeClasses {
PacketType.Client.init();
}
}
public static class Server {
private static final String s = "PacketPlayOut";
public static Class<?> SPAWN_ENTITY, SPAWN_ENTITY_EXPERIENCE_ORB, SPAWN_ENTITY_WEATHER, SPAWN_ENTITY_LIVING,
SPAWN_ENTITY_PAINTING, SPAWN_ENTITY_SPAWN, ANIMATION, STATISTIC,
BLOCK_BREAK, BLOCK_BREAK_ANIMATION, TILE_ENTITY_DATA, BLOCK_ACTION,
BLOCK_CHANGE, BOSS, SERVER_DIFFICULTY, CHAT, MULTI_BLOCK_CHANGE,
TAB_COMPLETE, COMMANDS, TRANSACTION, CLOSE_WINDOW,
WINDOW_ITEMS, WINDOW_DATA, SET_SLOT, SET_COOLDOWN,
CUSTOM_PAYLOAD, CUSTOM_SOUND_EFFECT, KICK_DISCONNECT, ENTITY_STATUS,
EXPLOSION, UNLOAD_CHUNK, GAME_STATE_CHANGE, OPEN_WINDOW_HORSE,
KEEP_ALIVE, MAP_CHUNK, WORLD_EVENT, WORLD_PARTICLES,
LIGHT_UPDATE, LOGIN, MAP, OPEN_WINDOW_MERCHANT,
REL_ENTITY_MOVE, REL_ENTITY_MOVE_LOOK, ENTITY_LOOK, ENTITY,
VEHICLE_MOVE, OPEN_BOOK, OPEN_WINDOW, OPEN_SIGN_EDITOR,
AUTO_RECIPE, ABILITIES, COMBAT_EVENT, PLAYER_INFO,
LOOK_AT, POSITION, RECIPES, ENTITY_DESTROY,
REMOVE_ENTITY_EFFECT, RESOURCE_PACK_SEND, RESPAWN, ENTITY_HEAD_ROTATION,
SELECT_ADVANCEMENT_TAB, WORLD_BORDER, CAMERA, HELD_ITEM_SLOT,
VIEW_CENTRE, VIEW_DISTANCE, SCOREBOARD_DISPLAY_OBJECTIVE, ENTITY_METADATA,
ATTACH_ENTITY, ENTITY_VELOCITY, ENTITY_EQUIPMENT, EXPERIENCE,
UPDATE_HEALTH, SCOREBOARD_OBJECTIVE, MOUNT, SCOREBOARD_TEAM,
SCOREBOARD_SCORE, SPAWN_POSITION, UPDATE_TIME, TITLE,
ENTITY_SOUND, NAMED_SOUND_EFFECT, STOP_SOUND, PLAYER_LIST_HEADER_FOOTER,
NBT_QUERY, COLLECT, ENTITY_TELEPORT, ADVANCEMENTS, UPDATE_ATTRIBUTES,
ENTITY_EFFECT, RECIPE_UPDATE, TAGS, MAP_CHUNK_BULK;
public static void load() {
SPAWN_ENTITY = NMSUtils.getNMSClassWithoutException(s + "SpawnEntity");
SPAWN_ENTITY_EXPERIENCE_ORB = NMSUtils.getNMSClassWithoutException(s + "SpawnEntityExperienceOrb");
SPAWN_ENTITY_WEATHER = NMSUtils.getNMSClassWithoutException(s + "SpawnEntityWeather");
SPAWN_ENTITY_LIVING = NMSUtils.getNMSClassWithoutException(s + "SpawnEntityLiving");
SPAWN_ENTITY_PAINTING = NMSUtils.getNMSClassWithoutException(s + "SpawnEntityPainting");
SPAWN_ENTITY_SPAWN = NMSUtils.getNMSClassWithoutException(s + "SpawnEntitySpawn");
ANIMATION = NMSUtils.getNMSClassWithoutException(s + "Animation");
STATISTIC = NMSUtils.getNMSClassWithoutException(s + "Statistic");
BLOCK_BREAK = NMSUtils.getNMSClassWithoutException(s + "BlockBreak");
BLOCK_BREAK_ANIMATION = NMSUtils.getNMSClassWithoutException(s + "BlockBreakAnimation");
TILE_ENTITY_DATA = NMSUtils.getNMSClassWithoutException(s + "TileEntityData");
BLOCK_ACTION = NMSUtils.getNMSClassWithoutException(s + "BlockAction");
BLOCK_CHANGE = NMSUtils.getNMSClassWithoutException(s + "BlockChange");
BOSS = NMSUtils.getNMSClassWithoutException(s + "Boss");
SERVER_DIFFICULTY = NMSUtils.getNMSClassWithoutException(s + "ServerDifficulty");
CHAT = NMSUtils.getNMSClassWithoutException(s + "Chat");
MULTI_BLOCK_CHANGE = NMSUtils.getNMSClassWithoutException(s + "MultiBlockChange");
TAB_COMPLETE = NMSUtils.getNMSClassWithoutException(s + "TabComplete");
COMMANDS = NMSUtils.getNMSClassWithoutException(s + "Commands");
TRANSACTION = NMSUtils.getNMSClassWithoutException(s + "Transaction");
CLOSE_WINDOW = NMSUtils.getNMSClassWithoutException(s + "CloseWindow");
WINDOW_ITEMS = NMSUtils.getNMSClassWithoutException(s + "WindowItems");
WINDOW_DATA = NMSUtils.getNMSClassWithoutException(s + "WindowData");
SET_SLOT = NMSUtils.getNMSClassWithoutException(s + "SetSlot");
SET_COOLDOWN = NMSUtils.getNMSClassWithoutException(s + "SetCooldown");
CUSTOM_PAYLOAD = NMSUtils.getNMSClassWithoutException(s + "CustomPayload");
CUSTOM_SOUND_EFFECT = NMSUtils.getNMSClassWithoutException(s + "CustomSoundEffect");
KICK_DISCONNECT = NMSUtils.getNMSClassWithoutException(s + "KickDisconnect");
ENTITY_STATUS = NMSUtils.getNMSClassWithoutException(s + "EntityStatus");
EXPLOSION = NMSUtils.getNMSClassWithoutException(s + "Explosion");
UNLOAD_CHUNK = NMSUtils.getNMSClassWithoutException(s + "UnloadChunk");
GAME_STATE_CHANGE = NMSUtils.getNMSClassWithoutException(s + "GameStateChange");
OPEN_WINDOW_HORSE = NMSUtils.getNMSClassWithoutException(s + "OpenWindowHorse");
KEEP_ALIVE = NMSUtils.getNMSClassWithoutException(s + "KeepAlive");
MAP_CHUNK = NMSUtils.getNMSClassWithoutException(s + "MapChunk");
WORLD_EVENT = NMSUtils.getNMSClassWithoutException(s + "WorldEvent");
WORLD_PARTICLES = NMSUtils.getNMSClassWithoutException(s + "WorldParticles");
LIGHT_UPDATE = NMSUtils.getNMSClassWithoutException(s + "LightUpdate");
LOGIN = NMSUtils.getNMSClassWithoutException(s + "Login");
MAP = NMSUtils.getNMSClassWithoutException(s + "Map");
OPEN_WINDOW_MERCHANT = NMSUtils.getNMSClassWithoutException(s + "OpenWindowMerchant");
ENTITY = NMSUtils.getNMSClassWithoutException(s + "Entity");
REL_ENTITY_MOVE = Reflection.getSubClass(ENTITY, s + "RelEntityMove");
REL_ENTITY_MOVE_LOOK = Reflection.getSubClass(ENTITY, s + "RelEntityMoveLook");
ENTITY_LOOK = Reflection.getSubClass(ENTITY, s + "EntityLook");
if (REL_ENTITY_MOVE == null) {
//is not a subclass and should be accessed normally
REL_ENTITY_MOVE = NMSUtils.getNMSClassWithoutException(s + "RelEntityMove");
REL_ENTITY_MOVE_LOOK = NMSUtils.getNMSClassWithoutException(s + "RelEntityMoveLook");
ENTITY_LOOK = NMSUtils.getNMSClassWithoutException(s + "RelEntityLook");
}
VEHICLE_MOVE = NMSUtils.getNMSClassWithoutException(s + "VehicleMove");
OPEN_BOOK = NMSUtils.getNMSClassWithoutException(s + "OpenBook");
OPEN_WINDOW = NMSUtils.getNMSClassWithoutException(s + "OpenWindow");
OPEN_SIGN_EDITOR = NMSUtils.getNMSClassWithoutException(s + "OpenSignEditor");
AUTO_RECIPE = NMSUtils.getNMSClassWithoutException(s + "AutoRecipe");
ABILITIES = NMSUtils.getNMSClassWithoutException(s + "Abilities");
COMBAT_EVENT = NMSUtils.getNMSClassWithoutException(s + "CombatEvent");
PLAYER_INFO = NMSUtils.getNMSClassWithoutException(s + "PlayerInfo");
LOOK_AT = NMSUtils.getNMSClassWithoutException(s + "LookAt");
POSITION = NMSUtils.getNMSClassWithoutException(s + "Position");
RECIPES = NMSUtils.getNMSClassWithoutException(s + "Recipes");
ENTITY_DESTROY = NMSUtils.getNMSClassWithoutException(s + "EntityDestroy");
REMOVE_ENTITY_EFFECT = NMSUtils.getNMSClassWithoutException(s + "RemoveEntityEffect");
RESOURCE_PACK_SEND = NMSUtils.getNMSClassWithoutException(s + "ResourcePackSend");
RESPAWN = NMSUtils.getNMSClassWithoutException(s + "Respawn");
ENTITY_HEAD_ROTATION = NMSUtils.getNMSClassWithoutException(s + "EntityHeadRotation");
SELECT_ADVANCEMENT_TAB = NMSUtils.getNMSClassWithoutException(s + "SelectAdvancementTab");
WORLD_BORDER = NMSUtils.getNMSClassWithoutException(s + "WorldBorder");
CAMERA = NMSUtils.getNMSClassWithoutException(s + "Camera");
HELD_ITEM_SLOT = NMSUtils.getNMSClassWithoutException(s + "HeldItemSlot");
VIEW_CENTRE = NMSUtils.getNMSClassWithoutException(s + "ViewCentre");
VIEW_DISTANCE = NMSUtils.getNMSClassWithoutException(s + "ViewDistance");
SCOREBOARD_DISPLAY_OBJECTIVE = NMSUtils.getNMSClassWithoutException(s + "ScoreboardDisplayObjective");
ENTITY_METADATA = NMSUtils.getNMSClassWithoutException(s + "EntityMetadata");
ATTACH_ENTITY = NMSUtils.getNMSClassWithoutException(s + "AttachEntity");
ENTITY_VELOCITY = NMSUtils.getNMSClassWithoutException(s + "EntityVelocity");
ENTITY_EQUIPMENT = NMSUtils.getNMSClassWithoutException(s + "EntityEquipment");
EXPERIENCE = NMSUtils.getNMSClassWithoutException(s + "Experience");
UPDATE_HEALTH = NMSUtils.getNMSClassWithoutException(s + "UpdateHealth");
SCOREBOARD_OBJECTIVE = NMSUtils.getNMSClassWithoutException(s + "ScoreboardObjective");
MOUNT = NMSUtils.getNMSClassWithoutException(s + "Mount");
SCOREBOARD_TEAM = NMSUtils.getNMSClassWithoutException(s + "ScoreboardTeam");
SCOREBOARD_SCORE = NMSUtils.getNMSClassWithoutException(s + "ScoreboardScore");
SPAWN_POSITION = NMSUtils.getNMSClassWithoutException(s + "SpawnPosition");
UPDATE_TIME = NMSUtils.getNMSClassWithoutException(s + "UpdateTime");
TITLE = NMSUtils.getNMSClassWithoutException(s + "Title");
ENTITY_SOUND = NMSUtils.getNMSClassWithoutException(s + "EntitySound");
NAMED_SOUND_EFFECT = NMSUtils.getNMSClassWithoutException(s + "NamedSoundEffect");
STOP_SOUND = NMSUtils.getNMSClassWithoutException(s + "StopSound");
PLAYER_LIST_HEADER_FOOTER = NMSUtils.getNMSClassWithoutException(s + "PlayerListHeaderFooter");
NBT_QUERY = NMSUtils.getNMSClassWithoutException(s + "NBTQuery");
COLLECT = NMSUtils.getNMSClassWithoutException(s + "Collect");
ENTITY_TELEPORT = NMSUtils.getNMSClassWithoutException(s + "EntityTeleport");
ADVANCEMENTS = NMSUtils.getNMSClassWithoutException(s + "Advancements");
UPDATE_ATTRIBUTES = NMSUtils.getNMSClassWithoutException(s + "UpdateAttributes");
ENTITY_EFFECT = NMSUtils.getNMSClassWithoutException(s + "EntityEffect");
RECIPE_UPDATE = NMSUtils.getNMSClassWithoutException(s + "RecipeUpdate");
TAGS = NMSUtils.getNMSClassWithoutException(s + "Tags");
MAP_CHUNK_BULK = NMSUtils.getNMSClassWithoutException(s + "MapChunkBulk");
PacketType.Server.init();
}
}
}
@@ -4,6 +4,7 @@ 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();