Skip to content
This repository has been archived by the owner on Aug 31, 2019. It is now read-only.

Commit

Permalink
Update ReadMe.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Nick Gamberini committed Jan 6, 2014
1 parent b471324 commit 90af28d
Showing 1 changed file with 10 additions and 5 deletions.
15 changes: 10 additions & 5 deletions ReadMe.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,23 @@
Inspired by remyroy's COPS, a Minecraft client in Python. Protocol implementation based on barneymc
Currently Supports Minecraft 1.7.2
Currently Supports Minecraft 1.7.4

spock
=====

Bot framework, currently under heavy development

Protocol stuff lives in spock/mcp
Client stuff lives in spock/net
Protocol stuff lives in spock/mcp
Map stuff lives in spock/mcmap
Important client stuff lives in spock/plugins/core
Less important stuff lives in spock/plugins/helpers

Client could loosely be called "event-driven", plugins register handler functions to handle specific packets and flags (In practice mostly socket errors and hangups)
Client could loosely be called "event-driven", by default plugins register handler functions to handle events that may or may not be emitted by other plugins. Everything is a plugin in spock, including the event loop/framework itself, so you can feel free to rip out the entire back end and replace it with your framework or paradigm of choice. As long as you provide the same simple APIs, other plugins won't know the difference.

In comparison to other popular MC bots like Mineflayer Spock is much more "bare-bones", in that Spock expects plugins to understand and send packets on their own. The default handlers only mirror Keep Alives and Position Updates from the server (without which the bot would get kicked and be unable to move, respectively). This means that writing Spock plugins require a fairly intricate understanding of the MC protocol.
Currently writing Spock plugins requires a fairly intricate understanding of the MC protocol, since there aren't many plugins that provide higher abstractions than MC packets. That said the API is starting to shape up quite nicely, we've got threading and the start of a World API. Once Python 3.4 comes out we'll probably try to stablize the event loop API around asyncio and provide some sort of ghetto fallback for older Python 3.x

Speaking of compatibility, Spock runs on Python 3.x on *Nix operating systems, and requires PyCrypto. Theoretically it runs on Windows but no one has ever tested it and I'm fairly sure there are a couple (easy to fix) errors that will
pop up. Python 2.x would be nice, but it becomes an ever more distant goal as Spock continues to grow dependencies on new Python features. Not impossible, just not a priority

I'll write a real ReadMe and API docs when everything is done and stable-ish.
For now you can check out the plugins folder to get a vague idea of what plugins should look like, find me on #mcdevs or email me at [email protected] if you have questions

Expand Down

0 comments on commit 90af28d

Please sign in to comment.