2020-11-11 09:04:49 +00:00
|
|
|
import { Command, CommandClient, Intents } from '../../mod.ts'
|
|
|
|
import { GuildChannel } from "../managers/guildChannels.ts"
|
|
|
|
import { CommandContext } from "../models/command.ts"
|
|
|
|
import { Extension } from "../models/extensions.ts"
|
2020-11-15 09:48:18 +00:00
|
|
|
import { Member } from "../structures/member.ts"
|
2020-11-15 09:16:36 +00:00
|
|
|
import { Message } from "../structures/message.ts"
|
2020-11-15 09:57:44 +00:00
|
|
|
import { Role } from "../structures/role.ts"
|
2020-11-15 09:16:36 +00:00
|
|
|
import { MessageDeletePayload } from "../types/gateway.ts"
|
2020-11-07 09:05:14 +00:00
|
|
|
import { TOKEN } from './config.ts'
|
|
|
|
|
|
|
|
const client = new CommandClient({
|
2020-11-07 09:16:14 +00:00
|
|
|
prefix: ["pls", "!"],
|
2020-11-09 10:29:16 +00:00
|
|
|
spacesAfterPrefix: true,
|
|
|
|
mentionPrefix: true
|
2020-11-07 09:05:14 +00:00
|
|
|
})
|
|
|
|
|
|
|
|
client.on('debug', console.log)
|
|
|
|
|
|
|
|
client.on('ready', () => {
|
|
|
|
console.log(`[Login] Logged in as ${client.user?.tag}!`)
|
|
|
|
})
|
|
|
|
|
2020-11-15 09:16:36 +00:00
|
|
|
client.on('messageDelete', (msg: Message) => {
|
|
|
|
console.log(`Message Deleted: ${msg.id}, ${msg.author.tag}, ${msg.content}`)
|
|
|
|
})
|
|
|
|
|
|
|
|
client.on('messageDeleteUncached', (d: MessageDeletePayload) => {
|
|
|
|
console.log(`Uncached Message Deleted: ${d.id} in ${d.channel_id}`)
|
|
|
|
})
|
|
|
|
|
2020-11-15 09:23:24 +00:00
|
|
|
client.on('messageUpdate', (before: Message, after: Message) => {
|
|
|
|
console.log('Message Update')
|
|
|
|
console.log(`Before: ${before.author.tag}: ${before.content}`)
|
|
|
|
console.log(`After: ${after.author.tag}: ${after.content}`)
|
|
|
|
})
|
|
|
|
|
|
|
|
client.on('messageUpdateUncached', (msg: Message) => {
|
|
|
|
console.log(`Message: ${msg.author.tag}: ${msg.content}`)
|
|
|
|
})
|
|
|
|
|
2020-11-15 09:48:18 +00:00
|
|
|
client.on('guildMemberAdd', (member: Member) => {
|
|
|
|
console.log(`Member Join: ${member.user.tag}`)
|
|
|
|
})
|
|
|
|
|
|
|
|
client.on('guildMemberRemove', (member: Member) => {
|
|
|
|
console.log(`Member Leave: ${member.user.tag}`)
|
|
|
|
})
|
|
|
|
|
2020-11-15 09:57:44 +00:00
|
|
|
client.on('guildRoleCreate', (role: Role) => {
|
|
|
|
console.log(`Role Create: ${role.name}`)
|
|
|
|
})
|
|
|
|
|
|
|
|
client.on('guildRoleDelete', (role: Role) => {
|
|
|
|
console.log(`Role Delete: ${role.name}`)
|
|
|
|
})
|
|
|
|
|
|
|
|
client.on('guildRoleUpdate', (role: Role, after: Role) => {
|
|
|
|
console.log(`Role Update: ${role.name}, ${after.name}`)
|
|
|
|
})
|
|
|
|
|
2020-11-09 11:29:22 +00:00
|
|
|
// client.on('messageCreate', msg => console.log(`${msg.author.tag}: ${msg.content}`))
|
2020-11-09 10:29:16 +00:00
|
|
|
|
2020-11-08 11:10:33 +00:00
|
|
|
client.on("commandError", console.error)
|
2020-11-07 13:05:37 +00:00
|
|
|
|
2020-11-11 09:04:49 +00:00
|
|
|
class ChannelLog extends Extension {
|
|
|
|
|
|
|
|
onChannelCreate(ext: Extension, channel: GuildChannel): void {
|
|
|
|
console.log(`Channel Created: ${channel.name}`)
|
|
|
|
}
|
|
|
|
|
|
|
|
load(): void {
|
|
|
|
this.listen('channelCreate', this.onChannelCreate)
|
|
|
|
|
|
|
|
class Pong extends Command {
|
|
|
|
name = 'Pong'
|
|
|
|
|
|
|
|
execute(ctx: CommandContext): any {
|
|
|
|
ctx.message.reply('Ping!')
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
this.commands.add(Pong)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
client.extensions.load(ChannelLog)
|
|
|
|
|
2020-11-09 10:29:16 +00:00
|
|
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
|
|
;(async() => {
|
|
|
|
const files = Deno.readDirSync('./src/test/cmds')
|
|
|
|
|
|
|
|
for (const file of files) {
|
|
|
|
const module = await import(`./cmds/${file.name}`)
|
|
|
|
// eslint-disable-next-line new-cap
|
|
|
|
const cmd = new module.default()
|
|
|
|
client.commands.add(cmd)
|
|
|
|
console.log(`Loaded command ${cmd.name}!`)
|
|
|
|
}
|
|
|
|
|
|
|
|
console.log(`Loaded ${client.commands.count} commands!`)
|
2020-11-07 09:05:14 +00:00
|
|
|
|
2020-11-09 10:29:16 +00:00
|
|
|
client.connect(TOKEN, Intents.All)
|
|
|
|
})()
|