A Bot for Minecraft: Bedrock Edition programmed in python using websocket
Project description
Quickstart
Installation
Install with pip install mcbews
and import it.
from mcbews import ws
from mcbews.chat import Color, Style
Contents
- Create a simple bot
- Minecraft Events
- Advanced bot options
Create a simple bot
Credits to discord.py for the awesome syntax inspiration.
bot = ws.Bot(
name = "My Bot",
prefix = "!"
)
@bot.event
# this is the only event that is not async
def on_ready(ctx):
print(f"Ready @ {ctx.host}:{ctx.port}")
@bot.event
async def on_connect(ctx):
print("Connected!")
ctx.msg("Hello World.")
@bot.event
async def on_disconnect(ctx):
print("Disconnected!")
@bot.command()
async def ping(ctx):
ctx.msg("Pong")
ctx.cmd("title @a actionbar Welcome")
bot.run("localhost", 6464)
We will go with 6464
as the port but you can
choose any other four-digit number.
Now type /connect localhost:6464
in the Minecraft
Chat and wait for a response.
You may have to disable "Require Encrypted Websockets" for it to work.
Most of the time the ctx argument has methods for sending messages in the game. These are:
cmd(command)
Executes a minecraft command. The slash prefix is optional. Also accessable with
command(...)
andexecute(...)
raw(message, target = "@a")
Sends a raw message to the specified target.
msg(message, target = "@a")
Sends a message to the specified target. Also accessable with
message(...)
debug(message, target = "@a")
Sends a debug message to the specified target. The logging level must be set to
debug
or higher.
info(message, targt = "@a")
Sends an info message to the specified target. The logging level must be set to
info
or higher.
err(message, target = "@a")
Sends a error message to the specified target. The logging level must be set to
error
or higher. Also accessable witherror(...)
warning(message, target = "@a")
Sends a warning to the specified target. The logging level must be set to
warning
or higher. Also accessable withwarn(...)
critical(message, target = "@a")
Sends a critical message to the specified target. The logging level must be set to
critical
. Also accessable withfatal(...)
Minecraft Events
Minecraft sends several events to the bot.
You can react on them with the minectaftevent
decorator:
@bot.minecraftevent
async def block_broken(ctx):
ctx.info(f"{ctx.block_name} has been broken.")
This will display a message which block got broken.
Some events have supported methods (e.g. in
this case block_name
) but some don't.
You can access the data with
ctx.data["<name>"]
where name could be
"name"
.
Keep in mind that you have to change the
event name into snakecase format. That means
that BlockBroken
becomes block_broken
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file mcbews-0.0.1b3-py3-none-any.whl
.
File metadata
- Download URL: mcbews-0.0.1b3-py3-none-any.whl
- Upload date:
- Size: 8.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 88082f2b9b5aac17650945739f020a474351ed290d027a664c43ef0690a38b6e |
|
MD5 | 8a0a7a57c71e259fbc95c3815f2d5c63 |
|
BLAKE2b-256 | ba5f2ad5b5a8aaa86e389fc9af7dfc6ec4796f04e307046b8735ae1947724f5e |