Compare commits

..

No commits in common. "main" and "3.0" have entirely different histories.
main ... 3.0

33 changed files with 171 additions and 4064 deletions

4
.gitignore vendored
View File

@ -20,9 +20,6 @@ coverage
# nyc test coverage # nyc test coverage
.nyc_output .nyc_output
tokens.json
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt .grunt
@ -39,7 +36,6 @@ build/Release
node_modules/ node_modules/
jspm_packages/ jspm_packages/
# Typescript v1 declaration files # Typescript v1 declaration files
typings/ typings/

33
Jenkinsfile vendored
View File

@ -1,33 +0,0 @@
pipeline {
agent any
stages {
stage('[Subsonics] - Test') {
steps {
script {
echo "[Subsonics-Deploy] - Test Stage"
sh "rm -rf bot"
sh "git clone https://git.raphix.fr/subsonics/bot.git"
sh "cd bot"
sh "npm i"
sh "ENV='TEST' node src/main.js"
}
}
}
stage('[Subsonics] - Déploiement') {
steps {
script {
echo "[Subsonics-Deploy] - Deploy Stage"
sh "ssh raphix@raphix.fr sudo apt update -y"
sh "ssh raphix@raphix.fr sudo apt upgrade -y"
sh "ssh raphix@raphix.fr sudo -S -u gitlab-ci /home/gitlab-ci/subsonics_deploy.sh"
}
}
}
}
}

1532
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,27 +1,13 @@
{ {
"name": "subsonics-discord", "name": "subsonics-discord",
"author": "Raphix", "author": "Raphix",
"version": "7.5", "version": "3.0",
"nodemonConfig": {
"ext": "js, html",
"ignore": [
"*.json",
"*.html"
],
"delay": "2"
},
"dependencies": { "dependencies": {
"cookie-parser": "^1.4.6",
"discord.js": "^14.9.0", "discord.js": "^14.9.0",
"erela.js": "^2.4.0", "erela.js": "^2.4.0",
"express": "^4.18.2", "nodemon": "^2.0.22"
"nodemon": "^2.0.22",
"socket.io": "^4.6.1",
"uuid": "^9.0.0",
"ytfps": "^1.1.0"
}, },
"scripts": { "scripts": {
"start": "nodemon src/main.js", "start": "nodemon src/main.js"
"dev": "set DEV=true& nodemon src/main.js"
} }
} }

View File

@ -1,155 +0,0 @@
@import url('https://fonts.googleapis.com/css2?family=Open+Sans&display=swap');
body {
background-color: #171717 !important;
font-family: 'Open Sans', sans-serif !important;
padding: 3%;
}
.top-title {
display: flex;
width: 100%;
flex-direction: row;
justify-content: center;
align-items: center;
color: white;
}
.top-logo {
width: 5vw;
border-radius: 10%;
}
.buttonClose {
background-color: transparent;
border: none;
border-radius: 15px;
cursor: pointer;
transition: all 0.3s ease 0s;
font-family: 'noto Sans', sans-serif;
font-weight: 500;
font-size: 15px;
color: white;
text-decoration: none;
-webkit-app-region: no-drag;
margin: 5px;
outline: none;
}
.text {
text-align: center;
font-size: 2vw;
color: white;
}
.boxtext {
margin-top: 5%;
border-radius: 15px;
background-color: #3d3d3d;
width: 50%;
padding: 3%;
margin-right: auto;
margin-left: auto;
}
.buttonClose:hover {
color: red;
}
.buttonClose:active {
color: rgb(255, 255, 255);
}
.buttonReduce {
background-color: transparent;
border: none;
border-radius: 15px;
cursor: pointer;
transition: all 0.3s ease 0s;
font-family: 'noto Sans', sans-serif;
font-weight: 500;
font-size: 13px;
color: white;
text-decoration: none;
-webkit-app-region: no-drag;
margin: 5px;
outline: none;
}
.buttonReduce:hover {
color: rgb(46, 196, 255);
}
.buttonReduce:active {
color: rgb(255, 255, 255);
}
header {
display: flex;
}
.content {
padding: 5%;
padding-top: 0;
}
.buttonFav {
background-color: transparent;
border: none;
border-radius: 15px;
cursor: pointer;
transition: all 0.3s ease 0s;
font-family: 'noto Sans', sans-serif;
font-weight: 500;
font-size: 13px;
color: white;
text-decoration: none;
-webkit-app-region: no-drag;
margin: 0;
outline: none;
}
.buttonFav:hover {
color: rgb(242, 255, 53);
}
.buttonFav:active {
color: rgb(255, 255, 255);
}
.title-t {
width: +30%;
margin-left: 1%;
margin-top: 1%;
}

View File

