feat: Add dokdo
This commit is contained in:
parent
5b5616b7aa
commit
4200f2a151
5 changed files with 37 additions and 5 deletions
17
bun.lock
17
bun.lock
|
@ -11,6 +11,7 @@
|
|||
"@sapphire/utilities": "^3.18.2",
|
||||
"discord-api-types": "^0.37.119",
|
||||
"discord.js": "^14.18.0",
|
||||
"dokdo": "^1.0.1",
|
||||
"es-hangul": "^2.3.1",
|
||||
"mongoose": "^8.10.1",
|
||||
},
|
||||
|
@ -130,6 +131,8 @@
|
|||
|
||||
"discord.js": ["discord.js@14.18.0", "", { "dependencies": { "@discordjs/builders": "^1.10.1", "@discordjs/collection": "1.5.3", "@discordjs/formatters": "^0.6.0", "@discordjs/rest": "^2.4.3", "@discordjs/util": "^1.1.1", "@discordjs/ws": "^1.2.1", "@sapphire/snowflake": "3.5.3", "discord-api-types": "^0.37.119", "fast-deep-equal": "3.1.3", "lodash.snakecase": "4.1.1", "tslib": "^2.6.3", "undici": "6.21.1" } }, "sha512-SvU5kVUvwunQhN2/+0t55QW/1EHfB1lp0TtLZUSXVHDmyHTrdOj5LRKdR0zLcybaA15F+NtdWuWmGOX9lE+CAw=="],
|
||||
|
||||
"dokdo": ["dokdo@1.0.1", "", { "dependencies": { "node-fetch": "^2.6.7" }, "peerDependencies": { "discord.js": "14" } }, "sha512-DquSmyQeSQbYhCMZO67z7toDMSd7fJef+0dgDXxFwRuPEE5shk0ggitdVGwKGXj36cf7ISuO3Ka5S8FZKcQXFQ=="],
|
||||
|
||||
"es-hangul": ["es-hangul@2.3.1", "", {}, "sha512-somwJpQpVP5LLI6DquIvRnoTSqVyfIfT1a8/jxHRueWNiTse7/kJ0JZVpf4KrzhY8CoqEK0LUZXFhGkf1hBZKQ=="],
|
||||
|
||||
"fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="],
|
||||
|
@ -182,6 +185,8 @@
|
|||
|
||||
"named-placeholders": ["named-placeholders@1.1.3", "", { "dependencies": { "lru-cache": "^7.14.1" } }, "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w=="],
|
||||
|
||||
"node-fetch": ["node-fetch@2.7.0", "", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A=="],
|
||||
|
||||
"path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="],
|
||||
|
||||
"picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="],
|
||||
|
@ -204,7 +209,7 @@
|
|||
|
||||
"sqlstring": ["sqlstring@2.3.3", "", {}, "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg=="],
|
||||
|
||||
"tr46": ["tr46@5.0.0", "", { "dependencies": { "punycode": "^2.3.1" } }, "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g=="],
|
||||
"tr46": ["tr46@0.0.3", "", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="],
|
||||
|
||||
"ts-mixer": ["ts-mixer@6.0.4", "", {}, "sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA=="],
|
||||
|
||||
|
@ -216,9 +221,9 @@
|
|||
|
||||
"undici-types": ["undici-types@6.20.0", "", {}, "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg=="],
|
||||
|
||||
"webidl-conversions": ["webidl-conversions@7.0.0", "", {}, "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="],
|
||||
"webidl-conversions": ["webidl-conversions@3.0.1", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="],
|
||||
|
||||
"whatwg-url": ["whatwg-url@14.1.1", "", { "dependencies": { "tr46": "^5.0.0", "webidl-conversions": "^7.0.0" } }, "sha512-mDGf9diDad/giZ/Sm9Xi2YcyzaFpbdLpJPr+E9fSkyQ7KpQD4SdFcugkRQYzhmfI4KeV4Qpnn2sKPdo+kmsgRQ=="],
|
||||
"whatwg-url": ["whatwg-url@5.0.0", "", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="],
|
||||
|
||||
"which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="],
|
||||
|
||||
|
@ -227,5 +232,11 @@
|
|||
"@discordjs/rest/@discordjs/collection": ["@discordjs/collection@2.1.1", "", {}, "sha512-LiSusze9Tc7qF03sLCujF5iZp7K+vRNEDBZ86FT9aQAv3vxMLihUvKvpsCWiQ2DJq1tVckopKm1rxomgNUc9hg=="],
|
||||
|
||||
"@discordjs/ws/@discordjs/collection": ["@discordjs/collection@2.1.1", "", {}, "sha512-LiSusze9Tc7qF03sLCujF5iZp7K+vRNEDBZ86FT9aQAv3vxMLihUvKvpsCWiQ2DJq1tVckopKm1rxomgNUc9hg=="],
|
||||
|
||||
"mongodb-connection-string-url/whatwg-url": ["whatwg-url@14.1.1", "", { "dependencies": { "tr46": "^5.0.0", "webidl-conversions": "^7.0.0" } }, "sha512-mDGf9diDad/giZ/Sm9Xi2YcyzaFpbdLpJPr+E9fSkyQ7KpQD4SdFcugkRQYzhmfI4KeV4Qpnn2sKPdo+kmsgRQ=="],
|
||||
|
||||
"mongodb-connection-string-url/whatwg-url/tr46": ["tr46@5.0.0", "", { "dependencies": { "punycode": "^2.3.1" } }, "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g=="],
|
||||
|
||||
"mongodb-connection-string-url/whatwg-url/webidl-conversions": ["webidl-conversions@7.0.0", "", {}, "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="],
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
"@sapphire/utilities": "^3.18.2",
|
||||
"discord-api-types": "^0.37.119",
|
||||
"discord.js": "^14.18.0",
|
||||
"dokdo": "^1.0.1",
|
||||
"es-hangul": "^2.3.1",
|
||||
"mongoose": "^8.10.1"
|
||||
},
|
||||
|
|
|
@ -16,6 +16,7 @@ declare module '@sapphire/pieces' {
|
|||
}
|
||||
channel: ReleaseChannel
|
||||
}
|
||||
dokdo: Client
|
||||
}
|
||||
|
||||
declare module '@sapphire/framework' {
|
||||
|
|
|
@ -2,6 +2,7 @@ import { Learn, Text, type IText } from '../lib/databases'
|
|||
import { ReleaseChannel } from '../lib/releaseChannel'
|
||||
import { Listener } from '@sapphire/framework'
|
||||
import type { Message, TextChannel } from 'discord.js'
|
||||
import { Client } from 'dokdo'
|
||||
|
||||
export class MessageCreateListener extends Listener {
|
||||
private _getRandom(length: number) {
|
||||
|
@ -26,6 +27,8 @@ export class MessageCreateListener extends Listener {
|
|||
|
||||
if (!msg.content.startsWith(this.container.prefix)) return
|
||||
if (this.container.stores.get('commands').get(content.split(' ')[0])) return
|
||||
if (this.container.dokdo.options.aliases?.includes(content.split(' ')[0]))
|
||||
return this.container.dokdo.run(msg)
|
||||
|
||||
await msg.channel.sendTyping()
|
||||
|
||||
|
|
|
@ -1,13 +1,29 @@
|
|||
import { ApplyOptions } from '@sapphire/decorators'
|
||||
import { Listener } from '@sapphire/framework'
|
||||
import { container } from '@sapphire/pieces'
|
||||
import { Client } from 'discord.js'
|
||||
import { Client as DokdoClient } from 'dokdo'
|
||||
|
||||
@ApplyOptions<Listener.Options>({
|
||||
once: true,
|
||||
})
|
||||
export default class ClientReadyListener extends Listener {
|
||||
public run(client: Client<true>) {
|
||||
container.logger.info('먹힐 준비 완료')
|
||||
this.container.dokdo = new DokdoClient(client, {
|
||||
prefix: this.container.prefix,
|
||||
owners: [this.container.config.bot.ownerId],
|
||||
secrets: [this.container.config.databaseUrl],
|
||||
aliases: ['dokdo', 'dok', 'Dokdo', 'Dok', '테스트'],
|
||||
noPerm: async msg =>
|
||||
await msg.reply({
|
||||
content: '당신은 내 제작자가 아니잖아!',
|
||||
allowedMentions: {
|
||||
repliedUser: false,
|
||||
parse: [],
|
||||
users: [],
|
||||
roles: [],
|
||||
},
|
||||
}),
|
||||
})
|
||||
this.container.logger.info('먹힐 준비 완료')
|
||||
}
|
||||
}
|
||||
|
|
Reference in a new issue