mirror of
https://github.com/discordeno/discordeno.git
synced 2026-06-16 03:18:17 +00:00
fixes bugs and remaining ts errors
This commit is contained in:
+10
-7
@@ -313,6 +313,7 @@ import { urlToBase64 } from "./util/url_to_base64.ts";
|
|||||||
import { transformAttachment } from "./transformers/attachment.ts";
|
import { transformAttachment } from "./transformers/attachment.ts";
|
||||||
import { transformEmbed } from "./transformers/embed.ts";
|
import { transformEmbed } from "./transformers/embed.ts";
|
||||||
import { transformComponent } from "./transformers/component.ts";
|
import { transformComponent } from "./transformers/component.ts";
|
||||||
|
import { transformThread } from "./transformers/thread.ts";
|
||||||
|
|
||||||
export function createBot(options: CreateBotOptions) {
|
export function createBot(options: CreateBotOptions) {
|
||||||
return {
|
return {
|
||||||
@@ -345,7 +346,7 @@ export function createBot(options: CreateBotOptions) {
|
|||||||
fetchAllMembersProcessingRequests: new Collection<string, Function>(),
|
fetchAllMembersProcessingRequests: new Collection<string, Function>(),
|
||||||
messages: {
|
messages: {
|
||||||
get: async function (id: bigint): Promise<DiscordenoMessage | undefined> {
|
get: async function (id: bigint): Promise<DiscordenoMessage | undefined> {
|
||||||
return {} as any as DiscordenoMessage;
|
return;
|
||||||
},
|
},
|
||||||
has: async function (id: bigint): Promise<boolean> {
|
has: async function (id: bigint): Promise<boolean> {
|
||||||
return false;
|
return false;
|
||||||
@@ -359,7 +360,7 @@ export function createBot(options: CreateBotOptions) {
|
|||||||
},
|
},
|
||||||
guilds: {
|
guilds: {
|
||||||
get: async function (id: bigint): Promise<DiscordenoGuild | undefined> {
|
get: async function (id: bigint): Promise<DiscordenoGuild | undefined> {
|
||||||
return {} as any as DiscordenoGuild;
|
return;
|
||||||
},
|
},
|
||||||
has: async function (id: bigint): Promise<boolean> {
|
has: async function (id: bigint): Promise<boolean> {
|
||||||
return false;
|
return false;
|
||||||
@@ -376,7 +377,7 @@ export function createBot(options: CreateBotOptions) {
|
|||||||
},
|
},
|
||||||
channels: {
|
channels: {
|
||||||
get: async function (id: bigint): Promise<DiscordenoChannel | undefined> {
|
get: async function (id: bigint): Promise<DiscordenoChannel | undefined> {
|
||||||
return {} as any as DiscordenoChannel;
|
return;
|
||||||
},
|
},
|
||||||
has: async function (id: bigint): Promise<boolean> {
|
has: async function (id: bigint): Promise<boolean> {
|
||||||
return false;
|
return false;
|
||||||
@@ -390,7 +391,7 @@ export function createBot(options: CreateBotOptions) {
|
|||||||
},
|
},
|
||||||
members: {
|
members: {
|
||||||
get: async function (id: bigint): Promise<DiscordenoMember | undefined> {
|
get: async function (id: bigint): Promise<DiscordenoMember | undefined> {
|
||||||
return {} as any as DiscordenoMember;
|
return;
|
||||||
},
|
},
|
||||||
has: async function (id: bigint): Promise<boolean> {
|
has: async function (id: bigint): Promise<boolean> {
|
||||||
return false;
|
return false;
|
||||||
@@ -404,7 +405,7 @@ export function createBot(options: CreateBotOptions) {
|
|||||||
},
|
},
|
||||||
presence: {
|
presence: {
|
||||||
get: async function (id: bigint): Promise<DiscordenoPresence | undefined> {
|
get: async function (id: bigint): Promise<DiscordenoPresence | undefined> {
|
||||||
return {} as any as DiscordenoPresence;
|
return;
|
||||||
},
|
},
|
||||||
has: async function (id: bigint): Promise<boolean> {
|
has: async function (id: bigint): Promise<boolean> {
|
||||||
return false;
|
return false;
|
||||||
@@ -418,7 +419,7 @@ export function createBot(options: CreateBotOptions) {
|
|||||||
},
|
},
|
||||||
users: {
|
users: {
|
||||||
get: async function (id: bigint): Promise<DiscordenoUser | undefined> {
|
get: async function (id: bigint): Promise<DiscordenoUser | undefined> {
|
||||||
return {} as any as DiscordenoUser;
|
return;
|
||||||
},
|
},
|
||||||
has: async function (id: bigint): Promise<boolean> {
|
has: async function (id: bigint): Promise<boolean> {
|
||||||
return false;
|
return false;
|
||||||
@@ -570,7 +571,7 @@ export async function startBot(bot: Bot) {
|
|||||||
bot.helpers = createHelpers(bot.helpers || {});
|
bot.helpers = createHelpers(bot.helpers || {});
|
||||||
|
|
||||||
// START REST
|
// START REST
|
||||||
bot.rest = createRestManager({ token: bot.token });
|
bot.rest = createRestManager({ token: bot.token, debug: bot.events.debug });
|
||||||
if (!bot.botGatewayData) bot.botGatewayData = await bot.helpers.getGatewayBot(bot);
|
if (!bot.botGatewayData) bot.botGatewayData = await bot.helpers.getGatewayBot(bot);
|
||||||
|
|
||||||
// START WS
|
// START WS
|
||||||
@@ -1102,6 +1103,7 @@ export interface Transformers {
|
|||||||
attachment: typeof transformAttachment;
|
attachment: typeof transformAttachment;
|
||||||
embed: typeof transformEmbed;
|
embed: typeof transformEmbed;
|
||||||
component: typeof transformComponent;
|
component: typeof transformComponent;
|
||||||
|
thread: typeof transformThread;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createTransformers(options: Partial<Transformers>) {
|
export function createTransformers(options: Partial<Transformers>) {
|
||||||
@@ -1123,6 +1125,7 @@ export function createTransformers(options: Partial<Transformers>) {
|
|||||||
role: options.role || transformRole,
|
role: options.role || transformRole,
|
||||||
user: options.user || transformUser,
|
user: options.user || transformUser,
|
||||||
team: options.team || transformTeam,
|
team: options.team || transformTeam,
|
||||||
|
thread: options.thread || transformThread,
|
||||||
voiceState: options.voiceState || transformVoiceState,
|
voiceState: options.voiceState || transformVoiceState,
|
||||||
snowflake: options.snowflake || snowflakeToBigint,
|
snowflake: options.snowflake || snowflakeToBigint,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ export async function handleGuildMembersChunk(bot: Bot, data: DiscordGatewayPayl
|
|||||||
const guildId = bot.transformers.snowflake(payload.guild_id);
|
const guildId = bot.transformers.snowflake(payload.guild_id);
|
||||||
|
|
||||||
await bot.cache.execute("GUILD_MEMBER_CHUNK", {
|
await bot.cache.execute("GUILD_MEMBER_CHUNK", {
|
||||||
members: payload.members.map((m) => bot.transformers.member(bot, m, guildId)),
|
members: payload.members.map((m) => bot.transformers.member(bot, m, guildId, bot.transformers.snowflake(m.user.id))),
|
||||||
users: payload.members.map((m) => bot.transformers.user(bot, m.user)),
|
users: payload.members.map((m) => bot.transformers.user(bot, m.user)),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
|||||||
export async function handleGuildMemberAdd(bot: Bot, data: DiscordGatewayPayload) {
|
export async function handleGuildMemberAdd(bot: Bot, data: DiscordGatewayPayload) {
|
||||||
const payload = data.d as SnakeCasedPropertiesDeep<GuildMemberAdd>;
|
const payload = data.d as SnakeCasedPropertiesDeep<GuildMemberAdd>;
|
||||||
const guildId = bot.transformers.snowflake(payload.guild_id);
|
const guildId = bot.transformers.snowflake(payload.guild_id);
|
||||||
const member = bot.transformers.member(bot, payload, guildId);
|
|
||||||
const user = bot.transformers.user(bot, payload.user);
|
const user = bot.transformers.user(bot, payload.user);
|
||||||
|
const member = bot.transformers.member(bot, payload, guildId, user.id);
|
||||||
|
|
||||||
await Promise.all([
|
await Promise.all([
|
||||||
bot.cache.members.set(member.id, member),
|
bot.cache.members.set(member.id, member),
|
||||||
|
|||||||
@@ -6,12 +6,10 @@ import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
|||||||
export async function handleGuildMemberUpdate(bot: Bot, data: DiscordGatewayPayload) {
|
export async function handleGuildMemberUpdate(bot: Bot, data: DiscordGatewayPayload) {
|
||||||
const payload = data.d as SnakeCasedPropertiesDeep<GuildMemberUpdate>;
|
const payload = data.d as SnakeCasedPropertiesDeep<GuildMemberUpdate>;
|
||||||
|
|
||||||
// TODO: IDK IF THIS IS BUT IS IT LURKER IN STAGE CHANNEL WHO ISN'T A MEMBER
|
const user = bot.transformers.user(bot, payload.user);
|
||||||
if (!payload.joined_at) return;
|
|
||||||
|
|
||||||
bot.events.guildMemberUpdate(
|
bot.events.guildMemberUpdate(
|
||||||
bot,
|
bot,
|
||||||
bot.transformers.member(bot, payload, bot.transformers.snowflake(payload.guild_id)),
|
bot.transformers.member(bot, payload, bot.transformers.snowflake(payload.guild_id), user.id),
|
||||||
bot.transformers.user(bot, payload.user)
|
user
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,10 @@ export async function handleMessageDeleteBulk(bot: Bot, data: DiscordGatewayPayl
|
|||||||
const messages = await bot.cache.execute("BULK_DELETE_MESSAGES", { messageIds: ids });
|
const messages = await bot.cache.execute("BULK_DELETE_MESSAGES", { messageIds: ids });
|
||||||
|
|
||||||
ids.forEach((id) => {
|
ids.forEach((id) => {
|
||||||
|
// @ts-ignore let itoh fix cache typings hes the king of typigns and cache
|
||||||
|
const msg = messages.find((m) => m.id === id);
|
||||||
|
const message = msg ? bot.transformers.message(bot, msg) : undefined;
|
||||||
|
|
||||||
bot.events.messageDelete(
|
bot.events.messageDelete(
|
||||||
bot,
|
bot,
|
||||||
{
|
{
|
||||||
@@ -17,7 +21,7 @@ export async function handleMessageDeleteBulk(bot: Bot, data: DiscordGatewayPayl
|
|||||||
channelId: bot.transformers.snowflake(payload.channel_id),
|
channelId: bot.transformers.snowflake(payload.channel_id),
|
||||||
guildId: payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined,
|
guildId: payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined,
|
||||||
},
|
},
|
||||||
messages.find((m) => m.id === id)
|
message
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,12 +7,13 @@ export async function handleMessageReactionAdd(bot: Bot, data: DiscordGatewayPay
|
|||||||
const payload = data.d as SnakeCasedPropertiesDeep<MessageReactionAdd>;
|
const payload = data.d as SnakeCasedPropertiesDeep<MessageReactionAdd>;
|
||||||
|
|
||||||
const guildId = payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined;
|
const guildId = payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined;
|
||||||
|
const userId = bot.transformers.snowflake(payload.user_id)
|
||||||
bot.events.reactionAdd(bot, {
|
bot.events.reactionAdd(bot, {
|
||||||
userId: bot.transformers.snowflake(payload.user_id),
|
userId,
|
||||||
channelId: bot.transformers.snowflake(payload.channel_id),
|
channelId: bot.transformers.snowflake(payload.channel_id),
|
||||||
messageId: bot.transformers.snowflake(payload.message_id),
|
messageId: bot.transformers.snowflake(payload.message_id),
|
||||||
guildId,
|
guildId,
|
||||||
member: payload.member && guildId ? bot.transformers.member(bot, payload.member, guildId) : undefined,
|
member: payload.member && guildId ? bot.transformers.member(bot, payload.member, guildId, userId) : undefined,
|
||||||
emoji: bot.transformers.emoji(bot, payload.emoji),
|
emoji: bot.transformers.emoji(bot, payload.emoji),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,12 +7,13 @@ export function handleTypingStart(bot: Bot, data: DiscordGatewayPayload) {
|
|||||||
const payload = data.d as SnakeCasedPropertiesDeep<TypingStart>;
|
const payload = data.d as SnakeCasedPropertiesDeep<TypingStart>;
|
||||||
|
|
||||||
const guildId = payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined;
|
const guildId = payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined;
|
||||||
|
const userId = bot.transformers.snowflake(payload.user_id)
|
||||||
|
|
||||||
bot.events.typingStart(bot, {
|
bot.events.typingStart(bot, {
|
||||||
guildId,
|
guildId,
|
||||||
channelId: bot.transformers.snowflake(payload.channel_id),
|
channelId: bot.transformers.snowflake(payload.channel_id),
|
||||||
userId: bot.transformers.snowflake(payload.user_id),
|
userId,
|
||||||
timestamp: payload.timestamp,
|
timestamp: payload.timestamp,
|
||||||
member: payload.member && guildId ? bot.transformers.member(bot, payload.member, guildId) : undefined,
|
member: payload.member && guildId ? bot.transformers.member(bot, payload.member, guildId, userId) : undefined,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,8 +16,8 @@ export async function handleVoiceStateUpdate(bot: Bot, data: DiscordGatewayPaylo
|
|||||||
await bot.cache.guilds.set(guild.id, guild);
|
await bot.cache.guilds.set(guild.id, guild);
|
||||||
}
|
}
|
||||||
|
|
||||||
const member = payload.member ? bot.transformers.member(bot, payload.member, guildId) : undefined;
|
|
||||||
const user = payload.member ? bot.transformers.user(bot, payload.member.user) : undefined;
|
const user = payload.member ? bot.transformers.user(bot, payload.member.user) : undefined;
|
||||||
|
const member = payload.member ? bot.transformers.member(bot, payload.member, guildId, user!.id) : undefined;
|
||||||
|
|
||||||
bot.events.voiceStateUpdate(bot, voiceState, { guild, member, user });
|
bot.events.voiceStateUpdate(bot, voiceState, { guild, member, user });
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,5 +56,5 @@ export async function editMember(bot: Bot, guildId: bigint, memberId: bigint, op
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
return bot.transformers.member(bot, result, guildId);
|
return bot.transformers.member(bot, result, guildId, memberId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ export async function getMember(bot: Bot, guildId: bigint, id: bigint, options?:
|
|||||||
bot.constants.endpoints.GUILD_MEMBER(guildId, id)
|
bot.constants.endpoints.GUILD_MEMBER(guildId, id)
|
||||||
);
|
);
|
||||||
|
|
||||||
const discordenoMember = await bot.transformers.member(bot, data, guildId);
|
const discordenoMember = bot.transformers.member(bot, data, guildId, id);
|
||||||
await bot.cache.members.set(discordenoMember.id, discordenoMember);
|
await bot.cache.members.set(discordenoMember.id, discordenoMember);
|
||||||
|
|
||||||
return discordenoMember;
|
return discordenoMember;
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ export async function getMembers(bot: Bot, guildId: bigint, options?: ListGuildM
|
|||||||
|
|
||||||
const discordenoMembers = await Promise.all(
|
const discordenoMembers = await Promise.all(
|
||||||
result.map(async (member) => {
|
result.map(async (member) => {
|
||||||
const discordenoMember = bot.transformers.member(bot, member, guildId);
|
const discordenoMember = bot.transformers.member(bot, member, guildId, bot.transformers.snowflake(member.user.id));
|
||||||
|
|
||||||
if (options?.addToCache !== false) {
|
if (options?.addToCache !== false) {
|
||||||
await bot.cache.members.set(discordenoMember.id, discordenoMember);
|
await bot.cache.members.set(discordenoMember.id, discordenoMember);
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ export async function searchMembers(
|
|||||||
|
|
||||||
const members = await Promise.all(
|
const members = await Promise.all(
|
||||||
result.map(async (member) => {
|
result.map(async (member) => {
|
||||||
const discordenoMember = bot.transformers.member(bot, member, guildId);
|
const discordenoMember = bot.transformers.member(bot, member, guildId, bot.transformers.snowflake(member.user.id));
|
||||||
if (options?.cache) {
|
if (options?.cache) {
|
||||||
await bot.cache.members.set(discordenoMember.id, discordenoMember);
|
await bot.cache.members.set(discordenoMember.id, discordenoMember);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -130,5 +130,5 @@ export async function processGlobalQueue(rest: RestManager) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ALLOW OTHER QUEUES TO START WHEN NEW REQUEST IS MADE
|
// ALLOW OTHER QUEUES TO START WHEN NEW REQUEST IS MADE
|
||||||
rest.globalQueueProcessing = true;
|
rest.globalQueueProcessing = false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ export function transformApplication(bot: Bot, payload: SnakeCasedPropertiesDeep
|
|||||||
|
|
||||||
id: bot.transformers.snowflake(payload.id),
|
id: bot.transformers.snowflake(payload.id),
|
||||||
icon: payload.icon ? bot.utils.iconHashToBigInt(payload.icon) : undefined,
|
icon: payload.icon ? bot.utils.iconHashToBigInt(payload.icon) : undefined,
|
||||||
|
// @ts-ignore the partial here wont break anything
|
||||||
owner: payload.owner ? bot.transformers.user(bot, payload.owner) : undefined,
|
owner: payload.owner ? bot.transformers.user(bot, payload.owner) : undefined,
|
||||||
team: payload.team ? bot.transformers.team(bot, payload.team) : undefined,
|
team: payload.team ? bot.transformers.team(bot, payload.team) : undefined,
|
||||||
guildId: payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined,
|
guildId: payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined,
|
||||||
|
|||||||
@@ -141,5 +141,5 @@ export interface DiscordenoComponent {
|
|||||||
/** The maximum number of items that can be selected. Default 1. Between 1-25. */
|
/** The maximum number of items that can be selected. Default 1. Between 1-25. */
|
||||||
maxValues?: number;
|
maxValues?: number;
|
||||||
/** a list of child components */
|
/** a list of child components */
|
||||||
components?: Component[];
|
components?: DiscordenoComponent[];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
import { Bot } from "../bot.ts";
|
import { Bot } from "../bot.ts";
|
||||||
import { Interaction, Role } from "../types/mod.ts";
|
import { Interaction } from "../types/mod.ts";
|
||||||
import { SnakeCasedPropertiesDeep } from "../types/util.ts";
|
import { SnakeCasedPropertiesDeep } from "../types/util.ts";
|
||||||
import { DiscordenoMember, DiscordenoUser } from "./member.ts";
|
import { DiscordenoMember, DiscordenoUser } from "./member.ts";
|
||||||
import { DiscordenoMessage } from "./message.ts";
|
import { DiscordenoMessage } from "./message.ts";
|
||||||
|
|
||||||
export function transformInteraction(bot: Bot, payload: SnakeCasedPropertiesDeep<Interaction>): DiscordenoInteraction {
|
export function transformInteraction(bot: Bot, payload: SnakeCasedPropertiesDeep<Interaction>): DiscordenoInteraction {
|
||||||
const guildId = payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined;
|
const guildId = payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined;
|
||||||
|
const user = bot.transformers.user(bot, payload.member?.user || payload.user!);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
// UNTRANSFORMED STUFF HERE
|
// UNTRANSFORMED STUFF HERE
|
||||||
@@ -15,12 +16,12 @@ export function transformInteraction(bot: Bot, payload: SnakeCasedPropertiesDeep
|
|||||||
|
|
||||||
// TRANSFORMED STUFF BELOW
|
// TRANSFORMED STUFF BELOW
|
||||||
guildId,
|
guildId,
|
||||||
|
user,
|
||||||
id: bot.transformers.snowflake(payload.id),
|
id: bot.transformers.snowflake(payload.id),
|
||||||
applicationId: bot.transformers.snowflake(payload.application_id),
|
applicationId: bot.transformers.snowflake(payload.application_id),
|
||||||
user: bot.transformers.user(bot, payload.member?.user || payload.user!),
|
|
||||||
message: payload.message ? bot.transformers.message(bot, payload.message) : undefined,
|
message: payload.message ? bot.transformers.message(bot, payload.message) : undefined,
|
||||||
channelId: payload.channel_id ? bot.transformers.snowflake(payload.channel_id) : undefined,
|
channelId: payload.channel_id ? bot.transformers.snowflake(payload.channel_id) : undefined,
|
||||||
member: payload.member && guildId ? bot.transformers.member(bot, payload.member, guildId) : undefined,
|
member: payload.member && guildId ? bot.transformers.member(bot, payload.member, guildId, user.id) : undefined,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ export function transformInvite(bot: Bot, invite: SnakeCasedPropertiesDeep<Invit
|
|||||||
targetUser: invite.target_user ? bot.transformers.user(bot, invite.target_user) : undefined,
|
targetUser: invite.target_user ? bot.transformers.user(bot, invite.target_user) : undefined,
|
||||||
/** The embedded application to open for this voice channel embedded application invite */
|
/** The embedded application to open for this voice channel embedded application invite */
|
||||||
targetApplication: invite.target_application
|
targetApplication: invite.target_application
|
||||||
|
// @ts-ignore should not break anything even though its partial. if it does blame wolf :)
|
||||||
? bot.transformers.application(bot, invite.target_application)
|
? bot.transformers.application(bot, invite.target_application)
|
||||||
: undefined,
|
: undefined,
|
||||||
/** Whether or not the invite is temporary (invited users will be kicked on disconnect unless they're assigned a role) */
|
/** Whether or not the invite is temporary (invited users will be kicked on disconnect unless they're assigned a role) */
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ export interface DiscordenoUser {
|
|||||||
|
|
||||||
export function transformUser(bot: Bot, payload: SnakeCasedPropertiesDeep<User>): DiscordenoUser {
|
export function transformUser(bot: Bot, payload: SnakeCasedPropertiesDeep<User>): DiscordenoUser {
|
||||||
return {
|
return {
|
||||||
id: bot.transformers.snowflake(payload.id),
|
id: bot.transformers.snowflake(payload.id || ""),
|
||||||
username: payload.username,
|
username: payload.username,
|
||||||
discriminator: Number(payload.discriminator),
|
discriminator: Number(payload.discriminator),
|
||||||
avatar: payload.avatar ? bot.utils.iconHashToBigInt(payload.avatar) : null,
|
avatar: payload.avatar ? bot.utils.iconHashToBigInt(payload.avatar) : null,
|
||||||
@@ -75,9 +75,9 @@ export interface DiscordenoMember {
|
|||||||
/** When this member began boosting this server if this member is boosting the server. */
|
/** When this member began boosting this server if this member is boosting the server. */
|
||||||
premiumSince?: number;
|
premiumSince?: number;
|
||||||
/** Whether or not the member is deafened. */
|
/** Whether or not the member is deafened. */
|
||||||
deaf: boolean;
|
deaf?: boolean;
|
||||||
/** Whether or not the member is muted. */
|
/** Whether or not the member is muted. */
|
||||||
mute: boolean;
|
mute?: boolean;
|
||||||
/** Whether or not this member is pending in server verification. */
|
/** Whether or not this member is pending in server verification. */
|
||||||
pending?: boolean;
|
pending?: boolean;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,10 +9,9 @@ import { DiscordenoEmbed } from "./embed.ts";
|
|||||||
import { DiscordMessageTypes } from "../types/messages/message_types.ts";
|
import { DiscordMessageTypes } from "../types/messages/message_types.ts";
|
||||||
import { DiscordMessageActivityTypes } from "../types/messages/message_activity_types.ts";
|
import { DiscordMessageActivityTypes } from "../types/messages/message_activity_types.ts";
|
||||||
import { DiscordInteractionTypes } from "../types/interactions/interaction_types.ts";
|
import { DiscordInteractionTypes } from "../types/interactions/interaction_types.ts";
|
||||||
import { DiscordMessageComponentTypes } from "../types/messages/components/message_component_types.ts";
|
|
||||||
import { ButtonStyles } from "../types/messages/components/button_styles.ts";
|
|
||||||
import { DiscordenoComponent } from "./component.ts";
|
import { DiscordenoComponent } from "./component.ts";
|
||||||
import { Application } from "../types/applications/application.ts";
|
import { Application } from "../types/applications/application.ts";
|
||||||
|
import { DiscordenoThread } from "./thread.ts";
|
||||||
|
|
||||||
export function transformMessage(bot: Bot, data: SnakeCasedPropertiesDeep<Message>): DiscordenoMessage {
|
export function transformMessage(bot: Bot, data: SnakeCasedPropertiesDeep<Message>): DiscordenoMessage {
|
||||||
const guildId = data.guild_id ? bot.transformers.snowflake(data.guild_id) : undefined;
|
const guildId = data.guild_id ? bot.transformers.snowflake(data.guild_id) : undefined;
|
||||||
@@ -54,7 +53,7 @@ export function transformMessage(bot: Bot, data: SnakeCasedPropertiesDeep<Messag
|
|||||||
user: bot.transformers.user(bot, data.interaction.user),
|
user: bot.transformers.user(bot, data.interaction.user),
|
||||||
}
|
}
|
||||||
: undefined,
|
: undefined,
|
||||||
thread: data.thread,
|
thread: data.thread ? bot.transformers.thread(bot, data.thread) : undefined,
|
||||||
components: data.components?.map((component) => bot.transformers.component(bot, component)),
|
components: data.components?.map((component) => bot.transformers.component(bot, component)),
|
||||||
stickerItems: data.sticker_items?.map((sticker) => ({
|
stickerItems: data.sticker_items?.map((sticker) => ({
|
||||||
id: bot.transformers.snowflake(sticker.id),
|
id: bot.transformers.snowflake(sticker.id),
|
||||||
@@ -196,7 +195,7 @@ export interface DiscordenoMessage {
|
|||||||
user: DiscordenoUser;
|
user: DiscordenoUser;
|
||||||
};
|
};
|
||||||
/** The thread that was started from this message, includes thread member object */
|
/** The thread that was started from this message, includes thread member object */
|
||||||
thread?: Omit<Channel, "member"> & { member: ThreadMember };
|
thread?: DiscordenoThread;
|
||||||
/** The components related to this message */
|
/** The components related to this message */
|
||||||
components?: DiscordenoComponent[];
|
components?: DiscordenoComponent[];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,48 @@
|
|||||||
|
import { Bot } from "../bot.ts";
|
||||||
|
import { Channel } from "../types/channels/channel.ts";
|
||||||
|
import { DiscordChannelTypes } from "../types/channels/channel_types.ts";
|
||||||
|
import { SnakeCasedPropertiesDeep } from "../types/util.ts";
|
||||||
|
|
||||||
|
export function transformThread(bot: Bot, channel: SnakeCasedPropertiesDeep<Channel>): DiscordenoThread {
|
||||||
|
if (
|
||||||
|
channel.type !== DiscordChannelTypes.GuildNewsThread &&
|
||||||
|
channel.type !== DiscordChannelTypes.GuildPublicThread &&
|
||||||
|
channel.type !== DiscordChannelTypes.GuildPrivateThread
|
||||||
|
)
|
||||||
|
throw new Error("Cannot convert non-thread channel to a thread.");
|
||||||
|
|
||||||
|
return {
|
||||||
|
name: channel.name || "",
|
||||||
|
id: bot.transformers.snowflake(channel.id),
|
||||||
|
type: channel.type,
|
||||||
|
parentId: bot.transformers.snowflake(channel.parent_id!),
|
||||||
|
memberCount: channel.member_count || 1,
|
||||||
|
messageCount: channel.message_count || 1,
|
||||||
|
archiveTimestamp: channel.thread_metadata?.archive_timestamp
|
||||||
|
? Date.parse(channel.thread_metadata.archive_timestamp)
|
||||||
|
: undefined,
|
||||||
|
autoArchiveDuration: channel.thread_metadata?.auto_archive_duration || 0,
|
||||||
|
ownerId: bot.transformers.snowflake(channel.owner_id!),
|
||||||
|
botIsMember: Boolean(channel.member),
|
||||||
|
archived: channel.thread_metadata?.archived,
|
||||||
|
locked: channel.thread_metadata?.locked,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface DiscordenoThread {
|
||||||
|
id: bigint;
|
||||||
|
name: string;
|
||||||
|
type:
|
||||||
|
| DiscordChannelTypes.GuildNewsThread
|
||||||
|
| DiscordChannelTypes.GuildPublicThread
|
||||||
|
| DiscordChannelTypes.GuildPrivateThread;
|
||||||
|
parentId: bigint;
|
||||||
|
memberCount: number;
|
||||||
|
messageCount: number;
|
||||||
|
archiveTimestamp?: number;
|
||||||
|
autoArchiveDuration: number;
|
||||||
|
archived?: boolean;
|
||||||
|
locked?: boolean;
|
||||||
|
ownerId: bigint;
|
||||||
|
botIsMember: boolean;
|
||||||
|
}
|
||||||
@@ -13,9 +13,9 @@ export interface GuildMember {
|
|||||||
/** When the user started boosing the guild */
|
/** When the user started boosing the guild */
|
||||||
premiumSince?: string | null;
|
premiumSince?: string | null;
|
||||||
/** Whether the user is deafened in voice channels */
|
/** Whether the user is deafened in voice channels */
|
||||||
deaf: boolean;
|
deaf?: boolean;
|
||||||
/** Whether the user is muted in voice channels */
|
/** Whether the user is muted in voice channels */
|
||||||
mute: boolean;
|
mute?: boolean;
|
||||||
/** Whether the user has not yet passed the guild's Membership Screening requirements */
|
/** Whether the user has not yet passed the guild's Membership Screening requirements */
|
||||||
pending?: boolean;
|
pending?: boolean;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ export interface GuildMemberUpdate {
|
|||||||
/** Nickname of the user in the guild */
|
/** Nickname of the user in the guild */
|
||||||
nick?: string | null;
|
nick?: string | null;
|
||||||
/** When the user joined the guild */
|
/** When the user joined the guild */
|
||||||
joinedAt: string | null;
|
joinedAt: string;
|
||||||
/** When the user starting boosting the guild */
|
/** When the user starting boosting the guild */
|
||||||
premiumSince?: string | null;
|
premiumSince?: string | null;
|
||||||
/** Whether the user has not yet passed the guild's Membership Screening requirements */
|
/** Whether the user has not yet passed the guild's Membership Screening requirements */
|
||||||
|
|||||||
+6
-1
@@ -5,11 +5,16 @@ Deno.test("[Bot] - Starting Tests", async (t) => {
|
|||||||
const bot = createBot({
|
const bot = createBot({
|
||||||
token: TOKEN || Deno.env.get("DISCORD_TOKEN"),
|
token: TOKEN || Deno.env.get("DISCORD_TOKEN"),
|
||||||
botId: 675412054529540107n,
|
botId: 675412054529540107n,
|
||||||
events: createEventHandlers({}),
|
events: createEventHandlers({
|
||||||
|
debug: console.log,
|
||||||
|
}),
|
||||||
intents: [],
|
intents: [],
|
||||||
}) as Bot;
|
}) as Bot;
|
||||||
|
|
||||||
await startBot(bot);
|
await startBot(bot);
|
||||||
|
console.log("started");
|
||||||
|
const x = await bot.helpers.sendMessage(bot, 806947972004839444n, "testing");
|
||||||
|
console.log("x");
|
||||||
|
|
||||||
console.log("Bot online");
|
console.log("Bot online");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user