Error Fixes

This commit is contained in:
DjDeveloper 2020-11-03 10:49:57 +05:30
parent 2af8e15452
commit 5da856a3ad
10 changed files with 33 additions and 30 deletions

View file

@ -1,3 +1,4 @@
import { GuildChannelPayload } from "../../managers/GuildChannelsManager.ts"
import { Channel } from '../../structures/channel.ts'
import { Guild } from "../../structures/guild.ts"
import { ChannelPayload } from '../../types/channel.ts'
@ -13,8 +14,8 @@ export const channelUpdate: GatewayEventHandler = async (
if (oldChannel !== undefined) {
await gateway.client.channels.set(d.id, d)
let guild: undefined | Guild;
if(d.guild_id) {
guild = await gateway.client.guilds.get(d.guild_id) || undefined
if((d as GuildChannelPayload).guild_id) {
guild = await gateway.client.guilds.get((d as GuildChannelPayload).guild_id) || undefined
}
if (oldChannel.type !== d.type) {
const channel: Channel = getChannelByType(gateway.client, d, guild) ?? oldChannel

View file

@ -2,6 +2,7 @@ import { Gateway, GatewayEventHandler } from '../index.ts'
import { Guild } from '../../structures/guild.ts'
import { User } from '../../structures/user.ts'
import { GuildBanAddPayload } from '../../types/gateway.ts'
import { Member } from "../../structures/member.ts"
export const guildBanAdd: GatewayEventHandler = async (
gateway: Gateway,
@ -13,7 +14,7 @@ export const guildBanAdd: GatewayEventHandler = async (
new User(gateway.client, d.user)
if (guild !== undefined) {
guild.members = guild.members?.filter(member => member.id !== d.user.id)
await guild.members.delete(user.id)
gateway.client.emit('guildBanAdd', guild, user)
}
}

View file

@ -32,7 +32,7 @@ export class BaseManager<T, T2> {
async array(): Promise<void | T2[]> {
let arr = await (this.client.cache.array(this.cacheName) as T[])
return arr.map(e => new this.dataType(this.client, e)) as any
return arr.map(e => new this.DataType(this.client, e)) as any
}
async collection(): Promise<Collection<string, T2>> {

View file

@ -12,7 +12,7 @@ export class ChannelsManager extends BaseManager<ChannelPayload, Channel> {
}
// Override get method as Generic
async get<T = Channel>(key: string): Promise<T | void> {
async get<T = Channel>(key: string): Promise<T | undefined> {
let data = await this._get(key) as any
if(!data) return
let guild

View file

@ -13,7 +13,7 @@ export class MessagesManager extends BaseManager<MessagePayload, Message> {
super(client, 'messages', Message)
}
async get(key: string): Promise<Message | void> {
async get(key: string): Promise<Message | undefined> {
const raw = await this._get(key)
if(!raw) return
let channel = await this.client.channels.get(raw.channel_id)
@ -21,7 +21,7 @@ export class MessagesManager extends BaseManager<MessagePayload, Message> {
if(!channel) return
let author = new User(this.client, raw.author)
let mentions = new MessageMentions()
return new this.dataType(this.client, raw, channel, author, mentions) as any
return new this.DataType(this.client, raw, channel, author, mentions) as any
}
fetch(channelID: string, id: string) {

View file

@ -1,6 +1,6 @@
import { Client } from '../models/client.ts'
import { GuildFeatures, GuildPayload } from '../types/guild.ts'
import { PresenceUpdatePayload } from '../types/gateway.ts'
import { PresenceUpdatePayload } from '../types/presence.ts'
import { Base } from './base.ts'
import { Channel } from './channel.ts'
import { Emoji } from './emoji.ts'

View file

@ -4,6 +4,7 @@ import { CHANNEL_MESSAGE, CHANNEL_MESSAGES } from '../types/endpoint.ts'
import { Channel } from './channel.ts'
import { Message } from './message.ts'
import { MessageMentions } from './MessageMentions.ts'
import { User } from "./user.ts"
export class TextChannel extends Channel {
lastMessageID?: string
@ -35,7 +36,7 @@ export class TextChannel extends Channel {
allowed_mentions: option?.allowedMention
})
return new Message(this.client, resp as any, this, this.client.user, new MessageMentions())
return new Message(this.client, resp as any, this, this.client.user as User, new MessageMentions())
}
async edit (

View file

@ -15,10 +15,10 @@ const bot = new Client({
forceNewSession: true
})
// bot.setAdapter(new RedisCacheAdapter(bot, {
// hostname: "127.0.0.1",
// port: 6379
// }))
bot.setAdapter(new RedisCacheAdapter(bot, {
hostname: "127.0.0.1",
port: 6379
}))
bot.on('ready', () => {
console.log(`[Login] Logged in as ${bot.user?.tag}!`)

View file

@ -9,7 +9,7 @@ import { UserPayload } from './user.ts'
/**
* Gateway OPcodes from Discord docs.
*/
enum GatewayOpcodes { // 문서를 확인해본 결과 Opcode 5번은 비어있다. - UnderC -
export enum GatewayOpcodes { // 문서를 확인해본 결과 Opcode 5번은 비어있다. - UnderC -
DISPATCH = 0,
HEARTBEAT = 1,
IDENTIFY = 2,
@ -26,7 +26,7 @@ enum GatewayOpcodes { // 문서를 확인해본 결과 Opcode 5번은 비어있
/**
* Gateway Close Codes from Discord docs.
*/
enum GatewayCloseCodes {
export enum GatewayCloseCodes {
UNKNOWN_ERROR = 4000,
UNKNOWN_OPCODE = 4001,
DECODE_ERROR = 4002,
@ -43,7 +43,7 @@ enum GatewayCloseCodes {
DISALLOWED_INTENTS = 4014
}
enum GatewayIntents {
export enum GatewayIntents {
GUILDS = 1 << 0,
GUILD_MEMBERS = 1 << 1,
GUILD_BANS = 1 << 2,
@ -61,7 +61,7 @@ enum GatewayIntents {
DIRECT_MESSAGE_TYPING = 1 << 13
}
enum GatewayEvents {
export enum GatewayEvents {
Ready = 'READY',
Resumed = 'RESUMED',
Reconnect = 'RECONNECT',
@ -111,7 +111,7 @@ export interface IdentityPayload {
intents: number
}
enum UpdateStatus {
export enum UpdateStatus {
online = 'online',
dnd = 'dnd',
afk = 'idle',
@ -313,13 +313,4 @@ export interface VoiceServerUpdatePayload {
export interface WebhooksUpdatePayload {
guild_id: string
channel_id: string
}
// https://discord.com/developers/docs/topics/gateway#typing-start-typing-start-event-fields
export {
GatewayCloseCodes,
GatewayOpcodes,
GatewayIntents,
GatewayEvents,
UpdateStatus
}
}

View file

@ -1,3 +1,6 @@
import { StatusType } from "../structures/presence.ts";
import { User } from "../structures/user.ts";
export interface ClientStatus {
desktop?: string
mobile?: string
@ -50,7 +53,7 @@ export interface ActivitySecrets {
match?: string
}
enum ActivityFlags {
export enum ActivityFlags {
INSTANCE = 1 << 0,
JOIN = 1 << 1,
SPECTATE = 1 << 2,
@ -59,4 +62,10 @@ enum ActivityFlags {
PLAY = 1 << 5
}
export { ActivityFlags }
export interface PresenceUpdatePayload {
user: User
guild_id: string
status: StatusType
activities: ActivityPayload
client_status: ClientStatus
}