From 7d33368ebd48acf5be4877ff691c8ce505238084 Mon Sep 17 00:00:00 2001 From: MiaoWoo Date: Sun, 22 Sep 2019 18:02:59 +0800 Subject: [PATCH] feat: add hello world plugin Signed-off-by: MiaoWoo --- packages/plugins/src/HelloWorld.ts | 57 ++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 packages/plugins/src/HelloWorld.ts diff --git a/packages/plugins/src/HelloWorld.ts b/packages/plugins/src/HelloWorld.ts new file mode 100644 index 00000000..008993c9 --- /dev/null +++ b/packages/plugins/src/HelloWorld.ts @@ -0,0 +1,57 @@ +import { plugin, interfaces, cmd, listener, tab } from '@ms/plugin' + +@plugin({ name: 'HelloWorld', version: '1.0.0', author: 'MiaoWoo', source: __filename }) +export class HelloWorld extends interfaces.Plugin { + load() { + this.logger.log('Test Plugin load from MiaoScript Plugin System...'); + } + enable() { + this.logger.log('Test Plugin enable from MiaoScript Plugin System...'); + } + disable() { + this.logger.log('Test Plugin disable from MiaoScript Plugin System...'); + } + + bukkitload() { + this.logger.log('Load When ServerType is Bukkit!') + } + bukkitenable() { + this.logger.log('Enable When ServerType is Bukkit!') + } + bukkitdisable() { + this.logger.log('Disable When ServerType is Bukkit!') + } + + spongeload() { + this.logger.log('Load When ServerType is Sponge!') + } + spongeenable() { + this.logger.log('Enable When ServerType is Sponge!') + } + spongedisable() { + this.logger.log('Disable When ServerType is Sponge!') + } + + @cmd() + hello(sender: any, command: string, args: string[]) { + this.logger.log(sender, command, args); + sender.sendMessage(JSON.stringify({ command, ...args })) + } + + @tab() + tabhello(_sender: any, _command: string, _args: string[]) { + return ['world'] + } + + @listener({ servertype: 'bukkit' }) + playerjoin(event: any) { + this.logger.console(`§aBukkit PlayerJoinEvent: §b${event.player.name}`) + setTimeout(() => this.logger.sender(event.player, `§a欢迎来到 §bMiaoScript §a的世界!`), 10); + } + + @listener({ servertype: 'sponge' }) + clientconnectionevent$join(event: any) { + this.logger.console(`§aSponge ClientConnectionEvent.Join: §b${event.targetEntity.name}`) + setTimeout(() => this.logger.sender(event.targetEntity, `§a欢迎来到 §bMiaoScript §a的世界!`), 10); + } +}