// 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(//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; } };