Skip to main content

yog_event/player/
actions.rs

1//! Players: the host's actions.
2
3use crate::Point;
4use yog_core::{BlockPos, PlayerInfo, SlotStack, Stack};
5use yog_ids as ids;
6
7actions! {
8    /// Gives `player` `count` of `item`.
9    GiveItem { player: String, item: String, count: u32 } -> bool = ids::service_player::GIVE_ITEM, "YogPlayerActions.giveItem";
10    /// Moves `player` in its dimension.
11    Teleport { player: String, pos: Point } -> bool = ids::service_player::TELEPORT, "YogPlayerActions.teleport";
12    /// Moves `player` to `pos` in `dim`.
13    TeleportToDim { player: String, dim: String, pos: Point } -> bool = ids::service_player::TELEPORT_TO_DIM, "YogPlayerActions.teleportToDim";
14    /// Disconnects `player`.
15    Kick { player: String, reason: String } -> bool = ids::service_player::KICK, "YogPlayerActions.kickPlayer";
16    /// Sets `player`'s game mode (`survival`, `creative`, …).
17    SetGamemode { player: String, mode: String } -> bool = ids::service_player::SET_GAMEMODE, "YogPlayerActions.setGamemode";
18    /// `player`'s inventory: its stacks, by slot.
19    Inventory { player: String } -> Vec<SlotStack> = ids::service_player::INVENTORY, "YogQueries.playerInventory";
20    /// Sets inventory `slot` of `player`.
21    SetSlot { player: String, slot: u32, item: String, count: u32 } -> bool = ids::service_player::SET_SLOT, "YogPlayerActions.playerSetSlot";
22    /// The custom data (SNBT) of what `player` holds.
23    HeldItemNbt { player: String } -> Option<String> = ids::service_player::HELD_ITEM_NBT, "YogPlayerActions.getHeldItemNbt";
24    /// Sets the custom data of what `player` holds.
25    SetHeldItemNbt { player: String, snbt: String } -> bool = ids::service_player::SET_HELD_ITEM_NBT, "YogPlayerActions.setHeldItemNbt";
26    /// The custom data (SNBT) of `player`'s offhand stack.
27    OffhandItemNbt { player: String } -> Option<String> = ids::service_player::OFFHAND_ITEM_NBT, "YogPlayerActions.getOffhandItemNbt";
28    /// Sets the custom data of `player`'s offhand stack.
29    SetOffhandItemNbt { player: String, snbt: String } -> bool = ids::service_player::SET_OFFHAND_ITEM_NBT, "YogPlayerActions.setOffhandItemNbt";
30    /// The stack in `slot`.
31    SlotItem { player: String, slot: u32 } -> Option<Stack> = ids::service_player::SLOT_ITEM, "YogQueries.getSlotItem";
32    /// Sets the stack in `slot`, with custom data.
33    SetSlotItem { player: String, slot: u32, item: String, count: u32, snbt: String } -> bool = ids::service_player::SET_SLOT_ITEM, "YogPlayerActions.setSlotItem";
34    /// Gives `player` experience points.
35    AddXp { player: String, amount: i32 } -> bool = ids::service_player::ADD_XP, "YogPlayerActions.playerAddXp";
36    /// Lets `player` fly (or not).
37    SetMayFly { player: String, may_fly: bool } -> bool = ids::service_player::SET_MAY_FLY, "YogPlayerActions.playerSetMayFly";
38    /// `player`'s state.
39    Info { player: String } -> Option<PlayerInfo> = ids::service_player::INFO, "YogQueries.playerInfo";
40    /// Puts `item` on cooldown for `player`.
41    SetItemCooldown { player: String, item: String, ticks: i32 } -> bool = ids::service_player::SET_ITEM_COOLDOWN, "YogPlayerActions.setItemCooldown";
42    /// Places the block of `slot`'s stack at `pos`, as `player` would.
43    PlaceBlockFromSlot { player: String, slot: u32, dim: String, pos: BlockPos } -> bool = ids::service_player::PLACE_BLOCK_FROM_SLOT, "YogPlayerActions.placeBlockFromSlot";
44    /// The online players' names.
45    Online {  } -> Vec<String> = ids::service_player::ONLINE, "YogQueries.onlinePlayers";
46}