soulfire¶
The SoulFire SDK automates Minecraft bots with lazy Effect operations.
Start with the Python tutorial. Keep bot operations inside a scope and run the complete workflow at its boundary.
Methods decorated with @fn return lazy Effect operations when called.
Their source signatures use EffectGen to describe the generator implementation.
Submodules¶
- soulfire.actions
- soulfire.admin
- soulfire.api_docs_pb2
- soulfire.behaviors
- soulfire.bot
- soulfire.bot_connect
- soulfire.bot_live_connect
- soulfire.bot_live_pb2
- soulfire.bot_pb2
- soulfire.camera
- soulfire.chat_connect
- soulfire.chat_pb2
- soulfire.client
- soulfire.client_connect
- soulfire.client_pb2
- soulfire.command_connect
- soulfire.command_pb2
- soulfire.common_pb2
- soulfire.concurrency
- soulfire.connection
- soulfire.domain_pb2
- soulfire.download_connect
- soulfire.download_pb2
- soulfire.errors
- soulfire.example_plugin
- soulfire.fleet
- soulfire.instance_connect
- soulfire.instance_live_connect
- soulfire.instance_live_pb2
- soulfire.instance_pb2
- soulfire.inventory_connect
- soulfire.inventory_pb2
- soulfire.login_connect
- soulfire.login_pb2
- soulfire.logs_connect
- soulfire.logs_pb2
- soulfire.mc_auth_connect
- soulfire.mc_auth_pb2
- soulfire.metrics_connect
- soulfire.metrics_pb2
- soulfire.pathfinding
- soulfire.pathfinding_connect
- soulfire.pathfinding_pb2
- soulfire.plugin
- soulfire.plugin_api_connect
- soulfire.plugin_api_pb2
- soulfire.plugin_stats_connect
- soulfire.plugin_stats_pb2
- soulfire.plugins
- soulfire.pov_connect
- soulfire.pov_pb2
- soulfire.protocol
- soulfire.protocol_connect
- soulfire.protocol_pb2
- soulfire.proxy_check_connect
- soulfire.proxy_check_pb2
- soulfire.recipe_connect
- soulfire.recipe_pb2
- soulfire.registry_connect
- soulfire.registry_pb2
- soulfire.resources
- soulfire.script_connect
- soulfire.script_pb2
- soulfire.sdk_connect
- soulfire.sdk_pb2
- soulfire.selectors
- soulfire.semantic
- soulfire.server_connect
- soulfire.server_pb2
- soulfire.session
- soulfire.streams
- soulfire.task_connect
- soulfire.task_pb2
- soulfire.tasks
- soulfire.transport
- soulfire.user_connect
- soulfire.user_pb2
- soulfire.world_connect
- soulfire.world_pb2
Attributes¶
Exceptions¶
A bot action returned an unsuccessful result. |
|
Base error for bot behavior operations. |
|
A bot behavior exceeded its allowed duration. |
|
The server does not provide a required SDK capability. |
|
The server and SDK cannot safely communicate. |
|
The SDK could not install or start a managed SoulFire server. |
|
An RPC request failed with server status and retry context. |
|
An SDK operation cannot proceed in the current state. |
|
An SDK operation exceeded its allowed duration. |
|
An SDK operation received an invalid value or argument type. |
|
A fleet task failed. The report contains each task's outcome. |
|
An installed plugin is incompatible with the SDK requirements. |
|
The SDK could not use a plugin's API descriptor. |
|
A required plugin is not installed on the server. |
|
An inventory operation attempted to use a closed container. |
|
A bot task ended with a failure or an unsuccessful status. |
Classes¶
Async high-level access to SoulFire's administrative control plane. |
|
One bot's lifecycle, actions, live state, and server tasks. |
|
Exclusive action control with explicit renewal and scoped release. |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
int([x]) -> integer |
|
Abstract base class for protocol messages. |
|
int([x]) -> integer |
|
int([x]) -> integer |
|
int([x]) -> integer |
|
Abstract base class for protocol messages. |
|
Async camera, frame-stream, and map-view access for one bot. |
|
Options for a local SoulFire server managed by the SDK. |
|
A scoped client for a SoulFire server and its bot instances. |
|
An instance handle that groups bot accounts and configuration. |
|
Base class for protocol classes. |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
int([x]) -> integer |
|
Abstract base class for protocol messages. |
|
int([x]) -> integer |
|
int([x]) -> integer |
|
Base class for protocol classes. |
|
Advanced access to SoulFire's native Minecraft packet codec. |
|
Abstract base class for protocol messages. |
|
int([x]) -> integer |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
Filters and preferences for inventory item recommendations. |
|
A lazy stream. Each subscription acquires its own scoped cursor. |
|
A handle for a server task with a typed result. |
|
Start and observe durable jobs for one bot. |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
int([x]) -> integer |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
Functions¶
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Decode a camera image payload into its original bytes. |
|
|
|
|
|
|
|
|
|
|
|
Package Contents¶
- soulfire.cleanup[A2, E2, R2](behavior: BotBehavior[A2, E2, R2], finalizer: BotBehavior[object, object]) BotBehavior[A2, E2, R2][source]¶
- soulfire.conditional[A2, E2, R2, EP, RP](predicate: collections.abc.Callable[[soulfire.bot.SoulFireBot], bool | effect_py.Effect[bool, EP, RP]], when_true: BotBehavior[A2, E2, R2], when_false: BotBehavior[A2, E2, R2] | None = None) BotBehavior[A2 | None, E2 | EP, R2 | RP][source]¶
- soulfire.define_behavior[A2, E2, R2](function: collections.abc.Callable[[soulfire.bot.SoulFireBot], effect_py.Effect[A2, E2, R2]]) FunctionBehavior[A2, E2, R2][source]¶
- soulfire.fallback[A2, E2, R2](primary: BotBehavior[A2, E2, R2], *alternatives: BotBehavior[A2, E2, R2]) BotBehavior[A2, E2, R2][source]¶
- soulfire.parallel[E2, R2](*behaviors: BotBehavior[object, E2, R2]) BotBehavior[tuple[object, ...], E2, R2][source]¶
- soulfire.race[A2, E2, R2](first: BotBehavior[A2, E2, R2], *others: BotBehavior[A2, E2, R2]) BotBehavior[A2, E2, R2][source]¶
- soulfire.repeat[A2, E2, R2](behavior: BotBehavior[A2, E2, R2], *, times: int) BotBehavior[tuple[A2, ...], E2 | soulfire.errors.SoulFireOperationError, R2][source]¶
- soulfire.retry[A2, E2, R2](behavior: BotBehavior[A2, E2, R2], *, attempts: int = 3, delay: float = 0, backoff: float = 1, maximum_delay: float | None = None, while_: collections.abc.Callable[[E2], bool] = lambda _: ...) BotBehavior[A2, E2 | soulfire.errors.SoulFireOperationError, R2][source]¶
- soulfire.run_behaviors[E2, R2](bot: soulfire.bot.SoulFireBot, behaviors: collections.abc.Iterable[BotBehavior[object, E2, R2]]) effect_py.Effect[None, E2, R2][source]¶
- soulfire.scoped_lease[A2, E2, R2](behavior: BotBehavior[A2, E2, R2], *, ttl_seconds: int = 30) BotBehavior[A2, E2 | soulfire.errors.SoulFireOperationError, R2][source]¶
- soulfire.sequence[E2, R2](*behaviors: BotBehavior[object, E2, R2]) BotBehavior[tuple[object, ...], E2, R2][source]¶
- soulfire.timeout[A2, E2, R2](behavior: BotBehavior[A2, E2, R2], seconds: float) BotBehavior[A2, E2 | soulfire.errors.SoulFireOperationError | SoulFireBehaviorTimeoutError, R2][source]¶
- soulfire.until[A2, E2, R2, EP, RP](behavior: BotBehavior[A2, E2, R2], predicate: collections.abc.Callable[[A2], bool | effect_py.Effect[bool, EP, RP]], *, maximum_iterations: int | None = None) BotBehavior[A2, E2 | EP | soulfire.errors.SoulFireOperationError | SoulFireBehaviorError, R2 | RP][source]¶
- soulfire.decode_camera_image(image: soulfire.bot_pb2.BotRenderPovResponse) bytes[source]¶
Decode a camera image payload into its original bytes.
- soulfire.connection_layer(base_url: str, *, token: soulfire._auth.TokenProvider | None = None, timeout_ms: int | None = None, required_capabilities: collections.abc.Iterable[str] = (), required_plugins: collections.abc.Iterable[soulfire.connection.RequiredPlugin] = ()) effect_py.layer.Layer[SoulFireService, soulfire.errors.SoulFireOperationError][source]¶
- soulfire.SDK_API_VERSION: Final¶
- soulfire.SDK_VERSION: Final = '2.10.3'¶
- type soulfire.SoulFireOperationError = SoulFireRpcError | SoulFireValidationError | SoulFireStateError | SoulFireInstallError | SoulFireTimeoutError | SoulFireActionError | SoulFireTaskError | SoulFireCompatibilityError | SoulFireCapabilityError | SoulFirePluginNotFoundError | SoulFirePluginCompatibilityError | SoulFirePluginDescriptorError | SoulFireContainerClosedError¶
- soulfire.example_plugin¶
- soulfire.goals¶
- soulfire.PACKET_DIRECTION_CLIENTBOUND: PacketDirection¶
- soulfire.PACKET_DIRECTION_SERVERBOUND: PacketDirection¶
- soulfire.item_selector(value: str | soulfire.inventory_pb2.ItemSelector) soulfire.inventory_pb2.ItemSelector[source]¶
- type soulfire.ChatMatcher = str | re.Pattern[str] | Callable[[BotChatEvent], bool]¶
- soulfire.match_chat(event: soulfire.bot_live_pb2.BotChatEvent, matcher: ChatMatcher) ChatMatch | None[source]¶
- soulfire.empty_bot_session_state() BotSessionState[source]¶
- soulfire.reduce_bot_session_state(state: BotSessionState, event: soulfire.bot_live_pb2.BotEvent) BotSessionState[source]¶
- soulfire.is_terminal_task_status(status: soulfire.task_pb2.BotTaskStatus) bool[source]¶