Denim-Bot/modules/komComplex.js
Histmy 276966b93a rewrote majority of modules...
+ more zareaguj supports more than one emout
+ zareaguj, rekni, clap and clap2 delete original message
+ added more voliz
2021-04-12 15:55:29 +02:00

126 lines
3.5 KiB
JavaScript

// Komandy, který buď nějakým způsobem mění funkci nebo "vzhled" bota
// nebo donutí bota něco udělat (odeslání zprávy s výsledkem nebo smazání originální zprávy se nepočítá)
const akce = { hraj: 'PLAYING', sleduj: 'WATCHING', poslouchej: 'LISTENING', soutez: 'COMPETING', soutěž: 'COMPETING', nedelej: '', nedělej: '' };
const zarizeni = { desktop: 'Počítač', mobile: 'Mobil', web: 'Web' };
const statusy = { online: '🟢', idle: '🟡', dnd: '🔴' };
const ping = /^<@!?\d+>$/;
module.exports = {
more_komand: (mes, komand, celArgs) => {
switch (komand) {
case 'online':
case 'onlajn':
case 'zelenej':
mes.client.user.setStatus('online');
mes.channel.send('ano pane');
break;
case 'neviditelnej':
case 'offline':
case 'oflajn':
mes.client.user.setStatus('invisible');
mes.channel.send('ano pane');
break;
case 'dnd':
case 'nerusit':
case 'nerušit':
case 'červenej':
case 'cervenej':
mes.client.user.setStatus('dnd');
mes.channel.send('ano pane');
break;
case 'žlutej':
case 'zlutej':
case 'afk':
case 'idle':
case 'nepřítomnej':
case 'nepritomnej':
mes.client.user.setStatus('idle');
mes.channel.send('ano pane');
break;
case 'hraj':
case 'sleduj':
case 'poslouchej':
case 'soutez':
case 'soutěž':
case 'nedelej':
case 'nedělej':
mes.client.user.setActivity(celArgs, { type: akce[komand] });
mes.channel.send('ano pane');
mes.react('730175107313565717');
break;
case 'fight':
case 'figh':
case 'fajt':
if (!ping.test(celArgs)) {
mes.channel.send('tak si kokot ti kokote');
break;
}
const vyherce = Math.round(Math.random()) ? mes.author : celArgs;
mes.channel.send(`tento figh vyhrál: ${vyherce}!`);
break;
case 'status':
if (!ping.test(celArgs)) {
mes.channel.send('tak si kokot ti kokote');
break;
}
const uzivatel = mes.mentions.users.first();
const embed = {
title: `Informace o statusech pro ${uzivatel.username}:`,
color: 431075
};
const presence = uzivatel.presence.clientStatus;
if (!presence) {
embed.description = '*Všude je offline*';
} else {
const uStatusy = [];
Object.keys(presence).forEach(status => {
uStatusy.push(`${zarizeni[status]}: ${statusy[presence[status]]}`);
});
embed.description = uStatusy.join('\n');
}
mes.channel.send({ embed });
break;
case 'zareaguj':
case 'reakce':
case 'reaguj':
if (!celArgs) {
mes.channel.send('retard');
break;
}
const emouty = celArgs.match(/<a?:\w{1,32}:\d+>/g);
if (!emouty) {
mes.channel.send('retard');
break;
}
let naCo;
(async () => {
if (mes.reference) {
naCo = await mes.channel.messages.fetch(mes.reference.messageID);
} else {
const msgs = [...mes.channel.messages.cache.values()];
naCo = msgs[msgs.length - 2];
}
emouty.forEach(emout => naCo.react(emout));
mes.delete();
})();
break;
default:
return false;
}
return true;
}
};