mirror of
https://github.com/arthur-pbty/discord.js-selfbot.git
synced 2026-06-03 15:07:23 +02:00
Add files via upload
This commit is contained in:
@@ -0,0 +1,342 @@
|
||||
const axios = require('axios');
|
||||
const { cp } = require('fs');
|
||||
const WebSocket = require('ws');
|
||||
|
||||
class EventEmitter {
|
||||
constructor() {
|
||||
this.events = {};
|
||||
}
|
||||
|
||||
on(event, listener) {
|
||||
if (!this.events[event]) {
|
||||
this.events[event] = [];
|
||||
}
|
||||
this.events[event].push(listener);
|
||||
}
|
||||
|
||||
emit(event, ...args) {
|
||||
if (this.events[event]) {
|
||||
this.events[event].forEach(listener => {
|
||||
listener(...args);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class Client extends EventEmitter {
|
||||
constructor() {
|
||||
super();
|
||||
this.baseUrl = 'https://discord.com/api/v10';
|
||||
}
|
||||
|
||||
async login(token) {
|
||||
try {
|
||||
this.token = token;
|
||||
const user = await this.getUser();
|
||||
this.user = user;
|
||||
this.emit('ready');
|
||||
this.initWebSocket();
|
||||
} catch (error) {
|
||||
console.error('Erreur lors de l\'initialisation :', error);
|
||||
}
|
||||
}
|
||||
|
||||
initWebSocket() {
|
||||
// Simplified example to open a WebSocket connection
|
||||
this.ws = new WebSocket('wss://gateway.discord.gg/?v=10&encoding=json')
|
||||
|
||||
this.ws.on('open', () => {
|
||||
|
||||
// Envoyer un payload pour identifier et initialiser la session
|
||||
this.ws.send(JSON.stringify({
|
||||
op: 2,
|
||||
d: {
|
||||
token: this.token,
|
||||
intents: 3276799, // Intents pour avoir tous les événements
|
||||
properties: {
|
||||
$os: 'linux',
|
||||
$browser: 'my_library',
|
||||
$device: 'my_library'
|
||||
}
|
||||
}
|
||||
}));
|
||||
});
|
||||
|
||||
this.ws.on('message', (data) => {
|
||||
const payload = JSON.parse(data);
|
||||
|
||||
// Vérifier le type de l'événement reçu
|
||||
switch (payload.op) {
|
||||
case 10: // Hello
|
||||
// Répondre avec le heartbeat
|
||||
const interval = payload.d.heartbeat_interval;
|
||||
setInterval(() => {
|
||||
this.ws.send(JSON.stringify({
|
||||
op: 1,
|
||||
d: null
|
||||
}));
|
||||
}, interval);
|
||||
break;
|
||||
case 0: // Dispatch
|
||||
const { t, d } = payload;
|
||||
switch (t) {
|
||||
case 'APPLICATION_COMMAND_PERMISSIONS_UPDATE':
|
||||
this.emit('applicationCommandPermissionsUpdate', d);
|
||||
break;
|
||||
case 'AUTO_MODERATION_ACTION_EXECUTION':
|
||||
this.emit('autoModerationActionExecution', d);
|
||||
break;
|
||||
case 'AUTO_MODERATION_RULE_CREATE':
|
||||
this.emit('autoModerationRuleCreate', d);
|
||||
break;
|
||||
case 'AUTO_MODERATION_RULE_DELETE':
|
||||
this.emit('autoModerationRuleDelete', d);
|
||||
break;
|
||||
case 'AUTO_MODERATION_RULE_UPDATE':
|
||||
this.emit('autoModerationRuleUpdate', d);
|
||||
break;
|
||||
case 'CHANNEL_CREATE':
|
||||
this.emit('channelCreate', d);
|
||||
break;
|
||||
case 'CHANNEL_DELETE':
|
||||
this.emit('channelDelete', d);
|
||||
break;
|
||||
case 'CHANNEL_PINS_UPDATE':
|
||||
this.emit('channelPinsUpdate', d);
|
||||
break;
|
||||
case 'CHANNEL_UPDATE':
|
||||
this.emit('channelUpdate', d);
|
||||
break;
|
||||
case 'DEBUG':
|
||||
this.emit('debug', d);
|
||||
break;
|
||||
case 'EMOJI_CREATE':
|
||||
this.emit('emojiCreate', d);
|
||||
break;
|
||||
case 'EMOJI_DELETE':
|
||||
this.emit('emojiDelete', d);
|
||||
break;
|
||||
case 'EMOJI_UPDATE':
|
||||
this.emit('emojiUpdate', d);
|
||||
break;
|
||||
case 'ENTITLEMENT_CREATE':
|
||||
this.emit('entitlementCreate', d);
|
||||
break;
|
||||
case 'ENTITLEMENT_DELETE':
|
||||
this.emit('entitlementDelete', d);
|
||||
break;
|
||||
case 'ENTITLEMENT_UPDATE':
|
||||
this.emit('entitlementUpdate', d);
|
||||
break;
|
||||
case 'ERROR':
|
||||
this.emit('error', d);
|
||||
break;
|
||||
case 'GUILD_AUDIT_LOG_ENTRY_CREATE':
|
||||
this.emit('guildAuditLogEntryCreate', d);
|
||||
break;
|
||||
case 'GUILD_AVAILABLE':
|
||||
this.emit('guildAvailable', d);
|
||||
break;
|
||||
case 'GUILD_BAN_ADD':
|
||||
this.emit('guildBanAdd', d);
|
||||
break;
|
||||
case 'GUILD_BAN_REMOVE':
|
||||
this.emit('guildBanRemove', d);
|
||||
break;
|
||||
case 'GUILD_CREATE':
|
||||
this.emit('guildCreate', d);
|
||||
break;
|
||||
case 'GUILD_DELETE':
|
||||
this.emit('guildDelete', d);
|
||||
break;
|
||||
case 'GUILD_INTEGRATIONS_UPDATE':
|
||||
this.emit('guildIntegrationsUpdate', d);
|
||||
break;
|
||||
case 'GUILD_MEMBER_ADD':
|
||||
this.emit('guildMemberAdd', d);
|
||||
break;
|
||||
case 'GUILD_MEMBER_AVAILABLE':
|
||||
this.emit('guildMemberAvailable', d);
|
||||
break;
|
||||
case 'GUILD_MEMBER_REMOVE':
|
||||
this.emit('guildMemberRemove', d);
|
||||
break;
|
||||
case 'GUILD_MEMBERS_CHUNK':
|
||||
this.emit('guildMembersChunk', d);
|
||||
break;
|
||||
case 'GUILD_MEMBER_UPDATE':
|
||||
this.emit('guildMemberUpdate', d);
|
||||
break;
|
||||
case 'GUILD_SCHEDULED_EVENT_CREATE':
|
||||
this.emit('guildScheduledEventCreate', d);
|
||||
break;
|
||||
case 'GUILD_SCHEDULED_EVENT_DELETE':
|
||||
this.emit('guildScheduledEventDelete', d);
|
||||
break;
|
||||
case 'GUILD_SCHEDULED_EVENT_UPDATE':
|
||||
this.emit('guildScheduledEventUpdate', d);
|
||||
break;
|
||||
case 'GUILD_SCHEDULED_EVENT_USER_ADD':
|
||||
this.emit('guildScheduledEventUserAdd', d);
|
||||
break;
|
||||
case 'GUILD_SCHEDULED_EVENT_USER_REMOVE':
|
||||
this.emit('guildScheduledEventUserRemove', d);
|
||||
break;
|
||||
case 'GUILD_UNAVAILABLE':
|
||||
this.emit('guildUnavailable', d);
|
||||
break;
|
||||
case 'GUILD_UPDATE':
|
||||
this.emit('guildUpdate', d);
|
||||
break;
|
||||
case 'INTERACTION_CREATE':
|
||||
this.emit('interactionCreate', d);
|
||||
break;
|
||||
case 'INVITE_CREATE':
|
||||
this.emit('inviteCreate', d);
|
||||
break;
|
||||
case 'INVITE_DELETE':
|
||||
this.emit('inviteDelete', d);
|
||||
break;
|
||||
case 'MESSAGE_CREATE':
|
||||
this.emit('messageCreate', d);
|
||||
break;
|
||||
case 'MESSAGE_DELETE':
|
||||
this.emit('messageDelete', d);
|
||||
break;
|
||||
case 'MESSAGE_DELETE_BULK':
|
||||
this.emit('messageDeleteBulk', d);
|
||||
break;
|
||||
case 'MESSAGE_POLL_VOTE_ADD':
|
||||
this.emit('messagePollVoteAdd', d);
|
||||
break;
|
||||
case 'MESSAGE_POLL_VOTE_REMOVE':
|
||||
this.emit('messagePollVoteRemove', d);
|
||||
break;
|
||||
case 'MESSAGE_REACTION_ADD':
|
||||
this.emit('messageReactionAdd', d);
|
||||
break;
|
||||
case 'MESSAGE_REACTION_REMOVE':
|
||||
this.emit('messageReactionRemove', d);
|
||||
break;
|
||||
case 'MESSAGE_REACTION_REMOVE_ALL':
|
||||
this.emit('messageReactionRemoveAll', d);
|
||||
break;
|
||||
case 'MESSAGE_REACTION_REMOVE_EMOJI':
|
||||
this.emit('messageReactionRemoveEmoji', d);
|
||||
break;
|
||||
case 'MESSAGE_UPDATE':
|
||||
this.emit('messageUpdate', d);
|
||||
break;
|
||||
case 'PRESENCE_UPDATE':
|
||||
this.emit('presenceUpdate', d);
|
||||
break;
|
||||
//case 'READY':
|
||||
// this.emit('ready', d);
|
||||
// break;
|
||||
case 'ROLE_CREATE':
|
||||
this.emit('roleCreate', d);
|
||||
break;
|
||||
case 'ROLE_DELETE':
|
||||
this.emit('roleDelete', d);
|
||||
break;
|
||||
case 'ROLE_UPDATE':
|
||||
this.emit('roleUpdate', d);
|
||||
break;
|
||||
case 'SHARD_DISCONNECT':
|
||||
this.emit('shardDisconnect', d);
|
||||
break;
|
||||
case 'SHARD_ERROR':
|
||||
this.emit('shardError', d);
|
||||
break;
|
||||
case 'SHARD_READY':
|
||||
this.emit('shardReady', d);
|
||||
break;
|
||||
case 'SHARD_RECONNECTING':
|
||||
this.emit('shardReconnecting', d);
|
||||
break;
|
||||
case 'SHARD_RESUME':
|
||||
this.emit('shardResume', d);
|
||||
break;
|
||||
case 'STAGE_INSTANCE_CREATE':
|
||||
this.emit('stageInstanceCreate', d);
|
||||
break;
|
||||
case 'STAGE_INSTANCE_DELETE':
|
||||
this.emit('stageInstanceDelete', d);
|
||||
break;
|
||||
case 'STAGE_INSTANCE_UPDATE':
|
||||
this.emit('stageInstanceUpdate', d);
|
||||
break;
|
||||
case 'STICKER_CREATE':
|
||||
this.emit('stickerCreate', d);
|
||||
break;
|
||||
case 'STICKER_DELETE':
|
||||
this.emit('stickerDelete', d);
|
||||
break;
|
||||
case 'STICKER_UPDATE':
|
||||
this.emit('stickerUpdate', d);
|
||||
break;
|
||||
case 'THREAD_CREATE':
|
||||
this.emit('threadCreate', d);
|
||||
break;
|
||||
case 'THREAD_DELETE':
|
||||
this.emit('threadDelete', d);
|
||||
break;
|
||||
case 'THREAD_LIST_SYNC':
|
||||
this.emit('threadListSync', d);
|
||||
break;
|
||||
case 'THREAD_MEMBERS_UPDATE':
|
||||
this.emit('threadMembersUpdate', d);
|
||||
break;
|
||||
case 'THREAD_MEMBER_UPDATE':
|
||||
this.emit('threadMemberUpdate', d);
|
||||
break;
|
||||
case 'THREAD_UPDATE':
|
||||
this.emit('threadUpdate', d);
|
||||
break;
|
||||
case 'TYPING_START':
|
||||
this.emit('typingStart', d);
|
||||
break;
|
||||
case 'USER_UPDATE':
|
||||
this.emit('userUpdate', d);
|
||||
break;
|
||||
case 'VOICE_STATE_UPDATE':
|
||||
this.emit('voiceStateUpdate', d);
|
||||
break;
|
||||
case 'WARN':
|
||||
this.emit('warn', d);
|
||||
break;
|
||||
case 'WEBHOOKS_UPDATE':
|
||||
this.emit('webhooksUpdate', d);
|
||||
break;
|
||||
case 'WEBHOOK_UPDATE':
|
||||
this.emit('webhookUpdate', d);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
async getUser() {
|
||||
const url = `${this.baseUrl}/users/@me`;
|
||||
try {
|
||||
const response = await axios.get(url, {
|
||||
headers: {
|
||||
'Authorization': this.token
|
||||
}
|
||||
});
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
console.error(`Error: ${error.response ? error.response.data.message : error.message}`);
|
||||
throw new Error(`Error: ${error.response ? error.response.data.message : error.message}`);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
module.exports = { Client };
|
||||
@@ -0,0 +1,14 @@
|
||||
require('dotenv').config()
|
||||
const { Client } = require('./discord.js-selfbot');
|
||||
|
||||
const client = new Client();
|
||||
|
||||
client.on('ready', () => {
|
||||
console.log(`Connecté en tant que ${client.user.username}`);
|
||||
});
|
||||
|
||||
client.on('messageCreate', (message) => {
|
||||
console.log(`Nouveau message de ${message.author.username} : ${message.content}`);
|
||||
});
|
||||
|
||||
client.login(process.env.TOKEN);
|
||||
Generated
+146
@@ -0,0 +1,146 @@
|
||||
{
|
||||
"name": "ma bibliotheque discord",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"dependencies": {
|
||||
"axios": "^1.7.2",
|
||||
"dotenv": "^16.4.5",
|
||||
"ws": "^8.17.1"
|
||||
}
|
||||
},
|
||||
"node_modules/asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/axios": {
|
||||
"version": "1.7.2",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz",
|
||||
"integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"follow-redirects": "^1.15.6",
|
||||
"form-data": "^4.0.0",
|
||||
"proxy-from-env": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/combined-stream": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"delayed-stream": "~1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/delayed-stream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/dotenv": {
|
||||
"version": "16.4.5",
|
||||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz",
|
||||
"integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==",
|
||||
"license": "BSD-2-Clause",
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://dotenvx.com"
|
||||
}
|
||||
},
|
||||
"node_modules/follow-redirects": {
|
||||
"version": "1.15.6",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
|
||||
"integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "individual",
|
||||
"url": "https://github.com/sponsors/RubenVerborgh"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=4.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"debug": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/form-data": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
|
||||
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.8",
|
||||
"mime-types": "^2.1.12"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/mime-db": {
|
||||
"version": "1.52.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
|
||||
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/mime-types": {
|
||||
"version": "2.1.35",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
|
||||
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"mime-db": "1.52.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/proxy-from-env": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
|
||||
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/ws": {
|
||||
"version": "8.17.1",
|
||||
"resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
|
||||
"integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=10.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"bufferutil": "^4.0.1",
|
||||
"utf-8-validate": ">=5.0.2"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"bufferutil": {
|
||||
"optional": true
|
||||
},
|
||||
"utf-8-validate": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"axios": "^1.7.2",
|
||||
"dotenv": "^16.4.5",
|
||||
"ws": "^8.17.1"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user