1.14.1 protocol support (480) (#151)
* Copy v1_14_1 from v1_14 * Add protocol 1.14.1 (480) * Update readme * 0x08 serverbound is now ClickWindowButton https://wiki.vg/index.php?title=Pre-release_protocol&oldid=14764#Click_Window_Button
This commit is contained in:
parent
1274a75f81
commit
599227aef2
|
@ -23,6 +23,8 @@ Join with your favorite IRC client or [Matrix](https://matrix.to/#/#_espernet_#s
|
|||
|
||||
| Game version | Protocol version | Supported? |
|
||||
| ------ | --- | --- |
|
||||
| 1.14.1 | 480 | ✓ |
|
||||
| 1.14.1 | 477 | ✓ |
|
||||
| 1.14 | 477 | ✓ |
|
||||
| 19w02a | 452 | ✓ |
|
||||
| 18w50a | 451 | ✓ |
|
||||
|
@ -35,13 +37,15 @@ Join with your favorite IRC client or [Matrix](https://matrix.to/#/#_espernet_#s
|
|||
| 1.9 | 107 | ✓ |
|
||||
| 15w39c | 74 | ✓ |
|
||||
| 1.8.9 | 47 | ✓ |
|
||||
| 1.7.10 + Forge | 5 | ✓ |
|
||||
| 1.7.10 | 5 | ✓ |
|
||||
|
||||
Stevenarella is designed to support multiple protocol versions, so that client
|
||||
development is not in lock-step with the server version. The level of
|
||||
support varies, but the goal is to support major versions from 1.7.10
|
||||
up to the current latest major version. Occasionally, snapshots are also supported.
|
||||
|
||||
Forge servers are currently supported on 1.7.10 - 1.12.2.
|
||||
|
||||
Support for older protocols will _not_ be dropped as newer protocols are added.
|
||||
|
||||
## Credits
|
||||
|
|
|
@ -39,7 +39,7 @@ use flate2::Compression;
|
|||
use std::time::{Instant, Duration};
|
||||
use crate::shared::Position;
|
||||
|
||||
pub const SUPPORTED_PROTOCOLS: [i32; 13] = [477, 452, 451, 404, 340, 316, 315, 210, 109, 107, 74, 47, 5];
|
||||
pub const SUPPORTED_PROTOCOLS: [i32; 14] = [480, 477, 452, 451, 404, 340, 316, 315, 210, 109, 107, 74, 47, 5];
|
||||
|
||||
// TODO: switch to using thread_local storage?, see https://doc.rust-lang.org/std/macro.thread_local.html
|
||||
pub static mut CURRENT_PROTOCOL_VERSION: i32 = SUPPORTED_PROTOCOLS[0];
|
||||
|
|
|
@ -131,6 +131,11 @@ state_packets!(
|
|||
field id: u8 =,
|
||||
field enchantment: u8 =,
|
||||
}
|
||||
/// ClickWindowButton is used for clicking an enchantment, lectern, stonecutter, or loom.
|
||||
packet ClickWindowButton {
|
||||
field id: u8 =,
|
||||
field button: u8 =,
|
||||
}
|
||||
/// ClickWindow is sent when the client clicks in a window.
|
||||
packet ClickWindow {
|
||||
field id: u8 =,
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
use crate::protocol::*;
|
||||
|
||||
mod v1_14_1;
|
||||
mod v1_14;
|
||||
mod v19w02a;
|
||||
mod v18w50a;
|
||||
|
@ -19,6 +20,7 @@ mod v1_7_10;
|
|||
pub fn protocol_name_to_protocol_version(s: String) -> i32 {
|
||||
match s.as_ref() {
|
||||
"" => SUPPORTED_PROTOCOLS[0],
|
||||
"1.14.1" => 480,
|
||||
"1.14" => 477,
|
||||
"19w02a" => 452,
|
||||
"18w50a" => 451,
|
||||
|
@ -44,6 +46,7 @@ pub fn protocol_name_to_protocol_version(s: String) -> i32 {
|
|||
|
||||
pub fn translate_internal_packet_id_for_version(version: i32, state: State, dir: Direction, id: i32, to_internal: bool) -> i32 {
|
||||
match version {
|
||||
480 => v1_14_1::translate_internal_packet_id(state, dir, id, to_internal),
|
||||
477 => v1_14::translate_internal_packet_id(state, dir, id, to_internal),
|
||||
452 => v19w02a::translate_internal_packet_id(state, dir, id, to_internal),
|
||||
451 => v18w50a::translate_internal_packet_id(state, dir, id, to_internal),
|
||||
|
|
|
@ -16,8 +16,7 @@ protocol_packet_ids!(
|
|||
0x05 => ClientSettings
|
||||
0x06 => TabComplete
|
||||
0x07 => ConfirmTransactionServerbound
|
||||
//0x08 => EnchantItem
|
||||
//0x08 => ClickWindowButton
|
||||
0x08 => ClickWindowButton
|
||||
0x09 => ClickWindow
|
||||
0x0a => CloseWindow
|
||||
0x0b => PluginMessageServerbound
|
||||
|
|
|
@ -0,0 +1,179 @@
|
|||
protocol_packet_ids!(
|
||||
handshake Handshaking {
|
||||
serverbound Serverbound {
|
||||
0x00 => Handshake
|
||||
}
|
||||
clientbound Clientbound {
|
||||
}
|
||||
}
|
||||
play Play {
|
||||
serverbound Serverbound {
|
||||
0x00 => TeleportConfirm
|
||||
0x01 => QueryBlockNBT
|
||||
0x02 => SetDifficulty
|
||||
0x03 => ChatMessage
|
||||
0x04 => ClientStatus
|
||||
0x05 => ClientSettings
|
||||
0x06 => TabComplete
|
||||
0x07 => ConfirmTransactionServerbound
|
||||
0x08 => ClickWindowButton
|
||||
0x09 => ClickWindow
|
||||
0x0a => CloseWindow
|
||||
0x0b => PluginMessageServerbound
|
||||
0x0c => EditBook
|
||||
0x0d => QueryEntityNBT
|
||||
0x0e => UseEntity
|
||||
0x0f => KeepAliveServerbound_i64
|
||||
0x10 => LockDifficulty
|
||||
0x11 => PlayerPosition
|
||||
0x12 => PlayerPositionLook
|
||||
0x13 => PlayerLook
|
||||
0x14 => Player
|
||||
0x15 => VehicleMove
|
||||
0x16 => SteerBoat
|
||||
0x17 => PickItem
|
||||
0x18 => CraftRecipeRequest
|
||||
0x19 => ClientAbilities
|
||||
0x1a => PlayerDigging
|
||||
0x1b => PlayerAction
|
||||
0x1c => SteerVehicle
|
||||
0x1d => CraftingBookData
|
||||
0x1e => NameItem
|
||||
0x1f => ResourcePackStatus
|
||||
0x20 => AdvancementTab
|
||||
0x21 => SelectTrade
|
||||
0x22 => SetBeaconEffect
|
||||
0x23 => HeldItemChange
|
||||
0x24 => UpdateCommandBlock
|
||||
0x25 => UpdateCommandBlockMinecart
|
||||
0x26 => CreativeInventoryAction
|
||||
0x27 => UpdateJigsawBlock
|
||||
0x28 => UpdateStructureBlock
|
||||
0x29 => SetSign
|
||||
0x2a => ArmSwing
|
||||
0x2b => SpectateTeleport
|
||||
0x2c => PlayerBlockPlacement_f32
|
||||
0x2d => UseItem
|
||||
}
|
||||
clientbound Clientbound {
|
||||
0x00 => SpawnObject
|
||||
0x01 => SpawnExperienceOrb
|
||||
0x02 => SpawnGlobalEntity
|
||||
0x03 => SpawnMob
|
||||
0x04 => SpawnPainting
|
||||
0x05 => SpawnPlayer_f64
|
||||
0x06 => Animation
|
||||
0x07 => Statistics
|
||||
0x08 => BlockBreakAnimation
|
||||
0x09 => UpdateBlockEntity
|
||||
0x0a => BlockAction
|
||||
0x0b => BlockChange_VarInt
|
||||
0x0c => BossBar
|
||||
0x0d => ServerDifficulty_Locked
|
||||
0x0e => ServerMessage
|
||||
0x0f => MultiBlockChange_VarInt
|
||||
0x10 => TabCompleteReply
|
||||
0x11 => DeclareCommands
|
||||
0x12 => ConfirmTransaction
|
||||
0x13 => WindowClose
|
||||
0x14 => WindowItems
|
||||
0x15 => WindowProperty
|
||||
0x16 => WindowSetSlot
|
||||
0x17 => SetCooldown
|
||||
0x18 => PluginMessageClientbound
|
||||
0x19 => NamedSoundEffect
|
||||
0x1a => Disconnect
|
||||
0x1b => EntityAction
|
||||
0x1c => Explosion
|
||||
0x1d => ChunkUnload
|
||||
0x1e => ChangeGameState
|
||||
0x1f => WindowOpenHorse
|
||||
0x20 => KeepAliveClientbound_i64
|
||||
0x21 => ChunkData_HeightMap
|
||||
0x22 => Effect
|
||||
0x23 => Particle_Data
|
||||
0x24 => UpdateLight
|
||||
0x25 => JoinGame_i32_ViewDistance
|
||||
0x26 => Maps
|
||||
0x27 => TradeList
|
||||
0x28 => EntityMove_i16
|
||||
0x29 => EntityLookAndMove_i16
|
||||
0x2a => EntityLook_VarInt
|
||||
0x2b => Entity
|
||||
0x2c => VehicleTeleport
|
||||
0x2d => OpenBook
|
||||
0x2e => WindowOpen_VarInt
|
||||
0x2f => SignEditorOpen
|
||||
0x30 => CraftRecipeResponse
|
||||
0x31 => PlayerAbilities
|
||||
0x32 => CombatEvent
|
||||
0x33 => PlayerInfo
|
||||
0x34 => FacePlayer
|
||||
0x35 => TeleportPlayer_WithConfirm
|
||||
0x36 => UnlockRecipes_WithSmelting
|
||||
0x37 => EntityDestroy
|
||||
0x38 => EntityRemoveEffect
|
||||
0x39 => ResourcePackSend
|
||||
0x3a => Respawn
|
||||
0x3b => EntityHeadLook
|
||||
0x3c => SelectAdvancementTab
|
||||
0x3d => WorldBorder
|
||||
0x3e => Camera
|
||||
0x3f => SetCurrentHotbarSlot
|
||||
0x40 => UpdateViewPosition
|
||||
0x41 => UpdateViewDistance
|
||||
0x42 => ScoreboardDisplay
|
||||
0x43 => EntityMetadata
|
||||
0x44 => EntityAttach
|
||||
0x45 => EntityVelocity
|
||||
0x46 => EntityEquipment
|
||||
0x47 => SetExperience
|
||||
0x48 => UpdateHealth
|
||||
0x49 => ScoreboardObjective
|
||||
0x4a => SetPassengers
|
||||
0x4b => Teams
|
||||
0x4c => UpdateScore
|
||||
0x4d => SpawnPosition
|
||||
0x4e => TimeUpdate
|
||||
0x4f => Title
|
||||
0x50 => EntitySoundEffect
|
||||
0x51 => SoundEffect
|
||||
0x52 => StopSound
|
||||
0x53 => PlayerListHeaderFooter
|
||||
0x54 => NBTQueryResponse
|
||||
0x55 => CollectItem
|
||||
0x56 => EntityTeleport_f64
|
||||
0x57 => Advancements
|
||||
0x58 => EntityProperties
|
||||
0x59 => EntityEffect
|
||||
0x5a => DeclareRecipes
|
||||
0x5b => TagsWithEntities
|
||||
}
|
||||
}
|
||||
login Login {
|
||||
serverbound Serverbound {
|
||||
0x00 => LoginStart
|
||||
0x01 => EncryptionResponse
|
||||
0x02 => LoginPluginResponse
|
||||
}
|
||||
clientbound Clientbound {
|
||||
0x00 => LoginDisconnect
|
||||
0x01 => EncryptionRequest
|
||||
0x02 => LoginSuccess
|
||||
0x03 => SetInitialCompression
|
||||
0x04 => LoginPluginRequest
|
||||
}
|
||||
}
|
||||
status Status {
|
||||
serverbound Serverbound {
|
||||
0x00 => StatusRequest
|
||||
0x01 => StatusPing
|
||||
}
|
||||
clientbound Clientbound {
|
||||
0x00 => StatusResponse
|
||||
0x01 => StatusPong
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
|
Loading…
Reference in New Issue