computercraft | ||
examples | ||
.gitignore | ||
README.md | ||
requirements.txt | ||
setup.cfg | ||
setup.py | ||
testmod.py |
Pythonized CC Tweaked (ComputerCraft) API
-
Enable localhost in mod server config
In case of singleplayer it's located inside your saves folder. In case of multiplayer check your server folder.
Edit
computercraft-server.toml
[[http.rules]] host = "127.0.0.0/8" action = "allow" # change here deny to allow
-
Create module named
examplemod.py
:async def hello(api): await api.print('Hello world!')
-
Start a server:
python -m computercraft.server examplemod
-
In minecraft, open up any computer and type:
wget http://127.0.0.1:8080/ py py hello
py
is short Lua program that interacts with the server.
Argument is the name of coroutine inside the module.
api
object contains almost everything as is in ComputerCraft documentation:
async def program(api):
await api.disk.eject('right')
await api.print(await api.os.getComputerLabel())
# ...
Using python coroutines allows launching commands in parallel, effectively replacing parallel
API:
async def program(api):
# Since os.sleep is mostly waiting for events, it doesn't block execution of parallel threads
# and this snippet takes approximately 2 seconds to complete.
await asyncio.gather(api.os.sleep(2), api.os.sleep(2))