mirror of
https://github.com/syuilo/ai.git
synced 2024-11-22 13:17:59 +00:00
Add dice module
This commit is contained in:
parent
2786fb874e
commit
0d0872e615
|
@ -10,6 +10,7 @@ import GuessingGameModule from './modules/guessing-game';
|
||||||
import KeywordModule from './modules/keyword';
|
import KeywordModule from './modules/keyword';
|
||||||
import WelcomeModule from './modules/welcome';
|
import WelcomeModule from './modules/welcome';
|
||||||
import TimerModule from './modules/timer';
|
import TimerModule from './modules/timer';
|
||||||
|
import DiceModule from './modules/dice';
|
||||||
import ServerModule from './modules/server';
|
import ServerModule from './modules/server';
|
||||||
|
|
||||||
import * as request from 'request-promise-native';
|
import * as request from 'request-promise-native';
|
||||||
|
@ -36,6 +37,7 @@ promiseRetry(retry => {
|
||||||
new GuessingGameModule(),
|
new GuessingGameModule(),
|
||||||
new ReversiModule(),
|
new ReversiModule(),
|
||||||
new TimerModule(),
|
new TimerModule(),
|
||||||
|
new DiceModule(),
|
||||||
new ServerModule()
|
new ServerModule()
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
36
src/modules/dice/index.ts
Normal file
36
src/modules/dice/index.ts
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
import 藍 from '../../ai';
|
||||||
|
import IModule from '../../module';
|
||||||
|
import MessageLike from '../../message-like';
|
||||||
|
|
||||||
|
export default class DiceModule implements IModule {
|
||||||
|
public readonly name = 'dice';
|
||||||
|
private ai: 藍;
|
||||||
|
|
||||||
|
public install = (ai: 藍) => {
|
||||||
|
this.ai = ai;
|
||||||
|
}
|
||||||
|
|
||||||
|
public onMention = (msg: MessageLike) => {
|
||||||
|
if (msg.text == null) return false;
|
||||||
|
|
||||||
|
const query = msg.text.match(/([0-9]+)[dD]([0-9]+)/);
|
||||||
|
|
||||||
|
if (query == null) return false;
|
||||||
|
|
||||||
|
const times = parseInt(query[1], 10);
|
||||||
|
const dice = parseInt(query[2], 10);
|
||||||
|
|
||||||
|
if (times < 1 || times > 10) return false;
|
||||||
|
if (dice < 2 || dice > 1000) return false;
|
||||||
|
|
||||||
|
const results: number[] = [];
|
||||||
|
|
||||||
|
for (let i = 0; i < times; i++) {
|
||||||
|
results.push(Math.floor(Math.random() * dice) + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
msg.reply(results.join(' '));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
|
@ -22,6 +22,10 @@ Misskeyに24時間常駐している。AIなので睡眠は不要だが、たま
|
||||||
### 絵文字
|
### 絵文字
|
||||||
藍に「絵文字」と言うと、藍が考えた絵文字の組み合わせを教えてくれます。
|
藍に「絵文字」と言うと、藍が考えた絵文字の組み合わせを教えてくれます。
|
||||||
|
|
||||||
|
### サイコロ
|
||||||
|
ダイスノーテーションを伝えるとサイコロを振ってくれます。
|
||||||
|
例: "2d6" (6面サイコロを2回振る)、"3d5" (5面サイコロを3回振る)
|
||||||
|
|
||||||
### 数当てゲーム
|
### 数当てゲーム
|
||||||
藍にメッセージで「数当てゲーム」と言うと遊べます。
|
藍にメッセージで「数当てゲーム」と言うと遊べます。
|
||||||
藍の考えている数字を当てるゲームです。
|
藍の考えている数字を当てるゲームです。
|
||||||
|
|
Loading…
Reference in a new issue