package com.w67clement.mineapi.enums;
import com.w67clement.mineapi.block.PacketBlockBreakAnimation;
import com.w67clement.mineapi.entity.player.ClientCommand;
import com.w67clement.mineapi.inventory.packets.WindowItems;
import com.w67clement.mineapi.inventory.packets.WindowOpen;
import com.w67clement.mineapi.message.PacketChat;
import com.w67clement.mineapi.nms.NmsPacket;
import com.w67clement.mineapi.packets.handshake.PacketHandshake;
import com.w67clement.mineapi.packets.play.out.PacketUpdateSign;
import com.w67clement.mineapi.tab.TabTitle;
import com.w67clement.mineapi.world.PacketExplosion;
import static com.w67clement.mineapi.enums.MinecraftVersion.*;
public enum PacketList
{
ALL("ALL", "ALL", null),
// Packet play out
PacketPlayOutAbilities("PacketPlayOutAbilities", "PlayerAbilitiesMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutAnimation("PacketPlayOutAnimation", "AnimateEntityMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutAttachEntity("PacketPlayOutAttachEntity", "AttachEntityMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutBed("PacketPlayOutBed", "", PacketType.PACKETPLAYOUT),
PacketPlayOutBlockAction("PacketPlayOutBlockAction", "BlockActionMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutBlockBreakAnimation("PacketPlayOutBlockBreakAnimation", "", PacketType.PACKETPLAYOUT, PacketBlockBreakAnimation.class),
PacketPlayOutBlockChange("PacketPlayOutBlockChange", "BlockChangeMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutBoss("PacketPlayOutBoss", "", PacketType.PACKETPLAYOUT, v1_9_R1),
PacketPlayOutCamera("PacketPlayOutCamera", "CameraMessage", PacketType.PACKETPLAYOUT, v1_8_R1),
PacketPlayOutChat("PacketPlayOutChat", "ChatMessage", PacketType.PACKETPLAYOUT, PacketChat.class),
PacketPlayOutCloseWindow("PacketPlayOutCloseWindow", "CloseWindowMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutCollect("PacketPlayOutCollect", "CollectItemMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutCombatEvent("PacketPlayOutCombatEvent", "CombatEventMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutCustomPayload("PacketPlayOutCustomPayload", "PluginMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutCustomSoundEffect("PacketPlayOutCustomSoundEffect", "", PacketType.PACKETPLAYOUT, v1_9_R1),
PacketPlayOutEntity("PacketPlayOutEntity", "", PacketType.PACKETPLAYOUT),
PacketPlayOutEntityDestroy("PacketPlayOutEntityDestroy", "DestroyEntitiesMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutEntityEffect("PacketPlayOutEntityEffect", "EntityEffectMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutEntityEquipment("PacketPlayOutEntityEquipment", "EntityEquipmentMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutEntityHeadRotation("PacketPlayOutEntityHeadRotation", "EntityHeadRotationMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutEntityLook("PacketPlayOutEntityLook", "", PacketType.PACKETPLAYOUT),
PacketPlayOutEntityMetadata("PacketPlayOutEntityMetadata", "EntityMetadataMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutEntityStatus("PacketPlayOutEntityStatus", "EntityStatusMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutEntityTeleport("PacketPlayOutEntityTeleport", "EntityTeleportMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutEntityVelocity("PacketPlayOutEntityVelocity", "EntityVelocityMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutExperience("PacketPlayOutExperience", "ExperienceMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutExplosion("PacketPlayOutExplosion", "ExplosionMessage", PacketType.PACKETPLAYOUT, PacketExplosion.class),
PacketPlayOutGameStateChange("PacketPlayOutGameStateChange", "StateChangeMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutHeldItemSlot("PacketPlayOutHeldItemSlot", "HeldItemMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutKeepAlive("PacketPlayOutKeepAlive", "PingMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutKickDisconnect("PacketPlayOutKickDisconnect", "KickMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutLogin("PacketPlayOutLogin", "JoinGameMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutMap("PacketPlayOutMap", "MapDataMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutMapChunk("PacketPlayOutMapChunk", "ChunkDataMessage", PacketType.PACKETPLAYOUT),
@Deprecated PacketPlayOutMapChunkBulk("PacketPlayOutMapChunkBulk", "ChunkBulkMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutMount("PacketPlayOutMount", "", PacketType.PACKETPLAYOUT, v1_9_R1),
PacketPlayOutMultiBlockChange("PacketPlayOutMultiBlockChange", "MultiBlockChangeMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutNamedEntitySpawn("PacketPlayOutNamedEntitySpawn", "SpawnPlayerMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutNamedSoundEffect("PacketPlayOutNamedSoundEffect", "PlaySoundMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutOpenSignEditor("PacketPlayOutOpenSignEditor", "SignEditorMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutOpenWindow("PacketPlayOutOpenWindow", "OpenWindowMessage", PacketType.PACKETPLAYOUT, WindowOpen.class),
PacketPlayOutPlayerInfo("PacketPlayOutPlayerInfo", "UserListItemMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutPlayerListHeaderFooter("PacketPlayOutPlayerListHeaderFooter", "UserListHeaderFooterMessage", PacketType.PACKETPLAYOUT, MinecraftVersion.v1_8_R1, TabTitle.class),
PacketPlayOutPosition("PacketPlayOutPosition", "", PacketType.PACKETPLAYOUT),
PacketPlayOutRelEntityMove("PacketPlayOutRelEntityMove", "RelativeEntityPositionMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutRelEntityMoveLook("PacketPlayOutRelEntityMoveLook", "RelativeEntityPositionRotationMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutRemoveEntityEffect("PacketPlayOutRemoveEntityEffect", "EntityRemoveEffectMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutResourcePackSend("PacketPlayOutResourcePackSend", "ResourcePackSendMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutRespawn("PacketPlayOutRespawn", "RespawnMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutScoreboardDisplayObjective("PacketPlayOutScoreboardDisplayObjective", "", PacketType.PACKETPLAYOUT),
PacketPlayOutScoreboardObjective("PacketPlayOutScoreboardObjective", "", PacketType.PACKETPLAYOUT),
PacketPlayOutScoreboardScore("PacketPlayOutScoreboardScore", "", PacketType.PACKETPLAYOUT),
PacketPlayOutScoreboardTeam("PacketPlayOutScoreboardTeam", "", PacketType.PACKETPLAYOUT),
PacketPlayOutServerDifficulty("PacketPlayOutServerDifficulty", "ServerDifficultyMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutSetCompression("PacketPlayOutSetCompression", "SetCompressionMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutSetCooldown("PacketPlayOutSetCooldown", "", PacketType.PACKETPLAYOUT, v1_9_R1),
PacketPlayOutSetSlot("PacketPlayOutSetSlot", "SetWindowSlotMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutSpawnEntity("PacketPlayOutSpawnEntity", "SpawnObjectMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutSpawnEntityExperienceOrb("PacketPlayOutSpawnEntityExperienceOrb", "SpawnXpOrbMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutSpawnEntityLiving("PacketPlayOutSpawnEntityLiving", "SpawnMobMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutSpawnEntityPainting("PacketPlayOutSpawnEntityPainting", "SpawnPaintingMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutSpawnEntityWeather("PacketPlayOutSpawnEntityWeather", "SpawnLightningStrikeMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutSpawnPosition("PacketPlayOutSpawnPosition", "SpawnPositionMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutStatistic("PacketPlayOutStatistic", "StatisticMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutTabComplete("PacketPlayOutTabComplete", "TabCompleteResponseMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutTileEntityData("PacketPlayOutTileEntityData", "UpdateBlockEntityMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutTitle("PacketPlayoutTitle", "TitleMessage", PacketType.PACKETPLAYOUT, MinecraftVersion.v1_8_R1),
PacketPlayOutTransaction("PacketPlayOutTransaction", "TransactionMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutUnloadChunk("PacketPlayOutUnloadChunk", "", PacketType.PACKETPLAYOUT, v1_9_R1),
PacketPlayOutUpdateAttributes("PacketPlayOutUpdateAttributes", "", PacketType.PACKETPLAYOUT),
PacketPlayOutUpdateEntityNBT("PacketPlayOutUpdateEntityNBT", "UpdateEntityNBTMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutUpdateHealth("PacketPlayOutUpdateHealth", "HealthMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutUpdateSign("PacketPlayOutUpdateSign", "UpdateSignMessage", PacketType.PACKETPLAYOUT, PacketUpdateSign.class),
PacketPlayOutUpdateTime("PacketPlayOutUpdateTime", "TimeMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutVehicleMove("PacketPlayOutVehicleMove", "", PacketType.PACKETPLAYOUT, v1_9_R1),
PacketPlayOutWindowData("PacketPlayOutWindowData", "WindowPropertyMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutWindowItems("PacketPlayOutWindowItems", "SetWindowContentsMessage", PacketType.PACKETPLAYOUT, WindowItems.class),
PacketPlayOutWorldBorder("PacketPlayOutWorldBorder", "WorldBorderMessage", PacketType.PACKETPLAYOUT, v1_8_R1),
PacketPlayOutWorldEvent("PacketPlayOutWorldEvent", "PlayEffectMessage", PacketType.PACKETPLAYOUT),
PacketPlayOutWorldParticles("PacketPlayOutWorldParticles", "PlayParticleMessage", PacketType.PACKETPLAYOUT),
// Packet play in
PacketPlayInAbilities("PacketPlayInAbilities", "PlayerAbilitiesMessage", PacketType.PACKETPLAYIN),
PacketPlayInArmAnimation("PacketPlayInArmAnimation", "PlayerSwingArmMessage", PacketType.PACKETPLAYIN),
PacketPlayInBlockDig("PacketPlayInBlockDig", "DiggingMessage", PacketType.PACKETPLAYIN),
PacketPlayInBlockPlace("PacketPlayInBlockPlace", "BlockPlacementMessage", PacketType.PACKETPLAYIN),
PacketPlayInBoatMove("PacketPlayInBoatMove", "", PacketType.PACKETPLAYIN, v1_9_R1),
PacketPlayInChat("PacketPlayInChat", "IncomingChatMessage", PacketType.PACKETPLAYIN, com.w67clement.mineapi.packets.play.in.PacketPlayInChat.class),
PacketPlayInClientCommand("PacketPlayInClientCommand", "ClientStatusMessage", PacketType.PACKETPLAYIN, ClientCommand.class),
PacketPlayInCloseWindow("PacketPlayInCloseWindow", "CloseWindowMessage", PacketType.PACKETPLAYIN),
PacketPlayInCustomPayload("PacketPlayInCustomPayload", "PluginMessage", PacketType.PACKETPLAYIN),
PacketPlayInEnchantItem("PacketPlayInEnchantItem", "EnchantItemMessage", PacketType.PACKETPLAYIN),
PacketPlayInEntityAction("PacketPlayInEntityAction", "PlayerActionMessage", PacketType.PACKETPLAYIN),
PacketPlayInFlying("PacketPlayInFlying", "", PacketType.PACKETPLAYIN),
PacketPlayInHeldItemSlot("PacketPlayInHeldItemSlot", "HeldItemMessage", PacketType.PACKETPLAYIN),
PacketPlayInKeepAlive("PacketPlayInKeepAlive", "PingMessage", PacketType.PACKETPLAYIN),
PacketPlayInLook("PacketPlayInLook", "PlayerLookMessage", PacketType.PACKETPLAYIN),
PacketPlayInPosition("PacketPlayInPosition", "PlayerPositionMessage", PacketType.PACKETPLAYIN),
PacketPlayInPositionLook("PacketPlayInPositionLook", "PlayerPositionLookMessage", PacketType.PACKETPLAYIN),
PacketPlayInResourcePackStatus("PacketPlayInResourcePackStatus", "ResourcePackStatusMessage", PacketType.PACKETPLAYIN),
PacketPlayInSetCreativeSlot("PacketPlayInSetCreativeSlot", "CreativeItemMessage", PacketType.PACKETPLAYIN),
PacketPlayInSettings("PacketPlayInSettings", "ClientSettingsMessage", PacketType.PACKETPLAYIN),
PacketPlayInSpectate("PacketPlayInSpectate", "SpectateMessage", PacketType.PACKETPLAYIN),
PacketPlayInSteerVehicle("PacketPlayInSteerVehicle", "SteerVehicleMessage", PacketType.PACKETPLAYIN),
PacketPlayInTabComplete("PacketPlayInTabComplete", "TabCompleteMessage", PacketType.PACKETPLAYIN),
PacketPlayInTeleportAccept("PacketPlayInTeleportAccept", "", PacketType.PACKETPLAYIN, v1_9_R1),
PacketPlayInTransaction("PacketPlayInTransaction", "TransactionMessage", PacketType.PACKETPLAYIN),
PacketPlayInUpdateSign("PacketPlayInUpdateSign", "UpdateSignMessage", PacketType.PACKETPLAYIN),
PacketPlayInUseEntity("PacketPlayInUseEntity", "InteractEntityMessage", PacketType.PACKETPLAYIN),
PacketPlayInUseItem("PacketPlayInUseItem", "", PacketType.PACKETPLAYIN, v1_9_R1),
PacketPlayInVehicleMove("PacketPlayInVehicleMove", "", PacketType.PACKETPLAYIN, v1_9_R1),
PacketPlayInWindowClick("PacketPlayInWindowClick", "WindowClickMessage", PacketType.PACKETPLAYIN),
// Status
PacketStatusInPing("PacketStatusInPing", "StatusPingMessage", PacketType.PACKETSTATUS),
PacketStatusInStart("PacketStatusInStart", "StatusRequestMessage", PacketType.PACKETSTATUS),
PacketStatusOutPong("PacketStatusOutPong", "StatusPingMessage", PacketType.PACKETSTATUS, com.w67clement.mineapi.packets.status.PacketStatusOutPong.class),
PacketStatusOutServerInfo("PacketStatusOutServerInfo", "StatusResponseMessage", PacketType.PACKETSTATUS, com.w67clement.mineapi.packets.status.PacketStatusOutServerInfo.class),
// Handshake
Handshake("PacketHandshakingInSetProtocol", "HandshakeMessage", PacketType.HANDSHAKE, PacketHandshake.class);
private String packetName;
private String packetAliases;
private PacketType packetType;
private MinecraftVersion packetVersion;
private Class<? extends NmsPacket> mineapiPacket;
PacketList(String packetName, String packetAliases, PacketType packetType)
{
this.packetName = packetName;
this.packetAliases = packetAliases;
this.packetType = packetType;
this.packetVersion = MinecraftVersion.UNKNOW;
}
PacketList(String packetName, String packetAliases, PacketType packetType, Class<? extends NmsPacket> mineapi_packet)
{
this.packetName = packetName;
this.packetAliases = packetAliases;
this.packetType = packetType;
this.packetVersion = MinecraftVersion.UNKNOW;
this.mineapiPacket = mineapi_packet;
}
PacketList(String packetName, String packetAliases, PacketType packetType, MinecraftVersion packetVersion)
{
this.packetName = packetName;
this.packetAliases = packetAliases;
this.packetType = packetType;
this.packetVersion = packetVersion;
}
PacketList(String packetName, String packetAliases, PacketType packetType, MinecraftVersion packetVersion, Class<? extends NmsPacket> mineapi_packet)
{
this.packetName = packetName;
this.packetAliases = packetAliases;
this.packetType = packetType;
this.packetVersion = packetVersion;
this.mineapiPacket = mineapi_packet;
}
public static PacketList getPacketByName(String name)
{
for (PacketList packet : values())
{
if (packet.getPacketName().equals(name))
{
return packet;
}
}
return null;
}
public static PacketList getPacketByAliase(String name)
{
for (PacketList packet : values())
{
if (packet.getPacketAliases().contains(name))
{
return packet;
}
}
return null;
}
public String getPacketName()
{
return this.packetName;
}
public String getPacketAliases()
{
return this.packetAliases;
}
public PacketType getPacketType()
{
return this.packetType;
}
public MinecraftVersion getPacketVersion()
{
return this.packetVersion;
}
public Class<? extends NmsPacket> getMineAPIPacket()
{
return this.mineapiPacket;
}
public boolean hasMineAPIPacket()
{
return this.mineapiPacket != null;
}
}