mirror of
https://github.com/discordeno/discordeno.git
synced 2026-06-16 19:28:17 +00:00
refactor(structures): rename create* functions (#395)
* structures: rename structure create functions * fix: errors occured because of structure rename * fix(controllers): errors occured because of structure rename * fix * fix createServer to createGuild rename * rename create*structure to create*Struct * update docs * Phew * rename createguildrole * fix that * fmt? * idk * why * fixxess * Update member.ts * Update member.ts * ahh found it * revert this * Update mod.ts Co-authored-by: ayntee <ayyantee@gmail.com>
This commit is contained in:
@@ -34,17 +34,17 @@ To begin customizing, create a file in the structures folder called `member.ts`.
|
|||||||
The name of the file is not important at all.
|
The name of the file is not important at all.
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
async function createMember() {
|
async function createMemberStruct() {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
We start by declaring a function that will be run to create the structure. Once
|
We start by declaring a function that will be run to create the structure. Once
|
||||||
again the name here is not important. The function must take the same arguments
|
again the name here is not important. The function must take the same arguments
|
||||||
that the internal function takes. In this case the createMember function takes 2
|
that the internal function takes. In this case the createMemberStruct function
|
||||||
arguments. `data: MemberCreatePayload, guildID: string`
|
takes 2 arguments. `data: MemberCreatePayload, guildID: string`
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
async function createMember(data: MemberCreatePayload, guildID: string) {
|
async function createMemberStruct(data: MemberCreatePayload, guildID: string) {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@ want. My recommendation is to start by copying the current code from the
|
|||||||
internal libraries structure.
|
internal libraries structure.
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
async function createMember(data: MemberCreatePayload, guildID: string) {
|
async function createMemberStruct(data: MemberCreatePayload, guildID: string) {
|
||||||
const {
|
const {
|
||||||
joined_at: joinedAt,
|
joined_at: joinedAt,
|
||||||
premium_since: premiumSince,
|
premium_since: premiumSince,
|
||||||
@@ -92,7 +92,7 @@ and `guild` properties to the member.
|
|||||||
```ts
|
```ts
|
||||||
import { rawAvatarURL } from "../../deps.ts";
|
import { rawAvatarURL } from "../../deps.ts";
|
||||||
|
|
||||||
async function createMember(data: MemberCreatePayload, guildID: string) {
|
async function createMemberStruct(data: MemberCreatePayload, guildID: string) {
|
||||||
// Hidden code here to make it easier to see the changes
|
// Hidden code here to make it easier to see the changes
|
||||||
|
|
||||||
const member = {
|
const member = {
|
||||||
@@ -116,11 +116,11 @@ async function createMember(data: MemberCreatePayload, guildID: string) {
|
|||||||
```
|
```
|
||||||
|
|
||||||
Now we need to use this function and telling Discordeno to override the internal
|
Now we need to use this function and telling Discordeno to override the internal
|
||||||
createMember function. To do this, we will modify the internal functions. This
|
createMemberStruct function. To do this, we will modify the internal functions.
|
||||||
is where we reassign the value of the function.
|
This is where we reassign the value of the function.
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
structures.createMember = createMember;
|
structures.createMemberStruct = createMemberStruct;
|
||||||
```
|
```
|
||||||
|
|
||||||
Awesome. Now, we have one more step to complete which is to declare these new
|
Awesome. Now, we have one more step to complete which is to declare these new
|
||||||
@@ -144,7 +144,7 @@ declare module "../../deps.ts" {
|
|||||||
The code should look like this right now:
|
The code should look like this right now:
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
async function createMember(data: MemberCreatePayload, guildID: string) {
|
async function createMemberStruct(data: MemberCreatePayload, guildID: string) {
|
||||||
const {
|
const {
|
||||||
joined_at: joinedAt,
|
joined_at: joinedAt,
|
||||||
premium_since: premiumSince,
|
premium_since: premiumSince,
|
||||||
@@ -184,7 +184,7 @@ async function createMember(data: MemberCreatePayload, guildID: string) {
|
|||||||
return member;
|
return member;
|
||||||
}
|
}
|
||||||
|
|
||||||
structures.createMember = createMember;
|
structures.createMemberStruct = createMemberStruct;
|
||||||
|
|
||||||
declare module "../../deps.ts" {
|
declare module "../../deps.ts" {
|
||||||
interface Member {
|
interface Member {
|
||||||
@@ -268,7 +268,7 @@ import {
|
|||||||
rawAvatarURL,
|
rawAvatarURL,
|
||||||
} from "../../deps.ts";
|
} from "../../deps.ts";
|
||||||
|
|
||||||
async function createMember(data: MemberCreatePayload, guildID: string) {
|
async function createMemberStruct(data: MemberCreatePayload, guildID: string) {
|
||||||
const {
|
const {
|
||||||
id,
|
id,
|
||||||
bot,
|
bot,
|
||||||
@@ -291,7 +291,7 @@ async function createMember(data: MemberCreatePayload, guildID: string) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
structures.createMember = createMember;
|
structures.createMemberStruct = createMemberStruct;
|
||||||
|
|
||||||
declare module "../../deps.ts" {
|
declare module "../../deps.ts" {
|
||||||
interface Member {
|
interface Member {
|
||||||
@@ -304,15 +304,15 @@ declare module "../../deps.ts" {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
You might be seeing an error on `structures.createMember`. This is happening
|
You might be seeing an error on `structures.createMemberStruct`. This is
|
||||||
because our new member structures is modifying/removing existing properties that
|
happening because our new member structures is modifying/removing existing
|
||||||
the lib internally said it would have. To solve this, simply just add a
|
properties that the lib internally said it would have. To solve this, simply
|
||||||
ts-ignore above it as you know better than TS that the typings are being
|
just add a ts-ignore above it as you know better than TS that the typings are
|
||||||
overwritten.
|
being overwritten.
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
structures.createMember = createMember;
|
structures.createMemberStruct = createMemberStruct;
|
||||||
```
|
```
|
||||||
|
|
||||||
## Custom Cache
|
## Custom Cache
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ export async function handleInternalChannelCreate(data: DiscordPayload) {
|
|||||||
if (data.t !== "CHANNEL_CREATE") return;
|
if (data.t !== "CHANNEL_CREATE") return;
|
||||||
|
|
||||||
const payload = data.d as ChannelCreatePayload;
|
const payload = data.d as ChannelCreatePayload;
|
||||||
const channelStruct = await structures.createChannel(payload);
|
|
||||||
|
|
||||||
|
const channelStruct = await structures.createChannelStruct(payload);
|
||||||
await cacheHandlers.set("channels", channelStruct.id, channelStruct);
|
await cacheHandlers.set("channels", channelStruct.id, channelStruct);
|
||||||
|
|
||||||
eventHandlers.channelCreate?.(channelStruct);
|
eventHandlers.channelCreate?.(channelStruct);
|
||||||
@@ -58,8 +58,8 @@ export async function handleInternalChannelUpdate(data: DiscordPayload) {
|
|||||||
|
|
||||||
const payload = data.d as ChannelCreatePayload;
|
const payload = data.d as ChannelCreatePayload;
|
||||||
const cachedChannel = await cacheHandlers.get("channels", payload.id);
|
const cachedChannel = await cacheHandlers.get("channels", payload.id);
|
||||||
const channelStruct = await structures.createChannel(payload);
|
|
||||||
|
|
||||||
|
const channelStruct = await structures.createChannelStruct(payload);
|
||||||
await cacheHandlers.set("channels", channelStruct.id, channelStruct);
|
await cacheHandlers.set("channels", channelStruct.id, channelStruct);
|
||||||
|
|
||||||
if (!cachedChannel) return;
|
if (!cachedChannel) return;
|
||||||
|
|||||||
@@ -22,11 +22,10 @@ export async function handleInternalGuildCreate(
|
|||||||
// When shards resume they emit GUILD_CREATE again.
|
// When shards resume they emit GUILD_CREATE again.
|
||||||
if (await cacheHandlers.has("guilds", payload.id)) return;
|
if (await cacheHandlers.has("guilds", payload.id)) return;
|
||||||
|
|
||||||
const guildStruct = await structures.createGuild(
|
const guildStruct = await structures.createGuildStruct(
|
||||||
data.d as CreateGuildPayload,
|
data.d as CreateGuildPayload,
|
||||||
shardID,
|
shardID,
|
||||||
);
|
);
|
||||||
|
|
||||||
await cacheHandlers.set("guilds", guildStruct.id, guildStruct);
|
await cacheHandlers.set("guilds", guildStruct.id, guildStruct);
|
||||||
|
|
||||||
if (await cacheHandlers.has("unavailableGuilds", payload.id)) {
|
if (await cacheHandlers.has("unavailableGuilds", payload.id)) {
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ export async function handleInternalInteractionCreate(data: DiscordPayload) {
|
|||||||
if (data.t !== "INTERACTION_CREATE") return;
|
if (data.t !== "INTERACTION_CREATE") return;
|
||||||
|
|
||||||
const payload = data.d as InteractionCommandPayload;
|
const payload = data.d as InteractionCommandPayload;
|
||||||
const memberStruct = await structures.createMember(
|
const memberStruct = await structures.createMemberStruct(
|
||||||
payload.member,
|
payload.member,
|
||||||
payload.guild_id,
|
payload.guild_id,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ export async function handleInternalGuildMemberAdd(data: DiscordPayload) {
|
|||||||
if (!guild) return;
|
if (!guild) return;
|
||||||
|
|
||||||
guild.memberCount++;
|
guild.memberCount++;
|
||||||
const memberStruct = await structures.createMember(
|
const memberStruct = await structures.createMemberStruct(
|
||||||
payload,
|
payload,
|
||||||
payload.guild_id,
|
payload.guild_id,
|
||||||
);
|
);
|
||||||
@@ -66,7 +66,7 @@ export async function handleInternalGuildMemberUpdate(data: DiscordPayload) {
|
|||||||
mute: guildMember?.mute || false,
|
mute: guildMember?.mute || false,
|
||||||
roles: payload.roles,
|
roles: payload.roles,
|
||||||
};
|
};
|
||||||
const memberStruct = await structures.createMember(
|
const memberStruct = await structures.createMemberStruct(
|
||||||
newMemberData,
|
newMemberData,
|
||||||
payload.guild_id,
|
payload.guild_id,
|
||||||
);
|
);
|
||||||
@@ -109,11 +109,10 @@ export async function handleInternalGuildMembersChunk(data: DiscordPayload) {
|
|||||||
|
|
||||||
const members = await Promise.all(
|
const members = await Promise.all(
|
||||||
payload.members.map(async (member) => {
|
payload.members.map(async (member) => {
|
||||||
const memberStruct = await structures.createMember(
|
const memberStruct = await structures.createMemberStruct(
|
||||||
member,
|
member,
|
||||||
payload.guild_id,
|
payload.guild_id,
|
||||||
);
|
);
|
||||||
|
|
||||||
await cacheHandlers.set("members", memberStruct.id, memberStruct);
|
await cacheHandlers.set("members", memberStruct.id, memberStruct);
|
||||||
|
|
||||||
return memberStruct;
|
return memberStruct;
|
||||||
|
|||||||
@@ -21,18 +21,17 @@ export async function handleInternalMessageCreate(data: DiscordPayload) {
|
|||||||
|
|
||||||
if (payload.member && guild) {
|
if (payload.member && guild) {
|
||||||
// If in a guild cache the author as a member
|
// If in a guild cache the author as a member
|
||||||
const memberStruct = await structures.createMember(
|
const memberStruct = await structures.createMemberStruct(
|
||||||
{ ...payload.member, user: payload.author },
|
{ ...payload.member, user: payload.author },
|
||||||
guild.id,
|
guild.id,
|
||||||
);
|
);
|
||||||
|
|
||||||
await cacheHandlers.set("members", memberStruct.id, memberStruct);
|
await cacheHandlers.set("members", memberStruct.id, memberStruct);
|
||||||
}
|
}
|
||||||
|
|
||||||
await Promise.all(payload.mentions.map(async (mention) => {
|
await Promise.all(payload.mentions.map(async (mention) => {
|
||||||
// Cache the member if its a valid member
|
// Cache the member if its a valid member
|
||||||
if (mention.member && guild) {
|
if (mention.member && guild) {
|
||||||
const memberStruct = await structures.createMember(
|
const memberStruct = await structures.createMemberStruct(
|
||||||
{ ...mention.member, user: mention },
|
{ ...mention.member, user: mention },
|
||||||
guild.id,
|
guild.id,
|
||||||
);
|
);
|
||||||
@@ -41,7 +40,7 @@ export async function handleInternalMessageCreate(data: DiscordPayload) {
|
|||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
const message = await structures.createMessage(payload);
|
const message = await structures.createMessageStruct(payload);
|
||||||
// Cache the message
|
// Cache the message
|
||||||
await cacheHandlers.set("messages", payload.id, message);
|
await cacheHandlers.set("messages", payload.id, message);
|
||||||
|
|
||||||
@@ -106,7 +105,7 @@ export async function handleInternalMessageUpdate(data: DiscordPayload) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const message = await structures.createMessage(payload);
|
const message = await structures.createMessageStruct(payload);
|
||||||
|
|
||||||
await cacheHandlers.set("messages", payload.id, message);
|
await cacheHandlers.set("messages", payload.id, message);
|
||||||
|
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ export async function handleInternalReady(
|
|||||||
for (const [guildID, members] of initialMemberLoadQueue.entries()) {
|
for (const [guildID, members] of initialMemberLoadQueue.entries()) {
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
members.map(async (member) => {
|
members.map(async (member) => {
|
||||||
const memberStruct = await structures.createMember(
|
const memberStruct = await structures.createMemberStruct(
|
||||||
member,
|
member,
|
||||||
guildID,
|
guildID,
|
||||||
);
|
);
|
||||||
@@ -125,7 +125,7 @@ export async function handleInternalVoiceStateUpdate(data: DiscordPayload) {
|
|||||||
if (!guild) return;
|
if (!guild) return;
|
||||||
|
|
||||||
const member = payload.member
|
const member = payload.member
|
||||||
? await structures.createMember(payload.member, guild.id)
|
? await structures.createMemberStruct(payload.member, guild.id)
|
||||||
: await cacheHandlers.get("members", payload.user_id);
|
: await cacheHandlers.get("members", payload.user_id);
|
||||||
if (!member) return;
|
if (!member) return;
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ export async function handleInternalMessageReactionAdd(data: DiscordPayload) {
|
|||||||
if (payload.member && payload.guild_id) {
|
if (payload.member && payload.guild_id) {
|
||||||
const guild = await cacheHandlers.get("guilds", payload.guild_id);
|
const guild = await cacheHandlers.get("guilds", payload.guild_id);
|
||||||
if (guild) {
|
if (guild) {
|
||||||
const memberStruct = await structures.createMember(
|
const memberStruct = await structures.createMemberStruct(
|
||||||
payload.member,
|
payload.member,
|
||||||
guild.id,
|
guild.id,
|
||||||
);
|
);
|
||||||
@@ -95,7 +95,7 @@ export async function handleInternalMessageReactionRemove(
|
|||||||
if (payload.member && payload.guild_id) {
|
if (payload.member && payload.guild_id) {
|
||||||
const guild = await cacheHandlers.get("guilds", payload.guild_id);
|
const guild = await cacheHandlers.get("guilds", payload.guild_id);
|
||||||
if (guild) {
|
if (guild) {
|
||||||
const memberStruct = await structures.createMember(
|
const memberStruct = await structures.createMemberStruct(
|
||||||
payload.member,
|
payload.member,
|
||||||
guild.id,
|
guild.id,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ export async function handleInternalGuildRoleCreate(data: DiscordPayload) {
|
|||||||
const guild = await cacheHandlers.get("guilds", payload.guild_id);
|
const guild = await cacheHandlers.get("guilds", payload.guild_id);
|
||||||
if (!guild) return;
|
if (!guild) return;
|
||||||
|
|
||||||
const role = await structures.createRole(payload.role);
|
const role = await structures.createRoleStruct(payload.role);
|
||||||
guild.roles = guild.roles.set(payload.role.id, role);
|
guild.roles = guild.roles.set(payload.role.id, role);
|
||||||
await cacheHandlers.set("guilds", payload.guild_id, guild);
|
await cacheHandlers.set("guilds", payload.guild_id, guild);
|
||||||
|
|
||||||
@@ -58,7 +58,7 @@ export async function handleInternalGuildRoleUpdate(data: DiscordPayload) {
|
|||||||
const cachedRole = guild.roles.get(payload.role.id);
|
const cachedRole = guild.roles.get(payload.role.id);
|
||||||
if (!cachedRole) return;
|
if (!cachedRole) return;
|
||||||
|
|
||||||
const role = await structures.createRole(payload.role);
|
const role = await structures.createRoleStruct(payload.role);
|
||||||
guild.roles.set(payload.role.id, role);
|
guild.roles.set(payload.role.id, role);
|
||||||
await cacheHandlers.set("guilds", guild.id, guild);
|
await cacheHandlers.set("guilds", guild.id, guild);
|
||||||
|
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ export async function getMessage(
|
|||||||
endpoints.CHANNEL_MESSAGE(channelID, id),
|
endpoints.CHANNEL_MESSAGE(channelID, id),
|
||||||
) as MessageCreateOptions;
|
) as MessageCreateOptions;
|
||||||
|
|
||||||
return structures.createMessage(result);
|
return structures.createMessageStruct(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Fetches between 2-100 messages. Requires VIEW_CHANNEL and READ_MESSAGE_HISTORY */
|
/** Fetches between 2-100 messages. Requires VIEW_CHANNEL and READ_MESSAGE_HISTORY */
|
||||||
@@ -115,7 +115,9 @@ export async function getMessages(
|
|||||||
options,
|
options,
|
||||||
)) as MessageCreateOptions[];
|
)) as MessageCreateOptions[];
|
||||||
|
|
||||||
return Promise.all(result.map((res) => structures.createMessage(res)));
|
return Promise.all(
|
||||||
|
result.map((res) => structures.createMessageStruct(res)),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Get pinned messages in this channel. */
|
/** Get pinned messages in this channel. */
|
||||||
@@ -124,7 +126,9 @@ export async function getPins(channelID: string) {
|
|||||||
endpoints.CHANNEL_PINS(channelID),
|
endpoints.CHANNEL_PINS(channelID),
|
||||||
)) as MessageCreateOptions[];
|
)) as MessageCreateOptions[];
|
||||||
|
|
||||||
return Promise.all(result.map((res) => structures.createMessage(res)));
|
return Promise.all(
|
||||||
|
result.map((res) => structures.createMessageStruct(res)),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -275,7 +279,7 @@ export async function sendMessage(
|
|||||||
},
|
},
|
||||||
) as MessageCreateOptions;
|
) as MessageCreateOptions;
|
||||||
|
|
||||||
return structures.createMessage(result);
|
return structures.createMessageStruct(result as MessageCreateOptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Delete messages from the channel. 2-100. Requires the MANAGE_MESSAGES permission */
|
/** Delete messages from the channel. 2-100. Requires the MANAGE_MESSAGES permission */
|
||||||
|
|||||||
+21
-17
@@ -44,13 +44,13 @@ import { cacheHandlers } from "../controllers/cache.ts";
|
|||||||
import { Guild, Member, structures } from "../structures/mod.ts";
|
import { Guild, Member, structures } from "../structures/mod.ts";
|
||||||
|
|
||||||
/** Create a new guild. Returns a guild object on success. Fires a Guild Create Gateway event. This endpoint can be used only by bots in less than 10 guilds. */
|
/** Create a new guild. Returns a guild object on success. Fires a Guild Create Gateway event. This endpoint can be used only by bots in less than 10 guilds. */
|
||||||
export async function createServer(options: CreateServerOptions) {
|
export async function createGuild(options: CreateServerOptions) {
|
||||||
const guild = await RequestManager.post(
|
const guild = await RequestManager.post(
|
||||||
endpoints.GUILDS,
|
endpoints.GUILDS,
|
||||||
options,
|
options,
|
||||||
) as CreateGuildPayload;
|
) as CreateGuildPayload;
|
||||||
|
|
||||||
return structures.createGuild(guild, 0);
|
return structures.createGuildStruct(guild, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Delete a guild permanently. User must be owner. Returns 204 No Content on success. Fires a Guild Delete Gateway event.
|
/** Delete a guild permanently. User must be owner. Returns 204 No Content on success. Fires a Guild Delete Gateway event.
|
||||||
@@ -136,8 +136,7 @@ export async function createGuildChannel(
|
|||||||
type: options?.type || ChannelTypes.GUILD_TEXT,
|
type: options?.type || ChannelTypes.GUILD_TEXT,
|
||||||
})) as ChannelCreatePayload;
|
})) as ChannelCreatePayload;
|
||||||
|
|
||||||
const channelStruct = await structures.createChannel(result);
|
const channelStruct = await structures.createChannelStruct(result);
|
||||||
|
|
||||||
await cacheHandlers.set("channels", channelStruct.id, channelStruct);
|
await cacheHandlers.set("channels", channelStruct.id, channelStruct);
|
||||||
|
|
||||||
return channelStruct;
|
return channelStruct;
|
||||||
@@ -186,7 +185,7 @@ export async function getChannels(guildID: string, addToCache = true) {
|
|||||||
) as ChannelCreatePayload[];
|
) as ChannelCreatePayload[];
|
||||||
|
|
||||||
return Promise.all(result.map(async (res) => {
|
return Promise.all(result.map(async (res) => {
|
||||||
const channelStruct = await structures.createChannel(res, guildID);
|
const channelStruct = await structures.createChannelStruct(res, guildID);
|
||||||
if (addToCache) {
|
if (addToCache) {
|
||||||
await cacheHandlers.set("channels", channelStruct.id, channelStruct);
|
await cacheHandlers.set("channels", channelStruct.id, channelStruct);
|
||||||
}
|
}
|
||||||
@@ -204,7 +203,10 @@ export async function getChannel(channelID: string, addToCache = true) {
|
|||||||
endpoints.CHANNEL_BASE(channelID),
|
endpoints.CHANNEL_BASE(channelID),
|
||||||
) as ChannelCreatePayload;
|
) as ChannelCreatePayload;
|
||||||
|
|
||||||
const channelStruct = await structures.createChannel(result, result.guild_id);
|
const channelStruct = await structures.createChannelStruct(
|
||||||
|
result,
|
||||||
|
result.guild_id,
|
||||||
|
);
|
||||||
if (addToCache) {
|
if (addToCache) {
|
||||||
await cacheHandlers.set("channels", channelStruct.id, channelStruct);
|
await cacheHandlers.set("channels", channelStruct.id, channelStruct);
|
||||||
}
|
}
|
||||||
@@ -293,8 +295,7 @@ export async function getMember(
|
|||||||
endpoints.GUILD_MEMBER(guildID, id),
|
endpoints.GUILD_MEMBER(guildID, id),
|
||||||
) as MemberCreatePayload;
|
) as MemberCreatePayload;
|
||||||
|
|
||||||
const memberStruct = await structures.createMember(data, guildID);
|
const memberStruct = await structures.createMemberStruct(data, guildID);
|
||||||
|
|
||||||
await cacheHandlers.set("members", memberStruct.id, memberStruct);
|
await cacheHandlers.set("members", memberStruct.id, memberStruct);
|
||||||
|
|
||||||
return memberStruct;
|
return memberStruct;
|
||||||
@@ -439,7 +440,7 @@ export async function getEmoji(
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Create a new role for the guild. Requires the MANAGE_ROLES permission. */
|
/** Create a new role for the guild. Requires the MANAGE_ROLES permission. */
|
||||||
export async function createGuildRole(
|
export async function createRole(
|
||||||
guildID: string,
|
guildID: string,
|
||||||
options: CreateRoleOptions,
|
options: CreateRoleOptions,
|
||||||
reason?: string,
|
reason?: string,
|
||||||
@@ -459,7 +460,7 @@ export async function createGuildRole(
|
|||||||
);
|
);
|
||||||
|
|
||||||
const roleData = result as RoleData;
|
const roleData = result as RoleData;
|
||||||
const role = await structures.createRole(roleData);
|
const role = await structures.createRoleStruct(roleData);
|
||||||
const guild = await cacheHandlers.get("guilds", guildID);
|
const guild = await cacheHandlers.get("guilds", guildID);
|
||||||
guild?.roles.set(role.id, role);
|
guild?.roles.set(role.id, role);
|
||||||
|
|
||||||
@@ -646,7 +647,10 @@ export async function getMembers(
|
|||||||
|
|
||||||
const memberStructures = await Promise.all(
|
const memberStructures = await Promise.all(
|
||||||
result.map(async (member) => {
|
result.map(async (member) => {
|
||||||
const memberStruct = await structures.createMember(member, guildID);
|
const memberStruct = await structures.createMemberStruct(
|
||||||
|
member,
|
||||||
|
guildID,
|
||||||
|
);
|
||||||
|
|
||||||
await cacheHandlers.set("members", memberStruct.id, memberStruct);
|
await cacheHandlers.set("members", memberStruct.id, memberStruct);
|
||||||
|
|
||||||
@@ -962,7 +966,7 @@ export async function getTemplate(templateCode: string) {
|
|||||||
const result = await RequestManager.get(
|
const result = await RequestManager.get(
|
||||||
endpoints.GUILD_TEMPLATE(templateCode),
|
endpoints.GUILD_TEMPLATE(templateCode),
|
||||||
) as GuildTemplate;
|
) as GuildTemplate;
|
||||||
const template = await structures.createTemplate(result);
|
const template = await structures.createTemplateStruct(result);
|
||||||
|
|
||||||
return template;
|
return template;
|
||||||
}
|
}
|
||||||
@@ -1016,7 +1020,7 @@ export async function getGuildTemplates(guildID: string) {
|
|||||||
endpoints.GUILD_TEMPLATES(guildID),
|
endpoints.GUILD_TEMPLATES(guildID),
|
||||||
) as GuildTemplate[];
|
) as GuildTemplate[];
|
||||||
|
|
||||||
return templates.map((template) => structures.createTemplate(template));
|
return templates.map((template) => structures.createTemplateStruct(template));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1034,7 +1038,7 @@ export async function deleteGuildTemplate(
|
|||||||
`${endpoints.GUILD_TEMPLATES(guildID)}/${templateCode}`,
|
`${endpoints.GUILD_TEMPLATES(guildID)}/${templateCode}`,
|
||||||
) as GuildTemplate;
|
) as GuildTemplate;
|
||||||
|
|
||||||
return structures.createTemplate(deletedTemplate);
|
return structures.createTemplateStruct(deletedTemplate);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1066,7 +1070,7 @@ export async function createGuildTemplate(
|
|||||||
data,
|
data,
|
||||||
) as GuildTemplate;
|
) as GuildTemplate;
|
||||||
|
|
||||||
return structures.createTemplate(template);
|
return structures.createTemplateStruct(template);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1081,7 +1085,7 @@ export async function syncGuildTemplate(guildID: string, templateCode: string) {
|
|||||||
`${endpoints.GUILD_TEMPLATES(guildID)}/${templateCode}`,
|
`${endpoints.GUILD_TEMPLATES(guildID)}/${templateCode}`,
|
||||||
) as GuildTemplate;
|
) as GuildTemplate;
|
||||||
|
|
||||||
return structures.createTemplate(template);
|
return structures.createTemplateStruct(template);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1112,5 +1116,5 @@ export async function editGuildTemplate(
|
|||||||
data,
|
data,
|
||||||
) as GuildTemplate;
|
) as GuildTemplate;
|
||||||
|
|
||||||
return structures.createTemplate(template);
|
return structures.createTemplateStruct(template);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -132,7 +132,7 @@ export async function sendDirectMessage(
|
|||||||
endpoints.USER_DM,
|
endpoints.USER_DM,
|
||||||
{ recipient_id: memberID },
|
{ recipient_id: memberID },
|
||||||
) as DMChannelCreatePayload;
|
) as DMChannelCreatePayload;
|
||||||
const channelStruct = await structures.createChannel(
|
const channelStruct = await structures.createChannelStruct(
|
||||||
dmChannelData as unknown as ChannelCreatePayload,
|
dmChannelData as unknown as ChannelCreatePayload,
|
||||||
);
|
);
|
||||||
// Recreate the channel and add it undert he users id
|
// Recreate the channel and add it undert he users id
|
||||||
@@ -229,7 +229,7 @@ export async function editMember(
|
|||||||
endpoints.GUILD_MEMBER(guildID, memberID),
|
endpoints.GUILD_MEMBER(guildID, memberID),
|
||||||
options,
|
options,
|
||||||
) as MemberCreatePayload;
|
) as MemberCreatePayload;
|
||||||
const member = await structures.createMember(result, guildID);
|
const member = await structures.createMemberStruct(result, guildID);
|
||||||
|
|
||||||
return member;
|
return member;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -324,7 +324,7 @@ export async function editMessage(
|
|||||||
content,
|
content,
|
||||||
);
|
);
|
||||||
|
|
||||||
return structures.createMessage(result as MessageCreateOptions);
|
return structures.createMessageStruct(result as MessageCreateOptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Crosspost a message in a News Channel to following channels. */
|
/** Crosspost a message in a News Channel to following channels. */
|
||||||
@@ -333,5 +333,5 @@ export async function publishMessage(channelID: string, messageID: string) {
|
|||||||
endpoints.CHANNEL_MESSAGE_CROSSPOST(channelID, messageID),
|
endpoints.CHANNEL_MESSAGE_CROSSPOST(channelID, messageID),
|
||||||
) as MessageCreateOptions;
|
) as MessageCreateOptions;
|
||||||
|
|
||||||
return structures.createMessage(data);
|
return structures.createMessageStruct(data);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,11 +20,11 @@ import {
|
|||||||
ban,
|
ban,
|
||||||
categoryChildrenIDs,
|
categoryChildrenIDs,
|
||||||
createEmoji,
|
createEmoji,
|
||||||
|
createGuild,
|
||||||
createGuildChannel,
|
createGuildChannel,
|
||||||
createGuildFromTemplate,
|
createGuildFromTemplate,
|
||||||
createGuildRole,
|
|
||||||
createGuildTemplate,
|
createGuildTemplate,
|
||||||
createServer,
|
createRole,
|
||||||
deleteChannel,
|
deleteChannel,
|
||||||
deleteChannelOverwrite,
|
deleteChannelOverwrite,
|
||||||
deleteEmoji,
|
deleteEmoji,
|
||||||
@@ -33,7 +33,6 @@ import {
|
|||||||
deleteRole,
|
deleteRole,
|
||||||
deleteServer,
|
deleteServer,
|
||||||
editChannelOverwrite,
|
editChannelOverwrite,
|
||||||
editEmbed,
|
|
||||||
editEmoji,
|
editEmoji,
|
||||||
editGuild,
|
editGuild,
|
||||||
editGuildTemplate,
|
editGuildTemplate,
|
||||||
@@ -48,7 +47,6 @@ import {
|
|||||||
getBans,
|
getBans,
|
||||||
getChannel,
|
getChannel,
|
||||||
getChannels,
|
getChannels,
|
||||||
getEmbed,
|
|
||||||
getEmoji,
|
getEmoji,
|
||||||
getEmojis,
|
getEmojis,
|
||||||
getGuild,
|
getGuild,
|
||||||
@@ -153,9 +151,9 @@ export let handlers = {
|
|||||||
createEmoji,
|
createEmoji,
|
||||||
createGuildChannel,
|
createGuildChannel,
|
||||||
createGuildFromTemplate,
|
createGuildFromTemplate,
|
||||||
createGuildRole,
|
createRole,
|
||||||
createGuildTemplate,
|
createGuildTemplate,
|
||||||
createServer,
|
createGuild,
|
||||||
deleteChannel,
|
deleteChannel,
|
||||||
deleteEmoji,
|
deleteEmoji,
|
||||||
deleteGuildTemplate,
|
deleteGuildTemplate,
|
||||||
@@ -176,7 +174,6 @@ export let handlers = {
|
|||||||
getChannel,
|
getChannel,
|
||||||
getChannels,
|
getChannels,
|
||||||
getWidgetSettings,
|
getWidgetSettings,
|
||||||
getEmbed,
|
|
||||||
getEmoji,
|
getEmoji,
|
||||||
getEmojis,
|
getEmojis,
|
||||||
getGuild,
|
getGuild,
|
||||||
|
|||||||
@@ -203,7 +203,7 @@ export async function executeWebhook(
|
|||||||
);
|
);
|
||||||
if (!options.wait) return;
|
if (!options.wait) return;
|
||||||
|
|
||||||
return structures.createMessage(result as MessageCreateOptions);
|
return structures.createMessageStruct(result as MessageCreateOptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function editWebhookMessage(
|
export async function editWebhookMessage(
|
||||||
@@ -257,7 +257,7 @@ export async function editWebhookMessage(
|
|||||||
{ ...options, allowed_mentions: options.allowed_mentions },
|
{ ...options, allowed_mentions: options.allowed_mentions },
|
||||||
) as MessageCreateOptions;
|
) as MessageCreateOptions;
|
||||||
|
|
||||||
const message = await structures.createMessage(result);
|
const message = await structures.createMessageStruct(result);
|
||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -603,7 +603,7 @@ export async function editSlashResponse(
|
|||||||
// If the original message was edited, this will not return a message
|
// If the original message was edited, this will not return a message
|
||||||
if (!options.messageID) return result;
|
if (!options.messageID) return result;
|
||||||
|
|
||||||
const message = await structures.createMessage(
|
const message = await structures.createMessageStruct(
|
||||||
result as MessageCreateOptions,
|
result as MessageCreateOptions,
|
||||||
);
|
);
|
||||||
return message;
|
return message;
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ const baseChannel: Partial<Channel> = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// deno-lint-ignore require-await
|
// deno-lint-ignore require-await
|
||||||
export async function createChannel(
|
export async function createChannelStruct(
|
||||||
data: ChannelCreatePayload,
|
data: ChannelCreatePayload,
|
||||||
guildID?: string,
|
guildID?: string,
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -107,7 +107,10 @@ const baseGuild: Partial<Guild> = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
export async function createGuild(data: CreateGuildPayload, shardID: number) {
|
export async function createGuildStruct(
|
||||||
|
data: CreateGuildPayload,
|
||||||
|
shardID: number,
|
||||||
|
) {
|
||||||
const {
|
const {
|
||||||
disovery_splash: discoverySplash,
|
disovery_splash: discoverySplash,
|
||||||
default_message_notifications: defaultMessageNotifications,
|
default_message_notifications: defaultMessageNotifications,
|
||||||
@@ -143,11 +146,14 @@ export async function createGuild(data: CreateGuildPayload, shardID: number) {
|
|||||||
} = data;
|
} = data;
|
||||||
|
|
||||||
const roles = await Promise.all(
|
const roles = await Promise.all(
|
||||||
data.roles.map((role) => structures.createRole(role)),
|
data.roles.map((role) => structures.createRoleStruct(role)),
|
||||||
);
|
);
|
||||||
|
|
||||||
await Promise.all(channels.map(async (channel) => {
|
await Promise.all(channels.map(async (channel) => {
|
||||||
const channelStruct = await structures.createChannel(channel, rest.id);
|
const channelStruct = await structures.createChannelStruct(
|
||||||
|
channel,
|
||||||
|
rest.id,
|
||||||
|
);
|
||||||
return cacheHandlers.set("channels", channelStruct.id, channelStruct);
|
return cacheHandlers.set("channels", channelStruct.id, channelStruct);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|||||||
@@ -72,7 +72,10 @@ const baseMember: Partial<Member> = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
export async function createMember(data: MemberCreatePayload, guildID: string) {
|
export async function createMemberStruct(
|
||||||
|
data: MemberCreatePayload,
|
||||||
|
guildID: string,
|
||||||
|
) {
|
||||||
const {
|
const {
|
||||||
joined_at: joinedAt,
|
joined_at: joinedAt,
|
||||||
premium_since: premiumSince,
|
premium_since: premiumSince,
|
||||||
|
|||||||
@@ -133,7 +133,7 @@ const baseMessage: Partial<Message> = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
export async function createMessage(data: MessageCreateOptions) {
|
export async function createMessageStruct(data: MessageCreateOptions) {
|
||||||
const {
|
const {
|
||||||
guild_id: guildID = "",
|
guild_id: guildID = "",
|
||||||
channel_id: channelID,
|
channel_id: channelID,
|
||||||
|
|||||||
+14
-19
@@ -1,20 +1,22 @@
|
|||||||
import { createChannel } from "./channel.ts";
|
import { Channel, createChannelStruct } from "./channel.ts";
|
||||||
import { createGuild } from "./guild.ts";
|
import { createGuildStruct, Guild } from "./guild.ts";
|
||||||
import { createMember } from "./member.ts";
|
import { createMemberStruct, Member } from "./member.ts";
|
||||||
import { createMessage } from "./message.ts";
|
import { createMessageStruct, Message } from "./message.ts";
|
||||||
import { createRole } from "./role.ts";
|
import { createRoleStruct, Role } from "./role.ts";
|
||||||
import { createTemplate } from "./template.ts";
|
import { createTemplateStruct, Template } from "./template.ts";
|
||||||
|
|
||||||
/** This is the placeholder where the structure creation functions are kept. */
|
/** This is the placeholder where the structure creation functions are kept. */
|
||||||
export let structures = {
|
export let structures = {
|
||||||
createChannel,
|
createChannelStruct,
|
||||||
createGuild,
|
createGuildStruct,
|
||||||
createMember,
|
createMemberStruct,
|
||||||
createMessage,
|
createMessageStruct,
|
||||||
createRole,
|
createRoleStruct,
|
||||||
createTemplate,
|
createTemplateStruct,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export type { Channel, Guild, Member, Message, Role, Template };
|
||||||
|
|
||||||
export type Structures = typeof structures;
|
export type Structures = typeof structures;
|
||||||
|
|
||||||
/** This function is used to update/reload/customize the internal structures of Discordeno.
|
/** This function is used to update/reload/customize the internal structures of Discordeno.
|
||||||
@@ -28,10 +30,3 @@ export function updateStructures(newStructures: Structures) {
|
|||||||
...newStructures,
|
...newStructures,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export type { Channel } from "./channel.ts";
|
|
||||||
export type { Guild } from "./guild.ts";
|
|
||||||
export type { Member } from "./member.ts";
|
|
||||||
export type { Message } from "./message.ts";
|
|
||||||
export type { Role } from "./role.ts";
|
|
||||||
export type { Template } from "./template.ts";
|
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ const baseRole: Partial<Role> = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// deno-lint-ignore require-await
|
// deno-lint-ignore require-await
|
||||||
export async function createRole({ tags = {}, ...rest }: RoleData) {
|
export async function createRoleStruct({ tags = {}, ...rest }: RoleData) {
|
||||||
const restProps: Record<string, ReturnType<typeof createNewProp>> = {};
|
const restProps: Record<string, ReturnType<typeof createNewProp>> = {};
|
||||||
for (const key of Object.keys(rest)) {
|
for (const key of Object.keys(rest)) {
|
||||||
// @ts-ignore index signature
|
// @ts-ignore index signature
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ const baseTemplate: Partial<Template> = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
export function createTemplate(
|
export function createTemplateStruct(
|
||||||
data: GuildTemplate,
|
data: GuildTemplate,
|
||||||
) {
|
) {
|
||||||
const {
|
const {
|
||||||
|
|||||||
+4
-5
@@ -6,10 +6,9 @@ import {
|
|||||||
cache,
|
cache,
|
||||||
Channel,
|
Channel,
|
||||||
channelOverwriteHasPermission,
|
channelOverwriteHasPermission,
|
||||||
closeWS,
|
createGuild,
|
||||||
createGuildChannel,
|
createGuildChannel,
|
||||||
createGuildRole,
|
createRole,
|
||||||
createServer,
|
|
||||||
delay,
|
delay,
|
||||||
deleteChannel,
|
deleteChannel,
|
||||||
deleteMessageByID,
|
deleteMessageByID,
|
||||||
@@ -71,7 +70,7 @@ Deno.test({
|
|||||||
Deno.test({
|
Deno.test({
|
||||||
name: "[guild] create a new guild",
|
name: "[guild] create a new guild",
|
||||||
async fn() {
|
async fn() {
|
||||||
const guild = await createServer({
|
const guild = await createGuild({
|
||||||
name: "Discordeno Test",
|
name: "Discordeno Test",
|
||||||
}) as Guild;
|
}) as Guild;
|
||||||
|
|
||||||
@@ -96,7 +95,7 @@ Deno.test({
|
|||||||
}
|
}
|
||||||
|
|
||||||
const name = "Discordeno Test";
|
const name = "Discordeno Test";
|
||||||
const role = await createGuildRole(tempData.guildID, {
|
const role = await createRole(tempData.guildID, {
|
||||||
name,
|
name,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user