mirror of
https://github.com/nullnyat/NullcatChan.git
synced 2025-08-06 17:53:57 +09:00
Add dice module
This commit is contained in:
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;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user