Plugins: An introduction ======================== Plugins provide a neat way to extend Houdini's functionality. Here is an example! .. code-block:: python from houdini import handlers from houdini.handlers import XTPacket from houdini.plugins import IPlugin from houdini import commands from houdini import permissions class Example(IPlugin): author = "Ben" description = "Example plugin for developers" version = "1.0.0" def __init__(self, server): super().__init__(server) async def ready(self): self.server.logger.info('Example.ready()') await self.server.permissions.insert(name='houdini.ping') async def message_cooling(self, p): print(f'{p}, Message was sent during cooldown') @handlers.handler(XTPacket('m', 'sm')) @handlers.cooldown(1, callback=message_cooling) async def handle_send_message(self, p, penguin_id: int, message: str): print(f'Do stuff with {message}') @commands.command('ping') @permissions.has('houdini.ping') async def ping(self, p): await p.send_xt('cprompt', 'Pong') @commands.command('ac') async def add_coins(self, p, amount: int = 100): await p.add_coins(amount, stay=True) This page is a WIP!