fix
This commit is contained in:
@@ -1,10 +1,14 @@
|
||||
import { MessageActionRow, MessageButton, MessageButtonStyleResolvable, MessageComponent, MessageMenu, MessageMenuOption } from 'discord-buttons';
|
||||
import { Message, TextChannel } from 'discord.js';
|
||||
const Discord = require('discord.js'),
|
||||
client = new Discord.Client(),
|
||||
client = new Discord.Client({ ws: { intents: Discord.Intents.ALL } }),
|
||||
disbut = require('discord-buttons');
|
||||
disbut(client);
|
||||
|
||||
client.on('ready', () => {
|
||||
console.log('ready')
|
||||
})
|
||||
|
||||
declare interface OptMenuOptions {
|
||||
label: string;
|
||||
emoji?: string;
|
||||
@@ -223,6 +227,8 @@ client.on('message', (m: Message) => {
|
||||
|
||||
});
|
||||
|
||||
const xor = (v1: boolean, v2: boolean) => (v1 || v2) && !(v1 && v2);
|
||||
|
||||
client.on('clickMenu', (menu: MessageComponent) => {
|
||||
menu.reply.think(true).then(async () => {
|
||||
|
||||
@@ -240,6 +246,8 @@ client.on('clickMenu', (menu: MessageComponent) => {
|
||||
rem: []
|
||||
}
|
||||
|
||||
console.log(vals);
|
||||
|
||||
for (let i = 0; i < m.options.length; i++) {
|
||||
|
||||
let opt = m.options[i],
|
||||
@@ -249,6 +257,13 @@ client.on('clickMenu', (menu: MessageComponent) => {
|
||||
|
||||
let role = await menu.guild.roles.fetch(roleid);
|
||||
|
||||
let names = []
|
||||
menu.clicker.member.roles.cache.forEach(r => names.push(r.name));
|
||||
let hasrole = menu.clicker.member.roles.cache.some(r => r.id === role.id),
|
||||
needsrole = vals && vals.includes(opt.val);
|
||||
|
||||
console.log(role.name, `[${names.join()}]`, needsrole, hasrole)
|
||||
|
||||
if (vals && vals.includes(opt.val) && !menu.clicker.member.roles.cache.some(r => r.id === role.id)) {
|
||||
await menu.clicker.member.roles.add(role);
|
||||
changed.add.push(role.name);
|
||||
@@ -260,9 +275,21 @@ client.on('clickMenu', (menu: MessageComponent) => {
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
menu.reply.edit('Updated Roles');
|
||||
console.log('\n');
|
||||
|
||||
let message = [];
|
||||
|
||||
if (changed.add.length)
|
||||
message.push(`Added \`${changed.add.join(', ')}\``);
|
||||
|
||||
if (changed.rem.length)
|
||||
message.push(`Removed \`${changed.rem.join(', ')}\``);
|
||||
|
||||
menu.reply.edit(message.join('\n'));
|
||||
|
||||
} else
|
||||
menu.reply.edit('Error: Unknown menu');
|
||||
|
||||
});
|
||||
});
|
||||
@@ -277,13 +304,20 @@ client.on('clickButton', (button: MessageComponent) => {
|
||||
let matchingButtons = row.buttons.filter(opt => opt.id === button.id);
|
||||
|
||||
if (matchingButtons.length) {
|
||||
await button.clicker.member.roles.add(matchingButtons[0].roleid);
|
||||
|
||||
let role = await button.guild.roles.fetch(matchingButtons[0].roleid);
|
||||
|
||||
if (button.clicker.member.roles.cache.some(r => r.id === role.id)) {
|
||||
await button.clicker.member.roles.remove(role.id);
|
||||
button.reply.edit(`Added \`${role.name}\``);
|
||||
} else {
|
||||
await button.clicker.member.roles.remove(role.id);
|
||||
button.reply.edit(`Removed \`${role.name}\``);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
button.reply.edit('Updated Roles');
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user