+ more zareaguj supports more than one emout + zareaguj, rekni, clap and clap2 delete original message + added more voliz
126 lines
3.5 KiB
JavaScript
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;
|
|
}
|
|
};
|