import { Plugin, EventListener, Configurable, InjectService, Auto } from '@squeebot/core/lib/plugin'; import { EMessageType, IMessage, IMessageTarget, Protocol } from '@squeebot/core/lib/types'; import { logger } from '@squeebot/core/lib/core'; class MyPlugin extends Plugin { @Auto() initialize(): void { } @EventListener('message') messageHandler(msg: IMessage): void { if (msg.data.indexOf('Squeebot') !== -1) { msg.resolve('Hello %s!', msg.sender!.name); } } @EventListener('pluginUnload') unloadEventHandler(plugin: string | Plugin): void { if (plugin === this.name || plugin === this) { logger.debug('[%s]', this.name, 'shutting down..'); this.config.save().then(() => this.emit('pluginUnloaded', this)); } } } module.exports = MyPlugin;