New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

unnamed-lib

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

unnamed-lib - npm Package Compare versions

Comparing version 1.0.5 to 1.0.6

src/main/functions/SlashCommands.js

2

package.json
{
"name": "unnamed-lib",
"version": "1.0.5",
"version": "1.0.6",
"description": "A Discord Bot Lib.",

@@ -5,0 +5,0 @@ "main": "src/main/index.js",

@@ -212,19 +212,3 @@ const fetch = require('node-fetch');

};
/*
THIS FUNCTION IS NOT FINISHED. PLEASE DO NOT USE IT.
async function hasPermission(guild, member) {
let Guild;
const getFromCache = await this.guilds.get(guild)
if(!getFromCache) {
Guild = await this.getGuild(guild)
} else {
Guild = getFromCache;
}
const Member = await this.getGuildMember(guild, member)
const MemberRoles = Member.roles
let Roles = Guild.roles
let Role = Roles.find(role => role.id === MemberRoles)
return console.log(this.getReadablePerms(Role));
};
*/
module.exports = {

@@ -243,3 +227,3 @@ addRole,

unbanMember,
//hasPermission
}
const flags = [
'CREATE\_INSTANT\_INVITE',
'KICK\_MEMBERS',
'BAN\_MEMBERS',
'ADMINISTRATOR',
'MANAGE\_CHANNELS',
'MANAGE\_GUILD',
'ADD\_REACTIONS',
'VIEW\_AUDIT\_LOG',
'PRIORITY\_SPEAKER',
'STREAM',
'VIEW\_CHANNEL',
'SEND\_MESSAGES',
'SEND\_TTS\_MESSAGES',
'MANAGE\_MESSAGES',
'EMBED\_LINKS',
'ATTACH\_FILES',
'READ\_MESSAGE\_HISTORY',
'MENTION\_EVERYONE',
'USE\_EXTERNAL\_EMOJIS',
'VIEW\_GUILD\_INSIGHTS',
'CONNECT',
'SPEAK',
'MUTE\_MEMBERS',
'DEFEAN\_MEMBERS',
'MOVE\_MEMBERS',
'USE\_VAD',
'CHANGE\_NICKNAME',
'MANAGE\_NICKNAMES',
'MANAGE\_ROLES',
'MANAGE\_WEBHOOKS',
'MANAGE\_EMOJIS',
'USE\_SLASH\_COMMANDS',
'REQUEST\_TO\_SPEAK',
'MANAGE\_THREADS',
'USE\_PUBLIC\_THREADS',
'USE\_PRIVATE\_THREADS'
].reduce((t, c, i) => (t[c] = 1 << i, t), {});
'CREATE_INSTANT_INVITE',
'KICK_MEMBERS',
'BAN_MEMBERS',
'ADMINISTRATOR',
'MANAGE_CHANNELS',
'MANAGE_GUILD',
'ADD_REACTIONS',
'VIEW_AUDIT_LOG',
'PRIORITY_SPEAKER',
'STREAM',
'VIEW_CHANNEL',
'SEND_MESSAGES',
'SEND_TTS_MESSAGES',
'MANAGE_MESSAGES',
'EMBED_LINKS',
'ATTACH_FILES',
'READ_MESSAGE_HISTORY',
'MENTION_EVERYONE',
'USE_EXTERNAL_EMOJIS',
'VIEW_GUILD_INSIGHTS',
'CONNECT',
'SPEAK',
'MUTE_MEMBERS',
'DEFEAN_MEMBERS',
'MOVE_MEMBERS',
'USE_VAD',
'CHANGE_NICKNAME',
'MANAGE_NICKNAMES',
'MANAGE_ROLES',
'MANAGE_WEBHOOKS',
'MANAGE_EMOJIS',
'USE_SLASH_COMMANDS',
'REQUEST_TO_SPEAK',
'MANAGE_THREADS',
'USE_PUBLIC_THREADS',
'USE_PRIVATE_THREADS'
].reduce((t, c, i) => (t[c] = 1n << BigInt(i), t), {});
function resolve(bit = 0n) {
if (typeof bit === 'bigint' && bit >= 0n) return bit;
if (Array.isArray(bit)) return bit.map(resolve).reduce((t, c) => t | c, 0n);
if (typeof bit === 'string' && typeof flags[bit] !== 'undefined') return flags[bit];
throw new TypeError(`Invalid bitfield: ${bit}`);
}
function has(bit, main) {
if (Array.isArray(bit)) return bit.map(c => has(c, main));
bit = resolve(bit);
return (resolve(main) & bit) === bit;
}
function getReadablePerms(bitfield) {
return Object.keys(flags).filter(flag => has(flag, bitfield));
}
async function hasPermissions(guild, member, ...permissions) {
guild = guild?.id ?? guild;
member = member?.id ?? member;
const g = ((await this.guilds.get(guild)) || (await this.getGuild(guild)));
const guildRoles = g.roles;
const memberRoles = await this.getGuildMember(guild, member).then(m => m.roles);
const perms = getReadablePerms(guildRoles.filter(r => memberRoles.includes(r.id)).map(r => BigInt(r.permissions)));
function resolve(bit = 0) {
if (typeof bit === 'number' && bit >= 0) return bit;
if (Array.isArray(bit)) return bit.map(resolve).reduce((t, c) => t | c, 0);
if (typeof bit === 'string' && typeof flags[bit] !== 'undefined') return flags[bit];
throw new TypeError('Invalid bitfield');
}
function has(bit, main) {
if (Array.isArray(bit)) return bit.map(c => has(c, main));
bit = resolve(bit);
return (main & bit) === bit;
}
function getReadablePerms(bitfield) {
return Object.keys(flags).filter(flag => has(flag, bitfield));
}
return g.ownerID === member || perms.includes('ADMINISTRATOR') ? new Array(permissions.length).fill(true) : has(permissions, perms);
}
module.exports = {
resolve,
has,
getReadablePerms
getReadablePerms,
hasPermissions
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc