Files
discord.js/test/tester1000.js
2018-06-13 19:42:43 -07:00

62 lines
1.9 KiB
JavaScript

const Discord = require('../src');
const { token, prefix, owner } = require('./auth.js');
// eslint-disable-next-line no-console
const log = (...args) => console.log(process.uptime().toFixed(3), ...args);
const client = new Discord.Client({ apiRequestConcurrency: Infinity, restTimeOffset: 0 });
client.on('debug', log);
client.on('ready', () => {
log('READY', client.user.tag, client.user.id);
});
client.on('rateLimit', info => log(`ratelimited for ${info.timeout} ms`));
client.on('error', log);
const commands = {
eval: message => {
if (message.author.id !== owner) return;
let res;
try {
res = eval(message.content);
if (typeof res !== 'string') res = require('util').inspect(res);
} catch (err) {
// eslint-disable-next-line no-console
console.error(err.stack);
res = err.message;
}
if (res.length > 6000) {
message.channel.send('response too long; check console');
// eslint-disable-next-line no-console
console.log(res);
} else {
message.channel.send(res, { code: 'js', split: true });
}
},
ping: message => message.reply('pong'),
spam: async message => {
const start = Date.now();
await Promise.all(Array.from({ length: 10 }, (_, i) => message.channel.send(`spam${i}`)));
const diff = Date.now() - start;
message.channel.send(`total time: \`${diff}ms\``);
},
};
client.on('message', message => {
if (!message.content.startsWith(prefix) || message.author.bot) return;
message.content = message.content.replace(prefix, '').trim().split(' ');
const command = message.content.shift();
message.content = message.content.join(' ');
// eslint-disable-next-line no-console
console.log('COMMAND', command, message.content);
if (command in commands) commands[command](message);
});
client.login(token);
// eslint-disable-next-line no-console
process.on('unhandledRejection', console.error);