Merge branch 'feat-archives'

This commit is contained in:
Isaac
2024-11-16 02:55:18 +00:00
13 changed files with 149 additions and 16 deletions

View File

@@ -1,3 +1,6 @@
const { createHash } = require('crypto');
module.exports.md5 = str => createHash('md5').update(str).digest('hex');
module.exports.msToMins = ms => Number((ms / 1000 / 60).toFixed(2));
module.exports.iconURL = guildLike => guildLike.icon
? guildLike.client.rest.cdn.icon(guildLike.id, guildLike.icon)
: `https://api.dicebear.com/8.x/initials/png?seed=${encodeURIComponent(guildLike.name)}&size=96&backgroundType=gradientLinear&fontWeight=600`;

View File

@@ -46,3 +46,23 @@ module.exports.isStaff = async (guild, userId) => {
const staffRoles = await client.keyv.get(`cache/guild-staff:${guild.id}`) || await updateStaffRoles(guild);
return staffRoles.some(r => guildMember.roles.cache.has(r));
};
/**
*
* @param {import("discord.js")} member
* @returns {Promise<number>}
* - `4` = OPERATOR (SUPER)
* - `3` = GUILD_OWNER
* - `2` = GUILD_ADMIN
* - `1` = GUILD_STAFF
* - `0` = GUILD_MEMBER
* - `-1` = NONE (NOT A MEMBER)
*/
module.exports.getPrivilegeLevel = async member => {
if (!member) return -1;
else if (member.guild.client.supers.includes(member.id)) return 4;
else if (member.guild.ownerId === member.id) return 3;
else if (member.permissions.has(PermissionsBitField.Flags.ManageGuild)) return 2;
else if (await this.isStaff(member.guild, member.id)) return 1;
else return 0;
};