42 lines
1.8 KiB
JavaScript
Raw Normal View History

2023-08-20 14:29:07 +09:00
const { getUser } = require("@schemas/User");
const Discord = require("discord.js");
const { getSettings } = require("@schemas/Guild");
async function fetchGuild(guildID, client, guilds) {
const guild = client.guilds.cache.get(guildID);
const settings = await getSettings(guild);
return { ...guild, ...settings._doc, ...guilds.find((g) => g.id === guild.id) };
}
async function fetchUser(userData, client, query) {
if (userData.guilds) {
userData.guilds.forEach((guild) => {
if (guild.permissions) {
2024-03-17 13:58:37 +09:00
const perms = new Discord.PermissionsBitField(BigInt(guild.permissions));
if (perms.has("ManageGuild")) guild.admin = true;
2023-08-20 14:29:07 +09:00
}
guild.settingsUrl = client.guilds.cache.get(guild.id)
? `/manage/${guild.id}/`
: `https://discordapp.com/oauth2/authorize?client_id=${client.user.id}&scope=bot&permissions=2146958847&guild_id=${guild.id}`;
guild.statsUrl = client.guilds.cache.get(guild.id)
? `/stats/${guild.id}/`
: `https://discordapp.com/oauth2/authorize?client_id=${client.user.id}&scope=bot&permissions=2146958847&guild_id=${guild.id}`;
guild.iconURL = guild.icon
? `https://cdn.discordapp.com/icons/${guild.id}/${guild.icon}.png?size=128`
: "https://discordemoji.com/assets/emoji/discordcry.png";
guild.displayed = query ? guild.name.toLowerCase().includes(query.toLowerCase()) : true;
});
userData.displayedGuilds = userData.guilds.filter((g) => g.displayed && g.admin);
if (userData.displayedGuilds.length < 1) {
delete userData.displayedGuilds;
}
}
const user = await client.users.fetch(userData.id);
user.displayAvatar = user.displayAvatarURL();
2024-03-17 13:58:37 +09:00
const userDb = await getUser(user);
2023-08-20 14:29:07 +09:00
const userInfos = { ...user, ...userDb, ...userData, ...user.presence };
return userInfos;
}
module.exports = { fetchGuild, fetchUser };