@ -1,21 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="./close.css">
<title>Subsonics - Submanager</title>
</head>
<body>
<div class="top-title">
<img class="top-logo" src="./logo.png" alt="Logo">
<img class="title-t" src="./title.png" alt="Logo">
</div>
<div class="boxtext">
<p class="text">Vous pouvez fermer cette fenêtre !</p>
<p class="text">En cas de problème, prévenez Raphix#8434 !</p>
</div>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

View File

@ -1,5 +1,4 @@
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js"); const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
const log = require("../sublog")
module.exports = { module.exports = {
@ -33,7 +32,6 @@ module.exports = {
async function makeAction() { async function makeAction() {
let embed = new EmbedBuilder() let embed = new EmbedBuilder()
.setColor(0xe033ff) .setColor(0xe033ff)
.setTitle('Liste de lecture') .setTitle('Liste de lecture')
@ -43,7 +41,6 @@ module.exports = {
let player = client.manager.players.get(interaction.guild.id) let player = client.manager.players.get(interaction.guild.id)
if(!player) { if(!player) {
embed = new EmbedBuilder() embed = new EmbedBuilder()
@ -56,7 +53,8 @@ module.exports = {
interaction.reply({embeds: [embed]}) interaction.reply({embeds: [embed]})
} else { } else {
console.log("------------------------QUEUE.JS---------------------")
console.log(client.manager.players.get(interaction.guild.id).queue)
let queue = client.manager.players.get(interaction.guild.id).queue; let queue = client.manager.players.get(interaction.guild.id).queue;
@ -87,9 +85,6 @@ module.exports = {
} }
} }
process.emit("discordDoing")
} }
} }
} }

View File

