1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
// TODO: add pause, resume and volume
const fs = require('fs');
const Discord = require('discord.js');
const config = require('./config.json');
const bot = new Discord.Client();
bot.commands = new Discord.Collection();
const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));
for (const file of commandFiles) {
const command = require(`./commands/${file}`);
bot.commands.set(command.name, command);
}
bot.on('ready', () => {
console.log(`Started bot: ${bot.user.tag} (ID: ${bot.user.id})\nCurrently running on ${bot.guilds.size} server(s).`); // Startup dialouge in output console
bot.user.setActivity('psycho~ uwu', { // Set status
type: 'LISTENING'
});
});
bot.on('error', console.error);
bot.on('message', async msg => {
//if (msg.channel.name === 'bots' || msg.channel.name === 'bot-commands' || msg.member.hasPermission('KICK_MEMBERS')) {
const upTime = require('moment');
require('moment-duration-format');
const duration = upTime.duration(bot.uptime).format(" D [days], H [hrs], m [mins], s [secs]");
var msgContent = msg.content.toLowerCase();
if (prefixCheck()) {
console.log(msg.member.user.tag, 'says', msgContent, 'in #' + msg.channel.name);
}
// Check prefixies in config.json
function prefixCheck() {
if (msgContent.startsWith(config.prefixes.main)) {
return "main";
} else if (msgContent.startsWith(config.prefixes.alt)) {
return "alt1";
} else if (msgContent.startsWith(config.prefixes.alt2)) {
return "alt2";
} else if (msgContent.startsWith(config.prefixes.alt3)) {
return "alt3";
} else if (msgContent.startsWith(config.prefixes.alt4)) {
return "alt4";
} else if (msgContent.startsWith(config.prefixes.alt5)) {
return "alt5";
} else if (msgContent.startsWith(config.prefixes.alt6)) {
return "alt6";
} else if (msgContent.startsWith(config.prefixes.alt6b)) {
return "alt6b";
}
}
if (prefixCheck() == "main") {
var args = msg.content.slice(config.prefixes.main.length).split(/ +/);
var command = args.shift().toLowerCase();
if (msg.author.bot || !msg.content.startsWith(config.prefixes.main)) return;
} else if (prefixCheck() == "alt1") {
var args = msg.content.slice(config.prefixes.alt.length).split(/ +/);
var command = args.shift().toLowerCase();
if (msg.author.bot || !msg.content.startsWith(config.prefixes.alt)) return;
} else if (prefixCheck() == "alt2") {
var args = msg.content.slice(config.prefixes.alt2.length).split(/ +/);
var command = args.shift().toLocaleLowerCase();
if (msg.author.bot || !msg.content.startsWith(config.prefixes.alt2)) return;
} else if (prefixCheck() == "alt3") {
var args = msg.content.slice(config.prefixes.alt3.length).split(/ +/);
var command = args.shift().toLocaleLowerCase();
if (msg.author.bot || !msg.content.startsWith(config.prefixes.alt3)) return;
} else if (prefixCheck() == "alt4") {
var args = msg.content.slice(config.prefixes.alt4.length).split(/ +/);
var command = args.shift().toLocaleLowerCase();
if (msg.author.bot || !msg.content.startsWith(config.prefixes.alt4)) return;
} else if (prefixCheck() == "alt5") {
var args = msg.content.slice(config.prefixes.alt4.length).split(/ +/);
var command = args.shift().toLocaleLowerCase();
if (msg.author.bot || !msg.content.startsWith(config.prefixes.alt4)) return;
} else if (prefixCheck() == "alt6") {
var args = msg.content.slice(config.prefixes.alt4.length).split(/ +/);
var command = args.shift().toLocaleLowerCase();
if (msg.author.bot || !msg.content.startsWith(config.prefixes.alt4)) return;
} else if (prefixCheck() == "alt6b") {
var args = msg.content.slice(config.prefixes.alt4b.length).split(/ +/);
var command = args.shift().toLocaleLowerCase();
if (msg.author.bot || !msg.content.startsWith(config.prefixes.alt4b)) return;
}
// Random edge case arguments
function noArgs() {
msg.channel.send(`invalid argument(s). type \`${config.prefixes.main}help\` for more information.`);
}
function noCommand() {
msg.channel.send(`invalid or unspecified command. type \`${config.prefixes.main}help\`.`);
}
function perms(p) {
if (msg.member.hasPermission(p)) return true;
}
// Main
try {
bot.commands.get(command).execute(msg, args, bot);
return;
} catch (error) {
console.error(error);
//msg.reply('command error\'d out, check logs');
//return;
}
// Small command which need variables
if (command == 'uptime' | command == 'ut') {
msg.reply(duration);
}
// Reacts with ping emoji when @everyone
if (msg.mentions.everyone) {
msg.react(':ArisaPing:695887537390223402');
}
//} else if (msg.channel.name !== 'bots' && msg.content.startsWith(`${config.prefixes.main}`) && !msg.member.hasPermission('KICK_MEMBERS')) return;
});
// Get bot token
bot.login(config['secret']);
|