pub trait ClientVersion: Version + Sealed {
const GAME: GameVersion;
const CHAT_LIMIT: usize;
const INVENTORY: Version;
// Required methods
fn write_handshake(
enc: &mut FrameEncoder,
host: &str,
port: u16,
) -> Result<(), EncodeError>;
fn write_login_start(
enc: &mut FrameEncoder,
username: &str,
) -> Result<(), EncodeError>;
fn write_encryption_response(
enc: &mut FrameEncoder,
shared_secret: &[u8],
verify_token: &[u8],
) -> Result<(), EncodeError>;
fn write_plugin_response(
enc: &mut FrameEncoder,
message_id: i32,
) -> Result<(), EncodeError>;
fn decode_login(
raw: &RawPacket,
) -> Result<Option<LoginInbound>, DecodeError>;
fn play_filter(interests: Interests) -> PacketFilter;
fn decode_play(raw: &RawPacket) -> Result<Option<Inbound>, DecodeError>;
fn inventory_packet(
inv: &mut Inventory,
raw: &RawPacket,
) -> Result<Option<Outgoing>, DecodeError>;
fn write_play(
enc: &mut FrameEncoder,
out: &Outbound,
) -> Result<(), EncodeError>;
fn apply_teleport(pose: &mut Pose, t: &Teleport);
}Expand description
Required Associated Constants§
Sourceconst GAME: GameVersion
const GAME: GameVersion
The run-time tag of this version.
Sourceconst CHAT_LIMIT: usize
const CHAT_LIMIT: usize
Longest chat line the server accepts, in UTF-16 units (vanilla truncates to it).
Required Methods§
Sourcefn write_handshake(
enc: &mut FrameEncoder,
host: &str,
port: u16,
) -> Result<(), EncodeError>
fn write_handshake( enc: &mut FrameEncoder, host: &str, port: u16, ) -> Result<(), EncodeError>
Queues the handshake packet (next state = login).
Sourcefn write_login_start(
enc: &mut FrameEncoder,
username: &str,
) -> Result<(), EncodeError>
fn write_login_start( enc: &mut FrameEncoder, username: &str, ) -> Result<(), EncodeError>
Queues the login start packet.
Sourcefn write_encryption_response(
enc: &mut FrameEncoder,
shared_secret: &[u8],
verify_token: &[u8],
) -> Result<(), EncodeError>
fn write_encryption_response( enc: &mut FrameEncoder, shared_secret: &[u8], verify_token: &[u8], ) -> Result<(), EncodeError>
Queues the encryption response.
Sourcefn write_plugin_response(
enc: &mut FrameEncoder,
message_id: i32,
) -> Result<(), EncodeError>
fn write_plugin_response( enc: &mut FrameEncoder, message_id: i32, ) -> Result<(), EncodeError>
Queues a “not understood” answer to a login plugin request.
Sourcefn decode_login(raw: &RawPacket) -> Result<Option<LoginInbound>, DecodeError>
fn decode_login(raw: &RawPacket) -> Result<Option<LoginInbound>, DecodeError>
Decodes a login-state packet; Ok(None) for packets the client ignores.
Sourcefn play_filter(interests: Interests) -> PacketFilter
fn play_filter(interests: Interests) -> PacketFilter
The play-state packet filter for the given interests: everything the core needs plus what the interests ask for. Everything else is dropped before it is decoded.
Sourcefn decode_play(raw: &RawPacket) -> Result<Option<Inbound>, DecodeError>
fn decode_play(raw: &RawPacket) -> Result<Option<Inbound>, DecodeError>
Decodes a play-state packet; Ok(None) for packets the core does not use.
Sourcefn inventory_packet(
inv: &mut Inventory,
raw: &RawPacket,
) -> Result<Option<Outgoing>, DecodeError>
fn inventory_packet( inv: &mut Inventory, raw: &RawPacket, ) -> Result<Option<Outgoing>, DecodeError>
Applies an inventory packet (windows, slots, confirms, held slot, login / respawn reset) to the inventory; returns the confirm answer to send now, if any. Other packets are ignored.
Sourcefn write_play(enc: &mut FrameEncoder, out: &Outbound) -> Result<(), EncodeError>
fn write_play(enc: &mut FrameEncoder, out: &Outbound) -> Result<(), EncodeError>
Queues a play-state packet.
Sourcefn apply_teleport(pose: &mut Pose, t: &Teleport)
fn apply_teleport(pose: &mut Pose, t: &Teleport)
Applies a server teleport to the pose the way this version’s client does
(onPlayerPositionLook + Entity.updatePositionAndAngles).
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".