@ -1,5 +1,4 @@
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js"); const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
const log = require("../sublog")
module.exports = { module.exports = {
@ -9,7 +8,7 @@ module.exports = {
async execute(client, interaction) { async execute(client, interaction) {
console.log(interaction.member._roles)
if(interaction.member._roles.includes("397725956598530050") == true | interaction.member.user.id == "486943594893017119") { if(interaction.member._roles.includes("397725956598530050") == true | interaction.member.user.id == "486943594893017119") {
if(client.dictator == true) { if(client.dictator == true) {
@ -53,7 +52,7 @@ module.exports = {
process.emit("discordDoing")
} }
} }

View File

@ -1,5 +1,4 @@
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js"); const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
const log = require("../sublog")
module.exports = { module.exports = {
@ -22,8 +21,7 @@ module.exports = {
{name: "/queue <afficher/supprimer>", value: "Permet d'afficher ou de supprimer les titres de la liste de lecture."}, {name: "/queue <afficher/supprimer>", value: "Permet d'afficher ou de supprimer les titres de la liste de lecture."},
{name: "/state", value: "Donne l'état de la musique"}, {name: "/state", value: "Donne l'état de la musique"},
{name: "/skip", value: "Passer à la chanson suivante."}, {name: "/skip", value: "Passer à la chanson suivante."},
{name: "/back", value: "Revenir à la chanson précédente."}, {name: "/back", value: "Revenir à la chanson précédente."})
{name: "/playlist", value: "Permet d'ajouter à la liste de lecture toute une playlist."})
.setTimestamp() .setTimestamp()
.setThumbnail("https://static.wikia.nocookie.net/codelyoko/images/9/95/Subdigitals.jpg/revision/latest/scale-to-width-down/180?cb=20120105180510&path-prefix=fr"); .setThumbnail("https://static.wikia.nocookie.net/codelyoko/images/9/95/Subdigitals.jpg/revision/latest/scale-to-width-down/180?cb=20120105180510&path-prefix=fr");

View File

@ -1,6 +1,5 @@
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js"); const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
const { Player } = require("erela.js"); const { Player } = require("erela.js");
const log = require("../sublog")
module.exports = { module.exports = {
@ -57,8 +56,6 @@ module.exports = {
interaction.reply("**Aucune musique n'est actuellement jouée !**") interaction.reply("**Aucune musique n'est actuellement jouée !**")
} }
process.emit("discordDoing")
} }
} }

View File

@ -1,86 +0,0 @@
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
const log = require("../sublog")
module.exports = {
data: new SlashCommandBuilder()
.setName("loop")
.setDescription("Active ou désactive la répétition de la liste de lecture !"),
async execute(client, interaction) {
if(client.dictator == true ) {
if((interaction.member._roles.includes("397725956598530050") == true | interaction.member.user.id == "486943594893017119")) {
makeAction()
} else {
const embed = new EmbedBuilder()
.setColor(0xff0303)
.setTitle('Mode Dictateur')
.setTimestamp();
const song_show = {name: "Le mode dictateur est actif !", value: "Demande au grand roi !"}
embed.addFields(song_show)
interaction.reply({embeds: [embed]})
}
} else {
makeAction();
}
async function makeAction() {
if(!interaction.member.voice.channel) return interaction.reply({content:"Vous devez rejoindre un salon vocal !", ephemeral: true})
let player = client.manager.players.get(interaction.guild.id)
if(player) {
if(player.queueRepeat == false) {
const embed = new EmbedBuilder()
.setColor(0xfff200)
.setTitle('Loop Actif!')
.setDescription("On recommence !")
.setTimestamp();
interaction.reply({embeds: [embed]})
player.setQueueRepeat(true)
} else {
const embed = new EmbedBuilder()
.setColor(0x3b3b3b)
.setTitle('Loop inactif!')
.setDescription("Ca suffit ! Terminez votre concert !")
.setTimestamp();
interaction.reply({embeds: [embed]})
player.setQueueRepeat(false)
}
} else {
interaction.reply("**Aucune musique n'est actuellement jouée !**")
}
process.emit("discordDoing")
}
}
}

View File

@ -1,5 +1,4 @@
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js"); const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
const log = require("../sublog")
module.exports = { module.exports = {
@ -9,8 +8,6 @@ module.exports = {
async execute(client, interaction) { async execute(client, interaction) {
if(client.dictator == true ) { if(client.dictator == true ) {
if((interaction.member._roles.includes("397725956598530050") == true | interaction.member.user.id == "486943594893017119")) { if((interaction.member._roles.includes("397725956598530050") == true | interaction.member.user.id == "486943594893017119")) {
@ -35,7 +32,6 @@ module.exports = {
async function makeAction() { async function makeAction() {
if(!interaction.member.voice.channel) return interaction.reply({content:"Vous devez rejoindre un salon vocal !", ephemeral: true}) if(!interaction.member.voice.channel) return interaction.reply({content:"Vous devez rejoindre un salon vocal !", ephemeral: true})
let player = client.manager.players.get(interaction.guild.id) let player = client.manager.players.get(interaction.guild.id)
@ -63,9 +59,6 @@ module.exports = {
interaction.reply("**Aucune musique n'est actuellement jouée !**") interaction.reply("**Aucune musique n'est actuellement jouée !**")
} }
process.emit("discordDoing")
} }
} }
} }

View File

@ -1,5 +1,4 @@
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js"); const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
const log = require("../sublog")
module.exports = { module.exports = {
@ -9,7 +8,7 @@ module.exports = {
async execute(client, interaction) { async execute(client, interaction) {
process.emit("discordDoing")
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setColor(0xb0f542) .setColor(0xb0f542)
.setTitle('Résultat du ping') .setTitle('Résultat du ping')

View File

@ -1,6 +1,5 @@
const { EmbedBuilder } = require("@discordjs/builders"); const { EmbedBuilder } = require("@discordjs/builders");
const { SlashCommandBuilder, Embed } = require("discord.js"); const { SlashCommandBuilder, Embed } = require("discord.js");
const log = require("../sublog")
module.exports = { module.exports = {
@ -35,20 +34,18 @@ module.exports = {
async function makeAction() { async function makeAction() {
const song_name = interaction.options.getString("nom_ou_lien") const song_name = interaction.options.getString("nom_ou_lien")
if(!interaction.member.voice.channel) return interaction.reply({content:"Vous devez rejoindre un salon vocal !", ephemeral: true}) if(!interaction.member.voice.channel) return interaction.reply({content:"Vous devez rejoindre un salon vocal !", ephemeral: true})
let player = client.manager.players.get(interaction.guild.id) let player = client.manager.players.get(interaction.guild.id)
if(!player) { if(!player) {
player = client.manager.create({ player = client.manager.create({
guild: interaction.guild.id, guild: interaction.guild.id,
voiceChannel: interaction.member.voice.channel.id, voiceChannel: interaction.member.voice.channel.id,
textChannel: interaction.channel.id, textChannel: interaction.channel.id,
}); });
player.connect(); player.connect();
@ -63,7 +60,7 @@ module.exports = {
const embed = await new EmbedBuilder() const embed = await new EmbedBuilder()
.setColor(0x15e6ed) .setColor(0x15e6ed)
.setTitle('**Lecture de : **' + songs.tracks[0].title) .setTitle('**Lecture de **' + songs.tracks[0].title)
.setDescription('**Demandé par **' + interaction.member.user.username) .setDescription('**Demandé par **' + interaction.member.user.username)
.addFields({name: "Auteur", value: songs.tracks[0].author}, .addFields({name: "Auteur", value: songs.tracks[0].author},
{name: "URL", value:songs.tracks[0].uri}) {name: "URL", value:songs.tracks[0].uri})
@ -74,8 +71,8 @@ module.exports = {
interaction.reply({embeds: [embed]}) interaction.reply({embeds: [embed]})
} catch(error) { } catch(error) {
log.bot.error("Error processing /play")
log.bot.error(error); interaction.reply({embeds: [embed]})
} }
@ -87,7 +84,7 @@ module.exports = {
const embed = await new EmbedBuilder() const embed = await new EmbedBuilder()
.setColor(0x15e6ed) .setColor(0x15e6ed)
.setTitle('**Ajout dans la liste de lecture **: ' + songs.tracks[0].title) .setTitle('**Ajout dans la liste de lecture **' + songs.tracks[0].title)
.setDescription('**Demandé par **' + interaction.member.user.username) .setDescription('**Demandé par **' + interaction.member.user.username)
.addFields({name: "Auteur", value: songs.tracks[0].author}, .addFields({name: "Auteur", value: songs.tracks[0].author},
{name: "URL", value:songs.tracks[0].uri}) {name: "URL", value:songs.tracks[0].uri})
@ -95,20 +92,20 @@ module.exports = {
.setTimestamp(); .setTimestamp();
client.manager.players.get(interaction.guild.id).queue.add(songs.tracks[0]) client.manager.players.get(interaction.guild.id).queue.add(songs.tracks[0])
console.log("------------------------PLAY.JS---------------------")
console.log(player.queue)
console.log("--------------------------------------------")
try { try {
interaction.reply({embeds: [embed]}) interaction.reply({embeds: [embed]})
} catch(error) { } catch(error) {
log.bot.error("Error processing /play")
log.bot.error(error); interaction.reply({embeds: [embed]})
} }
} }
process.emit("discordDoing")
} }
} }
} }

View File

@ -1,147 +0,0 @@
const { EmbedBuilder } = require("@discordjs/builders");
const { SlashCommandBuilder, Embed } = require("discord.js");
const log = require("../sublog")
module.exports = {
data:new SlashCommandBuilder()
.setName("playlist")
.setDescription("Permet de lire une playlist de Youtube !")
.addStringOption(option => option.setName("lien").setDescription("Le lien de la playlist !").setRequired(true)),
async execute(client, interaction) {
if(client.dictator == true ) {
if((interaction.member._roles.includes("397725956598530050") == true | interaction.member.user.id == "486943594893017119")) {
makeAction()
} else {
const embed = new EmbedBuilder()
.setColor(0xff0303)
.setTitle('Mode Dictateur')
.setTimestamp();
const song_show = {name: "Le mode dictateur est actif !", value: "Demande au grand roi !"}
embed.addFields(song_show)
interaction.reply({embeds: [embed]})
}
} else {
makeAction();
}
async function makeAction() {
process.emit("discordDoing")
const song_name = interaction.options.getString("lien")
if(!interaction.member.voice.channel) return interaction.reply({content:"Vous devez rejoindre un salon vocal !", ephemeral: true})
let player = client.manager.players.get(interaction.guild.id)
if(!player) {
player = client.manager.create({
guild: interaction.guild.id,
voiceChannel: interaction.member.voice.channel.id,
textChannel: interaction.channel.id,
});
player.connect();
}
var ytfps = require("ytfps")
try {
var playlist = await ytfps(song_name)
var author = "Artiste inconnu !"
if(typeof playlist.author != "undefined" ) {
author == playlist.author.name
}
const embed = await new EmbedBuilder()
.setColor(0x15e6ed)
.setTitle('**Lecture de la playlist : **' + playlist.title)
.setDescription('**Demandé par **' + interaction.member.user.username)
.addFields({name: "Auteur", value: author},
{name: "URL", value:playlist.url},
{name: "Nombre de videos", value:playlist.video_count + " vidéos"})
.setThumbnail(playlist.thumbnail_url)
.setTimestamp();
try {
await interaction.reply({embeds: [embed]})
} catch(error) {
log.bot.error(error);
}
addList(playlist, player)
async function addList(Pplaylist, Pplayer) {
for(var song of Pplaylist.videos) {
const song_finded = await client.manager.search(song.url)
await client.manager.players.get(interaction.guild.id).queue.add(song_finded.tracks[0])
}
if(Pplayer.playing == false) {
await Pplayer.play()
}
}
await process.emit("discordDoing")
} catch(error) {
const embed = new EmbedBuilder()
.setColor(0xff0303)
.setTitle('Erreur : Playlist !')
.setTimestamp();
const song_show = {name: "Une erreur s'est produite ou la playlist n'existe pas !", value: "Est-tu sur du lien ?"}
embed.addFields(song_show)
interaction.reply({embeds: [embed]})
log.bot.error(error);
};
process.emit("discordDoing")
}
}
}

View File

@ -1,5 +1,4 @@
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js"); const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
const log = require("../sublog")
module.exports = { module.exports = {
@ -38,8 +37,6 @@ module.exports = {
async function makeAction() { async function makeAction() {
if(!interaction.member.voice.channel) return interaction.reply({content:"Vous devez rejoindre un salon vocal !", ephemeral: true}) if(!interaction.member.voice.channel) return interaction.reply({content:"Vous devez rejoindre un salon vocal !", ephemeral: true})
@ -65,6 +62,8 @@ module.exports = {
interaction.reply({embeds: [embed]}) interaction.reply({embeds: [embed]})
} else { } else {
console.log("------------------------QUEUE.JS---------------------")
console.log(client.manager.players.get(interaction.guild.id).queue)
let queue = client.manager.players.get(interaction.guild.id).queue; let queue = client.manager.players.get(interaction.guild.id).queue;
@ -76,15 +75,12 @@ module.exports = {
interaction.reply({embeds: [embed]}) interaction.reply({embeds: [embed]})
} else { } else {
var fieldmax = 0
for(var song of queue) {
fieldmax += 1
if(fieldmax <= 25) {
const song_show = {name: queue.indexOf(song) + " - " + song.title, value: song.author}
embed.addFields(song_show) for(song of queue) {
} const song_show = {name: queue.indexOf(song) + " - " + song.title, value: song.author}
embed.addFields(song_show)
} }
await interaction.reply({embeds: [embed]}) await interaction.reply({embeds: [embed]})
@ -114,6 +110,8 @@ module.exports = {
interaction.reply({embeds: [embed]}) interaction.reply({embeds: [embed]})
} else { } else {
console.log("------------------------QUEUE.JS---------------------")
console.log(client.manager.players.get(interaction.guild.id).queue)
let queue = client.manager.players.get(interaction.guild.id).queue; let queue = client.manager.players.get(interaction.guild.id).queue;
@ -131,6 +129,7 @@ module.exports = {
const number = interaction.options.getInteger("number") const number = interaction.options.getInteger("number")
console.log(number)
if(number != null) { if(number != null) {
try { try {
@ -180,8 +179,6 @@ module.exports = {
await interaction.reply("**La commande a été mal éxécutée !**") await interaction.reply("**La commande a été mal éxécutée !**")
} }
process.emit("discordDoing")
} }
} }
} }

View File

@ -1,64 +0,0 @@
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
const log = require("../sublog")
const { Manager } = require("erela.js")
module.exports = {
data: new SlashCommandBuilder()
.setName("restart")
.setDescription("Redémarre le bot !"),
async execute(client, interaction) {
if(interaction.member._roles.includes("397725956598530050") == true | interaction.member._roles.includes("397724656548970508") == true| interaction.member._roles.includes("397725128198455299") == true| interaction.member._roles.includes("397725552968204288") == true | interaction.member.user.id == "486943594893017119") {
const embed = new EmbedBuilder()
.setColor(0xffffff)
.setTitle('Redémarrage du bot !')
.setDescription("Vérifie le redémarrage avec /play et si cela ne fonctionne pas, SPAM <@486943594893017119> !!!")
.setTimestamp();
interaction.reply({embeds: [embed]})
let player = client.manager.players.get(interaction.guild.id)
if(player) {
player.destroy()
}
const nodes = [
{
host: "narco.buses.rocks",
password: "glasshost1984",
port: 2269,
secure: false
}
];
client.manager.createNode(nodes)
} else {
const embed = new EmbedBuilder()
.setColor(0xff0303)
.setTitle('Erreur : Redémarrage du BOT')
.setTimestamp();
const song_show = {name: "Tu n'as pas la permission de faire cela !", value: "Verbotten !"}
embed.addFields(song_show)
interaction.reply({embeds: [embed]})
}
process.emit("discordDoing")
}
}

View File

@ -1,5 +1,4 @@
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js"); const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
const log = require("../sublog")
module.exports = { module.exports = {
@ -9,8 +8,6 @@ module.exports = {
async execute(client, interaction) { async execute(client, interaction) {
if(client.dictator == true ) { if(client.dictator == true ) {
if((interaction.member._roles.includes("397725956598530050") == true | interaction.member.user.id == "486943594893017119")) { if((interaction.member._roles.includes("397725956598530050") == true | interaction.member.user.id == "486943594893017119")) {
@ -63,8 +60,6 @@ module.exports = {
interaction.reply("**Aucune musique n'est actuellement jouée !**") interaction.reply("**Aucune musique n'est actuellement jouée !**")
} }
process.emit("discordDoing")
} }
} }
} }

View File

@ -1,81 +0,0 @@
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
const log = require("../sublog")
module.exports = {
data: new SlashCommandBuilder()
.setName("seek")
.setDescription("Définie la position du player dans la musique !")
.addIntegerOption(option => option.setName("duration").setDescription("En seconde")),
async execute(client, interaction) {
if(client.dictator == true ) {
if((interaction.member._roles.includes("397725956598530050") == true | interaction.member.user.id == "486943594893017119")) {
makeAction()
} else {
const embed = new EmbedBuilder()
.setColor(0xff0303)
.setTitle('Mode Dictateur')
.setTimestamp();
const song_show = {name: "Le mode dictateur est actif !", value: "Demande au grand roi !"}
embed.addFields(song_show)
interaction.reply({embeds: [embed]})
}
} else {
makeAction();
}
async function makeAction() {
if(!interaction.member.voice.channel) return interaction.reply({content:"Vous devez rejoindre un salon vocal !", ephemeral: true})
let player = client.manager.players.get(interaction.guild.id)
let duration = interaction.options.getInteger("duration")
if(player) {
try {
const embed = new EmbedBuilder()
.setColor(0xfff200)
.setTitle('On avance ou recule ?')
.setTimestamp();
interaction.reply({embeds: [embed]})
duration = duration ** 3
player.seek(duration)
} catch (error) {
log.bot.error(error);
interaction.reply("**Aucune musique n'est actuellement jouée !**")
}
} else {
interaction.reply("**Aucune musique n'est actuellement jouée !**")
}
process.emit("discordDoing")
}
}
}

View File

@ -1,71 +0,0 @@
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
const log = require("../sublog")
module.exports = {
data: new SlashCommandBuilder()
.setName("mix")
.setDescription("Mélange la liste de lecture !"),
async execute(client, interaction) {
if(client.dictator == true ) {
if((interaction.member._roles.includes("397725956598530050") == true | interaction.member.user.id == "486943594893017119")) {
makeAction()
} else {
const embed = new EmbedBuilder()
.setColor(0xff0303)
.setTitle('Mode Dictateur')
.setTimestamp();
const song_show = {name: "Le mode dictateur est actif !", value: "Demande au grand roi !"}
embed.addFields(song_show)
interaction.reply({embeds: [embed]})
}
} else {
makeAction();
}
async function makeAction() {
if(!interaction.member.voice.channel) return interaction.reply({content:"Vous devez rejoindre un salon vocal !", ephemeral: true})
let player = client.manager.players.get(interaction.guild.id)
if(player) {
const embed = new EmbedBuilder()
.setColor(0xfff200)
.setTitle('On mélange !')
.setDescription("Toutes les musiques de la liste de lecture ont été mélangés !")
.setTimestamp();
interaction.reply({embeds: [embed]})
player.queue.shuffle()
} else {
interaction.reply("**Aucune musique n'est actuellement jouée !**")
}
process.emit("discordDoing")
}
}
}

View File

@ -1,5 +1,4 @@
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js"); const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
const log = require("../sublog")
module.exports = { module.exports = {
@ -9,7 +8,6 @@ module.exports = {
async execute(client, interaction) { async execute(client, interaction) {
if(client.dictator == true ) { if(client.dictator == true ) {
if((interaction.member._roles.includes("397725956598530050") == true | interaction.member.user.id == "486943594893017119")) { if((interaction.member._roles.includes("397725956598530050") == true | interaction.member.user.id == "486943594893017119")) {
@ -55,7 +53,8 @@ module.exports = {
interaction.reply({embeds: [embed]}) interaction.reply({embeds: [embed]})
} else { } else {
console.log("------------------------QUEUE.JS---------------------")
console.log(client.manager.players.get(interaction.guild.id).queue)
let queue = client.manager.players.get(interaction.guild.id).queue; let queue = client.manager.players.get(interaction.guild.id).queue;
@ -84,7 +83,7 @@ module.exports = {
} }
} }
process.emit("discordDoing")
} }
} }
} }

View File

@ -1,5 +1,4 @@
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js"); const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
const log = require("../sublog")
module.exports = { module.exports = {
@ -9,8 +8,6 @@ module.exports = {
async execute(client, interaction) { async execute(client, interaction) {
if(!interaction.member.voice.channel) return interaction.reply({content:"Vous devez rejoindre un salon vocal !", ephemeral: true}) if(!interaction.member.voice.channel) return interaction.reply({content:"Vous devez rejoindre un salon vocal !", ephemeral: true})
let player = client.manager.players.get(interaction.guild.id) let player = client.manager.players.get(interaction.guild.id)

View File

@ -1,6 +1,5 @@
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js"); const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
const packageJson = require('../../package.json'); const packageJson = require('../../package.json');
const log = require("../sublog")
module.exports = { module.exports = {
@ -10,7 +9,6 @@ module.exports = {
async execute(client, interaction) { async execute(client, interaction) {
process.emit("discordDoing")
const uptime = process.uptime(); const uptime = process.uptime();
const minutes = Math.floor(uptime / 60); const minutes = Math.floor(uptime / 60);

View File

@ -1,5 +1,5 @@
{ {
"token":"MTA5NDcyNzc4OTY4MjM4MDkyMg.GXRu96.tkaQ8XqbDgk4blhGk4sme6JGwQkgf9hQ92W15s", "token":"MTA5NDcyNzc4OTY4MjM4MDkyMg.GaWsMy.zp3wY6mSOwVhHfV0k43fXdgspi24qgW7LyCD6U",
"clientID":"1094727789682380922", "clientID":"1094727789682380922",
"guildID":"137291455336022018" "guildID":"137291455336022018"
} }

View File

@ -1,155 +0,0 @@
@import url('https://fonts.googleapis.com/css2?family=Open+Sans&display=swap');
body {
background-color: #171717 !important;
font-family: 'Open Sans', sans-serif !important;
padding: 3%;
}
.top-title {
display: flex;
width: 100%;
flex-direction: row;
justify-content: center;
align-items: center;
color: white;
}
.top-logo {
width: 5vw;
border-radius: 10%;
}
.buttonClose {
background-color: transparent;
border: none;
border-radius: 15px;
cursor: pointer;
transition: all 0.3s ease 0s;
font-family: 'noto Sans', sans-serif;
font-weight: 500;
font-size: 15px;
color: white;
text-decoration: none;
-webkit-app-region: no-drag;
margin: 5px;
outline: none;
}
.text {
text-align: center;
font-size: 2vw;
color: rgb(255, 2, 2);
}
.boxtext {
margin-top: 5%;
border-radius: 15px;
background-color: #3d3d3d;
width: 50%;
padding: 3%;
margin-right: auto;
margin-left: auto;
}
.buttonClose:hover {
color: red;
}
.buttonClose:active {
color: rgb(255, 255, 255);
}
.buttonReduce {
background-color: transparent;
border: none;
border-radius: 15px;
cursor: pointer;
transition: all 0.3s ease 0s;
font-family: 'noto Sans', sans-serif;
font-weight: 500;
font-size: 13px;
color: white;
text-decoration: none;
-webkit-app-region: no-drag;
margin: 5px;
outline: none;
}
.buttonReduce:hover {
color: rgb(46, 196, 255);
}
.buttonReduce:active {
color: rgb(255, 255, 255);
}
header {
display: flex;
}
.content {
padding: 5%;
padding-top: 0;
}
.buttonFav {
background-color: transparent;
border: none;
border-radius: 15px;
cursor: pointer;
transition: all 0.3s ease 0s;
font-family: 'noto Sans', sans-serif;
font-weight: 500;
font-size: 13px;
color: white;
text-decoration: none;
-webkit-app-region: no-drag;
margin: 0;
outline: none;
}
.buttonFav:hover {
color: rgb(242, 255, 53);
}
.buttonFav:active {
color: rgb(255, 255, 255);
}
.title-t {
width: +30%;
margin-left: 1%;
margin-top: 1%;
}

View File

@ -1,21 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="./error.css">
<title>Subsonics - Submanager</title>
</head>
<body>
<div class="top-title">
<img class="top-logo" src="./logo.png" alt="Logo">
<img class="title-t" src="./title.png" alt="Logo">
</div>
<div class="boxtext">
<p class="text">Echec de connexion par Discord !</p>
<p class="text">Vous pouvez fermer cette fenêtre et réessayer !</p>
</div>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

File diff suppressed because it is too large Load Diff

View File

@ -1,152 +0,0 @@
module.exports.server = (message) => {
var date = new Date()
// [Date Format] - Format de la date
var gmonth = date.getMonth()
var gday = date.getDate()
var gHour = date.getHours()
var gMinute = date.getMinutes()
var gSecondes = date.getSeconds()
if(date.getMonth() + 1 <= 9) {
gmonth = "0" + (date.getMonth() + 1)
}
if(date.getDate() + 1 <= 9) {
gday = "0" + date.getDate()
}
if(date.getHours() + 1 <= 9) {
gHour = "0" + date.getHours()
}
if(date.getMinutes() + 1 <= 9) {
gMinute = "0" + date.getMinutes()
}
if(date.getSeconds() + 1 <= 9) {
gSecondes = "0" + date.getSeconds()
}
var currentDate = date.getFullYear() + "-" + gmonth + "-" + gday + "-" + gHour + "h" + "-" + gMinute + "m" + "-" + gSecondes + "s"
console.log("[Subsonics-Server] - " + currentDate + " - " + message)
}
module.exports.server.error = (message) => {
var date = new Date()
// [Date Format] - Format de la date
var gmonth = date.getMonth()
var gday = date.getDate()
var gHour = date.getHours()
var gMinute = date.getMinutes()
var gSecondes = date.getSeconds()
if(date.getMonth() + 1 <= 9) {
gmonth = "0" + (date.getMonth() + 1)
}
if(date.getDate() + 1 <= 9) {
gday = "0" + date.getDate()
}
if(date.getHours() + 1 <= 9) {
gHour = "0" + date.getHours()
}
if(date.getMinutes() + 1 <= 9) {
gMinute = "0" + date.getMinutes()
}
if(date.getSeconds() + 1 <= 9) {
gSecondes = "0" + date.getSeconds()
}
var currentDate = date.getFullYear() + "-" + gmonth + "-" + gday + "-" + gHour + "h" + "-" + gMinute + "m" + "-" + gSecondes + "s"
console.error("[Subsonics-Server] - [ERROR] - " + currentDate + " - " + message)
}
module.exports.bot = (message) => {
var date = new Date()
// [Date Format] - Format de la date
var gmonth = date.getMonth()
var gday = date.getDate()
var gHour = date.getHours()
var gMinute = date.getMinutes()
var gSecondes = date.getSeconds()
if(date.getMonth() + 1 <= 9) {
gmonth = "0" + (date.getMonth() + 1)
}
if(date.getDate() + 1 <= 9) {
gday = "0" + date.getDate()
}
if(date.getHours() + 1 <= 9) {
gHour = "0" + date.getHours()
}
if(date.getMinutes() + 1 <= 9) {
gMinute = "0" + date.getMinutes()
}
if(date.getSeconds() + 1 <= 9) {
gSecondes = "0" + date.getSeconds()
}
var currentDate = date.getFullYear() + "-" + gmonth + "-" + gday + "-" + gHour + "h" + "-" + gMinute + "m" + "-" + gSecondes + "s"
console.log("[Subsonics-Discord] - " + currentDate + " - " + message)
}
module.exports.bot.error = (message) => {
var date = new Date()
// [Date Format] - Format de la date
var gmonth = date.getMonth()
var gday = date.getDate()
var gHour = date.getHours()
var gMinute = date.getMinutes()
var gSecondes = date.getSeconds()
if(date.getMonth() + 1 <= 9) {
gmonth = "0" + (date.getMonth() + 1)
}
if(date.getDate() + 1 <= 9) {
gday = "0" + date.getDate()
}
if(date.getHours() + 1 <= 9) {
gHour = "0" + date.getHours()
}
if(date.getMinutes() + 1 <= 9) {
gMinute = "0" + date.getMinutes()
}
if(date.getSeconds() + 1 <= 9) {
gSecondes = "0" + date.getSeconds()
}
var currentDate = date.getFullYear() + "-" + gmonth + "-" + gday + "-" + gHour + "h" + "-" + gMinute + "m" + "-" + gSecondes + "s"
console.error("[Subsonics-Discord] - [ERROR] - " + currentDate + " - ")
console.error(message)
}

View File

@ -1,444 +0,0 @@
{
"6bde63c8-6b74-4fb5-98d8-87c8c203c16b": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"3bdca403-b9d2-47b8-b9c4-3818b324a76f": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"aac35fb6-5c16-4d29-a1e6-6abc43ce5008": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"750f0802-7d9c-4263-b2dd-f27d47029e8b": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"c416c176-157e-40a9-ae32-23cfcf812dd4": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"5ef772f4-e729-4ccc-9c23-25d7cc4b2c64": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"b5b7d954-49b6-43b4-a237-08e41f3e6f58": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"27e00135-65fa-43d5-820c-e35bb906d47c": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"04cb0b39-a29e-4dc2-a6e8-31651a4382a5": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"e79cbf92-0e97-4522-9430-54e87a1998d3": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"da77741c-e550-43f0-b4e8-86060fd7e784": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"c89a8d5c-a5f7-409a-9ca5-3d27f40bc073": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"6726b668-25f4-4d3f-8440-b6a4cc002c7d": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"41769f38-1cab-44b9-b96f-09261fe5c3d0": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"cc20f4c2-9b35-4846-9b00-e3d09be6e273": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"39faa9aa-e569-498b-8a7f-0dc59a871499": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"3c1e29d2-5678-4799-a658-6a4b2c928a4e": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"a4e19e96-9810-410b-a8c4-9952c334d2f0": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"af666d26-811e-4bb6-832f-aef39dec9578": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"fe83ad11-88c5-4642-96ec-d115ce3346bf": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"e9dc3b80-44d2-4caf-a688-b37af348518a": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"bcd84469-7d83-4343-ae87-5f2d28e4d2ce": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"bf7dcd93-9efe-40f4-9037-aef9dfea6a5c": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"867f8379-3927-42b2-85e8-4df3ced2eddb": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"75a3e38c-eed5-462c-bde8-067dd16ca391": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"d35acbb8-4a3b-4286-8df6-2ab61cb2c74e": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
}
}