Denim-Bot/app.js
2020-11-13 18:28:24 +01:00

319 lines
11 KiB
JavaScript

const { Client } = require('discord.js');
const dotenv = require('dotenv');
const client = new Client();
dotenv.config();
const prefix = 'mor';
const role = {online: '684443816383610916', idle: '684444083065978941', dnd: '684444020558135399', offline: '684443903759614049'};
const akce = {hraj: 'PLAYING', sleduj: 'WATCHING', poslouchej: 'LISTENING', soutez: 'COMPETING', soutěž: 'COMPETING', nedelej: '', nedělej: ''};
const spostece = ['mares', 'mareš', 'purfie', 'denim', '<@!639142938965704745>'];
const emouty = ['purfiek3:616026189269696512', 'purfiek3:616026189269696512', 'purfiek3:616026189269696512', 'purfieUchyl:576487602203525138', 'bafW:574646319696576532', 'purfiek4:616026180889477258'];
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'];
let vojs;
const rand = max => Math.floor(Math.random() * max);
const rekniCas = (par = null) => {
if (!vojs) return;
const ickon = new Date();
const disp = vojs.play(`./zvuky/${par}.mp3` || `./zvuky/${ickon.getHours()}${ickon.getMinutes()}.mp3`);
disp.on('finish', () => vojs.play('./zvuky/grg.mp3'));
if (par) return;
setTimeout(rekniCas, 30 - ickon/1000 % 30);
};
function vypocitatCas(vojsl) {
let c = new Date();
let d = new Date();
let hod = d.getHours();
let min = d.getMinutes();
if (min > 25 && min < 55) {
min = 0;
hod = hod == 23 ? 0 : hod + 1;
c = new Date(c.getDate() + 1);
} else {
min = 30;
}
d.setHours(hod);
d.setMinutes(min);
setTimeout(function() {
rekniCas2(vojsl, `${nula(hod)}${nula(min)}`);
}, c - d);
}
function rekniCas2(vojsl, cas) {
if (!vojsl) return;
const disp = vojs.play(`./zvuky/${cas}.mp3`);
disp.on('finish', () => vojs.play('./zvuky/grg.mp3'));
vypocitatCas(vojsl);
}
function nula(a) {
return a < 10 ? "0" + a : a;
}
client.on('ready', () => console.log('A jedeš!'));
client.on('message', mes => {
if (mes.content.startsWith(prefix)) {
const [...args] = mes.content.split(' ').slice(1);
const komand = args[0];
const celArgs = args.slice(1).join(' ');
let corict;
switch (komand) {
case 'vole':
mes.channel.send('coe voe more gadzo');
break;
case 'rekni':
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':
client.user.setActivity(celArgs, {type: akce[komand]});
mes.channel.send('ano pane');
mes.react('730175107313565717');
break;
case 'pomoc':
mes.channel.send('tady sou ti komandy k tomudle botoj ```more rekni <str>\nmore hraj <hra>\nmore fajt <kdo>\nmore kobel\nmore jo\nmore ne\nmore vole\nmore vtip\nmore rekt\nmore pisnicka\nmore gif\nmore lag\nmore pozdrav <koho>\nmore zhejti <co>\nmore uraz <koho>\nmore nazor <predmet>\nmore jsi <co>\nmore jakmoc <co>\nmore je <podmet> <predmet>\nmore ma <podmet> <predmet>\nmore triggered```');
break;
case 'pomoc2':
mes.channel.send('placeholder');
break;
case 'debug_log':
console.log(celArgs);
mes.channel.send('je to v konzoli');
break;
case 'online':
case 'onlajn':
case 'zelenej':
client.user.setStatus('online');
break;
case 'neviditelnej':
case 'offline':
case 'oflajn':
client.user.setStatus('invisible');
break;
case 'dnd':
case 'nerusit':
case 'nerušit':
case 'červenej':
case 'cervenej':
client.user.setStatus('dnd');
break;
case 'žlutej':
case 'zlutej':
case 'afk':
case 'idle':
case 'nepřítomnej':
case 'nepritomnej':
client.user.setStatus('idle');
break;
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.content.includes('potichu')) mes.channel.send('<@&591306633196339261> vojs');
/*const ickon = new Date();
setTimeout(rekniCas, 30 - ickon/1000 % 30);*/
channel.join().then(con => vypocitatCas(con));
break;
case 'wojs':
mes.channel.send(`vojs se pise s normalnim v ti kriple ${mes.author}`);
break;
case "odejdi":
case "disconnect":
case "leave":
case "odpoj":
case "votpoj":
case "vodpoj":
case "vodprejskni":
case "tahni":
case "táhni":
case "vypadni":
if (!vojs) {
mes.channel.send('nejsem ve vojsu');
break;
}
vojs.channel.leave();
mes.react('purfieRIP:644609482843881483');
vojs = null;
break;
case 'fight':
case 'figh':
case 'fajt':
mes.channel.send(`ej ty gazdo figh figh figh???? ${celArgs}`);
break;
case 'clap':
mes.channel.send(`${celArgs} <a:DENIM3K_Clap:629991700571619328>`);
break;
case 'voliz':
case 'voliž':
mes.channel.send(`<a:DENIM3K_lickL:678025691207565313> ${celArgs} <a:DENIM3K_lickR:678025693313105964>`);
break;
case 'kobel':
mes.channel.send('kde?');
break;
case 'slak':
case 'šlak':
mes.channel.send('te natahne\nhttps://tenor.com/view/tired-done-imdone-afterschool-school-gif-5682065');
break;
case 'ano':
case 'jo':
case 'ne':
mes.channel.send('ok');
break;
case 'vtip':
case 'ftip':
mes.channel.send(ftipy[rand(ftipy.length)]);
break;
case 'kam':
mes.channel.send(mista[rand(mista.length)]);
break;
case 'rekt':
mes.channel.send('**ouuuuuuuuuuuuuuuuuuuuu**');
break;
case "písnička":
case "pisnicka":
mes.channel.send('http://deadfish.zaridi.to/morepisnicka.jpg');
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 'pozdrav':
mes.channel.send(`zdravim ${celArgs}`);
break;
case 'test':
rekniCas(celArgs || '0000');
break;
case 'zhejti':
mes.channel.send(`${celArgs} je pycovina zasrana vimrdana`);
break;
case 'uraž':
case 'uraz':
mes.channel.send(`${celArgs} , u suck`);
break;
case 'nazor':
case 'názor':
mes.channel.send([`mam rad ${celArgs}`, `${celArgs} je picovina`][rand(2)]);
break;
case 'si':
case 'jsi':
corict = celArgs.replace('?', '');
mes.channel.send([`jo sem ${corict}`, `ne nejsem ${corict}`][rand(2)]);
break;
case 'mas':
case 'máš':
corict = celArgs.replace('?', '');
mes.channel.send([`jo mam ${corict}`, `ne nemam ${corict}`][rand(2)]);
break;
case 'je':
mes.channel.send(['jo je', 'ne neni'][rand(2)]);
break;
case 'má':
case 'ma':
mes.channel.send(['jo ma', 'ne nema'][rand(2)]);
break;
case 'jakmoc':
mes.channel.send(`${celArgs} na ${rand(101)}%`);
break;
case 'triggered':
mes.channel.send('toto me trickeruje');
break;
// case 'zvuk':
// if (!vojs) mes.channel.send('nejsem ve vojsu');
// switch (celArgs) {
// case '1':
// vojs.connection.play('./pip.mp3');
// break;
// case '2':
// vojs.connection.play('./pup.mp3');
// break;
// default:
// const dispatcher = vojs.connection.play('./pip.mp3', {volume: 0.3});
// dispatcher.on('finish', () => vojs.connection.play('./pup.mp3'));
// }
// break;
default:
mes.channel.send('co to znamena ti gadzovko');
}
}
let sance = 0;
spostece.forEach(sp => {
if (mes.content.toLowerCase().includes(sp)) sance++;
});
if (rand(3) < sance) mes.react(emouty[rand(emouty.length)]);
});
client.on('presenceUpdate', (bef, aft) => {
if (aft.guild.id !== '555779161067749446') return;
let Return = false;
try {
if (bef.status === aft.status) Return = true;
} catch {
bef = {status: 'offline'};
}
if (Return) return;
aft.member.roles.add(role[aft.status]);
aft.member.roles.remove(role[bef.status]);
console.log(`${aft.user.username} změnil status z ${bef.status} na ${aft.status}`);
});
client.login(process.env.TOKEN);