const { Client, GatewayIntentBits } = require('discord.js');
const SteamAPI = require('steamapi');
const DISCORD_BOT_TOKEN = '';
const STEAM_API_KEY = '';
const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMembers,
GatewayIntentBits.GuildMessages,
],
});
const steam = new SteamAPI(STEAM_API_KEY);
async function isDiscordFriend(userId, member) {
try {
// Получаем список друзей пользователя
const friends = await member.guild.members.fetch();
return friends.some(friend =>
friend.id === userId);
} catch (error) {
console.error(`Ошибка при проверке друзей в Discord: ${error}`);
return false;
}
}
async function isSteamFriend(steamId, member) {
try {
// Получаем список друзей пользователя в Steam
const friends = await steam.getUserFriends(steamId);
return friends.some(friend => friend.steamID === steamId);
} catch (error) {
console.error(`Ошибка при проверке друзей в Steam: ${error}`);
return false;
}
}
async function getSteamIdFromProfile(member) {
const nickname = member.displayName;
const steamId = nickname.match(/\[SteamID: (\d+)\]/)?.[1]; // Пример: [SteamID: 123456789]
return steamId;
}
client.on('guildMemberAdd', async (member) => {
const discordUserId =
member.id ;
const steamId = await getSteamIdFromProfile(member); // Реализуйте эту функцию
if (await isDiscordFriend(discordUserId, member) && await isSteamFriend(steamId, member)) {
const role = member.guild.roles.cache.find(role => role.name === 'Member');
if (role) {
await member.roles.add(role);
await member.send('Добро пожаловать на сервер! Вы были приняты.');
}
} else {
await member.send('Вы не выполнили условия для вступления на сервер.');
await member.kick('Не выполнены условия для вступления');
}
});
client.login(DISCORD_BOT_TOKEN);
Делал бота в дискорде что бы он проверял если ли чел который запрашивает у меня в друзьях в стиме и в дискорде если нет то кик если да то входит
TypeError: SteamAPI is not a constructor
at Object.<anonymous> (C:\Users\MrMils\Desktop\Discord2\Amigobot\Amigobot.js:20:15)
at Module._compile (node:internal/modules/cjs/loader:1734:14)
at Object..js (node:internal/modules/cjs/loader:1899:10)
at Module.load (node:internal/modules/cjs/loader:1469:32)
at Function._load (node:internal/modules/cjs/loader:1286:12)
at TracingChannel.traceSync (node:diagnostics_channel:322:14)
at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:151:5)
at node:internal/main/run_main_module:33:47
Node.js v23.9.0
Я знаю что это означает что Стим айпи не конструктор но как сделать что бы работало. Ответы нейронки не помогают. Язык JavaScript