interface player { use common.{hand, item-stack, position, game-mode}; use %world.{%world}; use permission.{permission-level}; use text.{text-component}; record player-abilities { invulnerable: bool, flying: bool, allow-flying: bool, creative: bool, allow-modify-world: bool, fly-speed: f32, walk-speed: f32, } resource player { get-id: func () -> result; get-name: func () -> result; // Basic state get-position: func () -> result; get-rotation: func () -> result, string>; get-world: func () -> result<%world, string>; get-gamemode: func () -> result; set-gamemode: func (mode: game-mode) -> result; get-locale: func () -> result; get-ping: func () -> result; // Permissions & metadata get-permission-level: func () -> result; set-permission-level: func (level: permission-level) -> result<_, string>; has-permission: func (node: string) -> result; get-display-name: func () -> result; // Messaging & titles send-system-message: func (text: text-component, overlay: bool) -> result<_, string>; show-title: func (text: text-component) -> result<_, string>; show-subtitle: func (text: text-component) -> result<_, string>; show-actionbar: func (text: text-component) -> result<_, string>; send-title-animation: func (fade-in: s32, stay: s32, fade-out: s32) -> result<_, string>; // Teleport & kick teleport: func (position: position, yaw: f32, pitch: f32) -> result<_, string>; teleport-world: func (world-ref: %world, position: position, yaw: option, pitch: option) -> result<_, string>; kick: func (message: text-component) -> result<_, string>; // Inventory get-selected-slot: func () -> result; get-item-in-hand: func (hand: hand) -> result, string>; get-inventory-item: func (slot: u8) -> result, string>; // Status get-health: func () -> result; get-max-health: func () -> result; get-food-level: func () -> result; get-saturation: func () -> result; get-experience-level: func() -> result; get-experience-progress: func() -> result; get-experience-points: func() -> result; set-experience-level: func(level: s32) -> result<_, string>; set-experience-progress: func(progress: f32) -> result<_, string>; set-experience-points: func(points: s32) -> result<_, string>; add-experience-levels: func(levels: s32) -> result<_, string>; add-experience-points: func(points: s32) -> result<_, string>; is-sneaking: func() -> result; is-sprinting: func() -> result; is-on-ground: func() -> result; is-flying: func() -> result; set-flying: func(flying: bool) -> result<_, string>; get-abilities: func() -> result; set-abilities: func(abilities: player-abilities) -> result<_, string>; } }