fixes bugs and remaining ts errors

This commit is contained in:
Skillz4Killz
2021-10-28 16:44:06 +00:00
committed by GitHub
parent b481be2946
commit 468ce033e1
23 changed files with 103 additions and 41 deletions
+10 -7
View File
@@ -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,
}; };
+1 -1
View File
@@ -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)),
}); });
+1 -1
View File
@@ -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),
+3 -5
View File
@@ -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
); );
} }
+5 -1
View File
@@ -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),
}); });
} }
+4 -3
View File
@@ -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,
}); });
} }
+1 -1
View File
@@ -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 });
} }
+1 -1
View File
@@ -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);
} }
+1 -1
View File
@@ -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;
+1 -1
View File
@@ -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);
+1 -1
View File
@@ -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);
} }
+1 -1
View File
@@ -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;
} }
+1
View File
@@ -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,
+1 -1
View File
@@ -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[];
} }
+4 -3
View File
@@ -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,
}; };
} }
+1
View File
@@ -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) */
+3 -3
View File
@@ -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;
} }
+3 -4
View File
@@ -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[];
} }
+48
View File
@@ -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;
}
+2 -2
View File
@@ -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;
} }
+1 -1
View File
@@ -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
View File
@@ -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");