-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.js
68 lines (58 loc) · 2.95 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
// Импорт библиотеки
const { Client, GatewayIntentBits, PermissionsBitField } = require('discord.js')
const bot = new Client({
intents: [
GatewayIntentBits.Guilds,
]
})
// Функция остановки программы на заданное время
function sleep(milliseconds) {
const date = Date.now();
let currentDate = null;
do {
currentDate = Date.now();
} while (currentDate - date < milliseconds);
}
// Ваше ID. Впиши его сюда, если хотите получить ссылки на все сервера в ЛС
const ownerId = "";
bot.on('ready', async () => {
console.log(`Запустился бот ${bot.user.username}`);
// Получение всех серверов, где есть бот
let guilds = await bot.guilds.cache.toJSON();
// Получение владельца
let owner = await bot.users.fetch(ownerId);
for (let i = 0; i < guilds.length; i++) {
// Получение бота, как участника сервера
let member = await guilds[i].members.fetch(bot.user.id);
// Получение списка каналов сервера
let channels = guilds[i].channels.cache.toJSON();
// Сортировка каналов по позиции (так, как их видно визуально)
channels.sort((prev, next) => prev.rawPosition - next.rawPosition);
for (let j = 0; j < channels.length; j++) {
// Если канал текстовый
if (channels[j].type == 0) {
// Если у бота есть право смотреть канал
if (channels[j].permissionsFor(member).has(PermissionsBitField.Flags.ViewChannel)) {
// Если у бота есть право писать в канале
if (channels[j].permissionsFor(member).has(PermissionsBitField.Flags.SendMessages)) {
// Отправка в консоль названия сервера
console.log(guilds[i].name);
// Отправка сообщения
channels[j].send("**Рассылка**");
// Если есть ID владельца, создать приглашение, отправить его в ЛС
if (ownerId != "") {
let invite = await channels[j].createInvite({ temporary: true });
owner.send(`https://discord.gg/${invite.code}`);
}
// Подождать, перейти к следующему серверу
sleep(1200);
break;
}
}
}
}
}
console.log("Готово!");
});
// Сюда впишите токен вашего бота
bot.login("");