mirror of
https://github.com/tiramisulabs/seyfert.git
synced 2025-07-01 20:46:08 +00:00
stuff
This commit is contained in:
parent
9e6a8699ff
commit
9b7e1b9b1b
@ -1 +1,39 @@
|
||||
export * from "./MessageRelated.ts";
|
||||
import type { DiscordMessage, DiscordReady } from "../vendor/external.ts";
|
||||
import type { Snowflake } from "../util/Snowflake.ts";
|
||||
import type { Session } from "../session/Session.ts";
|
||||
import Message from "../structures/Message.ts";
|
||||
|
||||
export type RawHandler<T extends unknown[]> = (...args: [Session, number, ...T]) => void;
|
||||
export type Handler<T extends unknown[]> = (...args: T) => unknown;
|
||||
|
||||
export type Ready = [DiscordReady];
|
||||
export const READY: RawHandler<Ready> = (session, shardId, payload) => {
|
||||
session.emit("ready", payload, shardId);
|
||||
};
|
||||
|
||||
export type MessageCreate = [DiscordMessage];
|
||||
export const MESSAGE_CREATE: RawHandler<MessageCreate> = (session, _shardId, message) => {
|
||||
session.emit("messageCreate", new Message(session, message));
|
||||
};
|
||||
|
||||
export type MessageUpdate = [DiscordMessage];
|
||||
export const MESSAGE_UPDATE: RawHandler<MessageUpdate> = (session, _shardId, new_message) => {
|
||||
session.emit("messageUpdate", new Message(session, new_message));
|
||||
};
|
||||
|
||||
export type MessageDelete = [Snowflake];
|
||||
export const MESSAGE_DELETE: RawHandler<MessageDelete> = (session, _shardId, deleted_message_id) => {
|
||||
session.emit("messageDelete", deleted_message_id);
|
||||
}
|
||||
|
||||
export const raw: RawHandler<[unknown]> = (session, shardId, data) => {
|
||||
session.emit("raw", data, shardId);
|
||||
};
|
||||
|
||||
export interface Events {
|
||||
"ready": Handler<[DiscordReady, number]>;
|
||||
"messageCreate": Handler<[Message]>;
|
||||
"messageUpdate": Handler<[Message]>;
|
||||
"messageDelete": Handler<[Snowflake]>;
|
||||
"raw": Handler<[unknown]>;
|
||||
}
|
||||
|
@ -1,18 +0,0 @@
|
||||
import type { DiscordMessage, DiscordReady } from "../vendor/external.ts";
|
||||
import type { Session } from "../session/Session.ts";
|
||||
import { Message } from "../structures/Message.ts";
|
||||
|
||||
type Handler<T> = (...args: [Session, number, T]) => void;
|
||||
|
||||
// TODO: move this lol
|
||||
export const READY: Handler<DiscordReady> = (session, shardId, payload) => {
|
||||
session.emit("ready", shardId, payload);
|
||||
};
|
||||
|
||||
export const MESSAGE_CREATE: Handler<DiscordMessage> = (session, _shardId, message) => {
|
||||
session.emit("messageCreate", new Message(session, message));
|
||||
};
|
||||
|
||||
export const raw: Handler<unknown> = (session, shardId, data) => {
|
||||
session.emit("raw", data, shardId);
|
||||
};
|
1
mod.ts
1
mod.ts
@ -23,7 +23,6 @@ export * from "./structures/WelcomeChannel.ts";
|
||||
export * from "./structures/WelcomeScreen.ts";
|
||||
|
||||
export * from "./session/Session.ts";
|
||||
export * from "./session/Events.ts";
|
||||
|
||||
export * from "./util/shared/flags.ts";
|
||||
export * from "./util/shared/images.ts";
|
||||
|
@ -1,10 +0,0 @@
|
||||
import type { DiscordGatewayPayload, DiscordReady, Shard } from "../vendor/external.ts";
|
||||
import type { Message } from "../structures/Message.ts";
|
||||
|
||||
export type DiscordRawEventHandler = (shard: Shard, data: DiscordGatewayPayload) => unknown;
|
||||
|
||||
export interface Events {
|
||||
ready(shardId: number, payload: DiscordReady): unknown;
|
||||
messageCreate(message: Message): unknown;
|
||||
raw(data: DiscordGatewayPayload, shardId: number): unknown;
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
import type { DiscordGetGatewayBot, GatewayBot, GatewayIntents } from "../vendor/external.ts";
|
||||
import type { DiscordRawEventHandler, Events } from "./Events.ts";
|
||||
import type { Shard, DiscordGatewayPayload } from "../vendor/external.ts";
|
||||
import type { Events } from "../handlers/Actions.ts";
|
||||
|
||||
import { Snowflake } from "../util/Snowflake.ts";
|
||||
import { EventEmitter } from "../util/EventEmmiter.ts";
|
||||
@ -8,6 +9,8 @@ import { createGatewayManager, createRestManager } from "../vendor/external.ts";
|
||||
import * as Routes from "../util/Routes.ts";
|
||||
import * as Actions from "../handlers/Actions.ts";
|
||||
|
||||
export type DiscordRawEventHandler = (shard: Shard, data: DiscordGatewayPayload) => unknown;
|
||||
|
||||
export interface RestOptions {
|
||||
secretKey?: string;
|
||||
applicationId?: Snowflake;
|
||||
@ -71,24 +74,18 @@ export class Session extends EventEmitter {
|
||||
// TODO: set botId in Session.botId or something
|
||||
}
|
||||
|
||||
override on(event: "ready", func: Events["ready"]): this;
|
||||
override on(event: "messageCreate", func: Events["messageCreate"]): this;
|
||||
override on(event: "raw", func: Events["raw"]): this;
|
||||
override on(event: keyof Events, func: Events[keyof Events]): this {
|
||||
override on<K extends keyof Events>(event: K, func: Events[K]): this;
|
||||
override on<K extends string>(event: K, func: (...args: unknown[]) => unknown): this {
|
||||
return super.on(event, func);
|
||||
}
|
||||
|
||||
override off(event: "ready", func: Events["ready"]): this;
|
||||
override off(event: "messageCreate", func: Events["messageCreate"]): this;
|
||||
override off(event: "raw", func: Events["raw"]): this;
|
||||
override off(event: keyof Events, func: Events[keyof Events]): this {
|
||||
return super.off(event, func);
|
||||
override off<K extends keyof Events>(event: K, func: Events[K]): this;
|
||||
override off<K extends string>(event: K, func: (...args: unknown[]) => unknown): this {
|
||||
return super.off(event, func);
|
||||
}
|
||||
|
||||
override once(event: "ready", func: Events["ready"]): this;
|
||||
override once(event: "messageCreate", func: Events["messageCreate"]): this;
|
||||
override once(event: "raw", func: Events["raw"]): this;
|
||||
override once(event: keyof Events, func: Events[keyof Events]): 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 {
|
||||
return super.once(event, func);
|
||||
}
|
||||
|
||||
|
@ -31,19 +31,7 @@ export interface CreateMessageReference {
|
||||
export interface CreateMessage {
|
||||
content: string;
|
||||
allowedMentions?: AllowedMentions;
|
||||
messageReference?: CreateMessageReference;
|
||||
}
|
||||
|
||||
export interface CreateMessage {
|
||||
allowedMentions?: AllowedMentions;
|
||||
files: FileContent[];
|
||||
messageReference?: CreateMessageReference;
|
||||
}
|
||||
|
||||
export interface CreateMessage {
|
||||
content: string;
|
||||
allowedMentions?: AllowedMentions;
|
||||
files: FileContent[];
|
||||
files?: FileContent[];
|
||||
messageReference?: CreateMessageReference;
|
||||
}
|
||||
|
||||
|
@ -7,7 +7,7 @@ if (!Deno.args[0]) {
|
||||
const intents = GatewayIntents.MessageContent | GatewayIntents.Guilds | GatewayIntents.GuildMessages;
|
||||
const session = new Session({ token: Deno.args[0], intents });
|
||||
|
||||
session.on("ready", (_shardId, payload) => {
|
||||
session.on("ready", (payload) => {
|
||||
console.log("Logged in as:", payload.user.username);
|
||||
});
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user