@develable/rutapbot-d20
Version:
[KR] Rutap Bot will makes your discord life better!
81 lines (68 loc) • 2.92 kB
JavaScript
// node_modules
const Discord = require("discord.js");
const dscl = new Discord.Client();
// 자체 모듈
const log_module = require('./lib/log_perform.js');
const err_module = require('./lib/err_perform.js');
const msgresolver = require('./lib/msgresolver.js');
const sqldo = require('./lib/dbaseconnector.js');
const command_pl = require('./lib/command_plugin.js');
const EventHandler = require('./lib/eventhandler.js');
// settings
const d_settings = require('./settings/default_settings.js');
const p_settings = require('./settings/private_settings.json');
let Presence = require('./settings/presense.js');
let RPC_settings = new Presence();
let prarg = process.argv;
prarg.shift(); prarg.shift();
let ns = { // node setting
"cmdar" : 0
};
let opti = { // 명령어에 데이터 넘길때 여따가 정의함!
nodesetting : ns
};
let eHand; // EventHandler Return.
dscl.on('ready', () => {
if (prarg.indexOf('-ar') != -1) ns.cmdar = 1; // arg에 -ar 들어가있으면 cmdar 값 변경
//eHand = new EventHandler(dscl);
console.log('ready to listening!');
if (RPC_settings.use) {
// 한바퀴 돌 때마다 js 리셋
// 2020-05-30 TO-DO: 나중에 DB 이전 고려
// for (let i in RPC_settings.game) {
// let presenceSet = setTimeout(() => {
// dscl.user.setPresence(RPC_settings.getPresence());
// }, RPC_settings.loop_timeout);
// }
// delete require.cache[require.resolve('./settings/presense.js')];
// Presence = require('./settings/presense.js');
// RPC_settings = new Presence();
let presenceSet = setInterval(() => {
let status = RPC_settings.getPresence();
console.log(status);
dscl.user.setPresence(status);
}, RPC_settings.getTimeout());
}
});
// 2020-03-03 TO-DO: try-catch 잡아놔라ㅏㅏ
dscl.on('message', (message) => {
// 메시지 리턴보다 로그가 우선임!!!!!
// 2020-05-03 TO-DO: 메시지 채널 DM일 경우 Guild 없는거 대응 요함!
log_module.msglog(dscl, message);
// 가1 : 잠수중인 본인이 채팅
command_pl.afk_disable(message);
// 가2 : 타인이 잠수중인 사람 언급
if (message.mentions.users.size != 0) { // 역할 멘션은 안쳐줌
command_pl.afk_noti(message);
}
// 가3 : 해당 메시지가 커스텀 커맨드에 등록 경우
if (command_pl.msg_cc_check(dscl, message) == true) {
command_pl.msg_cc_perform(dscl, message);
return;
}
// 틸토 바보,, message.channel이 아니라 message.channel.type,,
if (message.author.bot || message.channel.type == 'dm') return;
let args = message.content.split(' ');
msgresolver.run(dscl, message, args, opti);
});
dscl.login(p_settings.token);