From e6da05837be918d999ed11010667102ff0183966 Mon Sep 17 00:00:00 2001 From: TriForMine Date: Mon, 18 Oct 2021 21:48:25 +0200 Subject: [PATCH] Templates + Fixes --- src/helpers/integrations/get_integrations.ts | 2 +- src/helpers/messages/publish_message.ts | 2 +- src/helpers/messages/remove_all_reactions.ts | 2 +- src/helpers/messages/remove_reaction.ts | 2 +- src/helpers/messages/remove_reaction_emoji.ts | 2 +- src/helpers/messages/unpin_message.ts | 2 +- src/helpers/roles/add_role.ts | 2 +- src/helpers/roles/delete_role.ts | 2 +- src/helpers/roles/edit_role.ts | 2 +- src/helpers/roles/get_roles.ts | 2 +- src/helpers/roles/remove_role.ts | 2 +- .../templates/create_guild_from_template.ts | 19 +++++------- .../templates/create_guild_template.ts | 30 +++++++++++++------ .../templates/delete_guild_template.ts | 10 +++---- src/helpers/templates/edit_guild_template.ts | 13 ++++---- src/helpers/templates/get_guild_templates.ts | 10 +++---- src/helpers/templates/get_template.ts | 7 ++--- src/helpers/templates/sync_guild_template.ts | 10 +++---- 18 files changed, 61 insertions(+), 60 deletions(-) diff --git a/src/helpers/integrations/get_integrations.ts b/src/helpers/integrations/get_integrations.ts index 2944af268..d14ce7bd3 100644 --- a/src/helpers/integrations/get_integrations.ts +++ b/src/helpers/integrations/get_integrations.ts @@ -1,5 +1,5 @@ import type { Integration } from "../../types/integrations/integration.ts"; -import {Bot} from "../../bot.ts"; +import type {Bot} from "../../bot.ts"; import {SnakeCasedPropertiesDeep} from "../../types/util.ts"; /** Returns a list of integrations for the guild. Requires the MANAGE_GUILD permission. */ diff --git a/src/helpers/messages/publish_message.ts b/src/helpers/messages/publish_message.ts index 0e0a62e03..752a526db 100644 --- a/src/helpers/messages/publish_message.ts +++ b/src/helpers/messages/publish_message.ts @@ -1,5 +1,5 @@ import type { Message } from "../../types/messages/message.ts"; -import {Bot} from "../../bot.ts"; +import type {Bot} from "../../bot.ts"; import {SnakeCasedPropertiesDeep} from "../../types/util.ts"; /** Crosspost a message in a News Channel to following channels. */ diff --git a/src/helpers/messages/remove_all_reactions.ts b/src/helpers/messages/remove_all_reactions.ts index db45bac29..e8d2bd3c9 100644 --- a/src/helpers/messages/remove_all_reactions.ts +++ b/src/helpers/messages/remove_all_reactions.ts @@ -1,4 +1,4 @@ -import {Bot} from "../../bot.ts"; +import type {Bot} from "../../bot.ts"; /** Removes all reactions for all emojis on this message. */ export async function removeAllReactions(bot: Bot, channelId: bigint, messageId: bigint) { diff --git a/src/helpers/messages/remove_reaction.ts b/src/helpers/messages/remove_reaction.ts index 3eb7e5bb2..7dc0f5c69 100644 --- a/src/helpers/messages/remove_reaction.ts +++ b/src/helpers/messages/remove_reaction.ts @@ -1,4 +1,4 @@ -import {Bot} from "../../bot.ts"; +import type {Bot} from "../../bot.ts"; /** Removes a reaction from the given user on this message, defaults to bot. Reaction takes the form of **name:id** for custom guild emoji, or Unicode characters. */ export async function removeReaction( diff --git a/src/helpers/messages/remove_reaction_emoji.ts b/src/helpers/messages/remove_reaction_emoji.ts index f9bac3de7..4f23f577e 100644 --- a/src/helpers/messages/remove_reaction_emoji.ts +++ b/src/helpers/messages/remove_reaction_emoji.ts @@ -1,5 +1,5 @@ /** Removes all reactions for a single emoji on this message. Reaction takes the form of **name:id** for custom guild emoji, or Unicode characters. */ -import {Bot} from "../../bot.ts"; +import type {Bot} from "../../bot.ts"; export async function removeReactionEmoji(bot: Bot, channelId: bigint, messageId: bigint, reaction: string) { diff --git a/src/helpers/messages/unpin_message.ts b/src/helpers/messages/unpin_message.ts index b8a6e01e7..17a733a2d 100644 --- a/src/helpers/messages/unpin_message.ts +++ b/src/helpers/messages/unpin_message.ts @@ -1,5 +1,5 @@ /** Unpin a message in a channel. Requires MANAGE_MESSAGES. */ -import {Bot} from "../../bot.ts"; +import type {Bot} from "../../bot.ts"; export async function unpin(bot: Bot, channelId: bigint, messageId: bigint): Promise { await bot.utils.requireBotChannelPermissions(bot, channelId, ["MANAGE_MESSAGES"]); diff --git a/src/helpers/roles/add_role.ts b/src/helpers/roles/add_role.ts index f4a224f98..50dee4558 100644 --- a/src/helpers/roles/add_role.ts +++ b/src/helpers/roles/add_role.ts @@ -1,4 +1,4 @@ -import {Bot} from "../../bot.ts"; +import type {Bot} from "../../bot.ts"; /** Add a role to the member */ export async function addRole(bot: Bot, guildId: bigint, memberId: bigint, roleId: bigint, reason?: string) { diff --git a/src/helpers/roles/delete_role.ts b/src/helpers/roles/delete_role.ts index d4f082632..f5f9b77ea 100644 --- a/src/helpers/roles/delete_role.ts +++ b/src/helpers/roles/delete_role.ts @@ -1,4 +1,4 @@ -import {Bot} from "../../bot.ts"; +import type {Bot} from "../../bot.ts"; /** Delete a guild role. Requires the MANAGE_ROLES permission. */ export async function deleteRole(bot: Bot, guildId: bigint, id: bigint) { diff --git a/src/helpers/roles/edit_role.ts b/src/helpers/roles/edit_role.ts index 60a574b27..6f5fce6e9 100644 --- a/src/helpers/roles/edit_role.ts +++ b/src/helpers/roles/edit_role.ts @@ -1,6 +1,6 @@ import type { CreateGuildRole } from "../../types/guilds/create_guild_role.ts"; import type { Role } from "../../types/permissions/role.ts"; -import {Bot} from "../../bot.ts"; +import type {Bot} from "../../bot.ts"; import {SnakeCasedPropertiesDeep} from "../../types/util.ts"; /** Edit a guild role. Requires the MANAGE_ROLES permission. */ diff --git a/src/helpers/roles/get_roles.ts b/src/helpers/roles/get_roles.ts index 6a794325a..871ac99e8 100644 --- a/src/helpers/roles/get_roles.ts +++ b/src/helpers/roles/get_roles.ts @@ -1,5 +1,5 @@ import type { Role } from "../../types/permissions/role.ts"; -import {Bot} from "../../bot.ts"; +import type {Bot} from "../../bot.ts"; import {Collection} from "../../util/collection.ts"; import {DiscordenoRole} from "../../transformers/role.ts"; /** Returns a list of role objects for the guild. diff --git a/src/helpers/roles/remove_role.ts b/src/helpers/roles/remove_role.ts index 731d4002e..372db80ba 100644 --- a/src/helpers/roles/remove_role.ts +++ b/src/helpers/roles/remove_role.ts @@ -1,4 +1,4 @@ -import {Bot} from "../../bot.ts"; +import type {Bot} from "../../bot.ts"; /** Remove a role from the member */ export async function removeRole(bot: Bot, guildId: bigint, memberId: bigint, roleId: bigint, reason?: string) { diff --git a/src/helpers/templates/create_guild_from_template.ts b/src/helpers/templates/create_guild_from_template.ts index f3ef0d468..d0ccca323 100644 --- a/src/helpers/templates/create_guild_from_template.ts +++ b/src/helpers/templates/create_guild_from_template.ts @@ -1,29 +1,24 @@ -import { cacheHandlers } from "../../cache.ts"; -import { rest } from "../../rest/rest.ts"; -import { structures } from "../../structures/mod.ts"; import type { Guild } from "../../types/guilds/guild.ts"; import type { CreateGuildFromTemplate } from "../../types/templates/create_guild_from_template.ts"; -import { endpoints } from "../../util/constants.ts"; -import { urlToBase64 } from "../../util/utils.ts"; -import { ws } from "../../ws/ws.ts"; +import type {Bot} from "../../bot.ts"; /** * Create a new guild based on a template * NOTE: This endpoint can be used only by bots in less than 10 guilds. */ -export async function createGuildFromTemplate(templateCode: string, data: CreateGuildFromTemplate) { - if ((await cacheHandlers.size("guilds")) >= 10) { +export async function createGuildFromTemplate(bot: Bot, templateCode: string, data: CreateGuildFromTemplate) { + if ((await bot.cache.guilds.size()) >= 10) { throw new Error("This function can only be used by bots in less than 10 guilds."); } if (data.icon) { - data.icon = await urlToBase64(data.icon); + data.icon = await bot.utils.urlToBase64(data.icon); } - const createdGuild = await rest.runMethod("post", endpoints.GUILD_TEMPLATE(templateCode), data); + const createdGuild = await bot.rest.runMethod(bot.rest,"post", bot.constants.endpoints.GUILD_TEMPLATE(templateCode), data); - return await structures.createDiscordenoGuild( + return bot.transformers.guild( createdGuild, - Number((BigInt(createdGuild.id) >> 22n % BigInt(ws.botGatewayData.shards)).toString()) + Number((BigInt(createdGuild.id) >> 22n % BigInt(bot.ws.botGatewayData.shards)).toString()) ); } diff --git a/src/helpers/templates/create_guild_template.ts b/src/helpers/templates/create_guild_template.ts index bc09064b8..56d88881a 100644 --- a/src/helpers/templates/create_guild_template.ts +++ b/src/helpers/templates/create_guild_template.ts @@ -1,17 +1,17 @@ -import { rest } from "../../rest/rest.ts"; import type { Template } from "../../types/templates/template.ts"; -import { endpoints } from "../../util/constants.ts"; -import { requireBotGuildPermissions } from "../../util/permissions.ts"; -import { snakelize } from "../../util/utils.ts"; +import type {Bot} from "../../bot.ts"; +import {User} from "../../types/users/user.ts"; +import {Guild} from "../../types/guilds/guild.ts"; /** * Creates a template for the guild. * Requires the `MANAGE_GUILD` permission. - * @param name name of the template (1-100 characters) - * @param description description for the template (0-120 characters + * @param bot + * @param guildId + * @param data */ -export async function createGuildTemplate(guildId: bigint, data: Template) { - await requireBotGuildPermissions(guildId, ["MANAGE_GUILD"]); +export async function createGuildTemplate(bot: Bot, guildId: bigint, data: Template) { + await bot.utils.requireBotGuildPermissions(bot, guildId, ["MANAGE_GUILD"]); if (data.name.length < 1 || data.name.length > 100) { throw new Error("The name can only be in between 1-100 characters."); @@ -21,5 +21,17 @@ export async function createGuildTemplate(guildId: bigint, data: Template) { throw new Error("The description can only be in between 0-120 characters."); } - return await rest.runMethod