This commit is contained in:
Yuzu 2022-06-30 13:17:35 -05:00
parent 9b7e1b9b1b
commit bc3dee754f
6 changed files with 21 additions and 16 deletions

View File

@ -24,7 +24,7 @@ export const MESSAGE_UPDATE: RawHandler<MessageUpdate> = (session, _shardId, new
export type MessageDelete = [Snowflake]; export type MessageDelete = [Snowflake];
export const MESSAGE_DELETE: RawHandler<MessageDelete> = (session, _shardId, deleted_message_id) => { export const MESSAGE_DELETE: RawHandler<MessageDelete> = (session, _shardId, deleted_message_id) => {
session.emit("messageDelete", deleted_message_id); session.emit("messageDelete", deleted_message_id);
} };
export const raw: RawHandler<[unknown]> = (session, shardId, data) => { export const raw: RawHandler<[unknown]> = (session, shardId, data) => {
session.emit("raw", data, shardId); session.emit("raw", data, shardId);

View File

@ -1,5 +1,5 @@
import type { DiscordGetGatewayBot, GatewayBot, GatewayIntents } from "../vendor/external.ts"; 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 type { Events } from "../handlers/Actions.ts";
import { Snowflake } from "../util/Snowflake.ts"; import { Snowflake } from "../util/Snowflake.ts";
@ -81,9 +81,9 @@ export class Session extends EventEmitter {
override off<K extends keyof Events>(event: K, func: Events[K]): this; override off<K extends keyof Events>(event: K, func: Events[K]): this;
override off<K extends string>(event: K, func: (...args: unknown[]) => unknown): this { override off<K extends string>(event: K, func: (...args: unknown[]) => unknown): this {
return super.off(event, func); return super.off(event, func);
} }
override once<K extends keyof Events>(event: K, func: Events[K]): this; override once<K extends keyof Events>(event: K, func: Events[K]): this;
override once<K extends string>(event: K, func: (...args: unknown[]) => unknown): this { override once<K extends string>(event: K, func: (...args: unknown[]) => unknown): this {
return super.once(event, func); return super.once(event, func);

View File

@ -27,11 +27,11 @@ export interface CreateRole {
} }
export interface ModifyGuildRole { export interface ModifyGuildRole {
name?: string; name?: string;
color?: number; color?: number;
hoist?: boolean; hoist?: boolean;
mentionable?: boolean; mentionable?: boolean;
unicodeEmoji?: string; unicodeEmoji?: string;
} }
export interface CreateGuildEmoji { export interface CreateGuildEmoji {
@ -156,7 +156,7 @@ export class Guild extends BaseGuild implements Model {
color: options.color, color: options.color,
hoist: options.hoist, hoist: options.hoist,
mentionable: options.mentionable, mentionable: options.mentionable,
} },
); );
return new Role(this.session, role, this.id); return new Role(this.session, role, this.id);

View File

@ -29,7 +29,7 @@ export interface CreateMessageReference {
* @link https://discord.com/developers/docs/resources/channel#create-message-json-params * @link https://discord.com/developers/docs/resources/channel#create-message-json-params
*/ */
export interface CreateMessage { export interface CreateMessage {
content: string; content?: string;
allowedMentions?: AllowedMentions; allowedMentions?: AllowedMentions;
files?: FileContent[]; files?: FileContent[];
messageReference?: CreateMessageReference; messageReference?: CreateMessageReference;

View File

@ -11,8 +11,13 @@ session.on("ready", (payload) => {
console.log("Logged in as:", payload.user.username); console.log("Logged in as:", payload.user.username);
}); });
const PREFIX = "&";
session.on("messageCreate", (message) => { 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!" }); message.reply({ content: "pong!" });
} }
}); });

View File

@ -1238,7 +1238,7 @@ export type CamelCase<S extends string> = S extends `${infer P1}_${infer P2}${in
: Lowercase<S>; : Lowercase<S>;
export type Camelize<T> = { export type Camelize<T> = {
[K in keyof T as CamelCase<string & K>]: T[K] extends Array<infer U> ? U extends {} ? Array<Camelize<U>> [K in keyof T as CamelCase<string & K>]: T[K] extends Array<infer U> ? U extends {} ? Array<Camelize<U>>
: T[K] : T[K]
: T[K] extends {} ? Camelize<T[K]> : T[K] extends {} ? Camelize<T[K]>
: never; : never;
}; };
@ -1293,8 +1293,8 @@ export type AnythingBut<T> = Exclude<
* object identity type * object identity type
*/ */
export type Id<T> = T extends infer U ? { export type Id<T> = T extends infer U ? {
[K in keyof U]: U[K]; [K in keyof U]: U[K];
} }
: never; : never;
export type KeysWithUndefined<T> = { export type KeysWithUndefined<T> = {
@ -1319,7 +1319,7 @@ type OptionalizeAux<T extends object> = Id<
export type Optionalize<T> = T extends object export type Optionalize<T> = T extends object
? T extends Array<unknown> ? T extends Array<unknown>
? number extends T["length"] ? T[number] extends object ? Array<OptionalizeAux<T[number]>> ? number extends T["length"] ? T[number] extends object ? Array<OptionalizeAux<T[number]>>
: T : T
: Partial<T> : Partial<T>
: OptionalizeAux<T> : OptionalizeAux<T>
: T; : T;