60 lines
1.8 KiB
TypeScript
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;
|