diff --git a/handlers/Actions.ts b/handlers/Actions.ts index c8be5f6..e9ec833 100644 --- a/handlers/Actions.ts +++ b/handlers/Actions.ts @@ -24,7 +24,7 @@ export const MESSAGE_UPDATE: RawHandler = (session, _shardId, new export type MessageDelete = [Snowflake]; export const MESSAGE_DELETE: RawHandler = (session, _shardId, deleted_message_id) => { session.emit("messageDelete", deleted_message_id); -} +}; export const raw: RawHandler<[unknown]> = (session, shardId, data) => { session.emit("raw", data, shardId); diff --git a/session/Session.ts b/session/Session.ts index f66519b..31263fb 100644 --- a/session/Session.ts +++ b/session/Session.ts @@ -1,5 +1,5 @@ import type { DiscordGetGatewayBot, GatewayBot, GatewayIntents } from "../vendor/external.ts"; -import type { Shard, DiscordGatewayPayload } from "../vendor/external.ts"; +import type { DiscordGatewayPayload, Shard } from "../vendor/external.ts"; import type { Events } from "../handlers/Actions.ts"; import { Snowflake } from "../util/Snowflake.ts"; @@ -81,9 +81,9 @@ export class Session extends EventEmitter { override off(event: K, func: Events[K]): this; override off(event: K, func: (...args: unknown[]) => unknown): this { - return super.off(event, func); + return super.off(event, func); } - + override once(event: K, func: Events[K]): this; override once(event: K, func: (...args: unknown[]) => unknown): this { return super.once(event, func); diff --git a/structures/Guild.ts b/structures/Guild.ts index 9466149..ef265cb 100644 --- a/structures/Guild.ts +++ b/structures/Guild.ts @@ -27,11 +27,11 @@ export interface CreateRole { } export interface ModifyGuildRole { - name?: string; - color?: number; - hoist?: boolean; - mentionable?: boolean; - unicodeEmoji?: string; + name?: string; + color?: number; + hoist?: boolean; + mentionable?: boolean; + unicodeEmoji?: string; } export interface CreateGuildEmoji { @@ -156,7 +156,7 @@ export class Guild extends BaseGuild implements Model { color: options.color, hoist: options.hoist, mentionable: options.mentionable, - } + }, ); return new Role(this.session, role, this.id); diff --git a/structures/Message.ts b/structures/Message.ts index d2a8da6..2f101b0 100644 --- a/structures/Message.ts +++ b/structures/Message.ts @@ -29,7 +29,7 @@ export interface CreateMessageReference { * @link https://discord.com/developers/docs/resources/channel#create-message-json-params */ export interface CreateMessage { - content: string; + content?: string; allowedMentions?: AllowedMentions; files?: FileContent[]; messageReference?: CreateMessageReference; diff --git a/tests/mod.ts b/tests/mod.ts index 9b933fd..f5e7a96 100644 --- a/tests/mod.ts +++ b/tests/mod.ts @@ -11,8 +11,13 @@ session.on("ready", (payload) => { console.log("Logged in as:", payload.user.username); }); +const PREFIX = "&"; + session.on("messageCreate", (message) => { - if (message.content.startsWith("&ping")) { + const args = message.content.slice(PREFIX.length).trim().split(/\s+/gm); + const name = args.shift()?.toLowerCase(); + + if (name === "ping") { message.reply({ content: "pong!" }); } }); diff --git a/vendor/types/shared.ts b/vendor/types/shared.ts index 6c90cdf..e2b205d 100644 --- a/vendor/types/shared.ts +++ b/vendor/types/shared.ts @@ -1238,7 +1238,7 @@ export type CamelCase = S extends `${infer P1}_${infer P2}${in : Lowercase; export type Camelize = { [K in keyof T as CamelCase]: T[K] extends Array ? U extends {} ? Array> - : T[K] + : T[K] : T[K] extends {} ? Camelize : never; }; @@ -1293,8 +1293,8 @@ export type AnythingBut = Exclude< * object identity type */ export type Id = T extends infer U ? { - [K in keyof U]: U[K]; -} + [K in keyof U]: U[K]; + } : never; export type KeysWithUndefined = { @@ -1319,7 +1319,7 @@ type OptionalizeAux = Id< export type Optionalize = T extends object ? T extends Array ? number extends T["length"] ? T[number] extends object ? Array> - : T + : T : Partial : OptionalizeAux : T;