199 行
6.3 KiB
JavaScript
199 行
6.3 KiB
JavaScript
|
var discord = require('discord.js');
|
|||
|
var auth = require('./auth.json');
|
|||
|
|
|||
|
var client = new discord.Client();
|
|||
|
client.login(auth.token);
|
|||
|
|
|||
|
client.on('error', console.error);
|
|||
|
|
|||
|
function getUserFromMention(mention) {
|
|||
|
if (!mention) return;
|
|||
|
|
|||
|
if (mention.startsWith('<@') && mention.endsWith('>')) {
|
|||
|
mention = mention.slice(2, -1);
|
|||
|
|
|||
|
if (mention.startsWith('!')) {
|
|||
|
mention = mention.slice(1);
|
|||
|
}
|
|||
|
|
|||
|
return mention;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
client.on("message", message => {
|
|||
|
if (message.author.bot) return; // 自分へ返事しないで
|
|||
|
|
|||
|
if (/バカ/.test(message.content) || /馬鹿/.test(message.content)) {
|
|||
|
message.reply('アタイはバカじゃないもん!');
|
|||
|
}
|
|||
|
|
|||
|
else if (/バーカ/.test(message.content)
|
|||
|
|| /ばーか/.test(message.content)
|
|||
|
|| /バーカバーカ/.test(message.content)
|
|||
|
|| /ばーかばーか/.test(message.content)) {
|
|||
|
message.channel.send('バーカバーカ!');
|
|||
|
}
|
|||
|
|
|||
|
else if (/強い/.test(message.content) ||
|
|||
|
/つよい/.test(message.content) ||
|
|||
|
/最強/.test(message.content) ||
|
|||
|
/さいきょう/.test(message.content)
|
|||
|
) {
|
|||
|
message.channel.send('アタイは最強だ!');
|
|||
|
}
|
|||
|
|
|||
|
else if (/ケロケロ/.test(message.content) || /けろけろ/.test(message.content)) {
|
|||
|
message.channel.send('パーフェクトフリーズ!!');
|
|||
|
}
|
|||
|
|
|||
|
else if (/こんにちは/.test(message.content)) {
|
|||
|
message.reply('こんにちはー');
|
|||
|
}
|
|||
|
|
|||
|
else if (/こんばんは/.test(message.content)) {
|
|||
|
message.reply('こんばんはー');
|
|||
|
}
|
|||
|
|
|||
|
else if (/おはよ/.test(message.content)) {
|
|||
|
message.reply('おはよ〜!まだ眠いだけど');
|
|||
|
}
|
|||
|
|
|||
|
else if (/おやすみ/.test(message.content)
|
|||
|
|| /寝る/.test(message.content)) {
|
|||
|
message.reply('おやすみなさ〜い!');
|
|||
|
}
|
|||
|
|
|||
|
else if (/ロリ/.test(message.content)) {
|
|||
|
message.channel.send('ロリ');
|
|||
|
}
|
|||
|
|
|||
|
else if (/ショタ/.test(message.content)) {
|
|||
|
message.channel.send('ショタ');
|
|||
|
}
|
|||
|
|
|||
|
else if (/チルノちゃん/.test(message.content)) {
|
|||
|
message.reply('な〜にをー?');
|
|||
|
}
|
|||
|
|
|||
|
else if (/おやつに入れて/.test(message.content)) {
|
|||
|
message.reply('アタイは食べてないわ!');
|
|||
|
}
|
|||
|
|
|||
|
else if (/➈/.test(message.content)
|
|||
|
|| /⑨/.test(message.content)) {
|
|||
|
message.channel.send('アタイは天才だよー');
|
|||
|
}
|
|||
|
|
|||
|
else if (message.isMentioned(client.user)) {
|
|||
|
let mes = message.content.split(' ')[1];
|
|||
|
|
|||
|
if (mes) {
|
|||
|
const user = getUserFromMention(mes);
|
|||
|
|
|||
|
if (mes.startsWith('私は')) {
|
|||
|
var fs = require('fs');
|
|||
|
|
|||
|
fs.readFile('/root/bot/cirno-discord/userinfo.json', 'utf8', (err, data) => {
|
|||
|
if (err) throw err;
|
|||
|
let fc = JSON.parse(data);
|
|||
|
|
|||
|
if (!fc[message.author.id]) {
|
|||
|
fc[message.author.id] = {
|
|||
|
name: '',
|
|||
|
age: '',
|
|||
|
country: '',
|
|||
|
birthday: ''
|
|||
|
}
|
|||
|
|
|||
|
fs.writeFile('/root/bot/cirno-discord/userinfo.json', JSON.stringify(fc), 'utf8', (err) => {
|
|||
|
if (err) {
|
|||
|
console.error(err);
|
|||
|
return;
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
keyword = message.content.split('私は');
|
|||
|
|
|||
|
if (message.content.endsWith('です')) {
|
|||
|
keyword = keyword[1].split('です');
|
|||
|
|
|||
|
if (keyword[0]) {
|
|||
|
fc[message.author.id].name = keyword[0];
|
|||
|
fs.writeFile('/root/bot/cirno-discord/userinfo.json', JSON.stringify(fc), 'utf8', (err) => {
|
|||
|
if (err) {
|
|||
|
console.error(err);
|
|||
|
return;
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
else if (message.content.endsWith('歳')) {
|
|||
|
keyword = keyword[1].split('歳');
|
|||
|
|
|||
|
if (keyword[0]) {
|
|||
|
fc[message.author.id].age = keyword[0];
|
|||
|
fs.writeFile('/root/bot/cirno-discord/userinfo.json', JSON.stringify(fc), 'utf8', (err) => {
|
|||
|
if (err) {
|
|||
|
console.error(err);
|
|||
|
return;
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
else if (message.content.endsWith('出身')) {
|
|||
|
keyword = keyword[1].split('出身');
|
|||
|
|
|||
|
if (keyword[0]) {
|
|||
|
fc[message.author.id].country = keyword[0];
|
|||
|
fs.writeFile('/root/bot/cirno-discord/userinfo.json', JSON.stringify(fc), 'utf8', (err) => {
|
|||
|
if (err) {
|
|||
|
console.error(err);
|
|||
|
return;
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
else message.reply('は?');
|
|||
|
});
|
|||
|
|
|||
|
message.reply('わかったわ!');
|
|||
|
}
|
|||
|
|
|||
|
else if (user) {
|
|||
|
var fs = require('fs');
|
|||
|
|
|||
|
fs.readFile('/root/bot/cirno-discord/userinfo.json', 'utf8', (err, data) => {
|
|||
|
if (err) throw err;
|
|||
|
let fc = JSON.parse(data);
|
|||
|
|
|||
|
if (fc[user]) {
|
|||
|
if (message.content.endsWith('の名前は?')) {
|
|||
|
if (fc[user].name) message.reply(fc[user].name + 'わよ!');
|
|||
|
else message.reply('わかんない。教えてくれていいの?');
|
|||
|
}
|
|||
|
else if (message.content.endsWith('の国は?') || message.content.endsWith('の県は?')) {
|
|||
|
if (fc[user].country) message.reply(fc[user].country + 'わよ!');
|
|||
|
else message.reply('わかんない。教えてくれていいの?');
|
|||
|
}
|
|||
|
else if (message.content.endsWith('は何歳?')) {
|
|||
|
if (fc[user].age) message.reply(fc[user].age + 'わよ!');
|
|||
|
else message.reply('わかんない。教えてくれていいの?');
|
|||
|
}
|
|||
|
else if (message.content.endsWith('の誕生日はいつ?')) {
|
|||
|
if (fc[user].birthday) message.reply(fc[user].birthday + 'わよ!');
|
|||
|
else message.reply('わかんない。教えてくれていいの?');
|
|||
|
}
|
|||
|
}
|
|||
|
else message.reply('この奴わかんない…');
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
else if (/自己紹介したいんですが/.test(message.content)) {
|
|||
|
message.reply("簡単わよ!\nアタイをメンションすると、下記のことを教えてあげてってね!\n・私は【名前】です・\in・私は【数字】歳\n・私は【都道府県・国等】出身\n・私の誕生日は【月日】");
|
|||
|
}
|
|||
|
|
|||
|
else message.reply('わからなかった…');
|
|||
|
}
|
|||
|
}
|
|||
|
});
|