mirror of
https://github.com/syuilo/ai.git
synced 2024-11-09 23:48:01 +00:00
リファクタリングなど
This commit is contained in:
parent
2f14ba690c
commit
7b04c2947e
|
@ -53,7 +53,7 @@ export default class CoreModule implements IModule {
|
||||||
data.lastBirthdayChecked = today;
|
data.lastBirthdayChecked = today;
|
||||||
friend.setPerModulesData(this, data);
|
friend.setPerModulesData(this, data);
|
||||||
|
|
||||||
const text = friend.name ? serifs.core.happyBirthdayWithName.replace('{name}', friend.name) : serifs.core.happyBirthday;
|
const text = serifs.core.happyBirthday(friend.name);
|
||||||
|
|
||||||
this.ai.sendMessage(friend.userId, {
|
this.ai.sendMessage(friend.userId, {
|
||||||
text: text
|
text: text
|
||||||
|
@ -92,7 +92,7 @@ export default class CoreModule implements IModule {
|
||||||
|
|
||||||
if (withSan) {
|
if (withSan) {
|
||||||
msg.friend.updateName(name);
|
msg.friend.updateName(name);
|
||||||
msg.reply(serifs.core.setNameOk.replace('{name}', name));
|
msg.reply(serifs.core.setNameOk(name));
|
||||||
} else {
|
} else {
|
||||||
msg.reply(serifs.core.san).then(reply => {
|
msg.reply(serifs.core.san).then(reply => {
|
||||||
this.ai.subscribeReply(this, msg.userId, msg.isMessage, msg.isMessage ? msg.userId : reply.id, {
|
this.ai.subscribeReply(this, msg.userId, msg.isMessage, msg.isMessage ? msg.userId : reply.id, {
|
||||||
|
@ -108,6 +108,7 @@ export default class CoreModule implements IModule {
|
||||||
if (!msg.text) return false;
|
if (!msg.text) return false;
|
||||||
|
|
||||||
const incLove = () => {
|
const incLove = () => {
|
||||||
|
//#region 1日に1回だけ親愛度を上げる
|
||||||
const today = getDate();
|
const today = getDate();
|
||||||
|
|
||||||
const data = msg.friend.getPerModulesData(this);
|
const data = msg.friend.getPerModulesData(this);
|
||||||
|
@ -118,41 +119,24 @@ export default class CoreModule implements IModule {
|
||||||
msg.friend.setPerModulesData(this, data);
|
msg.friend.setPerModulesData(this, data);
|
||||||
|
|
||||||
msg.friend.incLove();
|
msg.friend.incLove();
|
||||||
|
//#endregion
|
||||||
};
|
};
|
||||||
|
|
||||||
if (msg.text.includes('こんにちは')) {
|
if (msg.text.includes('こんにちは')) {
|
||||||
if (msg.friend.name) {
|
msg.reply(serifs.core.hello(msg.friend.name));
|
||||||
msg.reply(serifs.core.helloWithName.replace('{name}', msg.friend.name));
|
|
||||||
} else {
|
|
||||||
msg.reply(serifs.core.hello);
|
|
||||||
}
|
|
||||||
|
|
||||||
incLove();
|
incLove();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (msg.text.includes('おはよ')) {
|
if (msg.text.includes('おはよ')) {
|
||||||
if (msg.friend.name) {
|
msg.reply(serifs.core.goodMorning(msg.friend.name));
|
||||||
msg.reply(serifs.core.goodMorningWithName.replace('{name}', msg.friend.name));
|
|
||||||
} else {
|
|
||||||
msg.reply(serifs.core.goodMorning);
|
|
||||||
}
|
|
||||||
|
|
||||||
incLove();
|
incLove();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (msg.text.includes('おやすみ')) {
|
if (msg.text.includes('おやすみ')) {
|
||||||
if (msg.friend.name) {
|
msg.reply(serifs.core.goodNight(msg.friend.name));
|
||||||
msg.reply(serifs.core.goodNightWithName.replace('{name}', msg.friend.name));
|
|
||||||
} else {
|
|
||||||
msg.reply(serifs.core.goodNight);
|
|
||||||
}
|
|
||||||
|
|
||||||
incLove();
|
incLove();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -201,7 +185,7 @@ export default class CoreModule implements IModule {
|
||||||
if (msg.text == null) return;
|
if (msg.text == null) return;
|
||||||
|
|
||||||
const done = () => {
|
const done = () => {
|
||||||
msg.reply(serifs.core.setNameOk.replace('{name}', msg.friend.name));
|
msg.reply(serifs.core.setNameOk(msg.friend.name));
|
||||||
this.ai.unsubscribeReply(this, msg.userId);
|
this.ai.unsubscribeReply(this, msg.userId);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -128,7 +128,7 @@ export default class EmojiModule implements IModule {
|
||||||
const hand = hands[Math.floor(Math.random() * hands.length)];
|
const hand = hands[Math.floor(Math.random() * hands.length)];
|
||||||
const face = faces[Math.floor(Math.random() * faces.length)];
|
const face = faces[Math.floor(Math.random() * faces.length)];
|
||||||
const emoji = Array.isArray(hand) ? hand[0] + face + hand[1] : hand + face + hand;
|
const emoji = Array.isArray(hand) ? hand[0] + face + hand[1] : hand + face + hand;
|
||||||
msg.reply(serifs.emoji.suggest.replace('$', emoji));
|
msg.reply(serifs.emoji.suggest(emoji));
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -30,7 +30,9 @@ export default class FortuneModule implements IModule {
|
||||||
public install = (ai: 藍) => { }
|
public install = (ai: 藍) => { }
|
||||||
|
|
||||||
public onMention = (msg: MessageLike) => {
|
public onMention = (msg: MessageLike) => {
|
||||||
if (msg.text && (msg.text.includes('占') || msg.text.includes('うらな') || msg.text.includes('運勢'))) {
|
if (msg.text == null) return false;
|
||||||
|
|
||||||
|
if (msg.text.includes('占') || msg.text.includes('うらな') || msg.text.includes('運勢') || msg.text.includes('おみくじ')) {
|
||||||
const date = new Date();
|
const date = new Date();
|
||||||
const seed = `${date.getFullYear()}/${date.getMonth()}/${date.getDay()}@${msg.userId}`;
|
const seed = `${date.getFullYear()}/${date.getMonth()}/${date.getDay()}@${msg.userId}`;
|
||||||
const rng = seedrandom(seed);
|
const rng = seedrandom(seed);
|
||||||
|
|
|
@ -102,15 +102,15 @@ export default class GuessingGameModule implements IModule {
|
||||||
|
|
||||||
if (exist.secret < g) {
|
if (exist.secret < g) {
|
||||||
text = firsttime
|
text = firsttime
|
||||||
? serifs.guessingGame.less.replace('$', g.toString())
|
? serifs.guessingGame.less(g.toString())
|
||||||
: serifs.guessingGame.lessAgain.replace('$', g.toString());
|
: serifs.guessingGame.lessAgain(g.toString());
|
||||||
} else if (exist.secret > g) {
|
} else if (exist.secret > g) {
|
||||||
text = firsttime
|
text = firsttime
|
||||||
? serifs.guessingGame.grater.replace('$', g.toString())
|
? serifs.guessingGame.grater(g.toString())
|
||||||
: serifs.guessingGame.graterAgain.replace('$', g.toString());
|
: serifs.guessingGame.graterAgain(g.toString());
|
||||||
} else {
|
} else {
|
||||||
end = true;
|
end = true;
|
||||||
text = serifs.guessingGame.congrats.replace('{tries}', exist.tries.length.toString());
|
text = serifs.guessingGame.congrats(exist.tries.length.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (end) {
|
if (end) {
|
||||||
|
|
|
@ -217,29 +217,29 @@ class Session {
|
||||||
|
|
||||||
if (msg.body.game.surrendered) {
|
if (msg.body.game.surrendered) {
|
||||||
if (this.isSettai) {
|
if (this.isSettai) {
|
||||||
text = serifs.reversi.settaiButYouSurrendered.replace('{name}', this.userName);
|
text = serifs.reversi.settaiButYouSurrendered(this.userName);
|
||||||
} else {
|
} else {
|
||||||
text = serifs.reversi.youSurrendered.replace('{name}', this.userName);
|
text = serifs.reversi.youSurrendered(this.userName);
|
||||||
}
|
}
|
||||||
} else if (msg.body.winnerId) {
|
} else if (msg.body.winnerId) {
|
||||||
if (msg.body.winnerId == this.account.id) {
|
if (msg.body.winnerId == this.account.id) {
|
||||||
if (this.isSettai) {
|
if (this.isSettai) {
|
||||||
text = serifs.reversi.iWonButSettai.replace('{name}', this.userName);
|
text = serifs.reversi.iWonButSettai(this.userName);
|
||||||
} else {
|
} else {
|
||||||
text = serifs.reversi.iWon.replace('{name}', this.userName);
|
text = serifs.reversi.iWon(this.userName);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (this.isSettai) {
|
if (this.isSettai) {
|
||||||
text = serifs.reversi.iLoseButSettai.replace('{name}', this.userName);
|
text = serifs.reversi.iLoseButSettai(this.userName);
|
||||||
} else {
|
} else {
|
||||||
text = serifs.reversi.iLose.replace('{name}', this.userName);
|
text = serifs.reversi.iLose(this.userName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (this.isSettai) {
|
if (this.isSettai) {
|
||||||
text = serifs.reversi.drawnSettai.replace('{name}', this.userName);
|
text = serifs.reversi.drawnSettai(this.userName);
|
||||||
} else {
|
} else {
|
||||||
text = serifs.reversi.drawn.replace('{name}', this.userName);
|
text = serifs.reversi.drawn(this.userName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -418,8 +418,8 @@ class Session {
|
||||||
*/
|
*/
|
||||||
private postGameStarted = async () => {
|
private postGameStarted = async () => {
|
||||||
const text = this.isSettai
|
const text = this.isSettai
|
||||||
? serifs.reversi.startedSettai.replace('{name}', this.userName)
|
? serifs.reversi.startedSettai(this.userName)
|
||||||
: serifs.reversi.started.replace('{name}', this.userName).replace('{strength}', this.strength.toString());
|
: serifs.reversi.started(this.userName, this.strength.toString());
|
||||||
|
|
||||||
return await this.post(`${text}\n→[観戦する](${this.url})`);
|
return await this.post(`${text}\n→[観戦する](${this.url})`);
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,7 @@ export default class TimerModule implements IModule {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
const name = msg.friend.name;
|
const name = msg.friend.name;
|
||||||
this.ai.sendMessage(msg.userId, {
|
this.ai.sendMessage(msg.userId, {
|
||||||
text: name ? serifs.timer.notifyWithName.replace('{time}', str).replace('{name}', name) : serifs.timer.notify.replace('{time}', str)
|
text: serifs.timer.notify(str, name)
|
||||||
});
|
});
|
||||||
}, time);
|
}, time);
|
||||||
|
|
||||||
|
|
|
@ -1,27 +1,37 @@
|
||||||
export default {
|
export default {
|
||||||
core: {
|
core: {
|
||||||
setNameOk: 'わかりました。これからは{name}とお呼びしますね!',
|
setNameOk: name => `わかりました。これからは${name}とお呼びしますね!`,
|
||||||
|
|
||||||
san: 'さん付けした方がいいですか?',
|
san: 'さん付けした方がいいですか?',
|
||||||
|
|
||||||
yesOrNo: '「はい」か「いいえ」しかわからないんです...',
|
yesOrNo: '「はい」か「いいえ」しかわからないんです...',
|
||||||
hello: 'こんにちは♪',
|
|
||||||
helloWithName: 'こんにちは、{name}♪',
|
hello: name => name ? `こんにちは、${name}♪` : `こんにちは♪`,
|
||||||
goodMorning: 'おはようございます!',
|
|
||||||
goodMorningWithName: 'おはようございます、{name}!',
|
goodMorning: name => name ? `おはようございます、${name}!` : 'おはようございます!',
|
||||||
goodNight: 'おやすみなさい!',
|
|
||||||
goodNightWithName: 'おやすみなさい、{name}!',
|
goodNight: name => name ? `おやすみなさい、${name}!` : 'おやすみなさい!',
|
||||||
|
|
||||||
tooLong: '長すぎる気がします...',
|
tooLong: '長すぎる気がします...',
|
||||||
|
|
||||||
invalidName: '発音が難しい気がします',
|
invalidName: '発音が難しい気がします',
|
||||||
|
|
||||||
requireMoreLove: 'もっと仲良くなったら考えてあげてもいいですよ?',
|
requireMoreLove: 'もっと仲良くなったら考えてあげてもいいですよ?',
|
||||||
happyBirthday: 'お誕生日おめでとうございます🎉',
|
|
||||||
happyBirthdayWithName: 'お誕生日おめでとうございます、{name}🎉',
|
happyBirthday: name => name ? `お誕生日おめでとうございます、${name}🎉` : 'お誕生日おめでとうございます🎉',
|
||||||
|
|
||||||
nadenade1: '…っ! びっくりしました',
|
nadenade1: '…っ! びっくりしました',
|
||||||
|
|
||||||
nadenade2: 'わわっ… 恥ずかしいです',
|
nadenade2: 'わわっ… 恥ずかしいです',
|
||||||
|
|
||||||
nadenade3: 'ん… ありがとうございます♪',
|
nadenade3: 'ん… ありがとうございます♪',
|
||||||
|
|
||||||
kawaii: 'ありがとうございます♪'
|
kawaii: 'ありがとうございます♪'
|
||||||
},
|
},
|
||||||
|
|
||||||
keyword: {
|
keyword: {
|
||||||
learned: '({word}..... {reading}..... 覚えました)',
|
learned: '({word}..... {reading}..... 覚えました)',
|
||||||
|
|
||||||
remembered: '{reading}!'
|
remembered: '{reading}!'
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -42,52 +52,52 @@ export default {
|
||||||
/**
|
/**
|
||||||
* 対局開始
|
* 対局開始
|
||||||
*/
|
*/
|
||||||
started: '対局を{name}と始めました! (強さ{strength})',
|
started: (name, strength) => `対局を${name}と始めました! (強さ${strength})`,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 接待開始
|
* 接待開始
|
||||||
*/
|
*/
|
||||||
startedSettai: '({name}の接待を始めました)',
|
startedSettai: name => `(${name}の接待を始めました)`,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 勝ったとき
|
* 勝ったとき
|
||||||
*/
|
*/
|
||||||
iWon: '{name}に勝ちました♪',
|
iWon: name => `${name}に勝ちました♪`,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 接待のつもりが勝ってしまったとき
|
* 接待のつもりが勝ってしまったとき
|
||||||
*/
|
*/
|
||||||
iWonButSettai: '({name}に接待で勝ってしまいました...)',
|
iWonButSettai: name => `(${name}に接待で勝ってしまいました...)`,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 負けたとき
|
* 負けたとき
|
||||||
*/
|
*/
|
||||||
iLose: '{name}に負けました...',
|
iLose: name => `${name}に負けました...`,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 接待で負けてあげたとき
|
* 接待で負けてあげたとき
|
||||||
*/
|
*/
|
||||||
iLoseButSettai: '({name}に接待で負けてあげました...♪)',
|
iLoseButSettai: name => `(${name}に接待で負けてあげました...♪)`,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 引き分けたとき
|
* 引き分けたとき
|
||||||
*/
|
*/
|
||||||
drawn: '{name}と引き分けました~',
|
drawn: name => `${name}と引き分けました~`,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 接待で引き分けたとき
|
* 接待で引き分けたとき
|
||||||
*/
|
*/
|
||||||
drawnSettai: '({name}に接待で引き分けました...)',
|
drawnSettai: name => `(${name}に接待で引き分けました...)`,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 相手が投了したとき
|
* 相手が投了したとき
|
||||||
*/
|
*/
|
||||||
youSurrendered: '{name}が投了しちゃいました',
|
youSurrendered: name => `${name}が投了しちゃいました`,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 接待してたら相手が投了したとき
|
* 接待してたら相手が投了したとき
|
||||||
*/
|
*/
|
||||||
settaiButYouSurrendered: '({name}を接待していたら投了されちゃいました... ごめんなさい)',
|
settaiButYouSurrendered: name => `(${name}を接待していたら投了されちゃいました... ごめんなさい)`,
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -122,34 +132,34 @@ export default {
|
||||||
/**
|
/**
|
||||||
* 小さい数を言われたとき
|
* 小さい数を言われたとき
|
||||||
*/
|
*/
|
||||||
grater: '$より大きいですね',
|
grater: num => `${num}より大きいですね`,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 小さい数を言われたとき(2度目)
|
* 小さい数を言われたとき(2度目)
|
||||||
*/
|
*/
|
||||||
graterAgain: 'もう一度言いますが$より大きいですよ!',
|
graterAgain: num => `もう一度言いますが${num}より大きいですよ!`,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 大きい数を言われたとき
|
* 大きい数を言われたとき
|
||||||
*/
|
*/
|
||||||
less: '$より小さいですね',
|
less: num => `${num}より小さいですね`,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 大きい数を言われたとき(2度目)
|
* 大きい数を言われたとき(2度目)
|
||||||
*/
|
*/
|
||||||
lessAgain: 'もう一度言いますが$より小さいですよ!',
|
lessAgain: num => `もう一度言いますが${num}より小さいですよ!`,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 正解したとき
|
* 正解したとき
|
||||||
*/
|
*/
|
||||||
congrats: '正解です🎉 ({tries}回目で当てました)',
|
congrats: tries => `正解です🎉 (${tries}回目で当てました)`,
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 絵文字生成
|
* 絵文字生成
|
||||||
*/
|
*/
|
||||||
emoji: {
|
emoji: {
|
||||||
suggest: 'こんなのはどうですか?→$',
|
suggest: emoji => `こんなのはどうですか?→${emoji}`,
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -164,8 +174,9 @@ export default {
|
||||||
*/
|
*/
|
||||||
timer: {
|
timer: {
|
||||||
set: 'わかりました!',
|
set: 'わかりました!',
|
||||||
|
|
||||||
invalid: 'うーん...?',
|
invalid: 'うーん...?',
|
||||||
notify: '{time}経ちましたよ!',
|
|
||||||
notifyWithName: '{name}、{time}経ちましたよ!'
|
notify: (time, name) => name ? `${name}、${time}経ちましたよ!` : `${time}経ちましたよ!`
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue