namespace MinecraftClient.Mcp; public interface IMccMcpCapabilities { MccMcpResult GetSessionStatus(); MccMcpResult GetServerInfo(); MccMcpResult GetPlayerState(); MccMcpResult GetWorldState(); MccMcpResult GetChunkStatus(double? x, double? y, double? z); MccMcpResult RaycastBlock(double maxDistance, bool includeNeighbors); MccMcpResult PreviewPath(double x, double y, double z, bool allowUnsafe, int maxOffset, int minOffset, int timeoutMs, int maxWaypoints); MccMcpResult GetPlayersList(); MccMcpResult GetPlayersDetailed(bool includeSelf, bool includeCoordinates); MccMcpResult GetPlayerStats(); MccMcpResult GetStatusEffects(); MccMcpResult GetRecentEvents(long afterId, int maxCount, string? typeFilter); MccMcpResult GetLoadedBots(); MccMcpResult GetChatHistory(int maxCount, bool includeJson); MccMcpResult GetInternalCommands(); MccMcpResult GetMaterialsList(string? filter, int maxCount); MccMcpResult GetBlockTypesList(string? filter, int maxCount); MccMcpResult GetEntityTypesList(string? filter, int maxCount); MccMcpResult SendChat(string text); MccMcpResult QuitClient(); MccMcpResult DisconnectClient(); MccMcpResult Respawn(); MccMcpResult RunInternalCommand(string command); MccMcpResult PlayAnimation(string hand); MccMcpResult ToggleSneak(bool enabled); MccMcpResult ToggleSprint(bool enabled); MccMcpResult UseItemOnHand(); MccMcpResult ChangeHotbarSlot(int slot); MccMcpResult SelectHotbarItem(string itemType, bool preferLowestSlot); MccMcpResult UseItemOnBlock(double x, double y, double z); MccMcpResult DigBlock(double x, double y, double z, double durationSeconds); MccMcpResult PlaceBlock(int x, int y, int z, string face, string hand, bool lookAtBlock); MccMcpResult InteractEntity(int entityId, string interaction, string hand); MccMcpResult AttackEntity(int entityId); MccMcpResult ScanNearbyBlocks(int radius, int maxCount, string? materialFilter); MccMcpResult FindBlocks(string? query, int radius, int maxCount, bool exactMatch); MccMcpResult IsPlayerNearby(string? playerName, double radius, bool includeSelf); MccMcpResult LocatePlayer(string playerName, bool includeSelf); MccMcpResult FindNearestEntity(string? typeFilter, string? nameFilter, double radius, bool includePlayers); MccMcpResult CanReachPosition(double x, double y, double z, bool allowUnsafe, int maxOffset, int minOffset, int timeoutMs); MccMcpResult MoveTo(double x, double y, double z, bool allowUnsafe, bool allowDirectTeleport, int maxOffset, int minOffset, int timeoutMs); MccMcpResult MoveToPlayer(string playerName, bool allowUnsafe, bool allowDirectTeleport, int maxOffset, int minOffset, int timeoutMs); MccMcpResult LookAt(double x, double y, double z); MccMcpResult LookDirection(string direction); MccMcpResult LookAngles(float yaw, float pitch); MccMcpResult ListInventories(); MccMcpResult GetInventorySnapshot(int inventoryId); MccMcpResult SearchInventories(string query, int maxCount, bool exactMatch, bool includeContainers); MccMcpResult OpenContainerAt(int x, int y, int z, int timeoutMs, bool closeCurrent); MccMcpResult CloseContainer(int inventoryId, int timeoutMs); MccMcpResult InventoryWindowAction(int inventoryId, int slotId, string actionType); MccMcpResult DropInventoryItem(string itemType, int count, int inventoryId, bool preferStack); MccMcpResult DepositContainerItem(string itemType, int count, int inventoryId, bool preferLargestStack); MccMcpResult WithdrawContainerItem(string itemType, int count, int inventoryId, bool preferLargestStack); MccMcpResult QueryEntities(int maxCount); MccMcpResult ListEntities(int maxCount, string? typeFilter, double radius); MccMcpResult GetEntityInfo(int entityId, bool includeMetadata, bool includeEquipment, bool includeEffects); MccMcpResult FindSigns(string text, bool exactMatch, int radius, int maxCount, bool includeBackText); MccMcpResult ListItemEntities(string? itemType, double radius, int maxCount); MccMcpResult PickupItems(string itemType, double radius, int maxItems, bool allowUnsafe, int timeoutMs); MccMcpResult GetWorldBlockAt(int x, int y, int z); }