Compare commits
25 Commits
Author | SHA1 | Date | |
---|---|---|---|
af4b175aad | |||
1d1818af8d | |||
a09ac9281d | |||
f07a6d9386 | |||
5d64331479 | |||
e4665c34f9 | |||
af53e95349 | |||
c1cca39012 | |||
0e68a33952 | |||
897d3f392b | |||
8d978ff1d3 | |||
abd33e7cb4 | |||
ff10347224 | |||
8d0a41db8f | |||
8cdfb9c682 | |||
cdf5f0cf84 | |||
1a44f8d8db | |||
2c79ec369e | |||
ba52480694 | |||
cadfe8e572 | |||
14d57184bf | |||
332e550b08 | |||
71e845bf99 | |||
4b145910c8 | |||
84cba5fdd4 |
3
.gitignore
vendored
3
.gitignore
vendored
@ -20,6 +20,9 @@ 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
|
||||||
|
|
||||||
|
4
package-lock.json
generated
4
package-lock.json
generated
@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "subsonics-discord",
|
"name": "subsonics-discord",
|
||||||
"version": "5.5",
|
"version": "7.5",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "subsonics-discord",
|
"name": "subsonics-discord",
|
||||||
"version": "5.5",
|
"version": "7.5",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"cookie-parser": "^1.4.6",
|
"cookie-parser": "^1.4.6",
|
||||||
"discord.js": "^14.9.0",
|
"discord.js": "^14.9.0",
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "subsonics-discord",
|
"name": "subsonics-discord",
|
||||||
"author": "Raphix",
|
"author": "Raphix",
|
||||||
"version": "6.0",
|
"version": "7.5",
|
||||||
"nodemonConfig": {
|
"nodemonConfig": {
|
||||||
"ext": "js, html",
|
"ext": "js, html",
|
||||||
"ignore": [
|
"ignore": [
|
||||||
|
@ -1,12 +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">
|
|
||||||
<title>Submanager - </title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
155
src/close/close.css
Normal file
155
src/close/close.css
Normal file
@ -0,0 +1,155 @@
|
|||||||
|
@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%;
|
||||||
|
|
||||||
|
}
|
21
src/close/close.html
Normal file
21
src/close/close.html
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<!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>
|
BIN
src/close/logo.png
Normal file
BIN
src/close/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.0 KiB |
BIN
src/close/title.png
Normal file
BIN
src/close/title.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
@ -82,4 +82,5 @@ module.exports = {
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -32,16 +32,16 @@ module.exports = {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const nodes = [
|
const nodes = [
|
||||||
{
|
{
|
||||||
host: "lavalink.devamop.in",
|
host: "narco.buses.rocks",
|
||||||
password: "DevamOP",
|
password: "glasshost1984",
|
||||||
port: 443,
|
port: 2269,
|
||||||
secure: true
|
secure: false
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
client.manager.createNode(nodes)
|
client.manager.createNode(nodes)
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"token":"MTA5NDcyNzc4OTY4MjM4MDkyMg.GaWsMy.zp3wY6mSOwVhHfV0k43fXdgspi24qgW7LyCD6U",
|
"token":"MTA5NDcyNzc4OTY4MjM4MDkyMg.GXRu96.tkaQ8XqbDgk4blhGk4sme6JGwQkgf9hQ92W15s",
|
||||||
"clientID":"1094727789682380922",
|
"clientID":"1094727789682380922",
|
||||||
"guildID":"137291455336022018"
|
"guildID":"137291455336022018"
|
||||||
}
|
}
|
155
src/error/error.css
Normal file
155
src/error/error.css
Normal file
@ -0,0 +1,155 @@
|
|||||||
|
@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%;
|
||||||
|
|
||||||
|
}
|
21
src/error/error.html
Normal file
21
src/error/error.html
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<!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>
|
BIN
src/error/logo.png
Normal file
BIN
src/error/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.0 KiB |
BIN
src/error/title.png
Normal file
BIN
src/error/title.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
250
src/main.js
250
src/main.js
@ -7,6 +7,7 @@ if ("ENV" in process.env) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const log = require("./sublog.js")
|
const log = require("./sublog.js")
|
||||||
|
var membersVoices = new Map()
|
||||||
|
|
||||||
const nodes = [
|
const nodes = [
|
||||||
{
|
{
|
||||||
@ -21,17 +22,21 @@ function startDiscordBot() {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
const { Client, GatewayIntentBits, Collection } = require("discord.js")
|
const { Client, GatewayIntentBits, Collection, ActivityType } = require("discord.js")
|
||||||
const { REST, Routes } = require("discord.js")
|
const { REST, Routes } = require("discord.js")
|
||||||
const fs = require("node:fs")
|
const fs = require("node:fs")
|
||||||
const config = require("./config.json")
|
const config = require("./config.json")
|
||||||
const path = require("path")
|
const path = require("path")
|
||||||
const { Manager } = require("erela.js")
|
const { Manager } = require("erela.js")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const client = new Client({
|
const client = new Client({
|
||||||
intents:[GatewayIntentBits.Guilds, GatewayIntentBits.GuildVoiceStates, GatewayIntentBits.GuildMembers]
|
intents:[GatewayIntentBits.Guilds, GatewayIntentBits.GuildVoiceStates, GatewayIntentBits.GuildMembers],
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
client.commands = new Collection()
|
client.commands = new Collection()
|
||||||
client.dictator = false;
|
client.dictator = false;
|
||||||
|
|
||||||
@ -80,7 +85,6 @@ function startDiscordBot() {
|
|||||||
client.once("ready", () => {
|
client.once("ready", () => {
|
||||||
|
|
||||||
log.bot("Le meilleur groupe de musique est prêt !")
|
log.bot("Le meilleur groupe de musique est prêt !")
|
||||||
client.user.setActivity(`beaucoup de choses !`, { type: "LISTENING" })
|
|
||||||
client.manager.init(client.user.id);
|
client.manager.init(client.user.id);
|
||||||
|
|
||||||
const commandManager = client.application.commands;
|
const commandManager = client.application.commands;
|
||||||
@ -96,6 +100,8 @@ function startDiscordBot() {
|
|||||||
|
|
||||||
client.on("voiceStateUpdate", (oldMember, newMember) => {
|
client.on("voiceStateUpdate", (oldMember, newMember) => {
|
||||||
|
|
||||||
|
membersVoices.set(newMember.id, newMember.channelId)
|
||||||
|
|
||||||
let player = client.manager.players.get(oldMember.guild.id)
|
let player = client.manager.players.get(oldMember.guild.id)
|
||||||
|
|
||||||
if(player) {
|
if(player) {
|
||||||
@ -183,6 +189,14 @@ function startServer(client) {
|
|||||||
const fs = require("fs")
|
const fs = require("fs")
|
||||||
const path = require("path")
|
const path = require("path")
|
||||||
|
|
||||||
|
app.use(express.static(__dirname + path.sep + 'error'))
|
||||||
|
app.use(express.static(__dirname + path.sep + 'close'))
|
||||||
|
|
||||||
|
if(!fs.existsSync(__dirname + path.sep + "tokens.json")) {
|
||||||
|
|
||||||
|
fs.writeFileSync(__dirname + path.sep + "tokens.json", JSON.stringify({}, null, 2))
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
var link = null
|
var link = null
|
||||||
var discordlink = null
|
var discordlink = null
|
||||||
@ -191,9 +205,9 @@ function startServer(client) {
|
|||||||
|
|
||||||
log.server("DEV MOD ENABLED")
|
log.server("DEV MOD ENABLED")
|
||||||
link = "http://localhost:4000" //DEV
|
link = "http://localhost:4000" //DEV
|
||||||
discordlink = "https://discord.com/api/oauth2/authorize?client_id=1094727789682380922&redirect_uri=http%3A%2F%2Flocalhost%3A4000%2Fredirect&response_type=code&scope=guilds%20identify" //DEV
|
discordlink = "https://discord.com/api/oauth2/authorize?client_id=1094727789682380922&redirect_uri=http%3A%2F%2Flocalhost%3A4000%2Fredirect&response_type=code&scope=identify%20guilds%20guilds.members.read" //DEV
|
||||||
} else {
|
} else {
|
||||||
discordlink = "https://discord.com/api/oauth2/authorize?client_id=1094727789682380922&redirect_uri=https%3A%2F%2Fsubsonics.raphix.fr%2Fredirect&response_type=code&scope=identify%20guilds" //OFFICIEL
|
discordlink = "https://discord.com/api/oauth2/authorize?client_id=1094727789682380922&redirect_uri=https%3A%2F%2Fsubsonics.raphix.fr%2Fredirect&response_type=code&scope=identify%20guilds%20guilds.members.read" //OFFICIEL
|
||||||
link = "https://subsonics.raphix.fr"
|
link = "https://subsonics.raphix.fr"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -208,6 +222,7 @@ function startServer(client) {
|
|||||||
|
|
||||||
function reimportUser() {
|
function reimportUser() {
|
||||||
|
|
||||||
|
|
||||||
const tokens = require(__dirname + path.sep + "tokens.json")
|
const tokens = require(__dirname + path.sep + "tokens.json")
|
||||||
|
|
||||||
users = new Map()
|
users = new Map()
|
||||||
@ -247,7 +262,7 @@ function startServer(client) {
|
|||||||
|
|
||||||
if(users.has(token)) {
|
if(users.has(token)) {
|
||||||
|
|
||||||
log.server("Recherche avec les mots clés : " + value + " de musique de " + users.get(token).username + "#" + users.get(token).discriminator)
|
log.server("Recherche avec les mots clés : " + value + " de musique de " + users.get(token).username)
|
||||||
|
|
||||||
find()
|
find()
|
||||||
|
|
||||||
@ -263,12 +278,21 @@ function startServer(client) {
|
|||||||
|
|
||||||
let player = client.manager.players.get("137291455336022018")
|
let player = client.manager.players.get("137291455336022018")
|
||||||
|
|
||||||
|
var voiceChannel = "664355808250953739"
|
||||||
|
|
||||||
|
|
||||||
|
if(membersVoices.has(users.get(token).id) && membersVoices.get(users.get(token).id) != null) {
|
||||||
|
|
||||||
|
voiceChannel = membersVoices.get(users.get(token).id)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
if(!player) {
|
if(!player) {
|
||||||
|
|
||||||
player = client.manager.create({
|
player = client.manager.create({
|
||||||
guild: "137291455336022018",
|
guild: "137291455336022018",
|
||||||
voiceChannel: "664355808250953739",
|
voiceChannel: voiceChannel,
|
||||||
textChannel: "664355808250953739",
|
textChannel: voiceChannel,
|
||||||
});
|
});
|
||||||
|
|
||||||
player.connect();
|
player.connect();
|
||||||
@ -279,7 +303,7 @@ function startServer(client) {
|
|||||||
player.queue.add(songtrack.tracks[0])
|
player.queue.add(songtrack.tracks[0])
|
||||||
|
|
||||||
|
|
||||||
log.server("Lecture / Ajout du titre : " + songtrack.tracks[0].title + " de musique de " + users.get(token).username + "#" + users.get(token).discriminator)
|
log.server("Lecture / Ajout du titre : " + songtrack.tracks[0].title + " de musique de " + users.get(token).username)
|
||||||
|
|
||||||
if(!player.playing) {
|
if(!player.playing) {
|
||||||
|
|
||||||
@ -324,7 +348,7 @@ function startServer(client) {
|
|||||||
if(users.has(token)) {
|
if(users.has(token)) {
|
||||||
answer = true
|
answer = true
|
||||||
|
|
||||||
log.server("Connexion au serveur par Token - SOCKET_ID : " + socket.id + " - DISCORD_USER : " + users.get(token).username + "#" + users.get(token).discriminator)
|
log.server("Connexion au serveur par Token - SOCKET_ID : " + socket.id + " - DISCORD_USER : " + users.get(token).username)
|
||||||
actualize()
|
actualize()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -332,21 +356,27 @@ function startServer(client) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
socket.on("getState", (token) => {
|
socket.on("getState", (token) => {
|
||||||
reimportUser()
|
|
||||||
actualize()
|
|
||||||
|
|
||||||
const data = {
|
const data = {
|
||||||
"username":users.get(token).username + "#" + users.get(token).discriminator,
|
"username":users.get(token).username,
|
||||||
"avatar": users.get(token).avatar,
|
"avatar": users.get(token).avatar,
|
||||||
"id": users.get(token).id,
|
"id": users.get(token).id,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
actualize()
|
||||||
|
|
||||||
socket.emit("updateState", data)
|
socket.emit("updateState", data)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
socket.on("play", (token) => {
|
socket.on("play", (token) => {
|
||||||
if(users.has(token)) {
|
if(users.has(token)) {
|
||||||
|
|
||||||
log.server("Mise en Play / Pause demandé par " + users.get(token).username + "#" + users.get(token).discriminator)
|
log.server("Mise en Play / Pause demandé par " + users.get(token).username)
|
||||||
|
|
||||||
|
|
||||||
let player = client.manager.players.get("137291455336022018")
|
let player = client.manager.players.get("137291455336022018")
|
||||||
|
|
||||||
@ -376,7 +406,7 @@ function startServer(client) {
|
|||||||
if(users.has(token)) {
|
if(users.has(token)) {
|
||||||
|
|
||||||
|
|
||||||
log.server("Avancement demandé par " + users.get(token).username + "#" + users.get(token).discriminator)
|
log.server("Avancement demandé par " + users.get(token).username)
|
||||||
|
|
||||||
let player = client.manager.players.get("137291455336022018")
|
let player = client.manager.players.get("137291455336022018")
|
||||||
|
|
||||||
@ -397,7 +427,7 @@ function startServer(client) {
|
|||||||
if(users.has(token)) {
|
if(users.has(token)) {
|
||||||
|
|
||||||
|
|
||||||
log.server("Changement de volume demandé par " + users.get(token).username + "#" + users.get(token).discriminator)
|
log.server("Changement de volume demandé par " + users.get(token).username)
|
||||||
|
|
||||||
let player = client.manager.players.get("137291455336022018")
|
let player = client.manager.players.get("137291455336022018")
|
||||||
|
|
||||||
@ -418,7 +448,7 @@ function startServer(client) {
|
|||||||
if(users.has(token)) {
|
if(users.has(token)) {
|
||||||
|
|
||||||
|
|
||||||
log.server("Clear liste demandé par " + users.get(token).username + "#" + users.get(token).discriminator)
|
log.server("Clear liste demandé par " + users.get(token).username)
|
||||||
|
|
||||||
let player = client.manager.players.get("137291455336022018")
|
let player = client.manager.players.get("137291455336022018")
|
||||||
|
|
||||||
@ -435,6 +465,55 @@ function startServer(client) {
|
|||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
socket.on("report", (token, report) => {
|
||||||
|
if(users.has(token)) {
|
||||||
|
|
||||||
|
const { EmbedBuilder } = require("discord.js")
|
||||||
|
|
||||||
|
log.server("Bug report demandé par " + users.get(token).username)
|
||||||
|
var embed = null
|
||||||
|
|
||||||
|
if(report.type == "Bug") {
|
||||||
|
embed = new EmbedBuilder()
|
||||||
|
.setColor(0xff0000)
|
||||||
|
.setTitle('Bug report de ' + users.get(token).username)
|
||||||
|
.setDescription('**Version **' + report.version)
|
||||||
|
.addFields({name: "Description", value: report.text})
|
||||||
|
.setTimestamp();
|
||||||
|
|
||||||
|
|
||||||
|
} else {
|
||||||
|
embed = new EmbedBuilder()
|
||||||
|
.setColor(0x0000ff)
|
||||||
|
.setTitle('Suggestion de ' + users.get(token).username)
|
||||||
|
.setDescription('**Version **' + report.version)
|
||||||
|
.addFields({name: "Description", value: report.text})
|
||||||
|
.setTimestamp();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sendReport()
|
||||||
|
async function sendReport() {
|
||||||
|
const channel = await client.channels.fetch('1102177962817749033')
|
||||||
|
|
||||||
|
channel.send({embeds: [embed]})
|
||||||
|
channel.send({content: "<@486943594893017119>"})
|
||||||
|
|
||||||
|
}
|
||||||
|
socket.emit("reportAns", true)
|
||||||
|
actualize()
|
||||||
|
} else {
|
||||||
|
|
||||||
|
socket.emit("authFailed")
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
socket.on("deleteQueue", (token, identifier) => {
|
socket.on("deleteQueue", (token, identifier) => {
|
||||||
|
|
||||||
@ -444,7 +523,7 @@ function startServer(client) {
|
|||||||
|
|
||||||
if(player) {
|
if(player) {
|
||||||
|
|
||||||
log.server("Supression (n°" + identifier + ") d'un morceau demandé par " + users.get(token).username + "#" + users.get(token).discriminator)
|
log.server("Supression (n°" + identifier + ") d'un morceau demandé par " + users.get(token).username )
|
||||||
|
|
||||||
player.queue.remove(identifier)
|
player.queue.remove(identifier)
|
||||||
|
|
||||||
@ -459,11 +538,38 @@ function startServer(client) {
|
|||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
socket.on("moveQueue", (token, identifier) => {
|
||||||
|
|
||||||
|
if(users.has(token)) {
|
||||||
|
|
||||||
|
let player = client.manager.players.get("137291455336022018")
|
||||||
|
|
||||||
|
if(player) {
|
||||||
|
|
||||||
|
log.server("Déplacement (n°" + identifier + ") d'un morceau demandé par " + users.get(token).username )
|
||||||
|
|
||||||
|
|
||||||
|
let elementToMove = player.queue[identifier];
|
||||||
|
|
||||||
|
player.queue.remove(identifier)
|
||||||
|
player.queue.unshift(elementToMove);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
actualize()
|
||||||
|
} else {
|
||||||
|
socket.emit("authFailed")
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
socket.on("backward", (token) => {
|
socket.on("backward", (token) => {
|
||||||
|
|
||||||
if(users.has(token)) {
|
if(users.has(token)) {
|
||||||
|
|
||||||
log.server("Retour arrière demandé par " + users.get(token).username + "#" + users.get(token).discriminator)
|
log.server("Retour arrière demandé par " + users.get(token).username)
|
||||||
|
|
||||||
let player = client.manager.players.get("137291455336022018")
|
let player = client.manager.players.get("137291455336022018")
|
||||||
|
|
||||||
@ -491,7 +597,7 @@ function startServer(client) {
|
|||||||
|
|
||||||
if(users.has(token)) {
|
if(users.has(token)) {
|
||||||
|
|
||||||
log.server("Skip demandé par " + users.get(token).username + "#" + users.get(token).discriminator)
|
log.server("Skip demandé par " + users.get(token).username)
|
||||||
|
|
||||||
let player = client.manager.players.get("137291455336022018")
|
let player = client.manager.players.get("137291455336022018")
|
||||||
|
|
||||||
@ -522,7 +628,7 @@ function startServer(client) {
|
|||||||
|
|
||||||
let player = client.manager.players.get("137291455336022018")
|
let player = client.manager.players.get("137291455336022018")
|
||||||
|
|
||||||
log.server("Looping demandé par " + users.get(token).username + "#" + users.get(token).discriminator)
|
log.server("Looping demandé par " + users.get(token).username)
|
||||||
|
|
||||||
if(player) {
|
if(player) {
|
||||||
|
|
||||||
@ -549,7 +655,7 @@ function startServer(client) {
|
|||||||
|
|
||||||
if(users.has(token)) {
|
if(users.has(token)) {
|
||||||
|
|
||||||
log.server("Skip demandé par " + users.get(token).username + "#" + users.get(token).discriminator)
|
log.server("Skip demandé par " + users.get(token).username)
|
||||||
|
|
||||||
let player = client.manager.players.get("137291455336022018")
|
let player = client.manager.players.get("137291455336022018")
|
||||||
|
|
||||||
@ -571,7 +677,7 @@ function startServer(client) {
|
|||||||
|
|
||||||
if(users.has(token)) {
|
if(users.has(token)) {
|
||||||
|
|
||||||
log.server("Restart demandé par " + users.get(token).username + "#" + users.get(token).discriminator)
|
log.server("Restart demandé par " + users.get(token).username)
|
||||||
|
|
||||||
let player = client.manager.players.get("137291455336022018")
|
let player = client.manager.players.get("137291455336022018")
|
||||||
|
|
||||||
@ -657,6 +763,13 @@ function startServer(client) {
|
|||||||
|
|
||||||
if(player) {
|
if(player) {
|
||||||
|
|
||||||
|
const { ActivityType } = require("discord.js")
|
||||||
|
|
||||||
|
client.user.setPresence({
|
||||||
|
activities: [{ name: `rien pour le moment`, type: ActivityType.Listening }],
|
||||||
|
status: 'dnd',
|
||||||
|
});
|
||||||
|
|
||||||
data["current"] = player.queue.current
|
data["current"] = player.queue.current
|
||||||
|
|
||||||
if(player.queueRepeat == true) {
|
if(player.queueRepeat == true) {
|
||||||
@ -670,6 +783,12 @@ function startServer(client) {
|
|||||||
if(player.queue.current) {
|
if(player.queue.current) {
|
||||||
data["durationNow"] = player.position
|
data["durationNow"] = player.position
|
||||||
data["durationAll"] = player.queue.current.duration
|
data["durationAll"] = player.queue.current.duration
|
||||||
|
|
||||||
|
client.user.setPresence({
|
||||||
|
activities: [{ name: player.queue.current.title, type: ActivityType.Listening }],
|
||||||
|
status: 'dnd',
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -730,7 +849,7 @@ function startServer(client) {
|
|||||||
|
|
||||||
if(req.query.error) {
|
if(req.query.error) {
|
||||||
socket.emit("authFailed")
|
socket.emit("authFailed")
|
||||||
res.send("SubSonics Manager : ERREUR : DISCORD AUTH FAILED !")
|
res.sendFile(__dirname + path.sep + "error" + path.sep + "error.html")
|
||||||
log.server("Discord Auth : Erreur - Refus de connexion chez le service Discord : Token de Connexion : " + token + " associé à Client ID : " + socket.id)
|
log.server("Discord Auth : Erreur - Refus de connexion chez le service Discord : Token de Connexion : " + token + " associé à Client ID : " + socket.id)
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@ -752,7 +871,7 @@ function startServer(client) {
|
|||||||
params.append('grant_type', 'authorization_code');
|
params.append('grant_type', 'authorization_code');
|
||||||
params.append('code', code);
|
params.append('code', code);
|
||||||
params.append('redirect_uri', link + "/redirect");
|
params.append('redirect_uri', link + "/redirect");
|
||||||
params.append('scope', 'identify guild');
|
params.append('scope', 'identify guilds');
|
||||||
|
|
||||||
fetch('https://discord.com/api/oauth2/token', {
|
fetch('https://discord.com/api/oauth2/token', {
|
||||||
method: "POST",
|
method: "POST",
|
||||||
@ -764,7 +883,7 @@ function startServer(client) {
|
|||||||
|
|
||||||
|
|
||||||
res.clearCookie("authLoginFollow")
|
res.clearCookie("authLoginFollow")
|
||||||
res.send("SubSonics Manager : Vous pouvez fermer cette fenêtre ! Si rien ne ce passe sur l'application, prévenez Raphix !")
|
res.sendFile(__dirname + path.sep + "close" + path.sep + "close.html")
|
||||||
|
|
||||||
|
|
||||||
} catch(error) {
|
} catch(error) {
|
||||||
@ -773,7 +892,7 @@ function startServer(client) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
res.send("SubSonics Manager : ERREUR : DISCORD AUTH FAILED !")
|
res.sendFile(__dirname + path.sep + "error" + path.sep + "error.html")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -781,12 +900,13 @@ function startServer(client) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
res.send("SubSonics Manager : ERREUR : AUCUN TOKEN ENREGISTRÉ !")
|
res.sendFile(__dirname + path.sep + "error" + path.sep + "error.html")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
res.send("SubSonics Manager : ERREUR : AUCUN TOKEN ENREGISTRÉ !")
|
res.sendFile(__dirname + path.sep + "error" + path.sep + "error.html")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -798,12 +918,68 @@ function startServer(client) {
|
|||||||
|
|
||||||
log.server("Discord Auth : REQUESTING DATA - TOKEN : " + token + " - DISCORD_ACCESS_TOKEN : " + response.access_token)
|
log.server("Discord Auth : REQUESTING DATA - TOKEN : " + token + " - DISCORD_ACCESS_TOKEN : " + response.access_token)
|
||||||
|
|
||||||
fetch('https://discord.com/api/users/@me', {
|
fetch('https://discord.com/api/users/@me/guilds/137291455336022018/member', {
|
||||||
headers: {
|
headers: {
|
||||||
authorization: `${response.token_type} ${response.access_token}`,
|
authorization: `${response.token_type} ${response.access_token}`,
|
||||||
},
|
},
|
||||||
|
}).then(resp => resp.json()).then(resp => checkIdentity(resp, token, socket, response)).catch(error => log.server.error(error))
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
async function checkIdentity(servers, token, socket, creditentials) {
|
||||||
|
|
||||||
|
var checked = true
|
||||||
|
|
||||||
|
if(servers.message) {
|
||||||
|
|
||||||
|
checked = false
|
||||||
|
console.log("Discord Auth - DENIED - NOT IN SERVER - Token : " + token)
|
||||||
|
} else {
|
||||||
|
|
||||||
|
for(var role of servers.roles) {
|
||||||
|
|
||||||
|
if(role == "397725552968204288") {
|
||||||
|
|
||||||
|
checked = true
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if(role == "172437570905571328") {
|
||||||
|
|
||||||
|
checked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
if(role == "226744358567804928") {
|
||||||
|
|
||||||
|
|
||||||
|
checked = true
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if(role == "220649460059996163") {
|
||||||
|
|
||||||
|
|
||||||
|
checked = true
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if(checked == true) {
|
||||||
|
|
||||||
|
console.log("Discord Auth - ACCESS GRANTED - Token : " + token)
|
||||||
|
fetch('https://discord.com/api/users/@me', {
|
||||||
|
headers: {
|
||||||
|
authorization: `${creditentials.token_type} ${creditentials.access_token}`,
|
||||||
|
},
|
||||||
}).then(resp => resp.json()).then(resp => addIdentity(resp, token, socket)).catch(error => log.server.error(error))
|
}).then(resp => resp.json()).then(resp => addIdentity(resp, token, socket)).catch(error => log.server.error(error))
|
||||||
|
|
||||||
|
} else {
|
||||||
|
console.log("Discord Auth - DENIED - DONT HAVE RANK - Token : " + token)
|
||||||
|
socket.emit("checkFailed")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -813,25 +989,25 @@ function startServer(client) {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
log.server("Discord Auth : [IDENTITE] : Nouvelle identité - SOCKET_ID : " + socket.id + " - DISCORD_USER : " + response.username + "#" + response.discriminator)
|
log.server("Discord Auth : [IDENTITE] : Nouvelle identité - SOCKET_ID : " + socket.id + " - DISCORD_USER : " + response.username)
|
||||||
|
|
||||||
|
|
||||||
const tokens = require(__dirname + path.sep + "tokens.json")
|
const tokens = require(__dirname + path.sep + "tokens.json")
|
||||||
|
|
||||||
tokens[token] = response
|
tokens[token] = response
|
||||||
|
users.set(token, response)
|
||||||
|
|
||||||
await fs.writeFileSync(__dirname + path.sep + "tokens.json", JSON.stringify(tokens, null, 2))
|
await fs.writeFile(__dirname + path.sep + "tokens.json", JSON.stringify(tokens, null, 2), () => {
|
||||||
|
|
||||||
await users.set(token, response)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
reimportUser()
|
||||||
socket.emit("successLogin", token)
|
socket.emit("successLogin", token)
|
||||||
actualize()
|
actualize()
|
||||||
|
|
||||||
authTokenWait.delete(token)
|
authTokenWait.delete(token)
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
202
src/tokens.json
202
src/tokens.json
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"68e45a4a-0f46-4a0c-b4aa-efac9439b0cc": {
|
"6bde63c8-6b74-4fb5-98d8-87c8c203c16b": {
|
||||||
"id": "486943594893017119",
|
"id": "486943594893017119",
|
||||||
"username": "Raphix",
|
"username": "Raphix",
|
||||||
"global_name": null,
|
"global_name": null,
|
||||||
@ -16,7 +16,7 @@
|
|||||||
"premium_type": 0,
|
"premium_type": 0,
|
||||||
"avatar_decoration": null
|
"avatar_decoration": null
|
||||||
},
|
},
|
||||||
"d13687de-adcd-454b-8f82-d5a67f1aefda": {
|
"3bdca403-b9d2-47b8-b9c4-3818b324a76f": {
|
||||||
"id": "486943594893017119",
|
"id": "486943594893017119",
|
||||||
"username": "Raphix",
|
"username": "Raphix",
|
||||||
"global_name": null,
|
"global_name": null,
|
||||||
@ -33,7 +33,7 @@
|
|||||||
"premium_type": 0,
|
"premium_type": 0,
|
||||||
"avatar_decoration": null
|
"avatar_decoration": null
|
||||||
},
|
},
|
||||||
"3410460a-ff5c-4075-901c-13660ffd496d": {
|
"aac35fb6-5c16-4d29-a1e6-6abc43ce5008": {
|
||||||
"id": "486943594893017119",
|
"id": "486943594893017119",
|
||||||
"username": "Raphix",
|
"username": "Raphix",
|
||||||
"global_name": null,
|
"global_name": null,
|
||||||
@ -50,7 +50,7 @@
|
|||||||
"premium_type": 0,
|
"premium_type": 0,
|
||||||
"avatar_decoration": null
|
"avatar_decoration": null
|
||||||
},
|
},
|
||||||
"af09802f-fa3a-4ebe-8b34-51a6375408d1": {
|
"750f0802-7d9c-4263-b2dd-f27d47029e8b": {
|
||||||
"id": "486943594893017119",
|
"id": "486943594893017119",
|
||||||
"username": "Raphix",
|
"username": "Raphix",
|
||||||
"global_name": null,
|
"global_name": null,
|
||||||
@ -67,7 +67,7 @@
|
|||||||
"premium_type": 0,
|
"premium_type": 0,
|
||||||
"avatar_decoration": null
|
"avatar_decoration": null
|
||||||
},
|
},
|
||||||
"5be82e44-2ecf-4f1c-8850-37886e15937b": {
|
"c416c176-157e-40a9-ae32-23cfcf812dd4": {
|
||||||
"id": "486943594893017119",
|
"id": "486943594893017119",
|
||||||
"username": "Raphix",
|
"username": "Raphix",
|
||||||
"global_name": null,
|
"global_name": null,
|
||||||
@ -84,7 +84,7 @@
|
|||||||
"premium_type": 0,
|
"premium_type": 0,
|
||||||
"avatar_decoration": null
|
"avatar_decoration": null
|
||||||
},
|
},
|
||||||
"1c62461d-7cc9-44e2-a42a-6fae79baabb6": {
|
"5ef772f4-e729-4ccc-9c23-25d7cc4b2c64": {
|
||||||
"id": "486943594893017119",
|
"id": "486943594893017119",
|
||||||
"username": "Raphix",
|
"username": "Raphix",
|
||||||
"global_name": null,
|
"global_name": null,
|
||||||
@ -101,7 +101,7 @@
|
|||||||
"premium_type": 0,
|
"premium_type": 0,
|
||||||
"avatar_decoration": null
|
"avatar_decoration": null
|
||||||
},
|
},
|
||||||
"cdba02f4-3473-4c76-8567-ef8965e0c211": {
|
"b5b7d954-49b6-43b4-a237-08e41f3e6f58": {
|
||||||
"id": "486943594893017119",
|
"id": "486943594893017119",
|
||||||
"username": "Raphix",
|
"username": "Raphix",
|
||||||
"global_name": null,
|
"global_name": null,
|
||||||
@ -118,7 +118,7 @@
|
|||||||
"premium_type": 0,
|
"premium_type": 0,
|
||||||
"avatar_decoration": null
|
"avatar_decoration": null
|
||||||
},
|
},
|
||||||
"73f031a3-6280-4836-89d1-09080d1a74c2": {
|
"27e00135-65fa-43d5-820c-e35bb906d47c": {
|
||||||
"id": "486943594893017119",
|
"id": "486943594893017119",
|
||||||
"username": "Raphix",
|
"username": "Raphix",
|
||||||
"global_name": null,
|
"global_name": null,
|
||||||
@ -135,7 +135,7 @@
|
|||||||
"premium_type": 0,
|
"premium_type": 0,
|
||||||
"avatar_decoration": null
|
"avatar_decoration": null
|
||||||
},
|
},
|
||||||
"c3b40227-5112-421d-8f2b-46a30a87cbca": {
|
"04cb0b39-a29e-4dc2-a6e8-31651a4382a5": {
|
||||||
"id": "486943594893017119",
|
"id": "486943594893017119",
|
||||||
"username": "Raphix",
|
"username": "Raphix",
|
||||||
"global_name": null,
|
"global_name": null,
|
||||||
@ -152,7 +152,7 @@
|
|||||||
"premium_type": 0,
|
"premium_type": 0,
|
||||||
"avatar_decoration": null
|
"avatar_decoration": null
|
||||||
},
|
},
|
||||||
"599c640c-b8bd-44b1-9b27-d87a5ab68cf7": {
|
"e79cbf92-0e97-4522-9430-54e87a1998d3": {
|
||||||
"id": "486943594893017119",
|
"id": "486943594893017119",
|
||||||
"username": "Raphix",
|
"username": "Raphix",
|
||||||
"global_name": null,
|
"global_name": null,
|
||||||
@ -169,7 +169,7 @@
|
|||||||
"premium_type": 0,
|
"premium_type": 0,
|
||||||
"avatar_decoration": null
|
"avatar_decoration": null
|
||||||
},
|
},
|
||||||
"a078d4ab-28c5-4b01-b3f8-c6b29f4c4141": {
|
"da77741c-e550-43f0-b4e8-86060fd7e784": {
|
||||||
"id": "486943594893017119",
|
"id": "486943594893017119",
|
||||||
"username": "Raphix",
|
"username": "Raphix",
|
||||||
"global_name": null,
|
"global_name": null,
|
||||||
@ -186,7 +186,7 @@
|
|||||||
"premium_type": 0,
|
"premium_type": 0,
|
||||||
"avatar_decoration": null
|
"avatar_decoration": null
|
||||||
},
|
},
|
||||||
"5283c6a7-11b2-4454-b6a5-afecb7169d7f": {
|
"c89a8d5c-a5f7-409a-9ca5-3d27f40bc073": {
|
||||||
"id": "486943594893017119",
|
"id": "486943594893017119",
|
||||||
"username": "Raphix",
|
"username": "Raphix",
|
||||||
"global_name": null,
|
"global_name": null,
|
||||||
@ -203,7 +203,7 @@
|
|||||||
"premium_type": 0,
|
"premium_type": 0,
|
||||||
"avatar_decoration": null
|
"avatar_decoration": null
|
||||||
},
|
},
|
||||||
"8e4dec3f-82c0-4bd2-a9fb-9ecf64f8aac3": {
|
"6726b668-25f4-4d3f-8440-b6a4cc002c7d": {
|
||||||
"id": "486943594893017119",
|
"id": "486943594893017119",
|
||||||
"username": "Raphix",
|
"username": "Raphix",
|
||||||
"global_name": null,
|
"global_name": null,
|
||||||
@ -220,7 +220,7 @@
|
|||||||
"premium_type": 0,
|
"premium_type": 0,
|
||||||
"avatar_decoration": null
|
"avatar_decoration": null
|
||||||
},
|
},
|
||||||
"629133a4-f205-4401-a026-639aee65695d": {
|
"41769f38-1cab-44b9-b96f-09261fe5c3d0": {
|
||||||
"id": "486943594893017119",
|
"id": "486943594893017119",
|
||||||
"username": "Raphix",
|
"username": "Raphix",
|
||||||
"global_name": null,
|
"global_name": null,
|
||||||
@ -237,7 +237,7 @@
|
|||||||
"premium_type": 0,
|
"premium_type": 0,
|
||||||
"avatar_decoration": null
|
"avatar_decoration": null
|
||||||
},
|
},
|
||||||
"002e5b9d-4b23-4444-97f0-4bd46ac6f36e": {
|
"cc20f4c2-9b35-4846-9b00-e3d09be6e273": {
|
||||||
"id": "486943594893017119",
|
"id": "486943594893017119",
|
||||||
"username": "Raphix",
|
"username": "Raphix",
|
||||||
"global_name": null,
|
"global_name": null,
|
||||||
@ -254,7 +254,177 @@
|
|||||||
"premium_type": 0,
|
"premium_type": 0,
|
||||||
"avatar_decoration": null
|
"avatar_decoration": null
|
||||||
},
|
},
|
||||||
"4a94dd0d-d022-499e-acdf-396d9a1c3291": {
|
"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",
|
"id": "486943594893017119",
|
||||||
"username": "Raphix",
|
"username": "Raphix",
|
||||||
"global_name": null,
|
"global_name": null,
|
||||||
|
Loading…
Reference in New Issue
Block a user