debug logs
This commit is contained in:
parent
3f7372d6a7
commit
010a48c7f0
4 changed files with 51 additions and 22 deletions
|
@ -414,4 +414,5 @@ export type ClientEvents = {
|
|||
commandMissingArgs: [ctx: CommandContext]
|
||||
commandUsed: [ctx: CommandContext]
|
||||
commandError: [ctx: CommandContext, err: Error]
|
||||
gatewayError: [err: ErrorEvent, shards: [number, number]]
|
||||
}
|
||||
|
|
|
@ -174,8 +174,8 @@ export class Gateway extends HarmonyEventEmitter<GatewayTypedEvents> {
|
|||
}
|
||||
case GatewayOpcodes.RECONNECT: {
|
||||
this.emit('reconnectRequired')
|
||||
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
||||
this.reconnect()
|
||||
this.debug('Received OpCode RECONNECT')
|
||||
await this.reconnect()
|
||||
break
|
||||
}
|
||||
default:
|
||||
|
@ -191,8 +191,7 @@ export class Gateway extends HarmonyEventEmitter<GatewayTypedEvents> {
|
|||
switch (code) {
|
||||
case GatewayCloseCodes.UNKNOWN_ERROR:
|
||||
this.debug('API has encountered Unknown Error. Reconnecting...')
|
||||
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
||||
this.reconnect()
|
||||
await this.reconnect()
|
||||
break
|
||||
case GatewayCloseCodes.UNKNOWN_OPCODE:
|
||||
throw new Error(
|
||||
|
@ -206,20 +205,17 @@ export class Gateway extends HarmonyEventEmitter<GatewayTypedEvents> {
|
|||
throw new Error('Invalid Token provided!')
|
||||
case GatewayCloseCodes.INVALID_SEQ:
|
||||
this.debug('Invalid Seq was sent. Reconnecting.')
|
||||
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
||||
this.reconnect()
|
||||
await this.reconnect()
|
||||
break
|
||||
case GatewayCloseCodes.RATE_LIMITED:
|
||||
throw new Error("You're ratelimited. Calm down.")
|
||||
case GatewayCloseCodes.SESSION_TIMED_OUT:
|
||||
this.debug('Session Timeout. Reconnecting.')
|
||||
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
||||
this.reconnect(true)
|
||||
await this.reconnect(true)
|
||||
break
|
||||
case GatewayCloseCodes.INVALID_SHARD:
|
||||
this.debug('Invalid Shard was sent. Reconnecting.')
|
||||
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
||||
this.reconnect()
|
||||
await this.reconnect()
|
||||
break
|
||||
case GatewayCloseCodes.SHARDING_REQUIRED:
|
||||
throw new Error("Couldn't connect. Sharding is required!")
|
||||
|
@ -257,6 +253,7 @@ export class Gateway extends HarmonyEventEmitter<GatewayTypedEvents> {
|
|||
error.name = 'ErrorEvent'
|
||||
console.log(error)
|
||||
this.emit('error', error, event)
|
||||
this.client.emit('gatewayError', event, this.shards)
|
||||
}
|
||||
|
||||
private enqueueIdentify(forceNew?: boolean): void {
|
||||
|
@ -388,8 +385,8 @@ export class Gateway extends HarmonyEventEmitter<GatewayTypedEvents> {
|
|||
channel === undefined
|
||||
? null
|
||||
: typeof channel === 'string'
|
||||
? channel
|
||||
: channel?.id,
|
||||
? channel
|
||||
: channel?.id,
|
||||
self_mute: voiceOptions.mute === undefined ? false : voiceOptions.mute,
|
||||
self_deaf: voiceOptions.deaf === undefined ? false : voiceOptions.deaf
|
||||
}
|
||||
|
@ -402,6 +399,7 @@ export class Gateway extends HarmonyEventEmitter<GatewayTypedEvents> {
|
|||
|
||||
async reconnect(forceNew?: boolean): Promise<void> {
|
||||
this.emit('reconnecting')
|
||||
this.debug('Reconnecting... (force new: ' + String(forceNew) + ')')
|
||||
|
||||
clearInterval(this.heartbeatIntervalID)
|
||||
if (forceNew === true) {
|
||||
|
@ -429,6 +427,7 @@ export class Gateway extends HarmonyEventEmitter<GatewayTypedEvents> {
|
|||
}
|
||||
|
||||
close(code: number = 1000, reason?: string): void {
|
||||
this.debug(`Closing with code ${code}${reason !== undefined && reason !== '' ? ` and reason ${reason}` : ''}`)
|
||||
return this.websocket?.close(code, reason)
|
||||
}
|
||||
|
||||
|
|
|
@ -175,15 +175,15 @@ export class Interaction extends SnowflakeBase {
|
|||
type: data.type ?? InteractionResponseType.CHANNEL_MESSAGE_WITH_SOURCE,
|
||||
data:
|
||||
data.type === undefined ||
|
||||
data.type === InteractionResponseType.CHANNEL_MESSAGE_WITH_SOURCE ||
|
||||
data.type === InteractionResponseType.CHANNEL_MESSAGE
|
||||
data.type === InteractionResponseType.CHANNEL_MESSAGE_WITH_SOURCE ||
|
||||
data.type === InteractionResponseType.CHANNEL_MESSAGE
|
||||
? {
|
||||
content: data.content ?? '',
|
||||
embeds: data.embeds,
|
||||
tts: data.tts ?? false,
|
||||
flags,
|
||||
allowed_mentions: data.allowedMentions ?? undefined
|
||||
}
|
||||
content: data.content ?? '',
|
||||
embeds: data.embeds,
|
||||
tts: data.tts ?? false,
|
||||
flags,
|
||||
allowed_mentions: data.allowedMentions ?? undefined
|
||||
}
|
||||
: undefined
|
||||
}
|
||||
|
||||
|
@ -313,9 +313,10 @@ export class Interaction extends SnowflakeBase {
|
|||
(option as WebhookMessageOptions)?.embed !== undefined
|
||||
? [(option as WebhookMessageOptions).embed]
|
||||
: (option as WebhookMessageOptions)?.embeds !== undefined
|
||||
? (option as WebhookMessageOptions).embeds
|
||||
: undefined,
|
||||
? (option as WebhookMessageOptions).embeds
|
||||
: undefined,
|
||||
file: (option as WebhookMessageOptions)?.file,
|
||||
files: (option as WebhookMessageOptions)?.files,
|
||||
tts: (option as WebhookMessageOptions)?.tts,
|
||||
allowed_mentions: (option as WebhookMessageOptions)?.allowedMentions
|
||||
}
|
||||
|
|
28
src/test/debug.ts
Normal file
28
src/test/debug.ts
Normal file
|
@ -0,0 +1,28 @@
|
|||
import { Client, event } from '../../mod.ts'
|
||||
import { TOKEN } from './config.ts'
|
||||
|
||||
class MyClient extends Client {
|
||||
constructor() {
|
||||
super({
|
||||
token: TOKEN,
|
||||
intents: [],
|
||||
})
|
||||
}
|
||||
|
||||
@event()
|
||||
ready(): void {
|
||||
console.log('Connected!')
|
||||
}
|
||||
|
||||
debug(title: string, msg: string): void {
|
||||
console.log(`[${title}] ${msg}`)
|
||||
if (title === 'Gateway' && msg === 'Initializing WebSocket...') {
|
||||
try { throw new Error("Stack") } catch (e) {
|
||||
console.log(e.stack)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const client = new MyClient()
|
||||
client.connect()
|
Loading…
Reference in a new issue