Royalnet Commands¶
A Royalnet Command is a small script that is run whenever a specific message is sent to a Royalnet interface.
A Command code looks like this:
from royalnet.commands import Command
class PingCommand(Command):
name = "ping"
description = "Play ping-pong with the bot."
def __init__(self, interface):
# This code is run just once, while the bot is starting
super().__init__()
async def run(self, args, data):
# This code is run every time the command is called
await data.reply("Pong!")
Creating a new Command¶
First, think of a name
for your command.
It’s the name your command will be called with: for example, the “spaghetti” command will be called by typing /spaghetti in chat.
Try to keep the name as short as possible, while staying specific enough so no other command will have the same name.
Next, create a new Python file with the name
you have thought of.
The previously mentioned “spaghetti” command should have a file called spaghetti.py
.
Then, in the first row of the file, import the Command
class from royalnet
, and create a new class inheriting from it:
from royalnet.commands import Command
class SpaghettiCommand(Command):
...
Inside the class, override the attributes name
and description
with respectively the name of the command and a small description of what the command will do:
from royalnet.commands import Command
class SpaghettiCommand(Command):
name = "spaghetti"
description = "Send a spaghetti emoji in the chat."
Now override the Command.run()
method, adding the code you want the bot to run when the command is called.
To send a message in the chat the command was called in, you can use the CommandData.reply()
method:
from royalnet.commands import Command
class SpaghettiCommand(Command):
name = "spaghetti"
description = "Send a spaghetti emoji in the chat."
async def run(self, args, data):
data.reply("🍝")
And it’s done! The command is now ready to be used in a bot!