Update djs & knub (#395)
* update pkgs Signed-off-by: GitHub <noreply@github.com> * new knub typings Signed-off-by: GitHub <noreply@github.com> * more pkg updates Signed-off-by: GitHub <noreply@github.com> * more fixes Signed-off-by: GitHub <noreply@github.com> * channel typings Signed-off-by: GitHub <noreply@github.com> * more message utils typings fixes Signed-off-by: GitHub <noreply@github.com> * migrate permissions Signed-off-by: GitHub <noreply@github.com> * fix: InternalPoster webhookables Signed-off-by: GitHub <noreply@github.com> * djs typings: Attachment & Util Signed-off-by: GitHub <noreply@github.com> * more typings Signed-off-by: GitHub <noreply@github.com> * fix: rename permissionNames Signed-off-by: GitHub <noreply@github.com> * more fixes Signed-off-by: GitHub <noreply@github.com> * half the number of errors * knub commands => messageCommands Signed-off-by: GitHub <noreply@github.com> * configPreprocessor => configParser Signed-off-by: GitHub <noreply@github.com> * fix channel.messages Signed-off-by: GitHub <noreply@github.com> * revert automod any typing Signed-off-by: GitHub <noreply@github.com> * more configParser typings Signed-off-by: GitHub <noreply@github.com> * revert Signed-off-by: GitHub <noreply@github.com> * remove knub type params Signed-off-by: GitHub <noreply@github.com> * fix more MessageEmbed / MessageOptions Signed-off-by: GitHub <noreply@github.com> * dumb commit for @almeidx to see why this is stupid Signed-off-by: GitHub <noreply@github.com> * temp disable custom_events Signed-off-by: GitHub <noreply@github.com> * more minor typings fixes - 23 err left Signed-off-by: GitHub <noreply@github.com> * update djs dep * +debug build method (revert this) Signed-off-by: GitHub <noreply@github.com> * Revert "+debug build method (revert this)" This reverts commit a80af1e729b742d1aad1097df538d224fbd32ce7. * Redo +debug build (Revert this) Signed-off-by: GitHub <noreply@github.com> * uniform before/after Load shorthands Signed-off-by: GitHub <noreply@github.com> * remove unused imports & add prettier plugin Signed-off-by: GitHub <noreply@github.com> * env fixes for web platform hosting Signed-off-by: GitHub <noreply@github.com> * feat: knub v32-next; related fixes * fix: allow legacy keys in change_perms action * fix: request Message Content intent * fix: use Knub's config validation logic in API * fix(dashboard): fix error when there are no message and/or slash commands in a plugin * fix(automod): start_thread action thread options * fix(CustomEvents): message command types * chore: remove unneeded type annotation * feat: add forum channel icon; use thread icon for news threads * chore: make tslint happy * chore: fix formatting --------- Signed-off-by: GitHub <noreply@github.com> Co-authored-by: almeidx <almeidx@pm.me> Co-authored-by: Dragory <2606411+Dragory@users.noreply.github.com>
This commit is contained in:
parent
293115af22
commit
06877e90cc
476 changed files with 2965 additions and 3251 deletions
|
@ -1,17 +1,16 @@
|
|||
import {
|
||||
ActionRowBuilder,
|
||||
ButtonBuilder,
|
||||
ButtonStyle,
|
||||
GuildMember,
|
||||
Message,
|
||||
MessageActionRow,
|
||||
MessageButton,
|
||||
MessageComponentInteraction,
|
||||
Permissions,
|
||||
PermissionsBitField,
|
||||
Snowflake,
|
||||
TextChannel,
|
||||
User,
|
||||
} from "discord.js";
|
||||
import escapeStringRegexp from "escape-string-regexp";
|
||||
import { GuildPluginData } from "knub";
|
||||
import { ArgsFromSignatureOrArray } from "knub/dist/commands/commandUtils";
|
||||
import { ArgsFromSignatureOrArray, GuildPluginData } from "knub";
|
||||
import moment from "moment-timezone";
|
||||
import { getBaseUrl, sendErrorMessage } from "../../pluginUtils";
|
||||
import { allowTimeout, RegExpRunner } from "../../RegExpRunner";
|
||||
|
@ -116,12 +115,12 @@ export async function displaySearch(
|
|||
}
|
||||
} catch (e) {
|
||||
if (e instanceof SearchError) {
|
||||
sendErrorMessage(pluginData, msg.channel as TextChannel, e.message);
|
||||
sendErrorMessage(pluginData, msg.channel, e.message);
|
||||
return;
|
||||
}
|
||||
|
||||
if (e instanceof InvalidRegexError) {
|
||||
sendErrorMessage(pluginData, msg.channel as TextChannel, e.message);
|
||||
sendErrorMessage(pluginData, msg.channel, e.message);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -129,7 +128,7 @@ export async function displaySearch(
|
|||
}
|
||||
|
||||
if (searchResult.totalResults === 0) {
|
||||
sendErrorMessage(pluginData, msg.channel as TextChannel, "No results found");
|
||||
sendErrorMessage(pluginData, msg.channel, "No results found");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -169,23 +168,21 @@ export async function displaySearch(
|
|||
// Set up pagination reactions if needed. The reactions are cleared after a timeout.
|
||||
if (searchResult.totalResults > perPage) {
|
||||
const idMod = `${searchMsg.id}:${moment.utc().valueOf()}`;
|
||||
const buttons: MessageButton[] = [];
|
||||
|
||||
buttons.push(
|
||||
new MessageButton()
|
||||
.setStyle("SECONDARY")
|
||||
const buttons: ButtonBuilder[] = [
|
||||
new ButtonBuilder()
|
||||
.setStyle(ButtonStyle.Secondary)
|
||||
.setEmoji("⬅")
|
||||
.setCustomId(`previousButton:${idMod}`)
|
||||
.setDisabled(currentPage === 1),
|
||||
new MessageButton()
|
||||
.setStyle("SECONDARY")
|
||||
new ButtonBuilder()
|
||||
.setStyle(ButtonStyle.Secondary)
|
||||
.setEmoji("➡")
|
||||
.setCustomId(`nextButton:${idMod}`)
|
||||
.setDisabled(currentPage === searchResult.lastPage),
|
||||
new MessageButton().setStyle("SECONDARY").setEmoji("🔄").setCustomId(`reloadButton:${idMod}`),
|
||||
);
|
||||
new ButtonBuilder().setStyle(ButtonStyle.Secondary).setEmoji("🔄").setCustomId(`reloadButton:${idMod}`),
|
||||
];
|
||||
|
||||
const row = new MessageActionRow().addComponents(buttons);
|
||||
const row = new ActionRowBuilder<ButtonBuilder>().addComponents(buttons);
|
||||
await searchMsg.edit({ content: result, components: [row] });
|
||||
|
||||
const collector = searchMsg.createMessageComponentCollector({ time: 2 * MINUTES });
|
||||
|
@ -194,6 +191,7 @@ export async function displaySearch(
|
|||
if (msg.author.id !== interaction.user.id) {
|
||||
interaction
|
||||
.reply({ content: `You are not permitted to use these buttons.`, ephemeral: true })
|
||||
// tslint:disable-next-line no-console
|
||||
.catch((err) => console.trace(err.message));
|
||||
} else {
|
||||
if (interaction.customId === `previousButton:${idMod}` && currentPage > 1) {
|
||||
|
@ -261,12 +259,12 @@ export async function archiveSearch(
|
|||
}
|
||||
} catch (e) {
|
||||
if (e instanceof SearchError) {
|
||||
sendErrorMessage(pluginData, msg.channel as TextChannel, e.message);
|
||||
sendErrorMessage(pluginData, msg.channel, e.message);
|
||||
return;
|
||||
}
|
||||
|
||||
if (e instanceof InvalidRegexError) {
|
||||
sendErrorMessage(pluginData, msg.channel as TextChannel, e.message);
|
||||
sendErrorMessage(pluginData, msg.channel, e.message);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -274,7 +272,7 @@ export async function archiveSearch(
|
|||
}
|
||||
|
||||
if (results.totalResults === 0) {
|
||||
sendErrorMessage(pluginData, msg.channel as TextChannel, "No results found");
|
||||
sendErrorMessage(pluginData, msg.channel, "No results found");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -430,7 +428,7 @@ async function performBanSearch(
|
|||
perPage = SEARCH_RESULTS_PER_PAGE,
|
||||
): Promise<{ results: User[]; totalResults: number; page: number; lastPage: number; from: number; to: number }> {
|
||||
const member = pluginData.guild.members.cache.get(pluginData.client.user!.id);
|
||||
if (member && !hasDiscordPermissions(member.permissions, Permissions.FLAGS.BAN_MEMBERS)) {
|
||||
if (member && !hasDiscordPermissions(member.permissions, PermissionsBitField.Flags.BanMembers)) {
|
||||
throw new SearchError(`Unable to search bans: missing "Ban Members" permission`);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue