fix
This commit is contained in:
@@ -1,10 +1,14 @@
|
|||||||
import { MessageActionRow, MessageButton, MessageButtonStyleResolvable, MessageComponent, MessageMenu, MessageMenuOption } from 'discord-buttons';
|
import { MessageActionRow, MessageButton, MessageButtonStyleResolvable, MessageComponent, MessageMenu, MessageMenuOption } from 'discord-buttons';
|
||||||
import { Message, TextChannel } from 'discord.js';
|
import { Message, TextChannel } from 'discord.js';
|
||||||
const Discord = require('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 = require('discord-buttons');
|
||||||
disbut(client);
|
disbut(client);
|
||||||
|
|
||||||
|
client.on('ready', () => {
|
||||||
|
console.log('ready')
|
||||||
|
})
|
||||||
|
|
||||||
declare interface OptMenuOptions {
|
declare interface OptMenuOptions {
|
||||||
label: string;
|
label: string;
|
||||||
emoji?: 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) => {
|
client.on('clickMenu', (menu: MessageComponent) => {
|
||||||
menu.reply.think(true).then(async () => {
|
menu.reply.think(true).then(async () => {
|
||||||
|
|
||||||
@@ -240,6 +246,8 @@ client.on('clickMenu', (menu: MessageComponent) => {
|
|||||||
rem: []
|
rem: []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log(vals);
|
||||||
|
|
||||||
for (let i = 0; i < m.options.length; i++) {
|
for (let i = 0; i < m.options.length; i++) {
|
||||||
|
|
||||||
let opt = m.options[i],
|
let opt = m.options[i],
|
||||||
@@ -249,6 +257,13 @@ client.on('clickMenu', (menu: MessageComponent) => {
|
|||||||
|
|
||||||
let role = await menu.guild.roles.fetch(roleid);
|
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)) {
|
if (vals && vals.includes(opt.val) && !menu.clicker.member.roles.cache.some(r => r.id === role.id)) {
|
||||||
await menu.clicker.member.roles.add(role);
|
await menu.clicker.member.roles.add(role);
|
||||||
changed.add.push(role.name);
|
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);
|
let matchingButtons = row.buttons.filter(opt => opt.id === button.id);
|
||||||
|
|
||||||
if (matchingButtons.length) {
|
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;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
button.reply.edit('Updated Roles');
|
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user