From c03b549b1248cda418290ed0bd6daa6beef1aadc Mon Sep 17 00:00:00 2001 From: syuilo Date: Tue, 28 Aug 2018 16:02:20 +0900 Subject: [PATCH] Refactor --- src/ai.ts | 7 ++----- src/index.ts | 24 ++++++++++++++---------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/ai.ts b/src/ai.ts index f9e46ad..b1ce4e7 100644 --- a/src/ai.ts +++ b/src/ai.ts @@ -40,8 +40,9 @@ export default class 藍 { public friends: loki.Collection; - constructor(account: any) { + constructor(account: any, modules: IModule[]) { this.account = account; + this.modules = modules; this.db = new loki('memory.json', { autoload: true, @@ -116,10 +117,6 @@ export default class 藍 { //#endregion } - public install = (module: IModule) => { - this.modules.push(module); - } - private onMessage = (msg: any) => { switch (msg.type) { // メンションされたとき diff --git a/src/index.ts b/src/index.ts index 215d001..4f7f327 100644 --- a/src/index.ts +++ b/src/index.ts @@ -12,6 +12,7 @@ import WelcomeModule from './modules/welcome'; import TimerModule from './modules/timer'; import * as request from 'request-promise-native'; +import IModule from './module'; const promiseRetry = require('promise-retry'); console.log('--- starting ai... ---'); @@ -25,17 +26,20 @@ promiseRetry(retry => { }).then(account => { console.log(`account fetched: @${account.username}`); - const ai = new 藍(account); + const modules: IModule[] = [ + new CoreModule(), + new PingModule(), + new WelcomeModule(), + new EmojiModule(), + new FortuneModule(), + new GuessingGameModule(), + new ReversiModule(), + new TimerModule() + ]; - ai.install(new CoreModule()); - ai.install(new PingModule()); - ai.install(new WelcomeModule()); - ai.install(new EmojiModule()); - ai.install(new FortuneModule()); - ai.install(new GuessingGameModule()); - ai.install(new ReversiModule()); - ai.install(new TimerModule()); - if (config.keywordEnabled) ai.install(new KeywordModule()); + if (config.keywordEnabled) modules.push(new KeywordModule()); + + new 藍(account, modules); console.log('--- ai started! ---'); });