Denim-Bot/src/modules/denim-Dobroty.ts
2023-09-01 17:33:38 +02:00

60 lines
1.8 KiB
TypeScript

import { getVoiceConnection } from "@discordjs/voice";
import { Modul } from "../utils/types";
import { rmSync, readdirSync, writeFileSync } from "fs";
import { join } from "path";
import { Priority, novejPlay } from "../utils/voice";
import { lidiCoMajDenimPremium, semMiDejClienta } from "../utils/denim-Spravce";
// Extrémní fekál, jestli má někdo lepsí nápad, sem s ním
semMiDejClienta.client = module.exports.client;
const kmenovaCesta = join(__dirname, `../../zvuky/priVstupu`);
const formaty = ["mp3", "wav", "ogg"];
const exp: Modul = {
more_komandy: {
zmenitvstupnizvuk: {
premium: true,
run: async mes => {
const soubor = mes.attachments.first();
if (!soubor) return "tak pico ael na co";
if (!formaty.includes(soubor.name.slice(-3))) return "tuten format nechcy";
if (soubor.size > 2e6) return "min nes dva mebagajyt pls";
const zaklad = `${kmenovaCesta}/${mes.author.id}`;
for (const format of formaty) {
try {
rmSync(`${zaklad}.${format}`);
} catch { }
}
const odpoved = await fetch(soubor.url).then(r => r.arrayBuffer());
writeFileSync(`${zaklad}.${soubor.name.slice(-3)}`, new DataView(odpoved));
return "ej tot am";
}
}
},
on_voiceStateUpdate: (bef, aft) => {
const conn = getVoiceConnection(aft.guild.id);
// Jestli vůbec zvuk zahrát
if (!conn || conn.joinConfig.channelId != aft.channelId || !lidiCoMajDenimPremium.includes(aft.id) || !aft.channelId || bef.channelId == aft.channelId) return;
// Najít zvuk k přehrání
for (const soubor of readdirSync(kmenovaCesta)) {
if (!soubor.startsWith(aft.id)) continue;
novejPlay(aft.guild.id, `${kmenovaCesta}/${soubor}`, Priority.Time);
return;
}
}
};
module.exports = exp;