From 862e9134458d6b08fb9fa4a33e93069509e215bb Mon Sep 17 00:00:00 2001 From: histmy Date: Sun, 14 Mar 2021 18:21:50 +0100 Subject: [PATCH] Rewrite of modules --- app.js | 66 +++++++------ modules/help.js | 238 +++++++++++++++++++++++---------------------- modules/hovna.js | 210 +++++++++++++++++++-------------------- modules/normal.js | 183 ++++++++++++++++++---------------- modules/onReady.js | 3 + modules/status.js | 64 ++++++------ modules/vojs.js | 141 +++++++++++++++------------ 7 files changed, 476 insertions(+), 429 deletions(-) create mode 100644 modules/onReady.js diff --git a/app.js b/app.js index a260e24..5aa0d7a 100644 --- a/app.js +++ b/app.js @@ -1,43 +1,47 @@ const { Client } = require('discord.js'); +const fs = require("fs"); const client = new Client(); require('dotenv').config(); const prefix = process.env.PREFIX || 'more'; +const modulFolder = "./modules/"; +const komand_handlery = []; +const eventy = { on_message: [] }; -const nazvyEventu = ["ready", "presenceUpdate", "voiceStateUpdate"]; -const modulFolder = "./moduly/"; - -const fs = require("fs"); - -let moduly = []; +const runEvent = (name, args) => { + eventy[name].forEach(listener => { + listener(...args); + }); +} fs.readdirSync(modulFolder).forEach(function (soubor) { - if (soubor.endsWith(".js")) { - moduly.push(require(modulFolder + soubor)); - } -}); - -for (let i = 0; i < nazvyEventu.length; i++) { - discord.on(nazvyEventu[i], function (...args) { udelejEvent(nazvyEventu[i], ...args); }); -} - -discord.on("message", function (mes) { - udelejEvent("message", mes); - const [mes_prefix, komand, ...args] = mes.content.toLowerCase().split(' '); - if (mes_prefix === prefix) { - if (!udelejEvent("on_more_subkomand", komand, args)) mes.channel.send('co to znamena ti gadzovko'); - } -}); - -function udelejEvent(nazev, ...args) { - for (let i = 0; i < moduly.length; i++) { - const funkce = moduly[i]["on_" + nazev]; - if (funkce) { - if (funkce(...args)) return true; + if (soubor.endsWith(".js")) { + const modul = require(`${modulFolder}${soubor}`); + Object.keys(modul).forEach(name => { + if (name.startsWith('on_')) { + if (!eventy[name]) { + eventy[name] = []; + if (name !== 'on_message') client.on(name.substring(3), (...args) => runEvent(name, args)); } - } - return false; -} + eventy[name].push(modul[name]); + } else if (name === 'more_komand') komand_handlery.push(modul[name]); + }); + } +}); + +client.on("message", function (mes) { + if (process.env.IGNORE_MESS) return; + + runEvent('on_message', [mes]); + const [mes_prefix, komand, ...args] = mes.content.toLowerCase().split(' '); + if (mes_prefix !== prefix) return; + + const celArgs = args.join(' '); + for (let i = 0; i < komand_handlery.length; i++) { + if (komand_handlery[i](mes, komand, celArgs)) return; + } + mes.channel.send('co to znamena ti gadzovko'); +}); client.login(process.env.TOKEN); diff --git a/modules/help.js b/modules/help.js index efecc93..8a10d16 100644 --- a/modules/help.js +++ b/modules/help.js @@ -1,125 +1,127 @@ -module.exports = (mes, komand) => { - switch (komand) { +module.exports = { + more_komand: (mes, komand) => { + switch (komand) { - case 'pomoc': - mes.channel.send('tady sou ti komandy k tomudle botoj ```more rekni \nmore hraj \nmore fajt \nmore kobel\nmore jo\nmore ne\nmore vole\nmore vtip\nmore rekt\nmore pisnicka\nmore gif\nmore lag\nmore pozdrav \nmore zhejti \nmore uraz \nmore nazor \nmore jsi \nmore jakmoc \nmore je \nmore ma \nmore triggered```'); - break; + case 'pomoc': + mes.channel.send('tady sou ti komandy k tomudle botoj ```more rekni \nmore hraj \nmore fajt \nmore kobel\nmore jo\nmore ne\nmore vole\nmore vtip\nmore rekt\nmore pisnicka\nmore gif\nmore lag\nmore pozdrav \nmore zhejti \nmore uraz \nmore nazor \nmore jsi \nmore jakmoc \nmore je \nmore ma \nmore triggered```'); + break; - case 'pomoc2': - const embed = { - "title": "__tadi sou ti komandi k tomudle botoj__", - "color": 16711680, - "thumbnail": { - "url": "https://cdn.discordapp.com/emojis/730175107313565717.png" - }, - "author": { - "name": "DENIM 3001", - "url": "https://denim3001.deadfish.cz", - "icon_url": "https://cdn.discordapp.com/emojis/730175107313565717.png" - }, - "fields": [ - { - "name": "more rekni [co]", - "value": "povidam povidacki", - "inline": true + case 'pomoc2': + const embed = { + "title": "__tadi sou ti komandi k tomudle botoj__", + "color": 16711680, + "thumbnail": { + "url": "https://cdn.discordapp.com/emojis/730175107313565717.png" }, - { - "name": "more jakmoc [co]", - "value": "si kokot na 100%", - "inline": true + "author": { + "name": "DENIM 3001", + "url": "https://denim3001.deadfish.cz", + "icon_url": "https://cdn.discordapp.com/emojis/730175107313565717.png" }, - { - "name": "more nazor [na co]", - "value": "si pycovina", - "inline": true - }, - { - "name": "more pozdrav [koho]", - "value": "zdravym", - "inline": true - }, - { - "name": "more zhejti [koho, co]", - "value": "si pycovina zasrana vimrdana", - "inline": true - }, - { - "name": "more kam [...]", - "value": "patris pod most", - "inline": true - }, - { - "name": "more jsi [co]", - "value": "jsem picovina", - "inline": true - }, - { - "name": "more mas [co]", - "value": "ne nemam pero", - "inline": true - }, - { - "name": "more ma [...]", - "value": "ne nema", - "inline": true - }, - { - "name": "more fajt", - "value": "fyt", - "inline": true - }, - { - "name": "more clap [...]", - "value": "potlesk", - "inline": true - }, - { - "name": "more voliz [koho]", - "value": "lick", - "inline": true - }, - { - "name": "more pomoc", - "value": "oldskul povidacky", - "inline": true - }, - { - "name": "more pomoc2", - "value": "mocnejsi povidacky", - "inline": true - }, - { - "name": "more vojs", - "value": "priseru se do vojsu", - "inline": true - }, - { - "name": "more odejdi/tahni/disconnect/leave/odpoj/vodpoj/votpoj/vypadni", - "value": "vodprejsknu z vojsu", - "inline": true - }, - { - "name": "more slak", - "value": "te natahne", - "inline": true - }, - { - "name": "more vtip", - "value": "povim vam ftip vo simsovi", - "inline": true - }, - { - "name": "__dalsi shit komandi__", - "value": "**more jo\t\t\t\t\tmore ne\nmore pisnicka\t\tmore omegasmart\nmore lag\t\t\t\tmore triggered\nmore rekt\t\t\t\tmore kobel\nmore vole**", - "inline": true - } - ] - } - mes.channel.send({ embed }); - break; + "fields": [ + { + "name": "more rekni [co]", + "value": "povidam povidacki", + "inline": true + }, + { + "name": "more jakmoc [co]", + "value": "si kokot na 100%", + "inline": true + }, + { + "name": "more nazor [na co]", + "value": "si pycovina", + "inline": true + }, + { + "name": "more pozdrav [koho]", + "value": "zdravym", + "inline": true + }, + { + "name": "more zhejti [koho, co]", + "value": "si pycovina zasrana vimrdana", + "inline": true + }, + { + "name": "more kam [...]", + "value": "patris pod most", + "inline": true + }, + { + "name": "more jsi [co]", + "value": "jsem picovina", + "inline": true + }, + { + "name": "more mas [co]", + "value": "ne nemam pero", + "inline": true + }, + { + "name": "more ma [...]", + "value": "ne nema", + "inline": true + }, + { + "name": "more fajt", + "value": "fyt", + "inline": true + }, + { + "name": "more clap [...]", + "value": "potlesk", + "inline": true + }, + { + "name": "more voliz [koho]", + "value": "lick", + "inline": true + }, + { + "name": "more pomoc", + "value": "oldskul povidacky", + "inline": true + }, + { + "name": "more pomoc2", + "value": "mocnejsi povidacky", + "inline": true + }, + { + "name": "more vojs", + "value": "priseru se do vojsu", + "inline": true + }, + { + "name": "more odejdi/tahni/disconnect/leave/odpoj/vodpoj/votpoj/vypadni", + "value": "vodprejsknu z vojsu", + "inline": true + }, + { + "name": "more slak", + "value": "te natahne", + "inline": true + }, + { + "name": "more vtip", + "value": "povim vam ftip vo simsovi", + "inline": true + }, + { + "name": "__dalsi shit komandi__", + "value": "**more jo\t\t\t\t\tmore ne\nmore pisnicka\t\tmore omegasmart\nmore lag\t\t\t\tmore triggered\nmore rekt\t\t\t\tmore kobel\nmore vole**", + "inline": true + } + ] + } + mes.channel.send({ embed }); + break; - default: - return false; + default: + return false; + } + return true; } - return true; }; diff --git a/modules/hovna.js b/modules/hovna.js index 728e7c6..bd91f01 100644 --- a/modules/hovna.js +++ b/modules/hovna.js @@ -1,116 +1,120 @@ -let nastavit = !0; const spinkacky = []; +const spostece = ['mares', 'mareš', 'purfie', 'denim', '<@!639142938965704745>']; +const emouty = ['purfiek3:616026189269696512', 'purfiek3:616026189269696512', 'purfiek3:616026189269696512', 'purfieUchyl:576487602203525138', 'bafW:574646319696576532', 'purfiek4:616026180889477258']; +const zarizeni = { desktop: 'Počítač', mobile: 'Mobil', web: 'Web' }; +const statusy = { online: '🟢', idle: '🟡', dnd: '🔴' }; +const rand = max => Math.floor(Math.random() * max); -module.exports = (mes, komand, celArgs) => { - switch (komand) { +module.exports = { + more_komand: (mes, komand, celArgs) => { + switch (komand) { - case 'vole': - mes.channel.send('coe voe more gadzo'); - break; - - case 'debug_log': - console.log(celArgs); - mes.channel.send('je to v konzoli'); - break; - - case 'clap': - mes.channel.send(`${celArgs} `); - break; - - case 'kobel': - mes.channel.send('kde?'); - break; - - case 'ano': - case 'jo': - case 'ne': - mes.channel.send('ok'); - break; - - case 'rekt': - mes.channel.send('**ouuuuuuuuuuuuuuuuuuuuu**'); - break; - - case 'omegasmart': - mes.channel.send('<:DENIM3K_OMEGASMART1:638103812892131328><:DENIM3K_OMEGASMART2:638104266195861514><:DENIM3K_OMEGASMART3:638104266178822155>\n<:DENIM3K_OMEGASMART4:638104266246062180><:DENIM3K_OMEGASMART5:638104266241867787><:DENIM3K_OMEGASMART6:638104265889546241>\n<:DENIM3K_OMEGASMART7:638104266267033610><:DENIM3K_OMEGASMART8:638104266271096882><:DENIM3K_OMEGASMART9:638104266258513960>'); - break; - - case 'lag': - mes.channel.send('protoze to spousti na tich stravberi'); - break; - - case 'triggered': - mes.channel.send('toto me trickeruje'); - break; - - case 'status': - const ping = /^<@!?\d+>$/; - if (!ping.test(celArgs)) { - mes.channel.send('tak si kokot ti kokote'); + case 'vole': + mes.channel.send('coe voe more gadzo'); break; - } - const uzivatel = mes.mentions.users.first(); - const embed = { - title: `Informace o statusech pro ${uzivatel.username}:`, - color: 431075 - }; - const zarizeni = { desktop: 'Počítač', mobile: 'Mobil', web: 'Web' }; - const statusy = { online: '🟢', idle: '🟡', dnd: '🔴' }; - 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 'spinkáček': - case 'spinkacek': - if (mes.author.bot) { - mes.channel.send('<:delassibazny:643059863059955723>'); + case 'debug_log': + console.log(celArgs); + mes.channel.send('je to v konzoli'); break; - } - if (spinkacky.includes(mes.author.id)) { - mes.channel.send('nespis uz?????'); + + case 'clap': + mes.channel.send(`${celArgs} `); break; - } - const datum = new Date(); - const hodiny = datum.getHours(); - if ((hodiny < 2 && datum.getMinutes() < 30) || (hodiny > 8)) { - mes.channel.send('ickon neni cas na spink'); + + case 'kobel': + mes.channel.send('kde?'); break; - } - if (nastavit) { - mes.client.on('voiceStateUpdate', (bef, aft) => { - if (!aft.channel || bef.channel) return; - if (spinkacky.includes(aft.id)) aft.kick(); - }); - nastavit = !1; - }; - - if (mes.member.voice.channel) mes.member.voice.kick('spinkacek'); - spinkacky.push(mes.author.id); - mes.react('😴'); - break; - - case 'vstáváček': - case 'vstavacek': - if (!spinkacky.includes(mes.author.id)) { - mes.channel.send('uz jsi vzhuru ty hajzle'); + case 'ano': + case 'jo': + case 'ne': + mes.channel.send('ok'); break; - } - spinkacky.splice(spinkacky.indexOf(mes.author.id), 1); - mes.channel.send('dobre rano hajzle'); - break; - default: - return false; + case 'rekt': + mes.channel.send('**ouuuuuuuuuuuuuuuuuuuuu**'); + break; + + case 'omegasmart': + mes.channel.send('<:DENIM3K_OMEGASMART1:638103812892131328><:DENIM3K_OMEGASMART2:638104266195861514><:DENIM3K_OMEGASMART3:638104266178822155>\n<:DENIM3K_OMEGASMART4:638104266246062180><:DENIM3K_OMEGASMART5:638104266241867787><:DENIM3K_OMEGASMART6:638104265889546241>\n<:DENIM3K_OMEGASMART7:638104266267033610><:DENIM3K_OMEGASMART8:638104266271096882><:DENIM3K_OMEGASMART9:638104266258513960>'); + break; + + case 'lag': + mes.channel.send('protoze to spousti na tich stravberi'); + break; + + case 'triggered': + mes.channel.send('toto me trickeruje'); + break; + + case 'status': + const ping = /^<@!?\d+>$/; + 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 'spinkáček': + case 'spinkacek': + if (mes.author.bot) { + mes.channel.send('<:delassibazny:643059863059955723>'); + break; + } + + if (spinkacky.includes(mes.author.id)) { + mes.channel.send('nespis uz?????'); + break; + } + + if (mes.member.voice.channel) mes.member.voice.kick('spinkacek'); + spinkacky.push(mes.author.id); + mes.react('😴'); + break; + + case 'vstáváček': + case 'vstavacek': + if (!spinkacky.includes(mes.author.id)) { + mes.channel.send('uz jsi vzhuru ty hajzle'); + break; + } + spinkacky.splice(spinkacky.indexOf(mes.author.id), 1); + mes.channel.send('dobre rano hajzle'); + break; + + default: + return false; + } + return true; + }, + + on_voiceStateUpdate: (bef, aft) => { + if (!aft.channel || bef.channel) return; + if (spinkacky.includes(aft.id)) aft.kick(); + }, + + on_message: mes => { + let sance = 0; + spostece.forEach(sp => { + if (mes.content.toLowerCase().includes(sp)) sance++; + }); + if (rand(3) < sance) mes.react(emouty[rand(emouty.length)]); } - return true; }; diff --git a/modules/normal.js b/modules/normal.js index 73ba144..40cb0fe 100644 --- a/modules/normal.js +++ b/modules/normal.js @@ -1,108 +1,121 @@ const ftipy = ['Tož šimša si všimnul jednoho velkeho staveniště, tak večer se tam vydal z atobatekou na boku a flefinou vruce uříznul tu největší traverzu a uříznul ji pak si ji dal na záda a šel dom ale když šel zpět tak se všimul pitbula který hlýdal staveniště a on byl na železnem řetězu tak ten řetěz popat ale nedomyslel to že ten pitbull poběží za ním a tak utíkal ale pitbull byl rychlejší a tak se mu zakousnul do prdele a tak utíkal před policií aj z pitbulem.', 'tož šimša si řekl že se pujde okoupat ale nedošlomu že na koupání potřebuje vodu a ne močůvku <:DENIM3K_weSmart:627809296624779274>', 'tož šimšu zaměstnaly na praxi do pneu servisu ale když tam došli do druhý den tak tam nic nebylo jelikož to vše vybrakoval přes noc a pak pan hlavní pneusevisák to nevydržel a exnul', 'tož šimša šel z vaku a vykopal mareše tak mocně a vykopal ho tak protože byl je závislí na cigáru a potřeboval svo mocně nemocno dáku tak vyvinul tam mocně silu aby o vykopnul', 'tož šimša jednou šel a tak moc šel do velkooooobjemního kontejnetu pro noví komponenti do jeho mašiny a podkal tam cygani a ty to tam brali a von je podkal a šel jim rozbít drčku haby se už a řek jim haby se už nevokázali u jeho kontejmetu a kdyš čel cezto dom tak mu ti kombonendi zpadli do bláda a tak mu zpadli mo ze šel sy dát zlatou dávkou', 'tož šimša seděl ve 3kole a tadytámlecti haranti mu šimšakanovali a povidaly mu 6e je římšák a šiška a šimšalátor a on povidal aby to nepovidali ale oni to povidali a pověděli mu žeto nep5estanou povidat a on ze sač4al čerchmantit a tak zasedl do traktotu a jel vo ulycy a jak jel tak jel a jel a přeji6děl kraliki a kočki a koně a jin9 zvěrstva a tak mu cajti pošeli flastr a von platil velk9 prachy, protože m2l flastra, no nem2l tag moc chlastat']; - const mista = ['na šroťák', 'na vrakoviště', 'na smetiště', 'do kontejneru', 'na skládku', 'do kriminálu', 'pod most', 'do sběru', 'do hospody', 'do najt klubu', 'na folmavu']; - -const akce = {hraj: 'PLAYING', sleduj: 'WATCHING', poslouchej: 'LISTENING', soutez: 'COMPETING', soutěž: 'COMPETING', nedelej: '', nedělej: ''}; +const akce = { hraj: 'PLAYING', sleduj: 'WATCHING', poslouchej: 'LISTENING', soutez: 'COMPETING', soutěž: 'COMPETING', nedelej: '', nedělej: '' }; +const role = { online: '684443816383610916', idle: '684444083065978941', dnd: '684444020558135399', offline: '684443903759614049', onlinephone: '777989420728975390' }; const rand = max => Math.floor(Math.random() * max); -module.exports = (mes, komand, celArgs) => { - let corict; - switch (komand) { +module.exports = { + more_komand: (mes, komand, celArgs) => { + let corict; + switch (komand) { - case 'rekni': - if (mes.author.bot) break; - corict = celArgs ? celArgs : 'co mam jako ric'; - mes.channel.send(corict); - 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': - const ping = /^<@!?\d+>$/; - if (!ping.test(celArgs)) { - mes.channel.send('tak si kokot ti kokote'); + case 'rekni': + if (mes.author.bot) break; + corict = celArgs ? celArgs : 'co mam jako ric'; + mes.channel.send(corict); break; - } - const vyherce = Math.round(Math.random()) ? mes.author : celArgs; - mes.channel.send(`tento figh vyhrál: ${vyherce}!`); - break; - case 'clap': - mes.channel.send(`${celArgs} `); - 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 'slak': - case 'šlak': - mes.channel.send('te natahne\nhttps://tenor.com/view/tired-done-imdone-afterschool-school-gif-5682065'); - break; + case 'fight': + case 'figh': + case 'fajt': + const ping = /^<@!?\d+>$/; + 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 'vtip': - case 'ftip': - mes.channel.send(ftipy[rand(ftipy.length)]); - break; + case 'clap': + mes.channel.send(`${celArgs} `); + break; - case 'kam': - mes.channel.send(mista[rand(mista.length)]); - break; + case 'slak': + case 'šlak': + mes.channel.send('te natahne\nhttps://tenor.com/view/tired-done-imdone-afterschool-school-gif-5682065'); + break; - case 'pozdrav': - mes.channel.send(`zdravim ${celArgs}`); - break; + case 'vtip': + case 'ftip': + mes.channel.send(ftipy[rand(ftipy.length)]); + break; - case 'zhejti': - mes.channel.send(`${celArgs} je pycovina zasrana vimrdana`); - break; + case 'kam': + mes.channel.send(mista[rand(mista.length)]); + break; - case 'uraž': - case 'uraz': - mes.channel.send(`${celArgs} , u suck`); - break; + case 'pozdrav': + mes.channel.send(`zdravim ${celArgs}`); + break; - case 'nazor': - case 'názor': - mes.channel.send([`mam rad ${celArgs}`, `${celArgs} je picovina`][rand(2)]); - break; + case 'zhejti': + mes.channel.send(`${celArgs} je pycovina zasrana vimrdana`); + break; - case 'si': - case 'jsi': - corict = celArgs.replace('?', ''); - mes.channel.send([`jo sem ${corict}`, `ne nejsem ${corict}`][rand(2)]); - break; + case 'uraž': + case 'uraz': + mes.channel.send(`${celArgs} , u suck`); + break; - case 'mas': - case 'máš': - corict = celArgs.replace('?', ''); - mes.channel.send([`jo mam ${corict}`, `ne nemam ${corict}`][rand(2)]); - break; + case 'nazor': + case 'názor': + mes.channel.send([`mam rad ${celArgs}`, `${celArgs} je picovina`][rand(2)]); + break; - case 'je': - mes.channel.send(['jo je', 'ne neni'][rand(2)]); - break; + case 'si': + case 'jsi': + corict = celArgs.replace('?', ''); + mes.channel.send([`jo sem ${corict}`, `ne nejsem ${corict}`][rand(2)]); + break; - case 'má': - case 'ma': - mes.channel.send(['jo ma', 'ne nema'][rand(2)]); - break; + case 'mas': + case 'máš': + corict = celArgs.replace('?', ''); + mes.channel.send([`jo mam ${corict}`, `ne nemam ${corict}`][rand(2)]); + break; - case 'jakmoc': - mes.channel.send(`${celArgs} na ${rand(101)}%`); - break; + case 'je': + mes.channel.send(['jo je', 'ne neni'][rand(2)]); + break; - default: - return false; + case 'má': + case 'ma': + mes.channel.send(['jo ma', 'ne nema'][rand(2)]); + break; + + case 'jakmoc': + mes.channel.send(`${celArgs} na ${rand(101)}%`); + break; + + default: + return false; + } + return true; + }, + + on_presenceUpdate: (bef, aft) => { + if (aft.guild.id !== '555779161067749446' || process.env.IGNORE_PRESENCE) return; + + if (!bef) bef = { status: 'offline', clientStatus: {} }; + if (bef.clientStatus.mobile === 'online' && bef.clientStatus.desktop !== 'online') bef.status = 'onlinephone'; + if (aft.clientStatus.mobile === 'online' && aft.clientStatus.desktop !== 'online') aft.status = 'onlinephone'; + if (bef.status === aft.status) return; + + aft.member.roles.add(role[aft.status]); + aft.member.roles.remove(role[bef.status]); } - return true; }; diff --git a/modules/onReady.js b/modules/onReady.js new file mode 100644 index 0000000..8ce38f9 --- /dev/null +++ b/modules/onReady.js @@ -0,0 +1,3 @@ +module.exports = { + on_ready: () => console.log('A jedeš!') +}; diff --git a/modules/status.js b/modules/status.js index f52469a..c6bf91b 100644 --- a/modules/status.js +++ b/modules/status.js @@ -1,38 +1,40 @@ -module.exports = (mes, komand) => { - const c = mes.client.user; - switch (komand) { +module.exports = { + more_komand: (mes, komand) => { + const c = mes.client.user; + switch (komand) { - case 'online': - case 'onlajn': - case 'zelenej': - c.setStatus('online'); - break; + case 'online': + case 'onlajn': + case 'zelenej': + c.setStatus('online'); + break; - case 'neviditelnej': - case 'offline': - case 'oflajn': - c.setStatus('invisible'); - break; + case 'neviditelnej': + case 'offline': + case 'oflajn': + c.setStatus('invisible'); + break; - case 'dnd': - case 'nerusit': - case 'nerušit': - case 'červenej': - case 'cervenej': - c.setStatus('dnd'); - break; + case 'dnd': + case 'nerusit': + case 'nerušit': + case 'červenej': + case 'cervenej': + c.setStatus('dnd'); + break; - case 'žlutej': - case 'zlutej': - case 'afk': - case 'idle': - case 'nepřítomnej': - case 'nepritomnej': - c.setStatus('idle'); - break; + case 'žlutej': + case 'zlutej': + case 'afk': + case 'idle': + case 'nepřítomnej': + case 'nepritomnej': + c.setStatus('idle'); + break; - default: - return false; + default: + return false; + } + return true; } - return true; }; diff --git a/modules/vojs.js b/modules/vojs.js index ed2668a..650c8ce 100644 --- a/modules/vojs.js +++ b/modules/vojs.js @@ -1,3 +1,5 @@ +const fs = require('fs'); + function vypocitatCas(vojsl) { let c = new Date(); let d = new Date(); @@ -19,7 +21,7 @@ function vypocitatCas(vojsl) { d.setSeconds(0); timeouty[vojsl.channel.guild.id] = setTimeout(function() { - rekniCas(vojsl, `${nula(hod)}${nula(min)}`); + rekniCas(vojsl, `${nula(hod)}${nula(min)}`); }, d - c + 3000); } @@ -58,77 +60,94 @@ const vytahnout = (clen, patro) => { const timeouty = {}; -module.exports = (mes, komand, celArgs) => { - switch (komand) { +module.exports = { + more_komand: (mes, komand, celArgs) => { + switch (komand) { - case 'wojs': - mes.channel.send(`vojs se pise s normalnim v ti kriple ${mes.author}`); - break; - - case 'vojs': - const channel = mes.member.voice.channel; - if (!channel) { - mes.channel.send(`di si tam sam ne ty gadzo ${mes.author}`); + case 'wojs': + mes.channel.send(`vojs se pise s normalnim v ti kriple ${mes.author}`); break; - } - if (celArgs !== 'potichu') mes.channel.send('<@&591306633196339261> vojs'); + case 'vojs': + const channel = mes.member.voice.channel; + if (!channel) { + mes.channel.send(`di si tam sam ne ty gadzo ${mes.author}`); + break; + } - if (mes.guild.voice) { - if (mes.guild.voice.channel === channel && mes.guild.voice.connection) break; - } + if (celArgs !== 'potichu') mes.channel.send('<@&591306633196339261> vojs'); - channel.join() - .then(con => { - if (!timeouty[mes.guild.id]) { - vypocitatCas(con); - con.on('disconnect', () => { - if (timeouty[mes.guild.id]) { - clearTimeout(timeouty[mes.guild.id]); - delete timeouty[mes.guild.id]; - } - }); - } - setTimeout(() => con.play('./zvuky/nazdar.ogg'), 500); - }); - break; + if (mes.guild.voice) { + if (mes.guild.voice.channel === channel && mes.guild.voice.connection) break; + } - case "odejdi": - case "disconnect": - case "leave": - case "odpoj": - case "votpoj": - case "vodpoj": - case "vodprejskni": - case "tahni": - case "táhni": - case "vypadni": - let vojs = mes.guild.voice; - if (!vojs) vojs = {}; - if (!vojs.channel) { - mes.channel.send('nejsem ve vojsu'); + channel.join() + .then(con => { + if (!timeouty[mes.guild.id]) { + vypocitatCas(con); + con.on('disconnect', () => { + if (timeouty[mes.guild.id]) { + clearTimeout(timeouty[mes.guild.id]); + delete timeouty[mes.guild.id]; + } + }); + } + setTimeout(() => con.play('./zvuky/nazdar.ogg'), 500); + }); break; - } - vojs.channel.leave(); - mes.react('purfieRIP:644609482843881483'); - break; - case 'vitah': - case 'vytah': - if (!mes.member.voice.channel) { - mes.channel.send(`nejsi ve vojsu ty gadzo ${mes.author}`); + case "odejdi": + case "disconnect": + case "leave": + case "odpoj": + case "votpoj": + case "vodpoj": + case "vodprejskni": + case "tahni": + case "táhni": + case "vypadni": + let vojs = mes.guild.voice; + if (!vojs) vojs = {}; + if (!vojs.channel) { + mes.channel.send('nejsem ve vojsu'); + break; + } + vojs.channel.leave(); + mes.react('purfieRIP:644609482843881483'); break; - } - if (!celArgs) { - mes.channel.send(`napis do jakiho patra ${mes.author}`); + + case 'vitah': + case 'vytah': + if (!mes.member.voice.channel) { + mes.channel.send(`nejsi ve vojsu ty gadzo ${mes.author}`); + break; + } + if (!celArgs) { + mes.channel.send(`napis do jakiho patra ${mes.author}`); + break; + } + + vytahnout(mes.member, Number(celArgs) || 0); break; + + default: + return false; + } + return true; + }, + + on_voiceStateUpdate: (bef, aft) => { + if (!aft.channel || !aft.guild.voice || aft.member.user === aft.guild.client.user) return; + + if (aft.selfMute && !aft.deaf) { + if (!aft.guild.voice.connection) aft.setDeaf(true, 'otposlouchávala ta gadza'); + else { + aft.guild.voice.connection.play('./zvuky/neodposlouchavej.ogg', { volume: 0.38 }) + .on('finish', () => { if (aft.selfMute) aft.setDeaf(true, 'otposlouchávala ta gadza') }); } + } - vytahnout(mes.member, Number(celArgs) || 0); - break; - - default: - return false; + if (!bef.channel) return; + if (bef.mute && bef.deaf && !aft.mute && aft.deaf) aft.setDeaf(false, 'us muze poslouchat gadza'); } - return true; };