Harden bot, storage and web API
This commit is contained in:
parent
e974bc6660
commit
20624a5c9c
43 changed files with 1265 additions and 1012 deletions
|
|
@ -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,
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue