Harden bot, storage and web API

This commit is contained in:
Shinuwa 2026-06-30 17:25:00 +02:00
parent e974bc6660
commit 20624a5c9c
43 changed files with 1265 additions and 1012 deletions

View file

@ -1,44 +1,53 @@
import fs from "fs";
import { config } from "../config.js";
function changeVoiceStatus(client, status, members) {
const changeStatus = (type, value, members) => {
switch (type) {
case "mute":
for (let member of members) {
member[1].voice.setMute(value);
}
break;
case "deaf":
for (let member of members) {
member[1].voice.setDeaf(value);
}
break;
}
};
var voiceChannel = client.channels.cache.get(config.voiceChannelId);
var connectedMembers = voiceChannel.members;
if (members == "all") {
members = connectedMembers;
}
switch (status) {
case "mute":
changeStatus("mute", true, members);
break;
case "unmute":
changeStatus("mute", false, members);
break;
case "deaf":
changeStatus("deaf", true, members);
break;
case "undeaf":
changeStatus("deaf", false, members);
break;
}
}
async function changeVoiceStatus(client, status, members) {
const changeStatus = async (type, value, selectedMembers) => {
const operations = [];
switch (type) {
case "mute":
for (const member of selectedMembers.values()) {
operations.push(member.voice.setMute(value));
}
break;
case "deaf":
for (const member of selectedMembers.values()) {
operations.push(member.voice.setDeaf(value));
}
break;
}
await Promise.all(operations);
};
const voiceChannel = client.channels.cache.get(config.voiceChannelId);
if (!voiceChannel?.isVoiceBased()) {
throw new Error("Salon vocal configuré introuvable");
}
const connectedMembers = voiceChannel.members.filter(
(member) => !member.user.bot
);
if (members === "all") {
members = connectedMembers;
}
switch (status) {
case "mute":
await changeStatus("mute", true, members);
break;
case "unmute":
await changeStatus("mute", false, members);
break;
case "deaf":
await changeStatus("deaf", true, members);
break;
case "undeaf":
await changeStatus("deaf", false, members);
break;
default:
throw new Error(`Statut vocal inconnu : ${status}`);
}
}
function getJSONData(file) {
const jsonFile = fs.readFileSync(file);
@ -51,24 +60,8 @@ function getRandomInt(max) {
return Math.floor(Math.random() * max);
}
function isConnectedToVoiceChannel(client, userId) {
var voiceChannel = client.channels.cache.get(config.voiceChannelId);
var connectedMembers = voiceChannel.members;
var selectedMember = connectedMembers.filter(
(member) => member.user.id === userId
);
if (selectedMember.size === 1) {
return true;
}
return false;
}
export {
changeVoiceStatus,
getJSONData,
getRandomInt,
isConnectedToVoiceChannel,
};
export {
changeVoiceStatus,
getJSONData,
getRandomInt,
};