mirror of
https://github.com/discordeno/discordeno.git
synced 2026-09-17 08:47:22 +00:00
Merge Dev into Main (#2345)
* Simplify SfetchMembers (#2339) Co-authored-by: meister03 * Create leaveVoiceChannel.ts (#2342) * Update editFollowupMessage.ts (#2344) * Update editInteractionResponse.ts (#2343) * Update editMessage.ts (#2341) * Update calculateShardId.ts Fix wrong shardId calculations * Add Role Icon to Edit (#2346) Co-authored-by: meister03 * Add mix max length (#2347) Co-authored-by: meister03 * style: deno fmt * Fix Disabled Options (#2368) Co-authored-by: meister03 <meisterpi@gmail.com> * Add app_permissions (#2369) Co-authored-by: meister03 <meisterpi@gmail.com> * thread_id instead of threadId (#2378) Co-authored-by: Veeti K <veeti@veetik.com> * feat: Create `ApplicationCommandFlags` enumerator. (#2384) Co-authored-by: vxern <vxern@wordcollector.co.uk> * Small Changes in a bulk pr to close the issues (#2370) * Initial Commit * Close #2364 * Add preset whitelist to automod #2356 -> Resolve Issue * Close [api-docs] AutoMod message intent updates (#5083) #2330 * Breaking Channge | [api-docs] Update message type names (#5093) * message.interaction.name changed attitude | [api-docs] Update Change_Log.md #2333 * #2333 also closes #2316 * Clarify 45 chars length | Add those on permission plugins | [api-docs] text input label has max 45 characters (#4689) #2137 * Clarify webhook naming restrictions (#4625) #2094 * 8th August Webhook new View Channel perm | Closes #2363 * 8th August Webhook new View Channel perm | Closes #2363 * Document thread_name for execute webhook (#5007) #2263 * Close Update create and modify channel documentation (#4867) #2237 * unnecesary nullable tag in Modify Guild Member params (#5164) #2355 * deno fmt * deno fmt * Use .includefor disallowed webhook names" * Add Missing Enums & #2367, #2362, #2361, #2371, #2372. #2349, #2358, #2325 back * deno fmt :( Co-authored-by: meister03 <meisterpi@gmail.com> Co-authored-by: LTS20050703 <87189679+lts20050703@users.noreply.github.com> Co-authored-by: Tomato6966 <chris.pre03@gmail.com> Co-authored-by: ITOH <to@itoh.at> Co-authored-by: meister03 <meisterpi@gmail.com> Co-authored-by: Veeti K <veeti@veetik.com> Co-authored-by: vxern <vxern@wordcollector.co.uk> Co-authored-by: LTS20050703 <87189679+lts20050703@users.noreply.github.com>
This commit is contained in:
co-authored by
meister03
meister03
Veeti K
vxern
LTS20050703
Tomato6966
ITOH
parent
03996c5f58
commit
aca0e3cf1b
@@ -140,6 +140,55 @@ export function validateComponents(bot: Bot, components: MessageComponents) {
|
||||
option.emoji = makeEmojiFromString(option.emoji);
|
||||
}
|
||||
}
|
||||
|
||||
if (subComponent.type === MessageComponentTypes.InputText) {
|
||||
// Other buttons must have a customId
|
||||
if (
|
||||
!subComponent.customId
|
||||
) {
|
||||
throw new Error(
|
||||
"The text input requires a custom id",
|
||||
);
|
||||
}
|
||||
|
||||
if (!bot.utils.validateLength(subComponent.label, { max: 45 })) {
|
||||
throw new Error("The label can not be longer than 45 characters.");
|
||||
}
|
||||
|
||||
if (subComponent.minLength) {
|
||||
if (subComponent.minLength < 0) {
|
||||
throw new Error(
|
||||
"The min length must be more than 0 in a text input component.",
|
||||
);
|
||||
}
|
||||
|
||||
if (subComponent.minLength > 4000) {
|
||||
throw new Error(
|
||||
"The min length must be less than 4000 in a text input component.",
|
||||
);
|
||||
}
|
||||
|
||||
if (subComponent.maxLength && subComponent.minLength > subComponent.maxLength) {
|
||||
throw new Error(
|
||||
"The text input component can not have a higher min length than the max length.",
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (subComponent.maxLength) {
|
||||
if (subComponent.maxLength < 1) {
|
||||
throw new Error(
|
||||
"The max length must be more than 1 in a text input component.",
|
||||
);
|
||||
}
|
||||
|
||||
if (subComponent.maxLength > 4000) {
|
||||
throw new Error(
|
||||
"The max length must be less than 4000 in a text input component.",
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,15 +5,20 @@ export default function createWebhook(bot: BotWithCache) {
|
||||
const createWebhookOld = bot.helpers.createWebhook;
|
||||
|
||||
bot.helpers.createWebhook = async function (channelId, options) {
|
||||
requireBotChannelPermissions(bot, channelId, ["MANAGE_WEBHOOKS"]);
|
||||
requireBotChannelPermissions(bot, channelId, ["MANAGE_WEBHOOKS", "VIEW_CHANNEL"]);
|
||||
|
||||
if (
|
||||
// Specific usernames that discord does not allow
|
||||
options.name === "clyde" ||
|
||||
["clyde", "everyone", "here"].includes(options.name) ||
|
||||
options.name.includes("discord") ||
|
||||
options.name.includes("@") ||
|
||||
options.name.includes("#") ||
|
||||
options.name.includes(":") ||
|
||||
options.name.includes("\/") ||
|
||||
!bot.utils.validateLength(options.name, { min: 2, max: 32 })
|
||||
) {
|
||||
throw new Error(
|
||||
"The webhook name can not be clyde and it must be between 2 and 32 characters long.",
|
||||
"The webhook name can not be clyde, everyone, here or include 'discord, @, #, :, ' and it must be between 2 and 32 characters long.",
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ export default function deleteWebhook(bot: BotWithCache) {
|
||||
const deleteWebhookOld = bot.helpers.deleteWebhook;
|
||||
|
||||
bot.helpers.deleteWebhook = async function (channelId, options) {
|
||||
requireBotChannelPermissions(bot, channelId, ["MANAGE_WEBHOOKS"]);
|
||||
requireBotChannelPermissions(bot, channelId, ["MANAGE_WEBHOOKS", "VIEW_CHANNEL"]);
|
||||
|
||||
return await deleteWebhookOld(channelId, options);
|
||||
};
|
||||
|
||||
@@ -5,8 +5,8 @@ export default function editWebhook(bot: BotWithCache) {
|
||||
const editWebhookOld = bot.helpers.editWebhook;
|
||||
|
||||
bot.helpers.editWebhook = async function (webhookId, options, fromChannelId) {
|
||||
if (options.channelId) requireBotChannelPermissions(bot, options.channelId, ["MANAGE_WEBHOOKS"]);
|
||||
if (fromChannelId) requireBotChannelPermissions(bot, fromChannelId, ["MANAGE_WEBHOOKS"]);
|
||||
if (options.channelId) requireBotChannelPermissions(bot, options.channelId, ["MANAGE_WEBHOOKS", "VIEW_CHANNEL"]);
|
||||
if (fromChannelId) requireBotChannelPermissions(bot, fromChannelId, ["MANAGE_WEBHOOKS", "VIEW_CHANNEL"]);
|
||||
|
||||
if (options.name) {
|
||||
if (
|
||||
|
||||
Reference in New Issue
Block a user