mirror of
https://github.com/dmulloy2/ProtocolLib.git
synced 2024-11-27 13:15:52 +01:00
Update to 1.21.3
This commit is contained in:
parent
3442d3fb8f
commit
6845acd89d
12
build.gradle
12
build.gradle
@ -5,7 +5,7 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
group = 'com.comphenix.protocol'
|
group = 'com.comphenix.protocol'
|
||||||
version = '5.3.0'
|
version = '5.4.0-SNAPSHOT'
|
||||||
description = 'Provides access to the Minecraft protocol'
|
description = 'Provides access to the Minecraft protocol'
|
||||||
|
|
||||||
def isSnapshot = version.endsWith('-SNAPSHOT')
|
def isSnapshot = version.endsWith('-SNAPSHOT')
|
||||||
@ -34,8 +34,8 @@ repositories {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'net.bytebuddy:byte-buddy:1.15.1'
|
implementation 'net.bytebuddy:byte-buddy:1.15.1'
|
||||||
compileOnly 'org.spigotmc:spigot-api:1.21.1-R0.1-SNAPSHOT'
|
compileOnly 'org.spigotmc:spigot-api:1.21.3-R0.1-SNAPSHOT'
|
||||||
compileOnly 'org.spigotmc:spigot:1.21.1-R0.1-SNAPSHOT'
|
compileOnly 'org.spigotmc:spigot:1.21.3-R0.1-SNAPSHOT'
|
||||||
compileOnly 'io.netty:netty-all:4.0.23.Final'
|
compileOnly 'io.netty:netty-all:4.0.23.Final'
|
||||||
compileOnly 'net.kyori:adventure-text-serializer-gson:4.14.0'
|
compileOnly 'net.kyori:adventure-text-serializer-gson:4.14.0'
|
||||||
compileOnly 'com.googlecode.json-simple:json-simple:1.1.1'
|
compileOnly 'com.googlecode.json-simple:json-simple:1.1.1'
|
||||||
@ -46,14 +46,14 @@ dependencies {
|
|||||||
testImplementation 'org.mockito:mockito-core:5.6.0'
|
testImplementation 'org.mockito:mockito-core:5.6.0'
|
||||||
testImplementation 'io.netty:netty-common:4.1.97.Final'
|
testImplementation 'io.netty:netty-common:4.1.97.Final'
|
||||||
testImplementation 'io.netty:netty-transport:4.1.97.Final'
|
testImplementation 'io.netty:netty-transport:4.1.97.Final'
|
||||||
testImplementation 'org.spigotmc:spigot:1.21.1-R0.1-SNAPSHOT'
|
testImplementation 'org.spigotmc:spigot:1.21.3-R0.1-SNAPSHOT'
|
||||||
testImplementation 'net.kyori:adventure-text-serializer-gson:4.14.0'
|
testImplementation 'net.kyori:adventure-text-serializer-gson:4.14.0'
|
||||||
testImplementation 'net.kyori:adventure-text-serializer-plain:4.14.0'
|
testImplementation 'net.kyori:adventure-text-serializer-plain:4.14.0'
|
||||||
}
|
}
|
||||||
|
|
||||||
java {
|
java {
|
||||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
sourceCompatibility = JavaVersion.VERSION_17
|
||||||
targetCompatibility = JavaVersion.VERSION_1_8
|
targetCompatibility = JavaVersion.VERSION_17
|
||||||
|
|
||||||
withJavadocJar()
|
withJavadocJar()
|
||||||
withSourcesJar()
|
withSourcesJar()
|
||||||
|
@ -139,100 +139,105 @@ public class PacketType implements Serializable, Cloneable, Comparable<PacketTyp
|
|||||||
public static final PacketType KICK_DISCONNECT = new PacketType(PROTOCOL, SENDER, 0x1D, "Disconnect", "KickDisconnect", "SPacketDisconnect");
|
public static final PacketType KICK_DISCONNECT = new PacketType(PROTOCOL, SENDER, 0x1D, "Disconnect", "KickDisconnect", "SPacketDisconnect");
|
||||||
public static final PacketType DISGUISED_CHAT = new PacketType(PROTOCOL, SENDER, 0x1E, "DisguisedChat");
|
public static final PacketType DISGUISED_CHAT = new PacketType(PROTOCOL, SENDER, 0x1E, "DisguisedChat");
|
||||||
public static final PacketType ENTITY_STATUS = new PacketType(PROTOCOL, SENDER, 0x1F, "EntityEvent", "EntityStatus", "SPacketEntityStatus");
|
public static final PacketType ENTITY_STATUS = new PacketType(PROTOCOL, SENDER, 0x1F, "EntityEvent", "EntityStatus", "SPacketEntityStatus");
|
||||||
public static final PacketType EXPLOSION = new PacketType(PROTOCOL, SENDER, 0x20, "Explode", "Explosion", "SPacketExplosion");
|
public static final PacketType ENTITY_POSITION_SYNC = new PacketType(PROTOCOL, SENDER, 0x20, "EntityPositionSync");
|
||||||
public static final PacketType UNLOAD_CHUNK = new PacketType(PROTOCOL, SENDER, 0x21, "ForgetLevelChunk", "UnloadChunk", "SPacketUnloadChunk");
|
public static final PacketType EXPLOSION = new PacketType(PROTOCOL, SENDER, 0x21, "Explode", "Explosion", "SPacketExplosion");
|
||||||
public static final PacketType GAME_STATE_CHANGE = new PacketType(PROTOCOL, SENDER, 0x22, "GameEvent", "GameStateChange", "SPacketChangeGameState");
|
public static final PacketType UNLOAD_CHUNK = new PacketType(PROTOCOL, SENDER, 0x22, "ForgetLevelChunk", "UnloadChunk", "SPacketUnloadChunk");
|
||||||
public static final PacketType OPEN_WINDOW_HORSE = new PacketType(PROTOCOL, SENDER, 0x23, "HorseScreenOpen", "OpenWindowHorse");
|
public static final PacketType GAME_STATE_CHANGE = new PacketType(PROTOCOL, SENDER, 0x23, "GameEvent", "GameStateChange", "SPacketChangeGameState");
|
||||||
public static final PacketType HURT_ANIMATION = new PacketType(PROTOCOL, SENDER, 0x24, "HurtAnimation", "ClientboundHurtAnimationPacket");
|
public static final PacketType OPEN_WINDOW_HORSE = new PacketType(PROTOCOL, SENDER, 0x24, "HorseScreenOpen", "OpenWindowHorse");
|
||||||
public static final PacketType INITIALIZE_BORDER = new PacketType(PROTOCOL, SENDER, 0x25, "InitializeBorder");
|
public static final PacketType HURT_ANIMATION = new PacketType(PROTOCOL, SENDER, 0x25, "HurtAnimation", "ClientboundHurtAnimationPacket");
|
||||||
public static final PacketType KEEP_ALIVE = new PacketType(PROTOCOL, SENDER, 0x26, "KeepAlive", "SPacketKeepAlive");
|
public static final PacketType INITIALIZE_BORDER = new PacketType(PROTOCOL, SENDER, 0x26, "InitializeBorder");
|
||||||
public static final PacketType MAP_CHUNK = new PacketType(PROTOCOL, SENDER, 0x27, "LevelChunkWithLight", "MapChunk", "SPacketChunkData");
|
public static final PacketType KEEP_ALIVE = new PacketType(PROTOCOL, SENDER, 0x27, "KeepAlive", "SPacketKeepAlive");
|
||||||
public static final PacketType WORLD_EVENT = new PacketType(PROTOCOL, SENDER, 0x28, "LevelEvent", "WorldEvent", "SPacketEffect");
|
public static final PacketType MAP_CHUNK = new PacketType(PROTOCOL, SENDER, 0x28, "LevelChunkWithLight", "MapChunk", "SPacketChunkData");
|
||||||
public static final PacketType WORLD_PARTICLES = new PacketType(PROTOCOL, SENDER, 0x29, "LevelParticles", "WorldParticles", "SPacketParticles");
|
public static final PacketType WORLD_EVENT = new PacketType(PROTOCOL, SENDER, 0x29, "LevelEvent", "WorldEvent", "SPacketEffect");
|
||||||
public static final PacketType LIGHT_UPDATE = new PacketType(PROTOCOL, SENDER, 0x2A, "LightUpdate");
|
public static final PacketType WORLD_PARTICLES = new PacketType(PROTOCOL, SENDER, 0x2A, "LevelParticles", "WorldParticles", "SPacketParticles");
|
||||||
public static final PacketType LOGIN = new PacketType(PROTOCOL, SENDER, 0x2B, "Login", "SPacketJoinGame");
|
public static final PacketType LIGHT_UPDATE = new PacketType(PROTOCOL, SENDER, 0x2B, "LightUpdate");
|
||||||
public static final PacketType MAP = new PacketType(PROTOCOL, SENDER, 0x2C, "MapItemData", "Map", "SPacketMaps");
|
public static final PacketType LOGIN = new PacketType(PROTOCOL, SENDER, 0x2C, "Login", "SPacketJoinGame");
|
||||||
public static final PacketType OPEN_WINDOW_MERCHANT = new PacketType(PROTOCOL, SENDER, 0x2D, "MerchantOffers", "OpenWindowMerchant");
|
public static final PacketType MAP = new PacketType(PROTOCOL, SENDER, 0x2D, "MapItemData", "Map", "SPacketMaps");
|
||||||
public static final PacketType REL_ENTITY_MOVE = new PacketType(PROTOCOL, SENDER, 0x2E, "net.minecraft.network.protocol.game.ClientboundMoveEntityPacket$Pos", "Entity$RelEntityMove", "Entity$PacketPlayOutRelEntityMove");
|
public static final PacketType OPEN_WINDOW_MERCHANT = new PacketType(PROTOCOL, SENDER, 0x2E, "MerchantOffers", "OpenWindowMerchant");
|
||||||
public static final PacketType REL_ENTITY_MOVE_LOOK = new PacketType(PROTOCOL, SENDER, 0x2F, "net.minecraft.network.protocol.game.ClientboundMoveEntityPacket$PosRot", "Entity$RelEntityMoveLook", "Entity$PacketPlayOutRelEntityMoveLook");
|
public static final PacketType REL_ENTITY_MOVE = new PacketType(PROTOCOL, SENDER, 0x2F, "net.minecraft.network.protocol.game.ClientboundMoveEntityPacket$Pos", "Entity$RelEntityMove", "Entity$PacketPlayOutRelEntityMove");
|
||||||
public static final PacketType ENTITY_LOOK = new PacketType(PROTOCOL, SENDER, 0x30, "net.minecraft.network.protocol.game.ClientboundMoveEntityPacket$Rot", "Entity$EntityLook", "Entity$PacketPlayOutEntityLook");
|
public static final PacketType REL_ENTITY_MOVE_LOOK = new PacketType(PROTOCOL, SENDER, 0x30, "net.minecraft.network.protocol.game.ClientboundMoveEntityPacket$PosRot", "Entity$RelEntityMoveLook", "Entity$PacketPlayOutRelEntityMoveLook");
|
||||||
public static final PacketType VEHICLE_MOVE = new PacketType(PROTOCOL, SENDER, 0x31, "MoveVehicle", "VehicleMove", "SPacketMoveVehicle");
|
public static final PacketType MOVE_MINECART = new PacketType(PROTOCOL, SENDER, 0x31, "MoveMinecart");
|
||||||
public static final PacketType OPEN_BOOK = new PacketType(PROTOCOL, SENDER, 0x32, "OpenBook");
|
public static final PacketType ENTITY_LOOK = new PacketType(PROTOCOL, SENDER, 0x32, "net.minecraft.network.protocol.game.ClientboundMoveEntityPacket$Rot", "Entity$EntityLook", "Entity$PacketPlayOutEntityLook");
|
||||||
public static final PacketType OPEN_WINDOW = new PacketType(PROTOCOL, SENDER, 0x33, "OpenScreen", "OpenWindow", "SPacketOpenWindow");
|
public static final PacketType VEHICLE_MOVE = new PacketType(PROTOCOL, SENDER, 0x33, "MoveVehicle", "VehicleMove", "SPacketMoveVehicle");
|
||||||
public static final PacketType OPEN_SIGN_EDITOR = new PacketType(PROTOCOL, SENDER, 0x34, "OpenSignEditor", "SPacketSignEditorOpen");
|
public static final PacketType OPEN_BOOK = new PacketType(PROTOCOL, SENDER, 0x34, "OpenBook");
|
||||||
public static final PacketType PING = new PacketType(PROTOCOL, SENDER, 0x35, "Ping");
|
public static final PacketType OPEN_WINDOW = new PacketType(PROTOCOL, SENDER, 0x35, "OpenScreen", "OpenWindow", "SPacketOpenWindow");
|
||||||
public static final PacketType PONG_RESPONSE = new PacketType(PROTOCOL, SENDER, 0x36, "PongResponse");
|
public static final PacketType OPEN_SIGN_EDITOR = new PacketType(PROTOCOL, SENDER, 0x36, "OpenSignEditor", "SPacketSignEditorOpen");
|
||||||
public static final PacketType AUTO_RECIPE = new PacketType(PROTOCOL, SENDER, 0x37, "PlaceGhostRecipe", "AutoRecipe", "SPacketPlaceGhostRecipe");
|
public static final PacketType PING = new PacketType(PROTOCOL, SENDER, 0x37, "Ping");
|
||||||
public static final PacketType ABILITIES = new PacketType(PROTOCOL, SENDER, 0x38, "PlayerAbilities", "Abilities", "SPacketPlayerAbilities");
|
public static final PacketType PONG_RESPONSE = new PacketType(PROTOCOL, SENDER, 0x38, "PongResponse");
|
||||||
public static final PacketType CHAT = new PacketType(PROTOCOL, SENDER, 0x39, "PlayerChat", "Chat", "SPacketChat");
|
public static final PacketType AUTO_RECIPE = new PacketType(PROTOCOL, SENDER, 0x39, "PlaceGhostRecipe", "AutoRecipe", "SPacketPlaceGhostRecipe");
|
||||||
public static final PacketType PLAYER_COMBAT_END = new PacketType(PROTOCOL, SENDER, 0x3A, "PlayerCombatEnd");
|
public static final PacketType ABILITIES = new PacketType(PROTOCOL, SENDER, 0x3A, "PlayerAbilities", "Abilities", "SPacketPlayerAbilities");
|
||||||
public static final PacketType PLAYER_COMBAT_ENTER = new PacketType(PROTOCOL, SENDER, 0x3B, "PlayerCombatEnter");
|
public static final PacketType CHAT = new PacketType(PROTOCOL, SENDER, 0x3B, "PlayerChat", "Chat", "SPacketChat");
|
||||||
public static final PacketType PLAYER_COMBAT_KILL = new PacketType(PROTOCOL, SENDER, 0x3C, "PlayerCombatKill");
|
public static final PacketType PLAYER_COMBAT_END = new PacketType(PROTOCOL, SENDER, 0x3C, "PlayerCombatEnd");
|
||||||
public static final PacketType PLAYER_INFO_REMOVE = new PacketType(PROTOCOL, SENDER, 0x3D, "PlayerInfoRemove");
|
public static final PacketType PLAYER_COMBAT_ENTER = new PacketType(PROTOCOL, SENDER, 0x3D, "PlayerCombatEnter");
|
||||||
public static final PacketType PLAYER_INFO = new PacketType(PROTOCOL, SENDER, 0x3E, "PlayerInfoUpdate", "PlayerInfo");
|
public static final PacketType PLAYER_COMBAT_KILL = new PacketType(PROTOCOL, SENDER, 0x3E, "PlayerCombatKill");
|
||||||
public static final PacketType LOOK_AT = new PacketType(PROTOCOL, SENDER, 0x3F, "PlayerLookAt", "LookAt", "SPacketPlayerPosLook");
|
public static final PacketType PLAYER_INFO_REMOVE = new PacketType(PROTOCOL, SENDER, 0x3F, "PlayerInfoRemove");
|
||||||
public static final PacketType POSITION = new PacketType(PROTOCOL, SENDER, 0x40, "PlayerPosition", "Position");
|
public static final PacketType PLAYER_INFO = new PacketType(PROTOCOL, SENDER, 0x40, "PlayerInfoUpdate", "PlayerInfo");
|
||||||
public static final PacketType RECIPES = new PacketType(PROTOCOL, SENDER, 0x41, "Recipe", "Recipes", "SPacketRecipeBook");
|
public static final PacketType LOOK_AT = new PacketType(PROTOCOL, SENDER, 0x41, "PlayerLookAt", "LookAt", "SPacketPlayerPosLook");
|
||||||
public static final PacketType ENTITY_DESTROY = new PacketType(PROTOCOL, SENDER, 0x42, "RemoveEntities", "EntityDestroy", "SPacketDestroyEntities");
|
public static final PacketType POSITION = new PacketType(PROTOCOL, SENDER, 0x42, "PlayerPosition", "Position");
|
||||||
public static final PacketType REMOVE_ENTITY_EFFECT = new PacketType(PROTOCOL, SENDER, 0x43, "RemoveMobEffect", "RemoveEntityEffect", "SPacketRemoveEntityEffect");
|
public static final PacketType PLAYER_ROTATION = new PacketType(PROTOCOL, SENDER, 0x43, "PlayerRotation");
|
||||||
public static final PacketType RESET_SCORE = new PacketType(PROTOCOL, SENDER, 0x44, "ResetScore", "ResetScorePacket");
|
public static final PacketType RECIPE_BOOK_ADD = new PacketType(PROTOCOL, SENDER, 0x44, "RecipeBookAdd");
|
||||||
public static final PacketType REMOVE_RESOURCE_PACK = new PacketType(PROTOCOL, SENDER, 0x45, "ResourcePackPop", "ResourcePackPopPacket");
|
public static final PacketType RECIPE_BOOK_REMOVE = new PacketType(PROTOCOL, SENDER, 0x45, "RecipeBookRemove");
|
||||||
public static final PacketType ADD_RESOURCE_PACK = new PacketType(PROTOCOL, SENDER, 0x46, "ResourcePackPush", "ResourcePackPushPacket");
|
public static final PacketType RECIPE_BOOK_SETTINGS = new PacketType(PROTOCOL, SENDER, 0x46, "RecipeBookSettings");
|
||||||
public static final PacketType RESPAWN = new PacketType(PROTOCOL, SENDER, 0x47, "Respawn", "SPacketRespawn");
|
public static final PacketType ENTITY_DESTROY = new PacketType(PROTOCOL, SENDER, 0x47, "RemoveEntities", "EntityDestroy", "SPacketDestroyEntities");
|
||||||
public static final PacketType ENTITY_HEAD_ROTATION = new PacketType(PROTOCOL, SENDER, 0x48, "RotateHead", "EntityHeadRotation", "SPacketEntityHeadLook");
|
public static final PacketType REMOVE_ENTITY_EFFECT = new PacketType(PROTOCOL, SENDER, 0x48, "RemoveMobEffect", "RemoveEntityEffect", "SPacketRemoveEntityEffect");
|
||||||
public static final PacketType MULTI_BLOCK_CHANGE = new PacketType(PROTOCOL, SENDER, 0x49, "SectionBlocksUpdate", "MultiBlockChange", "SPacketMultiBlockChange");
|
public static final PacketType RESET_SCORE = new PacketType(PROTOCOL, SENDER, 0x49, "ResetScore", "ResetScorePacket");
|
||||||
public static final PacketType SELECT_ADVANCEMENT_TAB = new PacketType(PROTOCOL, SENDER, 0x4A, "SelectAdvancementsTab", "SelectAdvancementTab", "SPacketSelectAdvancementsTab");
|
public static final PacketType REMOVE_RESOURCE_PACK = new PacketType(PROTOCOL, SENDER, 0x4A, "ResourcePackPop", "ResourcePackPopPacket");
|
||||||
public static final PacketType SERVER_DATA = new PacketType(PROTOCOL, SENDER, 0x4B, "ServerData");
|
public static final PacketType ADD_RESOURCE_PACK = new PacketType(PROTOCOL, SENDER, 0x4B, "ResourcePackPush", "ResourcePackPushPacket");
|
||||||
public static final PacketType SET_ACTION_BAR_TEXT = new PacketType(PROTOCOL, SENDER, 0x4C, "SetActionBarText");
|
public static final PacketType RESPAWN = new PacketType(PROTOCOL, SENDER, 0x4C, "Respawn", "SPacketRespawn");
|
||||||
public static final PacketType SET_BORDER_CENTER = new PacketType(PROTOCOL, SENDER, 0x4D, "SetBorderCenter");
|
public static final PacketType ENTITY_HEAD_ROTATION = new PacketType(PROTOCOL, SENDER, 0x4D, "RotateHead", "EntityHeadRotation", "SPacketEntityHeadLook");
|
||||||
public static final PacketType SET_BORDER_LERP_SIZE = new PacketType(PROTOCOL, SENDER, 0x4E, "SetBorderLerpSize");
|
public static final PacketType MULTI_BLOCK_CHANGE = new PacketType(PROTOCOL, SENDER, 0x4E, "SectionBlocksUpdate", "MultiBlockChange", "SPacketMultiBlockChange");
|
||||||
public static final PacketType SET_BORDER_SIZE = new PacketType(PROTOCOL, SENDER, 0x4F, "SetBorderSize");
|
public static final PacketType SELECT_ADVANCEMENT_TAB = new PacketType(PROTOCOL, SENDER, 0x4F, "SelectAdvancementsTab", "SelectAdvancementTab", "SPacketSelectAdvancementsTab");
|
||||||
public static final PacketType SET_BORDER_WARNING_DELAY = new PacketType(PROTOCOL, SENDER, 0x50, "SetBorderWarningDelay");
|
public static final PacketType SERVER_DATA = new PacketType(PROTOCOL, SENDER, 0x50, "ServerData");
|
||||||
public static final PacketType SET_BORDER_WARNING_DISTANCE = new PacketType(PROTOCOL, SENDER, 0x51, "SetBorderWarningDistance");
|
public static final PacketType SET_ACTION_BAR_TEXT = new PacketType(PROTOCOL, SENDER, 0x51, "SetActionBarText");
|
||||||
public static final PacketType CAMERA = new PacketType(PROTOCOL, SENDER, 0x52, "SetCamera", "Camera", "SPacketCamera");
|
public static final PacketType SET_BORDER_CENTER = new PacketType(PROTOCOL, SENDER, 0x52, "SetBorderCenter");
|
||||||
public static final PacketType HELD_ITEM_SLOT = new PacketType(PROTOCOL, SENDER, 0x53, "SetCarriedItem", "HeldItemSlot", "SPacketHeldItemChange");
|
public static final PacketType SET_BORDER_LERP_SIZE = new PacketType(PROTOCOL, SENDER, 0x53, "SetBorderLerpSize");
|
||||||
public static final PacketType VIEW_CENTRE = new PacketType(PROTOCOL, SENDER, 0x54, "SetChunkCacheCenter", "ViewCentre");
|
public static final PacketType SET_BORDER_SIZE = new PacketType(PROTOCOL, SENDER, 0x54, "SetBorderSize");
|
||||||
public static final PacketType VIEW_DISTANCE = new PacketType(PROTOCOL, SENDER, 0x55, "SetChunkCacheRadius", "ViewDistance");
|
public static final PacketType SET_BORDER_WARNING_DELAY = new PacketType(PROTOCOL, SENDER, 0x55, "SetBorderWarningDelay");
|
||||||
public static final PacketType SPAWN_POSITION = new PacketType(PROTOCOL, SENDER, 0x56, "SetDefaultSpawnPosition", "SpawnPosition", "SPacketSpawnPosition");
|
public static final PacketType SET_BORDER_WARNING_DISTANCE = new PacketType(PROTOCOL, SENDER, 0x56, "SetBorderWarningDistance");
|
||||||
public static final PacketType SCOREBOARD_DISPLAY_OBJECTIVE = new PacketType(PROTOCOL, SENDER, 0x57, "SetDisplayObjective", "ScoreboardDisplayObjective", "SPacketDisplayObjective");
|
public static final PacketType CAMERA = new PacketType(PROTOCOL, SENDER, 0x57, "SetCamera", "Camera", "SPacketCamera");
|
||||||
public static final PacketType ENTITY_METADATA = new PacketType(PROTOCOL, SENDER, 0x58, "SetEntityData", "EntityMetadata", "SPacketEntityMetadata");
|
public static final PacketType VIEW_CENTRE = new PacketType(PROTOCOL, SENDER, 0x58, "SetChunkCacheCenter", "ViewCentre");
|
||||||
public static final PacketType ATTACH_ENTITY = new PacketType(PROTOCOL, SENDER, 0x59, "SetEntityLink", "AttachEntity", "SPacketEntityAttach");
|
public static final PacketType VIEW_DISTANCE = new PacketType(PROTOCOL, SENDER, 0x59, "SetChunkCacheRadius", "ViewDistance");
|
||||||
public static final PacketType ENTITY_VELOCITY = new PacketType(PROTOCOL, SENDER, 0x5A, "SetEntityMotion", "EntityVelocity", "SPacketEntityVelocity");
|
public static final PacketType SET_CURSOR_ITEM = new PacketType(PROTOCOL, SENDER, 0x5A, "SetCursorItem");
|
||||||
public static final PacketType ENTITY_EQUIPMENT = new PacketType(PROTOCOL, SENDER, 0x5B, "SetEquipment", "EntityEquipment", "SPacketEntityEquipment");
|
public static final PacketType SPAWN_POSITION = new PacketType(PROTOCOL, SENDER, 0x5B, "SetDefaultSpawnPosition", "SpawnPosition", "SPacketSpawnPosition");
|
||||||
public static final PacketType EXPERIENCE = new PacketType(PROTOCOL, SENDER, 0x5C, "SetExperience", "Experience", "SPacketSetExperience");
|
public static final PacketType SCOREBOARD_DISPLAY_OBJECTIVE = new PacketType(PROTOCOL, SENDER, 0x5C, "SetDisplayObjective", "ScoreboardDisplayObjective", "SPacketDisplayObjective");
|
||||||
public static final PacketType UPDATE_HEALTH = new PacketType(PROTOCOL, SENDER, 0x5D, "SetHealth", "UpdateHealth", "SPacketUpdateHealth");
|
public static final PacketType ENTITY_METADATA = new PacketType(PROTOCOL, SENDER, 0x5D, "SetEntityData", "EntityMetadata", "SPacketEntityMetadata");
|
||||||
public static final PacketType SCOREBOARD_OBJECTIVE = new PacketType(PROTOCOL, SENDER, 0x5E, "SetObjective", "ScoreboardObjective", "SPacketScoreboardObjective");
|
public static final PacketType ATTACH_ENTITY = new PacketType(PROTOCOL, SENDER, 0x5E, "SetEntityLink", "AttachEntity", "SPacketEntityAttach");
|
||||||
public static final PacketType MOUNT = new PacketType(PROTOCOL, SENDER, 0x5F, "SetPassengers", "Mount", "SPacketSetPassengers");
|
public static final PacketType ENTITY_VELOCITY = new PacketType(PROTOCOL, SENDER, 0x5F, "SetEntityMotion", "EntityVelocity", "SPacketEntityVelocity");
|
||||||
public static final PacketType SCOREBOARD_TEAM = new PacketType(PROTOCOL, SENDER, 0x60, "SetPlayerTeam", "ScoreboardTeam", "SPacketTeams");
|
public static final PacketType ENTITY_EQUIPMENT = new PacketType(PROTOCOL, SENDER, 0x60, "SetEquipment", "EntityEquipment", "SPacketEntityEquipment");
|
||||||
public static final PacketType SCOREBOARD_SCORE = new PacketType(PROTOCOL, SENDER, 0x61, "SetScore", "ScoreboardScore", "SPacketUpdateScore");
|
public static final PacketType EXPERIENCE = new PacketType(PROTOCOL, SENDER, 0x61, "SetExperience", "Experience", "SPacketSetExperience");
|
||||||
public static final PacketType UPDATE_SIMULATION_DISTANCE = new PacketType(PROTOCOL, SENDER, 0x62, "SetSimulationDistance");
|
public static final PacketType UPDATE_HEALTH = new PacketType(PROTOCOL, SENDER, 0x62, "SetHealth", "UpdateHealth", "SPacketUpdateHealth");
|
||||||
public static final PacketType SET_SUBTITLE_TEXT = new PacketType(PROTOCOL, SENDER, 0x63, "SetSubtitleText");
|
public static final PacketType HELD_ITEM_SLOT = new PacketType(PROTOCOL, SENDER, 0x63, "SetCarriedItem", "HeldItemSlot", "SPacketHeldItemChange");
|
||||||
public static final PacketType UPDATE_TIME = new PacketType(PROTOCOL, SENDER, 0x64, "SetTime", "UpdateTime", "SPacketTimeUpdate");
|
public static final PacketType SCOREBOARD_OBJECTIVE = new PacketType(PROTOCOL, SENDER, 0x64, "SetObjective", "ScoreboardObjective", "SPacketScoreboardObjective");
|
||||||
public static final PacketType SET_TITLE_TEXT = new PacketType(PROTOCOL, SENDER, 0x65, "SetTitleText");
|
public static final PacketType MOUNT = new PacketType(PROTOCOL, SENDER, 0x65, "SetPassengers", "Mount", "SPacketSetPassengers");
|
||||||
public static final PacketType SET_TITLES_ANIMATION = new PacketType(PROTOCOL, SENDER, 0x66, "SetTitlesAnimation");
|
public static final PacketType SET_PLAYER_INVENTORY = new PacketType(PROTOCOL, SENDER, 0x66, "SetPlayerInventory");
|
||||||
public static final PacketType ENTITY_SOUND = new PacketType(PROTOCOL, SENDER, 0x67, "SoundEntity", "EntitySound", "SPacketSoundEffect");
|
public static final PacketType SCOREBOARD_TEAM = new PacketType(PROTOCOL, SENDER, 0x67, "SetPlayerTeam", "ScoreboardTeam", "SPacketTeams");
|
||||||
public static final PacketType NAMED_SOUND_EFFECT = new PacketType(PROTOCOL, SENDER, 0x68, "Sound", "NamedSoundEffect");
|
public static final PacketType SCOREBOARD_SCORE = new PacketType(PROTOCOL, SENDER, 0x68, "SetScore", "ScoreboardScore", "SPacketUpdateScore");
|
||||||
public static final PacketType START_CONFIGURATION = new PacketType(PROTOCOL, SENDER, 0x69, "StartConfiguration");
|
public static final PacketType UPDATE_SIMULATION_DISTANCE = new PacketType(PROTOCOL, SENDER, 0x69, "SetSimulationDistance");
|
||||||
public static final PacketType STOP_SOUND = new PacketType(PROTOCOL, SENDER, 0x6A, "StopSound");
|
public static final PacketType SET_SUBTITLE_TEXT = new PacketType(PROTOCOL, SENDER, 0x6A, "SetSubtitleText");
|
||||||
public static final PacketType STORE_COOKIE = new PacketType(PROTOCOL, SENDER, 0x6B, "StoreCookie");
|
public static final PacketType UPDATE_TIME = new PacketType(PROTOCOL, SENDER, 0x6B, "SetTime", "UpdateTime", "SPacketTimeUpdate");
|
||||||
public static final PacketType SYSTEM_CHAT = new PacketType(PROTOCOL, SENDER, 0x6C, "SystemChat");
|
public static final PacketType SET_TITLE_TEXT = new PacketType(PROTOCOL, SENDER, 0x6C, "SetTitleText");
|
||||||
public static final PacketType PLAYER_LIST_HEADER_FOOTER = new PacketType(PROTOCOL, SENDER, 0x6D, "TabList", "PlayerListHeaderFooter", "SPacketPlayerListHeaderFooter");
|
public static final PacketType SET_TITLES_ANIMATION = new PacketType(PROTOCOL, SENDER, 0x6D, "SetTitlesAnimation");
|
||||||
public static final PacketType NBT_QUERY = new PacketType(PROTOCOL, SENDER, 0x6E, "TagQuery", "NBTQuery");
|
public static final PacketType ENTITY_SOUND = new PacketType(PROTOCOL, SENDER, 0x6E, "SoundEntity", "EntitySound", "SPacketSoundEffect");
|
||||||
public static final PacketType COLLECT = new PacketType(PROTOCOL, SENDER, 0x6F, "TakeItemEntity", "Collect", "SPacketCollectItem");
|
public static final PacketType NAMED_SOUND_EFFECT = new PacketType(PROTOCOL, SENDER, 0x6F, "Sound", "NamedSoundEffect");
|
||||||
public static final PacketType ENTITY_TELEPORT = new PacketType(PROTOCOL, SENDER, 0x70, "TeleportEntity", "EntityTeleport", "SPacketEntityTeleport");
|
public static final PacketType START_CONFIGURATION = new PacketType(PROTOCOL, SENDER, 0x70, "StartConfiguration");
|
||||||
public static final PacketType TICKING_STATE = new PacketType(PROTOCOL, SENDER, 0x71, "TickingState", "TickingStatePacket");
|
public static final PacketType STOP_SOUND = new PacketType(PROTOCOL, SENDER, 0x71, "StopSound");
|
||||||
public static final PacketType TICKING_STEP_STATE = new PacketType(PROTOCOL, SENDER, 0x72, "TickingStep", "TickingStepPacket");
|
public static final PacketType STORE_COOKIE = new PacketType(PROTOCOL, SENDER, 0x72, "StoreCookie");
|
||||||
public static final PacketType TRANSFER = new PacketType(PROTOCOL, SENDER, 0x73, "Transfer");
|
public static final PacketType SYSTEM_CHAT = new PacketType(PROTOCOL, SENDER, 0x73, "SystemChat");
|
||||||
public static final PacketType ADVANCEMENTS = new PacketType(PROTOCOL, SENDER, 0x74, "UpdateAdvancements", "Advancements", "SPacketAdvancementInfo");
|
public static final PacketType PLAYER_LIST_HEADER_FOOTER = new PacketType(PROTOCOL, SENDER, 0x74, "TabList", "PlayerListHeaderFooter", "SPacketPlayerListHeaderFooter");
|
||||||
public static final PacketType UPDATE_ATTRIBUTES = new PacketType(PROTOCOL, SENDER, 0x75, "UpdateAttributes", "SPacketEntityProperties");
|
public static final PacketType NBT_QUERY = new PacketType(PROTOCOL, SENDER, 0x75, "TagQuery", "NBTQuery");
|
||||||
public static final PacketType ENTITY_EFFECT = new PacketType(PROTOCOL, SENDER, 0x76, "UpdateMobEffect", "EntityEffect", "SPacketEntityEffect");
|
public static final PacketType COLLECT = new PacketType(PROTOCOL, SENDER, 0x76, "TakeItemEntity", "Collect", "SPacketCollectItem");
|
||||||
public static final PacketType RECIPE_UPDATE = new PacketType(PROTOCOL, SENDER, 0x77, "UpdateRecipes", "RecipeUpdate");
|
public static final PacketType ENTITY_TELEPORT = new PacketType(PROTOCOL, SENDER, 0x77, "TeleportEntity", "EntityTeleport", "SPacketEntityTeleport");
|
||||||
public static final PacketType TAGS = new PacketType(PROTOCOL, SENDER, 0x78, "UpdateTags", "Tags");
|
public static final PacketType TICKING_STATE = new PacketType(PROTOCOL, SENDER, 0x78, "TickingState", "TickingStatePacket");
|
||||||
public static final PacketType PROJECTILE_POWER = new PacketType(PROTOCOL, SENDER, 0x79, "ProjectilePower");
|
public static final PacketType TICKING_STEP_STATE = new PacketType(PROTOCOL, SENDER, 0x79, "TickingStep", "TickingStepPacket");
|
||||||
public static final PacketType REPORT_DETAILS = new PacketType(PROTOCOL, SENDER, 0x7A, "CustomReportDetails");
|
public static final PacketType TRANSFER = new PacketType(PROTOCOL, SENDER, 0x7A, "Transfer");
|
||||||
public static final PacketType SERVER_LINKS = new PacketType(PROTOCOL, SENDER, 0x7B, "ServerLinks");
|
public static final PacketType ADVANCEMENTS = new PacketType(PROTOCOL, SENDER, 0x7B, "UpdateAdvancements", "Advancements", "SPacketAdvancementInfo");
|
||||||
|
public static final PacketType UPDATE_ATTRIBUTES = new PacketType(PROTOCOL, SENDER, 0x7C, "UpdateAttributes", "SPacketEntityProperties");
|
||||||
// ---- Removed in 1.9
|
public static final PacketType ENTITY_EFFECT = new PacketType(PROTOCOL, SENDER, 0x7D, "UpdateMobEffect", "EntityEffect", "SPacketEntityEffect");
|
||||||
|
public static final PacketType RECIPE_UPDATE = new PacketType(PROTOCOL, SENDER, 0x7E, "UpdateRecipes", "RecipeUpdate");
|
||||||
|
public static final PacketType TAGS = new PacketType(PROTOCOL, SENDER, 0x7F, "UpdateTags", "Tags");
|
||||||
|
public static final PacketType PROJECTILE_POWER = new PacketType(PROTOCOL, SENDER, 0x80, "ProjectilePower");
|
||||||
|
public static final PacketType REPORT_DETAILS = new PacketType(PROTOCOL, SENDER, 0x81, "CustomReportDetails");
|
||||||
|
public static final PacketType SERVER_LINKS = new PacketType(PROTOCOL, SENDER, 0x82, "ServerLinks");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @deprecated Removed in 1.9
|
* @deprecated Removed in 1.9
|
||||||
@ -252,8 +257,6 @@ public class PacketType implements Serializable, Cloneable, Comparable<PacketTyp
|
|||||||
@Deprecated
|
@Deprecated
|
||||||
public static final PacketType UPDATE_ENTITY_NBT = new PacketType(PROTOCOL, SENDER, 253, "UpdateEntityNBT");
|
public static final PacketType UPDATE_ENTITY_NBT = new PacketType(PROTOCOL, SENDER, 253, "UpdateEntityNBT");
|
||||||
|
|
||||||
// ----- Renamed packets
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @deprecated Renamed to {@link #WINDOW_DATA}
|
* @deprecated Renamed to {@link #WINDOW_DATA}
|
||||||
*/
|
*/
|
||||||
@ -278,8 +281,6 @@ public class PacketType implements Serializable, Cloneable, Comparable<PacketTyp
|
|||||||
@Deprecated
|
@Deprecated
|
||||||
public static final PacketType OPEN_SIGN_ENTITY = OPEN_SIGN_EDITOR.clone();
|
public static final PacketType OPEN_SIGN_ENTITY = OPEN_SIGN_EDITOR.clone();
|
||||||
|
|
||||||
// ----- Replaced in 1.9.4
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @deprecated Replaced by {@link #TILE_ENTITY_DATA}
|
* @deprecated Replaced by {@link #TILE_ENTITY_DATA}
|
||||||
*/
|
*/
|
||||||
@ -287,8 +288,6 @@ public class PacketType implements Serializable, Cloneable, Comparable<PacketTyp
|
|||||||
public static final PacketType UPDATE_SIGN = MinecraftReflection.signUpdateExists() ? new PacketType(PROTOCOL, SENDER, 252, "UpdateSign") :
|
public static final PacketType UPDATE_SIGN = MinecraftReflection.signUpdateExists() ? new PacketType(PROTOCOL, SENDER, 252, "UpdateSign") :
|
||||||
TILE_ENTITY_DATA.clone();
|
TILE_ENTITY_DATA.clone();
|
||||||
|
|
||||||
// ---- Removed in 1.14
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @deprecated Removed in 1.14
|
* @deprecated Removed in 1.14
|
||||||
*/
|
*/
|
||||||
@ -403,6 +402,12 @@ public class PacketType implements Serializable, Cloneable, Comparable<PacketTyp
|
|||||||
@Deprecated
|
@Deprecated
|
||||||
public static final PacketType RESOURCE_PACK_SEND = new PacketType(PROTOCOL, SENDER, 234, "ResourcePackSend", "SPacketResourcePackSend");
|
public static final PacketType RESOURCE_PACK_SEND = new PacketType(PROTOCOL, SENDER, 234, "ResourcePackSend", "SPacketResourcePackSend");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated Removed in 1.21.2: replaced with individual packets for adding/removing recipes
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public static final PacketType RECIPES = new PacketType(PROTOCOL, SENDER, 0x41, "Recipe", "Recipes", "SPacketRecipeBook");
|
||||||
|
|
||||||
private static final Server INSTANCE = new Server();
|
private static final Server INSTANCE = new Server();
|
||||||
|
|
||||||
// Prevent accidental construction
|
// Prevent accidental construction
|
||||||
@ -425,62 +430,64 @@ public class PacketType implements Serializable, Cloneable, Comparable<PacketTyp
|
|||||||
|
|
||||||
public static final PacketType TELEPORT_ACCEPT = new PacketType(PROTOCOL, SENDER, 0x00, "AcceptTeleportation", "TeleportAccept", "CPacketConfirmTeleport");
|
public static final PacketType TELEPORT_ACCEPT = new PacketType(PROTOCOL, SENDER, 0x00, "AcceptTeleportation", "TeleportAccept", "CPacketConfirmTeleport");
|
||||||
public static final PacketType TILE_NBT_QUERY = new PacketType(PROTOCOL, SENDER, 0x01, "BlockEntityTagQuery", "TileNBTQuery");
|
public static final PacketType TILE_NBT_QUERY = new PacketType(PROTOCOL, SENDER, 0x01, "BlockEntityTagQuery", "TileNBTQuery");
|
||||||
public static final PacketType DIFFICULTY_CHANGE = new PacketType(PROTOCOL, SENDER, 0x02, "ChangeDifficulty", "DifficultyChange");
|
public static final PacketType SELECT_BUNDLE_ITEM = new PacketType(PROTOCOL, SENDER, 0x02, "SelectBundleItem");
|
||||||
public static final PacketType CHAT_ACK = new PacketType(PROTOCOL, SENDER, 0x03, "ChatAck");
|
public static final PacketType DIFFICULTY_CHANGE = new PacketType(PROTOCOL, SENDER, 0x03, "ChangeDifficulty", "DifficultyChange");
|
||||||
public static final PacketType CHAT_COMMAND = new PacketType(PROTOCOL, SENDER, 0x04, "ChatCommand");
|
public static final PacketType CHAT_ACK = new PacketType(PROTOCOL, SENDER, 0x04, "ChatAck");
|
||||||
public static final PacketType CHAT_COMMAND_SIGNED = new PacketType(PROTOCOL, SENDER, 0x05, "ChatCommandSigned");
|
public static final PacketType CHAT_COMMAND = new PacketType(PROTOCOL, SENDER, 0x05, "ChatCommand");
|
||||||
public static final PacketType CHAT = new PacketType(PROTOCOL, SENDER, 0x06, "Chat", "CPacketChatMessage");
|
public static final PacketType CHAT_COMMAND_SIGNED = new PacketType(PROTOCOL, SENDER, 0x06, "ChatCommandSigned");
|
||||||
public static final PacketType CHAT_SESSION_UPDATE = new PacketType(PROTOCOL, SENDER, 0x07, "ChatSessionUpdate");
|
public static final PacketType CHAT = new PacketType(PROTOCOL, SENDER, 0x07, "Chat", "CPacketChatMessage");
|
||||||
public static final PacketType CHUNK_BATCH_RECEIVED = new PacketType(PROTOCOL, SENDER, 0x08, "ChunkBatchReceived");
|
public static final PacketType CHAT_SESSION_UPDATE = new PacketType(PROTOCOL, SENDER, 0x08, "ChatSessionUpdate");
|
||||||
public static final PacketType CLIENT_COMMAND = new PacketType(PROTOCOL, SENDER, 0x09, "ClientCommand", "CPacketClientStatus");
|
public static final PacketType CHUNK_BATCH_RECEIVED = new PacketType(PROTOCOL, SENDER, 0x09, "ChunkBatchReceived");
|
||||||
public static final PacketType SETTINGS = new PacketType(PROTOCOL, SENDER, 0x0A, "ClientInformation", "Settings", "CPacketClientSettings");
|
public static final PacketType CLIENT_COMMAND = new PacketType(PROTOCOL, SENDER, 0x0A, "ClientCommand", "CPacketClientStatus");
|
||||||
public static final PacketType TAB_COMPLETE = new PacketType(PROTOCOL, SENDER, 0x0B, "CommandSuggestion", "TabComplete", "CPacketTabComplete");
|
public static final PacketType CLIENT_TICK_END = new PacketType(PROTOCOL, SENDER, 0x0B, "ClientTickEnd");
|
||||||
public static final PacketType CONFIGURATION_ACK = new PacketType(PROTOCOL, SENDER, 0x0C, "ConfigurationAcknowledged");
|
public static final PacketType SETTINGS = new PacketType(PROTOCOL, SENDER, 0x0C, "ClientInformation", "Settings", "CPacketClientSettings");
|
||||||
public static final PacketType ENCHANT_ITEM = new PacketType(PROTOCOL, SENDER, 0x0D, "ContainerButtonClick", "EnchantItem", "CPacketEnchantItem");
|
public static final PacketType TAB_COMPLETE = new PacketType(PROTOCOL, SENDER, 0x0D, "CommandSuggestion", "TabComplete", "CPacketTabComplete");
|
||||||
public static final PacketType WINDOW_CLICK = new PacketType(PROTOCOL, SENDER, 0x0E, "ContainerClick", "WindowClick", "CPacketClickWindow");
|
public static final PacketType CONFIGURATION_ACK = new PacketType(PROTOCOL, SENDER, 0x0E, "ConfigurationAcknowledged");
|
||||||
public static final PacketType CLOSE_WINDOW = new PacketType(PROTOCOL, SENDER, 0x0F, "ContainerClose", "CloseWindow", "CPacketCloseWindow");
|
public static final PacketType ENCHANT_ITEM = new PacketType(PROTOCOL, SENDER, 0x0F, "ContainerButtonClick", "EnchantItem", "CPacketEnchantItem");
|
||||||
public static final PacketType CONTAINER_SLOT_STATE_CHANGED = new PacketType(PROTOCOL, SENDER, 0x10, "ContainerSlotStateChanged", "ContainerSlotStateChangedPacket");
|
public static final PacketType WINDOW_CLICK = new PacketType(PROTOCOL, SENDER, 0x10, "ContainerClick", "WindowClick", "CPacketClickWindow");
|
||||||
public static final PacketType COOKIE_RESPONSE = new PacketType(PROTOCOL, SENDER, 0x11, "CookieResponse");
|
public static final PacketType CLOSE_WINDOW = new PacketType(PROTOCOL, SENDER, 0x11, "ContainerClose", "CloseWindow", "CPacketCloseWindow");
|
||||||
public static final PacketType CUSTOM_PAYLOAD = new PacketType(PROTOCOL, SENDER, 0x12, "CustomPayload", "CPacketCustomPayload");
|
public static final PacketType CONTAINER_SLOT_STATE_CHANGED = new PacketType(PROTOCOL, SENDER, 0x12, "ContainerSlotStateChanged", "ContainerSlotStateChangedPacket");
|
||||||
public static final PacketType DEBUG_SAMPLE_SUBSCRIPTION = new PacketType(PROTOCOL, SENDER, 0x13, "DebugSampleSubscription");
|
public static final PacketType COOKIE_RESPONSE = new PacketType(PROTOCOL, SENDER, 0x13, "CookieResponse");
|
||||||
public static final PacketType B_EDIT = new PacketType(PROTOCOL, SENDER, 0x14, "EditBook", "BEdit");
|
public static final PacketType CUSTOM_PAYLOAD = new PacketType(PROTOCOL, SENDER, 0x14, "CustomPayload", "CPacketCustomPayload");
|
||||||
public static final PacketType ENTITY_NBT_QUERY = new PacketType(PROTOCOL, SENDER, 0x15, "EntityTagQuery", "EntityNBTQuery");
|
public static final PacketType DEBUG_SAMPLE_SUBSCRIPTION = new PacketType(PROTOCOL, SENDER, 0x15, "DebugSampleSubscription");
|
||||||
public static final PacketType USE_ENTITY = new PacketType(PROTOCOL, SENDER, 0x16, "Interact", "UseEntity", "CPacketUseEntity");
|
public static final PacketType B_EDIT = new PacketType(PROTOCOL, SENDER, 0x16, "EditBook", "BEdit");
|
||||||
public static final PacketType JIGSAW_GENERATE = new PacketType(PROTOCOL, SENDER, 0x17, "JigsawGenerate");
|
public static final PacketType ENTITY_NBT_QUERY = new PacketType(PROTOCOL, SENDER, 0x17, "EntityTagQuery", "EntityNBTQuery");
|
||||||
public static final PacketType KEEP_ALIVE = new PacketType(PROTOCOL, SENDER, 0x18, "KeepAlive", "CPacketKeepAlive");
|
public static final PacketType USE_ENTITY = new PacketType(PROTOCOL, SENDER, 0x18, "Interact", "UseEntity", "CPacketUseEntity");
|
||||||
public static final PacketType DIFFICULTY_LOCK = new PacketType(PROTOCOL, SENDER, 0x19, "LockDifficulty", "DifficultyLock");
|
public static final PacketType JIGSAW_GENERATE = new PacketType(PROTOCOL, SENDER, 0x19, "JigsawGenerate");
|
||||||
public static final PacketType POSITION = new PacketType(PROTOCOL, SENDER, 0x1A, "net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos", "Flying$Position", "Flying$PacketPlayInPosition", "CPacketPlayer$Position");
|
public static final PacketType KEEP_ALIVE = new PacketType(PROTOCOL, SENDER, 0x1A, "KeepAlive", "CPacketKeepAlive");
|
||||||
public static final PacketType POSITION_LOOK = new PacketType(PROTOCOL, SENDER, 0x1B, "net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$PosRot", "Flying$PositionLook", "Flying$PacketPlayInPositionLook", "CPacketPlayer$PositionRotation");
|
public static final PacketType DIFFICULTY_LOCK = new PacketType(PROTOCOL, SENDER, 0x1B, "LockDifficulty", "DifficultyLock");
|
||||||
public static final PacketType LOOK = new PacketType(PROTOCOL, SENDER, 0x1C, "net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Rot", "Flying$Look", "Flying$PacketPlayInLook", "CPacketPlayer$Rotation");
|
public static final PacketType POSITION = new PacketType(PROTOCOL, SENDER, 0x1C, "net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos", "Flying$Position", "Flying$PacketPlayInPosition", "CPacketPlayer$Position");
|
||||||
public static final PacketType GROUND = new PacketType(PROTOCOL, SENDER, 0x1D, "net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$StatusOnly", "Flying$d");
|
public static final PacketType POSITION_LOOK = new PacketType(PROTOCOL, SENDER, 0x1D, "net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$PosRot", "Flying$PositionLook", "Flying$PacketPlayInPositionLook", "CPacketPlayer$PositionRotation");
|
||||||
public static final PacketType VEHICLE_MOVE = new PacketType(PROTOCOL, SENDER, 0x1E, "MoveVehicle", "VehicleMove", "CPacketVehicleMove");
|
public static final PacketType LOOK = new PacketType(PROTOCOL, SENDER, 0x1E, "net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Rot", "Flying$Look", "Flying$PacketPlayInLook", "CPacketPlayer$Rotation");
|
||||||
public static final PacketType BOAT_MOVE = new PacketType(PROTOCOL, SENDER, 0x1F, "PaddleBoat", "BoatMove", "CPacketSteerBoat");
|
public static final PacketType GROUND = new PacketType(PROTOCOL, SENDER, 0x1F, "net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$StatusOnly", "Flying$d");
|
||||||
public static final PacketType PICK_ITEM = new PacketType(PROTOCOL, SENDER, 0x20, "PickItem");
|
public static final PacketType VEHICLE_MOVE = new PacketType(PROTOCOL, SENDER, 0x20, "MoveVehicle", "VehicleMove", "CPacketVehicleMove");
|
||||||
public static final PacketType PING_REQUEST = new PacketType(PROTOCOL, SENDER, 0x21, "PingRequest");
|
public static final PacketType BOAT_MOVE = new PacketType(PROTOCOL, SENDER, 0x21, "PaddleBoat", "BoatMove", "CPacketSteerBoat");
|
||||||
public static final PacketType AUTO_RECIPE = new PacketType(PROTOCOL, SENDER, 0x22, "PlaceRecipe", "AutoRecipe", "CPacketPlaceRecipe");
|
public static final PacketType PICK_ITEM = new PacketType(PROTOCOL, SENDER, 0x22, "PickItem");
|
||||||
public static final PacketType ABILITIES = new PacketType(PROTOCOL, SENDER, 0x23, "PlayerAbilities", "Abilities", "CPacketPlayerAbilities");
|
public static final PacketType PING_REQUEST = new PacketType(PROTOCOL, SENDER, 0x23, "PingRequest");
|
||||||
public static final PacketType BLOCK_DIG = new PacketType(PROTOCOL, SENDER, 0x24, "PlayerAction", "BlockDig", "CPacketPlayerDigging");
|
public static final PacketType AUTO_RECIPE = new PacketType(PROTOCOL, SENDER, 0x24, "PlaceRecipe", "AutoRecipe", "CPacketPlaceRecipe");
|
||||||
public static final PacketType ENTITY_ACTION = new PacketType(PROTOCOL, SENDER, 0x25, "PlayerCommand", "EntityAction", "CPacketEntityAction");
|
public static final PacketType ABILITIES = new PacketType(PROTOCOL, SENDER, 0x25, "PlayerAbilities", "Abilities", "CPacketPlayerAbilities");
|
||||||
public static final PacketType STEER_VEHICLE = new PacketType(PROTOCOL, SENDER, 0x26, "PlayerInput", "SteerVehicle", "CPacketInput");
|
public static final PacketType BLOCK_DIG = new PacketType(PROTOCOL, SENDER, 0x26, "PlayerAction", "BlockDig", "CPacketPlayerDigging");
|
||||||
public static final PacketType PONG = new PacketType(PROTOCOL, SENDER, 0x27, "Pong");
|
public static final PacketType ENTITY_ACTION = new PacketType(PROTOCOL, SENDER, 0x27, "PlayerCommand", "EntityAction", "CPacketEntityAction");
|
||||||
public static final PacketType RECIPE_SETTINGS = new PacketType(PROTOCOL, SENDER, 0x28, "RecipeBookChangeSettings", "RecipeSettings");
|
public static final PacketType STEER_VEHICLE = new PacketType(PROTOCOL, SENDER, 0x28, "PlayerInput", "SteerVehicle", "CPacketInput");
|
||||||
public static final PacketType RECIPE_DISPLAYED = new PacketType(PROTOCOL, SENDER, 0x29, "RecipeBookSeenRecipe", "RecipeDisplayed", "CPacketRecipeInfo");
|
public static final PacketType PONG = new PacketType(PROTOCOL, SENDER, 0x29, "Pong");
|
||||||
public static final PacketType ITEM_NAME = new PacketType(PROTOCOL, SENDER, 0x2A, "RenameItem", "ItemName");
|
public static final PacketType RECIPE_SETTINGS = new PacketType(PROTOCOL, SENDER, 0x2A, "RecipeBookChangeSettings", "RecipeSettings");
|
||||||
public static final PacketType RESOURCE_PACK_STATUS = new PacketType(PROTOCOL, SENDER, 0x2B, "ResourcePack", "ResourcePackStatus", "CPacketResourcePackStatus");
|
public static final PacketType RECIPE_DISPLAYED = new PacketType(PROTOCOL, SENDER, 0x2B, "RecipeBookSeenRecipe", "RecipeDisplayed", "CPacketRecipeInfo");
|
||||||
public static final PacketType ADVANCEMENTS = new PacketType(PROTOCOL, SENDER, 0x2C, "SeenAdvancements", "Advancements", "CPacketSeenAdvancements");
|
public static final PacketType ITEM_NAME = new PacketType(PROTOCOL, SENDER, 0x2C, "RenameItem", "ItemName");
|
||||||
public static final PacketType TR_SEL = new PacketType(PROTOCOL, SENDER, 0x2D, "SelectTrade", "TrSel");
|
public static final PacketType RESOURCE_PACK_STATUS = new PacketType(PROTOCOL, SENDER, 0x2D, "ResourcePack", "ResourcePackStatus", "CPacketResourcePackStatus");
|
||||||
public static final PacketType BEACON = new PacketType(PROTOCOL, SENDER, 0x2E, "SetBeacon", "Beacon");
|
public static final PacketType ADVANCEMENTS = new PacketType(PROTOCOL, SENDER, 0x2E, "SeenAdvancements", "Advancements", "CPacketSeenAdvancements");
|
||||||
public static final PacketType HELD_ITEM_SLOT = new PacketType(PROTOCOL, SENDER, 0x2F, "SetCarriedItem", "HeldItemSlot", "CPacketHeldItemChange");
|
public static final PacketType TR_SEL = new PacketType(PROTOCOL, SENDER, 0x2F, "SelectTrade", "TrSel");
|
||||||
public static final PacketType SET_COMMAND_BLOCK = new PacketType(PROTOCOL, SENDER, 0x30, "SetCommandBlock");
|
public static final PacketType BEACON = new PacketType(PROTOCOL, SENDER, 0x30, "SetBeacon", "Beacon");
|
||||||
public static final PacketType SET_COMMAND_MINECART = new PacketType(PROTOCOL, SENDER, 0x31, "SetCommandMinecart");
|
public static final PacketType HELD_ITEM_SLOT = new PacketType(PROTOCOL, SENDER, 0x31, "SetCarriedItem", "HeldItemSlot", "CPacketHeldItemChange");
|
||||||
public static final PacketType SET_CREATIVE_SLOT = new PacketType(PROTOCOL, SENDER, 0x32, "SetCreativeModeSlot", "SetCreativeSlot", "CPacketCreativeInventoryAction");
|
public static final PacketType SET_COMMAND_BLOCK = new PacketType(PROTOCOL, SENDER, 0x32, "SetCommandBlock");
|
||||||
public static final PacketType SET_JIGSAW = new PacketType(PROTOCOL, SENDER, 0x33, "SetJigsawBlock", "SetJigsaw");
|
public static final PacketType SET_COMMAND_MINECART = new PacketType(PROTOCOL, SENDER, 0x33, "SetCommandMinecart");
|
||||||
public static final PacketType STRUCT = new PacketType(PROTOCOL, SENDER, 0x34, "SetStructureBlock", "Struct");
|
public static final PacketType SET_CREATIVE_SLOT = new PacketType(PROTOCOL, SENDER, 0x34, "SetCreativeModeSlot", "SetCreativeSlot", "CPacketCreativeInventoryAction");
|
||||||
public static final PacketType UPDATE_SIGN = new PacketType(PROTOCOL, SENDER, 0x35, "SignUpdate", "UpdateSign", "CPacketUpdateSign");
|
public static final PacketType SET_JIGSAW = new PacketType(PROTOCOL, SENDER, 0x35, "SetJigsawBlock", "SetJigsaw");
|
||||||
public static final PacketType ARM_ANIMATION = new PacketType(PROTOCOL, SENDER, 0x36, "Swing", "ArmAnimation", "CPacketAnimation");
|
public static final PacketType STRUCT = new PacketType(PROTOCOL, SENDER, 0x36, "SetStructureBlock", "Struct");
|
||||||
public static final PacketType SPECTATE = new PacketType(PROTOCOL, SENDER, 0x37, "TeleportToEntity", "Spectate", "CPacketSpectate");
|
public static final PacketType UPDATE_SIGN = new PacketType(PROTOCOL, SENDER, 0x37, "SignUpdate", "UpdateSign", "CPacketUpdateSign");
|
||||||
public static final PacketType USE_ITEM_ON = new PacketType(PROTOCOL, SENDER, 0x38, "UseItemOn", "BlockPlace", "CPacketPlayerTryUseItemOnBlock");
|
public static final PacketType ARM_ANIMATION = new PacketType(PROTOCOL, SENDER, 0x38, "Swing", "ArmAnimation", "CPacketAnimation");
|
||||||
public static final PacketType USE_ITEM = new PacketType(PROTOCOL, SENDER, 0x39, "UseItem", "CPacketPlayerTryUseItem");
|
public static final PacketType SPECTATE = new PacketType(PROTOCOL, SENDER, 0x39, "TeleportToEntity", "Spectate", "CPacketSpectate");
|
||||||
|
public static final PacketType USE_ITEM_ON = new PacketType(PROTOCOL, SENDER, 0x3B, "UseItemOn", "BlockPlace", "CPacketPlayerTryUseItemOnBlock");
|
||||||
|
public static final PacketType USE_ITEM = new PacketType(PROTOCOL, SENDER, 0x3A, "UseItem", "CPacketPlayerTryUseItem");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @deprecated Removed in 1.17
|
* @deprecated Removed in 1.17
|
||||||
|
@ -36,6 +36,11 @@ import org.bukkit.Server;
|
|||||||
* @author Kristian
|
* @author Kristian
|
||||||
*/
|
*/
|
||||||
public final class MinecraftVersion implements Comparable<MinecraftVersion>, Serializable {
|
public final class MinecraftVersion implements Comparable<MinecraftVersion>, Serializable {
|
||||||
|
/**
|
||||||
|
* Version 1.21.2 - the bundles of bravery drop
|
||||||
|
*/
|
||||||
|
public static final MinecraftVersion v1_21_2 = new MinecraftVersion("1.21.2");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Version 1.21.0 - the tricky trials update
|
* Version 1.21.0 - the tricky trials update
|
||||||
*/
|
*/
|
||||||
@ -149,7 +154,7 @@ public final class MinecraftVersion implements Comparable<MinecraftVersion>, Ser
|
|||||||
/**
|
/**
|
||||||
* The latest release version of minecraft.
|
* The latest release version of minecraft.
|
||||||
*/
|
*/
|
||||||
public static final MinecraftVersion LATEST = v1_21_0;
|
public static final MinecraftVersion LATEST = v1_21_2;
|
||||||
|
|
||||||
// used when serializing
|
// used when serializing
|
||||||
private static final long serialVersionUID = -8695133558996459770L;
|
private static final long serialVersionUID = -8695133558996459770L;
|
||||||
|
@ -11,10 +11,6 @@ import java.util.Map;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
import org.apache.commons.lang.Validate;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.GameMode;
|
|
||||||
|
|
||||||
import com.comphenix.protocol.PacketType;
|
import com.comphenix.protocol.PacketType;
|
||||||
import com.comphenix.protocol.PacketType.Protocol;
|
import com.comphenix.protocol.PacketType.Protocol;
|
||||||
import com.comphenix.protocol.ProtocolLogger;
|
import com.comphenix.protocol.ProtocolLogger;
|
||||||
@ -27,6 +23,10 @@ import com.comphenix.protocol.reflect.fuzzy.FuzzyMethodContract;
|
|||||||
import com.comphenix.protocol.utility.MinecraftReflection;
|
import com.comphenix.protocol.utility.MinecraftReflection;
|
||||||
import com.comphenix.protocol.utility.MinecraftVersion;
|
import com.comphenix.protocol.utility.MinecraftVersion;
|
||||||
|
|
||||||
|
import org.apache.commons.lang.Validate;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.GameMode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a generic enum converter.
|
* Represents a generic enum converter.
|
||||||
* @author Kristian
|
* @author Kristian
|
||||||
@ -140,6 +140,7 @@ public abstract class EnumWrappers {
|
|||||||
UPDATE_LISTED,
|
UPDATE_LISTED,
|
||||||
UPDATE_LATENCY,
|
UPDATE_LATENCY,
|
||||||
UPDATE_DISPLAY_NAME,
|
UPDATE_DISPLAY_NAME,
|
||||||
|
UPDATE_LIST_ORDER,
|
||||||
/**
|
/**
|
||||||
* @deprecated Removed in 1.19.3
|
* @deprecated Removed in 1.19.3
|
||||||
*/
|
*/
|
||||||
|
@ -16,12 +16,12 @@
|
|||||||
*/
|
*/
|
||||||
package com.comphenix.protocol.wrappers;
|
package com.comphenix.protocol.wrappers;
|
||||||
|
|
||||||
import com.comphenix.protocol.wrappers.WrappedProfilePublicKey.WrappedProfileKeyData;
|
|
||||||
import java.lang.reflect.Constructor;
|
import java.lang.reflect.Constructor;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import com.comphenix.protocol.PacketType;
|
import com.comphenix.protocol.PacketType;
|
||||||
import com.comphenix.protocol.reflect.EquivalentConverter;
|
import com.comphenix.protocol.reflect.EquivalentConverter;
|
||||||
@ -29,8 +29,7 @@ import com.comphenix.protocol.reflect.StructureModifier;
|
|||||||
import com.comphenix.protocol.utility.MinecraftReflection;
|
import com.comphenix.protocol.utility.MinecraftReflection;
|
||||||
import com.comphenix.protocol.utility.MinecraftVersion;
|
import com.comphenix.protocol.utility.MinecraftVersion;
|
||||||
import com.comphenix.protocol.wrappers.EnumWrappers.NativeGameMode;
|
import com.comphenix.protocol.wrappers.EnumWrappers.NativeGameMode;
|
||||||
|
import com.comphenix.protocol.wrappers.WrappedProfilePublicKey.WrappedProfileKeyData;
|
||||||
import javax.annotation.Nullable;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents an immutable PlayerInfoData in the PLAYER_INFO packet.
|
* Represents an immutable PlayerInfoData in the PLAYER_INFO packet.
|
||||||
@ -41,6 +40,7 @@ public class PlayerInfoData {
|
|||||||
|
|
||||||
private final UUID profileId;
|
private final UUID profileId;
|
||||||
private final int latency;
|
private final int latency;
|
||||||
|
private final int listOrder = 0;
|
||||||
private final boolean listed;
|
private final boolean listed;
|
||||||
private final NativeGameMode gameMode;
|
private final NativeGameMode gameMode;
|
||||||
private final WrappedGameProfile profile;
|
private final WrappedGameProfile profile;
|
||||||
@ -202,7 +202,9 @@ public class PlayerInfoData {
|
|||||||
* @return A new converter.
|
* @return A new converter.
|
||||||
*/
|
*/
|
||||||
public static EquivalentConverter<PlayerInfoData> getConverter() {
|
public static EquivalentConverter<PlayerInfoData> getConverter() {
|
||||||
return new EquivalentConverter<PlayerInfoData>() {
|
return new EquivalentConverter<>() {
|
||||||
|
private static final Class<?>[] EMPTY_CLASS_ARRAY = new Class<?>[0];
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object getGeneric(PlayerInfoData specific) {
|
public Object getGeneric(PlayerInfoData specific) {
|
||||||
if (constructor == null) {
|
if (constructor == null) {
|
||||||
@ -225,13 +227,17 @@ public class PlayerInfoData {
|
|||||||
args.add(EnumWrappers.getGameModeClass());
|
args.add(EnumWrappers.getGameModeClass());
|
||||||
args.add(MinecraftReflection.getIChatBaseComponentClass());
|
args.add(MinecraftReflection.getIChatBaseComponentClass());
|
||||||
|
|
||||||
|
if (MinecraftVersion.v1_21_2.atOrAbove()) {
|
||||||
|
args.add(int.class);
|
||||||
|
}
|
||||||
|
|
||||||
if (MinecraftVersion.FEATURE_PREVIEW_UPDATE.atOrAbove()) {
|
if (MinecraftVersion.FEATURE_PREVIEW_UPDATE.atOrAbove()) {
|
||||||
args.add(MinecraftReflection.getRemoteChatSessionDataClass());
|
args.add(MinecraftReflection.getRemoteChatSessionDataClass());
|
||||||
} else if (MinecraftVersion.WILD_UPDATE.atOrAbove()) {
|
} else if (MinecraftVersion.WILD_UPDATE.atOrAbove()) {
|
||||||
args.add(MinecraftReflection.getProfilePublicKeyDataClass());
|
args.add(MinecraftReflection.getProfilePublicKeyDataClass());
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor = MinecraftReflection.getPlayerInfoDataClass().getConstructor(args.toArray(new Class<?>[0]));
|
constructor = MinecraftReflection.getPlayerInfoDataClass().getConstructor(args.toArray(EMPTY_CLASS_ARRAY));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException("Cannot find PlayerInfoData constructor.", e);
|
throw new RuntimeException("Cannot find PlayerInfoData constructor.", e);
|
||||||
}
|
}
|
||||||
@ -242,30 +248,58 @@ public class PlayerInfoData {
|
|||||||
try {
|
try {
|
||||||
Object gameMode = EnumWrappers.getGameModeConverter().getGeneric(specific.gameMode);
|
Object gameMode = EnumWrappers.getGameModeConverter().getGeneric(specific.gameMode);
|
||||||
Object displayName = specific.displayName != null ? specific.displayName.handle : null;
|
Object displayName = specific.displayName != null ? specific.displayName.handle : null;
|
||||||
|
|
||||||
Object profile = specific.profile != null ? specific.profile.handle : null;
|
Object profile = specific.profile != null ? specific.profile.handle : null;
|
||||||
if (MinecraftVersion.FEATURE_PREVIEW_UPDATE.atOrAbove()) {
|
Object remoteChatSessionData = specific.remoteChatSessionData != null ? BukkitConverters.getWrappedRemoteChatSessionDataConverter().getGeneric(specific.remoteChatSessionData) : null;
|
||||||
return constructor.newInstance(
|
|
||||||
|
Object[] args;
|
||||||
|
|
||||||
|
if (MinecraftVersion.v1_21_2.atOrAbove()) {
|
||||||
|
args = new Object[] {
|
||||||
specific.profileId,
|
specific.profileId,
|
||||||
profile,
|
profile,
|
||||||
specific.listed,
|
specific.listed,
|
||||||
specific.latency,
|
specific.latency,
|
||||||
gameMode,
|
gameMode,
|
||||||
displayName,
|
displayName,
|
||||||
specific.remoteChatSessionData != null ? BukkitConverters.getWrappedRemoteChatSessionDataConverter().getGeneric(specific.remoteChatSessionData) : null
|
specific.listOrder,
|
||||||
);
|
remoteChatSessionData
|
||||||
|
};
|
||||||
|
} else if (MinecraftVersion.FEATURE_PREVIEW_UPDATE.atOrAbove()) {
|
||||||
|
args = new Object[] {
|
||||||
|
specific.profileId,
|
||||||
|
profile,
|
||||||
|
specific.listed,
|
||||||
|
specific.latency,
|
||||||
|
gameMode,
|
||||||
|
displayName,
|
||||||
|
remoteChatSessionData
|
||||||
|
};
|
||||||
} else if (MinecraftVersion.WILD_UPDATE.atOrAbove()) {
|
} else if (MinecraftVersion.WILD_UPDATE.atOrAbove()) {
|
||||||
return constructor.newInstance(
|
args = new Object[] {
|
||||||
profile,
|
profile,
|
||||||
specific.latency,
|
specific.latency,
|
||||||
gameMode,
|
gameMode,
|
||||||
displayName,
|
displayName,
|
||||||
specific.profileKeyData == null ? null : specific.profileKeyData.handle);
|
specific.profileKeyData == null ? null : specific.profileKeyData.handle
|
||||||
|
};
|
||||||
} else if (MinecraftVersion.CAVES_CLIFFS_1.atOrAbove()) {
|
} else if (MinecraftVersion.CAVES_CLIFFS_1.atOrAbove()) {
|
||||||
return constructor.newInstance(profile, specific.latency, gameMode, displayName);
|
args = new Object[] {
|
||||||
|
profile,
|
||||||
|
specific.latency,
|
||||||
|
gameMode,
|
||||||
|
displayName
|
||||||
|
};
|
||||||
} else {
|
} else {
|
||||||
return constructor.newInstance(null, profile, specific.latency, gameMode, displayName);
|
args = new Object[] {
|
||||||
|
null,
|
||||||
|
profile,
|
||||||
|
specific.latency,
|
||||||
|
gameMode,
|
||||||
|
displayName
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return constructor.newInstance(args);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException("Failed to construct PlayerInfoData.", e);
|
throw new RuntimeException("Failed to construct PlayerInfoData.", e);
|
||||||
}
|
}
|
||||||
|
@ -183,59 +183,80 @@ public class WrappedParticle<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static Object getRedstone(Object handle) {
|
private static Object getRedstone(Object handle) {
|
||||||
int r, g, b;
|
Color color;
|
||||||
float size;
|
float scale;
|
||||||
|
|
||||||
if (MinecraftVersion.FEATURE_PREVIEW_UPDATE.atOrAbove()) {
|
|
||||||
StructureModifier<Object> modifier = new StructureModifier<>(handle.getClass()).withTarget(handle);
|
StructureModifier<Object> modifier = new StructureModifier<>(handle.getClass()).withTarget(handle);
|
||||||
|
|
||||||
|
if (MinecraftVersion.v1_21_2.atOrAbove()) {
|
||||||
|
int rgb = (int) modifier.withType(int.class).read(0);
|
||||||
|
color = Color.fromRGB(rgb);
|
||||||
|
scale = (float) modifier.withType(float.class).read(0);
|
||||||
|
} else if (MinecraftVersion.FEATURE_PREVIEW_UPDATE.atOrAbove()) {
|
||||||
org.joml.Vector3f rgb = (org.joml.Vector3f) modifier.withType(org.joml.Vector3f.class).read(0);
|
org.joml.Vector3f rgb = (org.joml.Vector3f) modifier.withType(org.joml.Vector3f.class).read(0);
|
||||||
|
|
||||||
r = (int) (rgb.x() * 255);
|
int red = (int) (rgb.x() * 255);
|
||||||
g = (int) (rgb.y() * 255);
|
int green = (int) (rgb.y() * 255);
|
||||||
b = (int) (rgb.z() * 255);
|
int blue = (int) (rgb.z() * 255);
|
||||||
size = (float) modifier.withType(float.class).read(0);
|
|
||||||
|
color = Color.fromRGB(red, green, blue);
|
||||||
|
scale = (float) modifier.withType(float.class).read(0);
|
||||||
} else if (MinecraftVersion.CAVES_CLIFFS_1.atOrAbove()) {
|
} else if (MinecraftVersion.CAVES_CLIFFS_1.atOrAbove()) {
|
||||||
if (VECTOR_3FA == null) {
|
if (VECTOR_3FA == null) {
|
||||||
VECTOR_3FA = MinecraftReflection.getLibraryClass("com.mojang.math.Vector3fa");
|
VECTOR_3FA = MinecraftReflection.getLibraryClass("com.mojang.math.Vector3fa");
|
||||||
}
|
}
|
||||||
|
|
||||||
StructureModifier<Object> modifier = new StructureModifier<>(handle.getClass()).withTarget(handle);
|
|
||||||
|
|
||||||
Object rgb = modifier.withType(VECTOR_3FA).read(0);
|
Object rgb = modifier.withType(VECTOR_3FA).read(0);
|
||||||
StructureModifier<Object> rgbModifier = new StructureModifier<>(VECTOR_3FA).withTarget(rgb);
|
StructureModifier<Object> rgbModifier = new StructureModifier<>(VECTOR_3FA).withTarget(rgb);
|
||||||
|
|
||||||
r = (int) (rgbModifier.<Float>withType(float.class).read(0) * 255);
|
int red = (int) (rgbModifier.<Float>withType(float.class).read(0) * 255);
|
||||||
g = (int) (rgbModifier.<Float>withType(float.class).read(1) * 255);
|
int green = (int) (rgbModifier.<Float>withType(float.class).read(1) * 255);
|
||||||
b = (int) (rgbModifier.<Float>withType(float.class).read(2) * 255);
|
int blue = (int) (rgbModifier.<Float>withType(float.class).read(2) * 255);
|
||||||
size = (float) modifier.withType(float.class).read(0);
|
|
||||||
|
color = Color.fromRGB(red, green, blue);
|
||||||
|
scale = (float) modifier.withType(float.class).read(0);
|
||||||
} else {
|
} else {
|
||||||
StructureModifier<Float> modifier = new StructureModifier<>(handle.getClass()).withTarget(handle).withType(float.class);
|
StructureModifier<Float> floatModifier = modifier.withType(float.class);
|
||||||
r = (int) (modifier.read(0) * 255);
|
|
||||||
g = (int) (modifier.read(1) * 255);
|
int red = (int) (floatModifier.read(0) * 255);
|
||||||
b = (int) (modifier.read(2) * 255);
|
int green = (int) (floatModifier.read(1) * 255);
|
||||||
size = modifier.read(3);
|
int blue = (int) (floatModifier.read(2) * 255);
|
||||||
|
|
||||||
|
color = Color.fromRGB(red, green, blue);
|
||||||
|
scale = floatModifier.read(3);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Particle.DustOptions(Color.fromRGB(r, g, b), size);
|
return new Particle.DustOptions(color, scale);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Object getDustTransition(Object handle) {
|
private static Object getDustTransition(Object handle) {
|
||||||
int fromR, fromG, fromB, toR, toG, toB;
|
Color fromColor, toColor;
|
||||||
float size;
|
float scale;
|
||||||
|
|
||||||
if (MinecraftVersion.FEATURE_PREVIEW_UPDATE.atOrAbove()) {
|
if (MinecraftVersion.v1_21_2.atOrAbove()) {
|
||||||
|
StructureModifier<Object> modifier = new StructureModifier<>(handle.getClass()).withTarget(handle);
|
||||||
|
int fromRgb = (int) modifier.withType(int.class).read(0);
|
||||||
|
fromColor = Color.fromRGB(fromRgb);
|
||||||
|
|
||||||
|
int toRgb = (int) modifier.withType(int.class).read(1);
|
||||||
|
toColor = Color.fromRGB(toRgb);
|
||||||
|
|
||||||
|
scale = (float) modifier.withType(float.class).read(0);
|
||||||
|
} else if (MinecraftVersion.FEATURE_PREVIEW_UPDATE.atOrAbove()) {
|
||||||
StructureModifier<Object> modifier = new StructureModifier<>(handle.getClass()).withTarget(handle);
|
StructureModifier<Object> modifier = new StructureModifier<>(handle.getClass()).withTarget(handle);
|
||||||
org.joml.Vector3f toRGB = (org.joml.Vector3f) modifier.withType(org.joml.Vector3f.class).read(1);
|
org.joml.Vector3f toRGB = (org.joml.Vector3f) modifier.withType(org.joml.Vector3f.class).read(1);
|
||||||
org.joml.Vector3f fromRGB = (org.joml.Vector3f) modifier.withType(org.joml.Vector3f.class).read(0);
|
org.joml.Vector3f fromRGB = (org.joml.Vector3f) modifier.withType(org.joml.Vector3f.class).read(0);
|
||||||
size = (float) modifier.withType(float.class).read(0);
|
scale = (float) modifier.withType(float.class).read(0);
|
||||||
|
|
||||||
fromR = (int) (fromRGB.x() * 255);
|
int fromR = (int) (fromRGB.x() * 255);
|
||||||
fromG = (int) (fromRGB.y() * 255);
|
int fromG = (int) (fromRGB.y() * 255);
|
||||||
fromB = (int) (fromRGB.z() * 255);
|
int fromB = (int) (fromRGB.z() * 255);
|
||||||
|
fromColor = Color.fromRGB(fromR, fromG, fromB);
|
||||||
|
|
||||||
toR = (int) (toRGB.x() * 255);
|
int toR = (int) (toRGB.x() * 255);
|
||||||
toG = (int) (toRGB.y() * 255);
|
int toG = (int) (toRGB.y() * 255);
|
||||||
toB = (int) (toRGB.z() * 255);
|
int toB = (int) (toRGB.z() * 255);
|
||||||
|
toColor = Color.fromRGB(toR, toG, toB);
|
||||||
} else if (MinecraftVersion.CAVES_CLIFFS_1.atOrAbove()) {
|
} else if (MinecraftVersion.CAVES_CLIFFS_1.atOrAbove()) {
|
||||||
if (VECTOR_3FA == null) {
|
if (VECTOR_3FA == null) {
|
||||||
VECTOR_3FA = MinecraftReflection.getLibraryClass("com.mojang.math.Vector3fa");
|
VECTOR_3FA = MinecraftReflection.getLibraryClass("com.mojang.math.Vector3fa");
|
||||||
@ -245,37 +266,42 @@ public class WrappedParticle<T> {
|
|||||||
|
|
||||||
Object toRGB = modifier.withType(VECTOR_3FA).read(0);
|
Object toRGB = modifier.withType(VECTOR_3FA).read(0);
|
||||||
Object fromRGB = modifier.withType(VECTOR_3FA).read(1);
|
Object fromRGB = modifier.withType(VECTOR_3FA).read(1);
|
||||||
size = (float) modifier.withType(float.class).read(0);
|
scale = (float) modifier.withType(float.class).read(0);
|
||||||
StructureModifier<Object> rgbModifier = new StructureModifier<>(VECTOR_3FA).withTarget(fromRGB);
|
StructureModifier<Object> rgbModifier = new StructureModifier<>(VECTOR_3FA).withTarget(fromRGB);
|
||||||
StructureModifier<Object> rgbModifier2 = new StructureModifier<>(VECTOR_3FA).withTarget(toRGB);
|
StructureModifier<Object> rgbModifier2 = new StructureModifier<>(VECTOR_3FA).withTarget(toRGB);
|
||||||
|
|
||||||
fromR = (int) (rgbModifier.<Float>withType(float.class).read(0) * 255);
|
int fromR = (int) (rgbModifier.<Float>withType(float.class).read(0) * 255);
|
||||||
fromG = (int) (rgbModifier.<Float>withType(float.class).read(1) * 255);
|
int fromG = (int) (rgbModifier.<Float>withType(float.class).read(1) * 255);
|
||||||
fromB = (int) (rgbModifier.<Float>withType(float.class).read(2) * 255);
|
int fromB = (int) (rgbModifier.<Float>withType(float.class).read(2) * 255);
|
||||||
|
fromColor = Color.fromRGB(fromR, fromG, fromB);
|
||||||
|
|
||||||
toR = (int) (rgbModifier2.<Float>withType(float.class).read(0) * 255);
|
int toR = (int) (rgbModifier2.<Float>withType(float.class).read(0) * 255);
|
||||||
toG = (int) (rgbModifier2.<Float>withType(float.class).read(1) * 255);
|
int toG = (int) (rgbModifier2.<Float>withType(float.class).read(1) * 255);
|
||||||
toB = (int) (rgbModifier2.<Float>withType(float.class).read(2) * 255);
|
int toB = (int) (rgbModifier2.<Float>withType(float.class).read(2) * 255);
|
||||||
|
toColor = Color.fromRGB(toR, toG, toB);
|
||||||
} else {
|
} else {
|
||||||
StructureModifier<Float> modifier = new StructureModifier<>(handle.getClass()).withTarget(handle).withType(float.class);
|
StructureModifier<Float> modifier = new StructureModifier<>(handle.getClass()).withTarget(handle).withType(float.class);
|
||||||
toR = (int) (modifier.read(0) * 255);
|
int toR = (int) (modifier.read(0) * 255);
|
||||||
toG = (int) (modifier.read(1) * 255);
|
int toG = (int) (modifier.read(1) * 255);
|
||||||
toB = (int) (modifier.read(2) * 255);
|
int toB = (int) (modifier.read(2) * 255);
|
||||||
size = modifier.read(3);
|
toColor = Color.fromRGB(toR, toG, toB);
|
||||||
fromR = (int) (modifier.read(4) * 255);
|
|
||||||
fromG = (int) (modifier.read(5) * 255);
|
scale = modifier.read(3);
|
||||||
fromB = (int) (modifier.read(6) * 255);
|
|
||||||
|
int fromR = (int) (modifier.read(4) * 255);
|
||||||
|
int fromG = (int) (modifier.read(5) * 255);
|
||||||
|
int fromB = (int) (modifier.read(6) * 255);
|
||||||
|
fromColor = Color.fromRGB(fromR, fromG, fromB);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Particle.DustTransition(Color.fromRGB(fromR, fromG, fromB), Color.fromRGB(toR, toG, toB), size);
|
return new Particle.DustTransition(fromColor, toColor, scale);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static <T> WrappedParticle<T> create(Particle particle, T data) {
|
public static <T> WrappedParticle<T> create(Particle particle, T data) {
|
||||||
ensureMethods();
|
ensureMethods();
|
||||||
|
|
||||||
Object bukkitData = data;
|
Object bukkitData = data;
|
||||||
if (data instanceof WrappedBlockData) {
|
if (data instanceof WrappedBlockData blockData) {
|
||||||
WrappedBlockData blockData = (WrappedBlockData) data;
|
|
||||||
bukkitData = toCraftData.invoke(null, blockData.getHandle());
|
bukkitData = toCraftData.invoke(null, blockData.getHandle());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,7 +13,8 @@ import com.comphenix.protocol.utility.MinecraftReflectionTestUtil;
|
|||||||
import com.google.common.base.Preconditions;
|
import com.google.common.base.Preconditions;
|
||||||
import com.google.common.util.concurrent.MoreExecutors;
|
import com.google.common.util.concurrent.MoreExecutors;
|
||||||
import net.minecraft.SharedConstants;
|
import net.minecraft.SharedConstants;
|
||||||
import net.minecraft.commands.CommandDispatcher;
|
import net.minecraft.commands.CommandDispatcher.ServerType;
|
||||||
|
import net.minecraft.core.HolderLookup;
|
||||||
import net.minecraft.core.IRegistry;
|
import net.minecraft.core.IRegistry;
|
||||||
import net.minecraft.core.IRegistryCustom;
|
import net.minecraft.core.IRegistryCustom;
|
||||||
import net.minecraft.core.LayeredRegistryAccess;
|
import net.minecraft.core.LayeredRegistryAccess;
|
||||||
@ -24,14 +25,15 @@ import net.minecraft.resources.RegistryDataLoader;
|
|||||||
import net.minecraft.server.DataPackResources;
|
import net.minecraft.server.DataPackResources;
|
||||||
import net.minecraft.server.DispenserRegistry;
|
import net.minecraft.server.DispenserRegistry;
|
||||||
import net.minecraft.server.RegistryLayer;
|
import net.minecraft.server.RegistryLayer;
|
||||||
import net.minecraft.server.WorldLoader;
|
|
||||||
import net.minecraft.server.dedicated.DedicatedServer;
|
import net.minecraft.server.dedicated.DedicatedServer;
|
||||||
import net.minecraft.server.level.WorldServer;
|
import net.minecraft.server.level.WorldServer;
|
||||||
import net.minecraft.server.packs.EnumResourcePackType;
|
import net.minecraft.server.packs.EnumResourcePackType;
|
||||||
import net.minecraft.server.packs.repository.ResourcePackLoader;
|
import net.minecraft.server.packs.repository.ResourcePackLoader;
|
||||||
import net.minecraft.server.packs.repository.ResourcePackRepository;
|
import net.minecraft.server.packs.repository.ResourcePackRepository;
|
||||||
import net.minecraft.server.packs.repository.ResourcePackSourceVanilla;
|
import net.minecraft.server.packs.repository.ResourcePackSourceVanilla;
|
||||||
|
import net.minecraft.server.packs.resources.IResourceManager;
|
||||||
import net.minecraft.server.packs.resources.ResourceManager;
|
import net.minecraft.server.packs.resources.ResourceManager;
|
||||||
|
import net.minecraft.tags.TagDataPack;
|
||||||
import net.minecraft.tags.TagKey;
|
import net.minecraft.tags.TagKey;
|
||||||
import net.minecraft.world.entity.EntityTypes;
|
import net.minecraft.world.entity.EntityTypes;
|
||||||
import net.minecraft.world.flag.FeatureFlags;
|
import net.minecraft.world.flag.FeatureFlags;
|
||||||
@ -45,18 +47,18 @@ import org.bukkit.Keyed;
|
|||||||
import org.bukkit.NamespacedKey;
|
import org.bukkit.NamespacedKey;
|
||||||
import org.bukkit.Registry;
|
import org.bukkit.Registry;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.craftbukkit.v1_21_R1.CraftLootTable;
|
import org.bukkit.craftbukkit.v1_21_R2.CraftLootTable;
|
||||||
import org.bukkit.craftbukkit.v1_21_R1.CraftRegistry;
|
import org.bukkit.craftbukkit.v1_21_R2.CraftRegistry;
|
||||||
import org.bukkit.craftbukkit.v1_21_R1.CraftServer;
|
import org.bukkit.craftbukkit.v1_21_R2.CraftServer;
|
||||||
import org.bukkit.craftbukkit.v1_21_R1.CraftWorld;
|
import org.bukkit.craftbukkit.v1_21_R2.CraftWorld;
|
||||||
import org.bukkit.craftbukkit.v1_21_R1.inventory.CraftItemFactory;
|
import org.bukkit.craftbukkit.v1_21_R2.inventory.CraftItemFactory;
|
||||||
import org.bukkit.craftbukkit.v1_21_R1.tag.CraftBlockTag;
|
import org.bukkit.craftbukkit.v1_21_R2.tag.CraftBlockTag;
|
||||||
import org.bukkit.craftbukkit.v1_21_R1.tag.CraftEntityTag;
|
import org.bukkit.craftbukkit.v1_21_R2.tag.CraftEntityTag;
|
||||||
import org.bukkit.craftbukkit.v1_21_R1.tag.CraftFluidTag;
|
import org.bukkit.craftbukkit.v1_21_R2.tag.CraftFluidTag;
|
||||||
import org.bukkit.craftbukkit.v1_21_R1.tag.CraftItemTag;
|
import org.bukkit.craftbukkit.v1_21_R2.tag.CraftItemTag;
|
||||||
import org.bukkit.craftbukkit.v1_21_R1.util.CraftMagicNumbers;
|
import org.bukkit.craftbukkit.v1_21_R2.util.CraftMagicNumbers;
|
||||||
import org.bukkit.craftbukkit.v1_21_R1.util.CraftNamespacedKey;
|
import org.bukkit.craftbukkit.v1_21_R2.util.CraftNamespacedKey;
|
||||||
import org.bukkit.craftbukkit.v1_21_R1.util.Versioning;
|
import org.bukkit.craftbukkit.v1_21_R2.util.Versioning;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.spigotmc.SpigotWorldConfig;
|
import org.spigotmc.SpigotWorldConfig;
|
||||||
|
|
||||||
@ -110,30 +112,19 @@ public class BukkitInitialization {
|
|||||||
|
|
||||||
instance.setPackage();
|
instance.setPackage();
|
||||||
|
|
||||||
// Minecraft Data Init
|
SharedConstants.a();
|
||||||
SharedConstants.a(); // .tryDetectVersion()
|
DispenserRegistry.a();
|
||||||
DispenserRegistry.a(); // .bootStrap()
|
ResourcePackRepository resourcePackRepository = ResourcePackSourceVanilla.c();
|
||||||
|
resourcePackRepository.a();
|
||||||
ResourcePackRepository resourcePackRepository = ResourcePackSourceVanilla.c(); // .createVanillaTrustedRepository()
|
IResourceManager resourceManager = new ResourceManager(EnumResourcePackType.b, resourcePackRepository.d().stream().map(ResourcePackLoader::f).collect(Collectors.toList()));
|
||||||
resourcePackRepository.a(); // .reload()
|
LayeredRegistryAccess<RegistryLayer> layeredregistryaccess = RegistryLayer.a();
|
||||||
|
List<IRegistry.a<?>> list = TagDataPack.a(resourceManager, layeredregistryaccess.a(RegistryLayer.a));
|
||||||
ResourceManager resourceManager = new ResourceManager(
|
IRegistryCustom.Dimension frozen1 = layeredregistryaccess.b(RegistryLayer.b);
|
||||||
EnumResourcePackType.b /* SERVER_DATA */,
|
List<HolderLookup.b<?>> list1 = TagDataPack.a(frozen1, list);
|
||||||
resourcePackRepository.c() /* getAvailablePacks() */ .stream().map(ResourcePackLoader::f /* openFull() */).collect(Collectors.toList()));
|
IRegistryCustom.Dimension frozen2 = RegistryDataLoader.a(resourceManager, list1, RegistryDataLoader.a);
|
||||||
LayeredRegistryAccess<RegistryLayer> layeredRegistryAccess = RegistryLayer.a(); // .createRegistryAccess()
|
LayeredRegistryAccess<RegistryLayer> layers = layeredregistryaccess.a(RegistryLayer.b, frozen2);
|
||||||
layeredRegistryAccess = WorldLoader.b(resourceManager, layeredRegistryAccess, RegistryLayer.b /* WORLDGEN */, RegistryDataLoader.a /* WORLDGEN_REGISTRIES */); // .loadAndReplaceLayer()
|
IRegistryCustom.Dimension registryCustom = layers.a().e();
|
||||||
IRegistryCustom.Dimension registryCustom = layeredRegistryAccess.a().d(); // .compositeAccess().freeze()
|
DataPackResources dataPackResources = DataPackResources.a(resourceManager, layers, list, FeatureFlags.f.a(), ServerType.b, 0, MoreExecutors.directExecutor(), MoreExecutors.directExecutor()).join();
|
||||||
// IRegistryCustom.Dimension registryCustom = layeredRegistryAccess.a().c(); // .compositeAccess().freeze()
|
|
||||||
|
|
||||||
DataPackResources dataPackResources = DataPackResources.a(
|
|
||||||
resourceManager,
|
|
||||||
layeredRegistryAccess,
|
|
||||||
FeatureFlags.d.a() /* REGISTRY.allFlags() */,
|
|
||||||
CommandDispatcher.ServerType.b /* DEDICATED */,
|
|
||||||
0,
|
|
||||||
MoreExecutors.directExecutor(),
|
|
||||||
MoreExecutors.directExecutor()
|
|
||||||
).join();
|
|
||||||
dataPackResources.g();
|
dataPackResources.g();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -149,7 +140,7 @@ public class BukkitInitialization {
|
|||||||
CraftServer mockedServer = mock(CraftServer.class);
|
CraftServer mockedServer = mock(CraftServer.class);
|
||||||
DedicatedServer mockedGameServer = mock(DedicatedServer.class);
|
DedicatedServer mockedGameServer = mock(DedicatedServer.class);
|
||||||
|
|
||||||
when(mockedGameServer.bc()/*registryAccess*/).thenReturn(registryCustom);
|
when(mockedGameServer.ba()/*registryAccess*/).thenReturn(registryCustom);
|
||||||
|
|
||||||
when(mockedServer.getLogger()).thenReturn(java.util.logging.Logger.getLogger("Minecraft"));
|
when(mockedServer.getLogger()).thenReturn(java.util.logging.Logger.getLogger("Minecraft"));
|
||||||
when(mockedServer.getName()).thenReturn("Mock Server");
|
when(mockedServer.getName()).thenReturn("Mock Server");
|
||||||
@ -185,28 +176,28 @@ public class BukkitInitialization {
|
|||||||
case org.bukkit.Tag.REGISTRY_BLOCKS -> {
|
case org.bukkit.Tag.REGISTRY_BLOCKS -> {
|
||||||
Preconditions.checkArgument(clazz == org.bukkit.Material.class, "Block namespace must have block type");
|
Preconditions.checkArgument(clazz == org.bukkit.Material.class, "Block namespace must have block type");
|
||||||
TagKey<Block> blockTagKey = TagKey.a(Registries.f, key);
|
TagKey<Block> blockTagKey = TagKey.a(Registries.f, key);
|
||||||
if (BuiltInRegistries.e.b(blockTagKey).isPresent()) {
|
if (BuiltInRegistries.e.a(blockTagKey).isPresent()) {
|
||||||
return new CraftBlockTag(BuiltInRegistries.e, blockTagKey);
|
return new CraftBlockTag(BuiltInRegistries.e, blockTagKey);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case org.bukkit.Tag.REGISTRY_ITEMS -> {
|
case org.bukkit.Tag.REGISTRY_ITEMS -> {
|
||||||
Preconditions.checkArgument(clazz == org.bukkit.Material.class, "Item namespace must have item type");
|
Preconditions.checkArgument(clazz == org.bukkit.Material.class, "Item namespace must have item type");
|
||||||
TagKey<Item> itemTagKey = TagKey.a(Registries.K, key);
|
TagKey<Item> itemTagKey = TagKey.a(Registries.K, key);
|
||||||
if (BuiltInRegistries.g.b(itemTagKey).isPresent()) {
|
if (BuiltInRegistries.g.a(itemTagKey).isPresent()) {
|
||||||
return new CraftItemTag(BuiltInRegistries.g, itemTagKey);
|
return new CraftItemTag(BuiltInRegistries.g, itemTagKey);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case org.bukkit.Tag.REGISTRY_FLUIDS -> {
|
case org.bukkit.Tag.REGISTRY_FLUIDS -> {
|
||||||
Preconditions.checkArgument(clazz == org.bukkit.Fluid.class, "Fluid namespace must have fluid type");
|
Preconditions.checkArgument(clazz == org.bukkit.Fluid.class, "Fluid namespace must have fluid type");
|
||||||
TagKey<FluidType> fluidTagKey = TagKey.a(Registries.D, key);
|
TagKey<FluidType> fluidTagKey = TagKey.a(Registries.D, key);
|
||||||
if (BuiltInRegistries.c.b(fluidTagKey).isPresent()) {
|
if (BuiltInRegistries.c.a(fluidTagKey).isPresent()) {
|
||||||
return new CraftFluidTag(BuiltInRegistries.c, fluidTagKey);
|
return new CraftFluidTag(BuiltInRegistries.c, fluidTagKey);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case org.bukkit.Tag.REGISTRY_ENTITY_TYPES -> {
|
case org.bukkit.Tag.REGISTRY_ENTITY_TYPES -> {
|
||||||
Preconditions.checkArgument(clazz == org.bukkit.entity.EntityType.class, "Entity type namespace must have entity type");
|
Preconditions.checkArgument(clazz == org.bukkit.entity.EntityType.class, "Entity type namespace must have entity type");
|
||||||
TagKey<EntityTypes<?>> entityTagKey = TagKey.a(Registries.z, key);
|
TagKey<EntityTypes<?>> entityTagKey = TagKey.a(Registries.z, key);
|
||||||
if (BuiltInRegistries.f.b(entityTagKey).isPresent()) {
|
if (BuiltInRegistries.f.a(entityTagKey).isPresent()) {
|
||||||
return new CraftEntityTag(BuiltInRegistries.f, entityTagKey);
|
return new CraftEntityTag(BuiltInRegistries.f, entityTagKey);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -182,13 +182,13 @@ public class PacketContainerTest {
|
|||||||
this.testPrimitive(updateTime.getLongs(), 0, (long) 0, (long) 1);
|
this.testPrimitive(updateTime.getLongs(), 0, (long) 0, (long) 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
// @Test // TODO: Explosion no longer contains floats
|
||||||
public void testGetFloat() {
|
public void testGetFloat() {
|
||||||
PacketContainer explosion = new PacketContainer(PacketType.Play.Server.EXPLOSION);
|
PacketContainer explosion = new PacketContainer(PacketType.Play.Server.EXPLOSION);
|
||||||
this.testPrimitive(explosion.getFloat(), 0, (float) 0, (float) 0.8);
|
this.testPrimitive(explosion.getFloat(), 0, (float) 0, (float) 0.8);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
// @Test // TODO: Explosion no longer contains doubles
|
||||||
public void testGetDoubles() {
|
public void testGetDoubles() {
|
||||||
PacketContainer explosion = new PacketContainer(PacketType.Play.Server.EXPLOSION);
|
PacketContainer explosion = new PacketContainer(PacketType.Play.Server.EXPLOSION);
|
||||||
this.testPrimitive(explosion.getDoubles(), 0, (double) 0, 0.8);
|
this.testPrimitive(explosion.getDoubles(), 0, (double) 0, 0.8);
|
||||||
@ -318,7 +318,7 @@ public class PacketContainerTest {
|
|||||||
assertEquals(packet.getEntityTypeModifier().read(0), EntityType.ARROW);
|
assertEquals(packet.getEntityTypeModifier().read(0), EntityType.ARROW);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
// @Test // TODO: explosion no longer contains block position list
|
||||||
public void testGetPositionCollectionModifier() {
|
public void testGetPositionCollectionModifier() {
|
||||||
PacketContainer explosionPacket = new PacketContainer(PacketType.Play.Server.EXPLOSION);
|
PacketContainer explosionPacket = new PacketContainer(PacketType.Play.Server.EXPLOSION);
|
||||||
StructureModifier<List<BlockPosition>> positionAccessor = explosionPacket.getBlockPositionCollectionModifier();
|
StructureModifier<List<BlockPosition>> positionAccessor = explosionPacket.getBlockPositionCollectionModifier();
|
||||||
|
@ -5,19 +5,22 @@ import java.lang.reflect.Field;
|
|||||||
import com.comphenix.protocol.BukkitInitialization;
|
import com.comphenix.protocol.BukkitInitialization;
|
||||||
import com.comphenix.protocol.reflect.FuzzyReflection;
|
import com.comphenix.protocol.reflect.FuzzyReflection;
|
||||||
import com.comphenix.protocol.reflect.fuzzy.FuzzyFieldContract;
|
import com.comphenix.protocol.reflect.fuzzy.FuzzyFieldContract;
|
||||||
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
|
|
||||||
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
|
|
||||||
import net.minecraft.server.level.ChunkProviderServer;
|
import net.minecraft.server.level.ChunkProviderServer;
|
||||||
import net.minecraft.server.level.PlayerChunkMap;
|
import net.minecraft.server.level.PlayerChunkMap;
|
||||||
import net.minecraft.server.level.PlayerChunkMap.EntityTracker;
|
import net.minecraft.server.level.PlayerChunkMap.EntityTracker;
|
||||||
import net.minecraft.server.level.WorldServer;
|
import net.minecraft.server.level.WorldServer;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import org.bukkit.craftbukkit.v1_21_R1.CraftWorld;
|
import org.bukkit.craftbukkit.v1_21_R2.CraftWorld;
|
||||||
import org.bukkit.craftbukkit.v1_21_R1.entity.CraftEntity;
|
import org.bukkit.craftbukkit.v1_21_R2.entity.CraftEntity;
|
||||||
import org.junit.jupiter.api.BeforeAll;
|
import org.junit.jupiter.api.BeforeAll;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
|
||||||
|
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
|
||||||
|
|
||||||
import static com.comphenix.protocol.utility.TestUtils.setFinalField;
|
import static com.comphenix.protocol.utility.TestUtils.setFinalField;
|
||||||
|
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
@ -35,7 +38,7 @@ public class EntityUtilitiesTest {
|
|||||||
when(bukkit.getHandle()).thenReturn(world);
|
when(bukkit.getHandle()).thenReturn(world);
|
||||||
|
|
||||||
ChunkProviderServer provider = mock(ChunkProviderServer.class);
|
ChunkProviderServer provider = mock(ChunkProviderServer.class);
|
||||||
when(world.l()).thenReturn(provider);
|
when(world.m()).thenReturn(provider);
|
||||||
|
|
||||||
PlayerChunkMap chunkMap = mock(PlayerChunkMap.class);
|
PlayerChunkMap chunkMap = mock(PlayerChunkMap.class);
|
||||||
Field chunkMapField = FuzzyReflection.fromClass(ChunkProviderServer.class, true)
|
Field chunkMapField = FuzzyReflection.fromClass(ChunkProviderServer.class, true)
|
||||||
|
@ -13,7 +13,7 @@ import net.minecraft.world.level.ChunkCoordIntPair;
|
|||||||
import net.minecraft.world.level.block.state.IBlockData;
|
import net.minecraft.world.level.block.state.IBlockData;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.craftbukkit.v1_21_R1.inventory.CraftItemStack;
|
import org.bukkit.craftbukkit.v1_21_R2.inventory.CraftItemStack;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
@ -3,7 +3,7 @@ package com.comphenix.protocol.utility;
|
|||||||
public class MinecraftReflectionTestUtil {
|
public class MinecraftReflectionTestUtil {
|
||||||
|
|
||||||
public static final String RELEASE_TARGET = "1.20.6";
|
public static final String RELEASE_TARGET = "1.20.6";
|
||||||
public static final String PACKAGE_VERSION = "v1_21_R1";
|
public static final String PACKAGE_VERSION = "v1_21_R2";
|
||||||
public static final String NMS = "net.minecraft";
|
public static final String NMS = "net.minecraft";
|
||||||
public static final String OBC = "org.bukkit.craftbukkit." + PACKAGE_VERSION;
|
public static final String OBC = "org.bukkit.craftbukkit." + PACKAGE_VERSION;
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ class MinecraftVersionTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testCurrent() {
|
void testCurrent() {
|
||||||
assertEquals(MinecraftVersion.v1_21_0, MinecraftVersion.getCurrentVersion());
|
assertEquals(MinecraftVersion.v1_21_2, MinecraftVersion.getCurrentVersion());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
package com.comphenix.protocol.wrappers;
|
package com.comphenix.protocol.wrappers;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
||||||
|
|
||||||
import com.comphenix.protocol.BukkitInitialization;
|
import com.comphenix.protocol.BukkitInitialization;
|
||||||
|
|
||||||
import org.junit.jupiter.api.BeforeAll;
|
import org.junit.jupiter.api.BeforeAll;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
public class ChunkCoordIntPairTest {
|
public class ChunkCoordIntPairTest {
|
||||||
|
|
||||||
@BeforeAll
|
@BeforeAll
|
||||||
@ -25,7 +26,7 @@ public class ChunkCoordIntPairTest {
|
|||||||
(net.minecraft.world.level.ChunkCoordIntPair) ChunkCoordIntPair.getConverter().
|
(net.minecraft.world.level.ChunkCoordIntPair) ChunkCoordIntPair.getConverter().
|
||||||
getGeneric(specific);
|
getGeneric(specific);
|
||||||
|
|
||||||
assertEquals(1, roundtrip.e);
|
assertEquals(1, roundtrip.h);
|
||||||
assertEquals(2, roundtrip.f);
|
assertEquals(2, roundtrip.i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -51,7 +51,7 @@ public class WrappedAttributeTest {
|
|||||||
|
|
||||||
// Create attribute
|
// Create attribute
|
||||||
this.attribute = WrappedAttribute.newBuilder().
|
this.attribute = WrappedAttribute.newBuilder().
|
||||||
attributeKey("generic.attackDamage").
|
attributeKey("attack_damage").
|
||||||
baseValue(2).
|
baseValue(2).
|
||||||
packet(new PacketContainer(PacketType.Play.Server.UPDATE_ATTRIBUTES)).
|
packet(new PacketContainer(PacketType.Play.Server.UPDATE_ATTRIBUTES)).
|
||||||
modifiers(Lists.newArrayList(this.constantModifier, this.doubleModifier)).
|
modifiers(Lists.newArrayList(this.constantModifier, this.doubleModifier)).
|
||||||
|
@ -19,9 +19,9 @@ import net.minecraft.world.level.block.state.IBlockData;
|
|||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.BlockFace;
|
import org.bukkit.block.BlockFace;
|
||||||
import org.bukkit.block.data.type.GlassPane;
|
import org.bukkit.block.data.type.GlassPane;
|
||||||
import org.bukkit.craftbukkit.v1_21_R1.block.data.CraftBlockData;
|
import org.bukkit.craftbukkit.v1_21_R2.block.data.CraftBlockData;
|
||||||
import org.bukkit.craftbukkit.v1_21_R1.block.impl.CraftStainedGlassPane;
|
import org.bukkit.craftbukkit.v1_21_R2.block.impl.CraftStainedGlassPane;
|
||||||
import org.bukkit.craftbukkit.v1_21_R1.util.CraftMagicNumbers;
|
import org.bukkit.craftbukkit.v1_21_R2.util.CraftMagicNumbers;
|
||||||
import org.junit.jupiter.api.BeforeAll;
|
import org.junit.jupiter.api.BeforeAll;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
@ -56,7 +56,7 @@ public class WrappedBlockDataTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testDataCreation() {
|
public void testDataCreation() {
|
||||||
IBlockData nmsData = CraftMagicNumbers.getBlock(Material.CYAN_STAINED_GLASS_PANE).o();
|
IBlockData nmsData = CraftMagicNumbers.getBlock(Material.CYAN_STAINED_GLASS_PANE).m();
|
||||||
GlassPane data = (GlassPane) CraftBlockData.fromData(nmsData);
|
GlassPane data = (GlassPane) CraftBlockData.fromData(nmsData);
|
||||||
data.setFace(BlockFace.EAST, true);
|
data.setFace(BlockFace.EAST, true);
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ import com.comphenix.protocol.wrappers.nbt.NbtFactory;
|
|||||||
import net.minecraft.world.entity.projectile.EntityEgg;
|
import net.minecraft.world.entity.projectile.EntityEgg;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.Particle;
|
import org.bukkit.Particle;
|
||||||
import org.bukkit.craftbukkit.v1_21_R1.entity.CraftEgg;
|
import org.bukkit.craftbukkit.v1_21_R2.entity.CraftEgg;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.junit.jupiter.api.BeforeAll;
|
import org.junit.jupiter.api.BeforeAll;
|
||||||
@ -46,7 +46,7 @@ public class WrappedDataWatcherTest {
|
|||||||
public static void prepare() {
|
public static void prepare() {
|
||||||
BukkitInitialization.initializeAll();
|
BukkitInitialization.initializeAll();
|
||||||
|
|
||||||
EntityEgg nmsEgg = new EntityEgg(null, 0, 0, 0);
|
EntityEgg nmsEgg = new EntityEgg(null, 0, 0, 0, net.minecraft.world.item.ItemStack.j);
|
||||||
mockEntity = new CraftEgg(null, nmsEgg);
|
mockEntity = new CraftEgg(null, nmsEgg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,8 +10,8 @@ import net.minecraft.network.protocol.game.PacketPlayOutOpenBook;
|
|||||||
import net.minecraft.network.protocol.game.PacketPlayOutSetSlot;
|
import net.minecraft.network.protocol.game.PacketPlayOutSetSlot;
|
||||||
import net.minecraft.world.EnumHand;
|
import net.minecraft.world.EnumHand;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.craftbukkit.v1_21_R1.CraftRegistry;
|
import org.bukkit.craftbukkit.v1_21_R2.CraftRegistry;
|
||||||
import org.bukkit.craftbukkit.v1_21_R1.inventory.CraftItemStack;
|
import org.bukkit.craftbukkit.v1_21_R2.inventory.CraftItemStack;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.junit.jupiter.api.BeforeAll;
|
import org.junit.jupiter.api.BeforeAll;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
Loading…
Reference in New Issue
Block a user