Creating Plugins

Some Python knowledge is required to create plugins in general. Therefore, I highly recommend you to learn Python first. Please see this FAQ

Note

  • All plugins must be added to the plugins folder.

  • Plugins must end with .py extension

Here’s a sample code for a new plugin

# Import class 'Stark' in every plugin
from pystark import Stark, Message

# use 'Stark.cmd' decorator to create commands
# @Stark.cmd('name', description="...", owner_only=False, extra_filters=None, group=0, private=False) - defaults

@Stark.cmd('sample', "Sample command for bot")  # or @Stark.command('sample', description="Sample command for bot")
async def sample_function(bot: Stark, msg: Message):
    # 'msg.react()' is 'msg.reply()' with del_in added argument
    await msg.react('This will be the reply when /sample is sent.')

But anyway, you can create easier plugins like text plugins with no python knowledge whatsoever.

from pystark import Stark


@Stark.cmd('command_name', description='command description')
async def text_plugin(bot, msg):
    text = 'your text here'
    await msg.react(text)

For example, below plugin has a command /greet and the bot will reply with Welcome to the Bot

from pystark import Stark


@Stark.cmd('greet', "Greet the user")
async def text_plugin(bot, msg):
    text = 'Welcome to the Bot'
    await msg.react(text)