|
@@ -245,10 +245,13 @@ client.ws.on( 'INTERACTION_CREATE', interaction => {
|
|
|
if ( !interaction.guild_id ) {
|
|
|
return slash[interaction.data.name](interaction, new Lang(), new Wiki(), channel);
|
|
|
}
|
|
|
- else interaction.user = interaction.member.user;
|
|
|
+ else {
|
|
|
+ interaction.user = interaction.member.user;
|
|
|
+ interaction.member.permissions = new Discord.Permissions(interaction.member.permissions);
|
|
|
+ }
|
|
|
db.query( 'SELECT wiki, lang, role FROM discord WHERE guild = $1 AND (channel = $2 OR channel = $3 OR channel IS NULL) ORDER BY channel DESC NULLS LAST LIMIT 1', [interaction.guild_id, interaction.channel_id, '#' + channel?.parentID] ).then( ({rows:[row]}) => {
|
|
|
var lang = new Lang(( row?.lang || channel?.guild?.preferredLocale ));
|
|
|
- if ( row?.role && !interaction.member.roles.includes( row.role ) && channel?.guild?.roles.cache.has(row.role) && ( !interaction.member.roles.length || !interaction.member.roles.some( role => channel.guild.roles.cache.get(role)?.comparePositionTo(row.role) >= 0 ) ) ) {
|
|
|
+ if ( row?.role && !interaction.member.roles.includes( row.role ) && !interaction.member.permissions.has('MANAGE_GUILD') && channel?.guild?.roles.cache.has(row.role) && ( !interaction.member.roles.length || !interaction.member.roles.some( role => channel.guild.roles.cache.get(role)?.comparePositionTo(row.role) >= 0 ) ) ) {
|
|
|
return client.api.interactions(interaction.id, interaction.token).callback.post( {
|
|
|
data: {
|
|
|
type: 4,
|