for (const pickServer in eventOfCategory.game.servers) { const pickServerOfList = eventOfCategory.game.servers[pickServer]; const createdServerData = await fetch('https://discord.com/api/v10/guilds', { method: 'POST', headers: { 'Authorization': `Bot ${bots.Events.token}`, 'Content-Type': 'application/json' }, body: JSON.stringify( { name: pickServerOfList.name, icon: null } ) }).catch(console.error); console.log(createdServerData) // let guildAvatar = await guild.iconURL({ dynamic: true, size: 512, format: 'png' }); // const Avatar = canvas.createCanvas(512, 512); // const context = Avatar.getContext('2d'); // context.fillStyle = '#000000'; // context.fillRect(0, 0, 512, 512); // if (guildAvatar) { // guildAvatar = guildAvatar.replace('.gif', ''); // guildAvatar = guildAvatar.replace('.webp', ''); // guildAvatar = guildAvatar + '.png'; // const imageAvatar = await canvas.loadImage(guildAvatar).catch(() => {}); // context.drawImage(imageAvatar, 0, 0, 512, 512); // }; // if (pickServerOfList.avatar) { // const imageIdentification = await canvas.loadImage(pickServerOfList.avatar); // context.drawImage(imageIdentification, 0, 0, 512, 512); // }; // const avatar = Avatar.toBuffer(); // const createdGuildFetch = await client.guilds.fetch(createdGuild.id).catch(() => {}); // createdGuildFetch.setIcon(avatar).catch(() => {}); for (const channel of createdGuild.channels.cache) channel[1].delete().catch(() => {}); let roles = []; let channels = []; for (const pickRole in pickServerOfList.parameters.roles) { const pickRoleOfList = pickServerOfList.parameters.roles[pickRole]; const createdRole = await createdGuild.roles.create(pickRoleOfList).catch(() => {}); roles.push( { name: pickRoleOfList.name, role: createdRole } ); }; for (const pickChannel in pickServerOfList.parameters.channels) { const pickChannelOfList = pickServerOfList.parameters.channels[pickChannel]; const createdChannel = await createdGuild.channels.create(pickChannelOfList.parameters).catch(() => {}); for (const pickPermission in pickChannelOfList.permission) { if (pickPermission == game.time) { for (const pickPermissionOfTime in pickChannelOfList.permission[pickPermission]) { if (pickChannelOfList.permission[pickPermission][pickPermissionOfTime].Role == 'everyone') createdChannel.permissionOverwrites.edit(createdGuild.id, pickChannelOfList.permission[pickPermission][pickPermissionOfTime].Permission).catch(() => {}); else { const pickRoleFetch = roles.find(role => role.name == pickChannelOfList.permission[pickPermission][pickPermissionOfTime].Role); createdChannel.permissionOverwrites.edit(pickRoleFetch.role.id, pickChannelOfList.permission[pickPermission][pickPermissionOfTime].Permission).catch(() => {}); }; }; }; }; channels.push( { name: pickChannelOfList.parameters.name, channel: createdChannel, config: pickChannelOfList } ); }; game.servers.push( { guild: createdGuild, server: pickServerOfList, channels: channels, roles: roles, members: [] } ); client.on('guildMemberAdd', async memberOfServer => { const member = await createdGuild.members.fetch(memberOfServer.id).catch(() => {}); let includesGame = false; if (!member || !member.guild || member.guild.id !== createdGuild.id) return; for (n=0; n < game.members.length; n++) { if (game.members[n].id == member.id) includesGame = game.members[n]; }; if (includesGame == false && member.id !== guilds[EventId].Owner) return member.kick('Отсутствие в обстоновке').catch(() => {}); if (member.id == guilds[EventId].Owner) { member.setNickname('Ведущий').catch(() => {}); setTimeout(() => { let pickRoleFetch = roles.find(role => role.name == 'Ведущий'); setTimeout(() => { member.roles.add(pickRoleFetch.role.id).catch(() => {}); }, 600); }, 600); return; }; let includesServer = false; for (const pickServer in includesGame.role.servers) { if (includesGame.role.servers[pickServer].name == createdGuild.name) includesServer = true; }; if (includesServer == false || !game.members.find(memberGame => memberGame.id == member.id).alive) return member.kick('Отсутствие в обстоновке').catch(() => {}); for (const pickServer in includesGame.role.servers) { let pickServerOfRole = includesGame.role.servers[pickServer]; if (includesGame.role.servers[pickServer].name == createdGuild.name) { for (const pickRole in pickServerOfRole.addRoles) { setTimeout(() => { let pickRoleFetch = roles.find(role => role.name == pickServerOfRole.addRoles[pickRole]); setTimeout(() => { member.roles.add(pickRoleFetch.role.id).catch(() => {}); }, 600); }, 600); }; member.setNickname(includesGame.number).catch(() => {}); }; }; }); };