solara-testing-beta
Version:
A modern, customizable, and lightweight Discord framework.
34 lines • 1.61 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const resolveUser_1 = require("../../utils/resolveUser");
exports.default = {
name: 'userPermissions',
execute: async (ctx) => {
const scope = ctx.args[0]?.toLowerCase() ?? 'channel';
const memberIdArgIndex = scope === 'channel' || scope === 'guild' ? 1 : 0;
const member = await (0, resolveUser_1.getTargetMember)(ctx, memberIdArgIndex);
if (!member) {
const authorMember = ctx.interaction?.member ?? ctx.message?.member;
if (!authorMember)
throw new Error('Could not determine member for permissions check.');
if (memberIdArgIndex === 0 && ctx.args.length > 0)
throw new Error('Member not found.');
if (!authorMember)
throw new Error('Member not found.');
return scope === 'channel'
? authorMember.permissionsIn(ctx.interaction?.channelId ?? ctx.message?.channelId).toArray().join(';')
: authorMember.permissions.toArray().join(';');
}
if (scope === 'channel') {
const channel = ctx.interaction?.channel ?? ctx.message?.channel;
if (!channel || !('permissionsFor' in channel)) {
throw new Error('Channel context not found or invalid for permissions check.');
}
return channel.permissionsFor(member).toArray().join(';');
}
else {
return member.permissions.toArray().join(';');
}
},
};
//# sourceMappingURL=userPermissions.js.map