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!