Updated packages, added report command.
Some checks reported warnings
prisma-migrate / install (push) Has been cancelled
prisma-migrate / generate (push) Has been cancelled
prisma-migrate / migrate (push) Has been cancelled

Closes #5

Signed-off-by: Louis Hollingworth <louis@hollingworth.nl>
This commit is contained in:
Louis Hollingworth 2023-07-22 16:01:09 +01:00
parent f917564a83
commit 6fb7a492db
Signed by: lucxjo
GPG key ID: A11415CB3DC7809B
3 changed files with 153 additions and 98 deletions

View file

@ -21,10 +21,10 @@
"dotenv": "16.0.3"
},
"devDependencies": {
"@types/node": "^18.16.5",
"@types/node": "^20.4.4",
"nodemon": "^2.0.22",
"prettier": "^2.8.8",
"prisma": "^4.15.0",
"prisma": "^4.16.2",
"ts-node": "^10.9.1",
"typescript": "4.9.5"
},

View file

@ -1,4 +1,4 @@
lockfileVersion: "6.1"
lockfileVersion: "6.0"
settings:
autoInstallPeers: true
@ -10,7 +10,7 @@ dependencies:
version: 1.2.2
"@prisma/client":
specifier: 4.15.0
version: 4.15.0(prisma@4.15.0)
version: 4.15.0(prisma@4.16.2)
discord.js:
specifier: ^14.11.0
version: 14.11.0
@ -23,8 +23,8 @@ dependencies:
devDependencies:
"@types/node":
specifier: ^18.16.5
version: 18.16.5
specifier: ^20.4.4
version: 20.4.4
nodemon:
specifier: ^2.0.22
version: 2.0.22
@ -32,11 +32,11 @@ devDependencies:
specifier: ^2.8.8
version: 2.8.8
prisma:
specifier: ^4.15.0
version: 4.15.0
specifier: ^4.16.2
version: 4.16.2
ts-node:
specifier: ^10.9.1
version: 10.9.1(@types/node@18.16.5)(typescript@4.9.5)
version: 10.9.1(@types/node@20.4.4)(typescript@4.9.5)
typescript:
specifier: 4.9.5
version: 4.9.5
@ -61,11 +61,11 @@ packages:
dependencies:
"@discordjs/formatters": 0.3.1
"@discordjs/util": 0.3.1
"@sapphire/shapeshift": 3.8.2
discord-api-types: 0.37.41
"@sapphire/shapeshift": 3.9.2
discord-api-types: 0.37.50
fast-deep-equal: 3.1.3
ts-mixer: 6.0.3
tslib: 2.5.0
tslib: 2.6.0
dev: false
/@discordjs/collection@1.5.1:
@ -83,7 +83,7 @@ packages:
}
engines: { node: ">=16.9.0" }
dependencies:
discord-api-types: 0.37.41
discord-api-types: 0.37.50
dev: false
/@discordjs/rest@1.7.1:
@ -96,11 +96,11 @@ packages:
"@discordjs/collection": 1.5.1
"@discordjs/util": 0.3.1
"@sapphire/async-queue": 1.5.0
"@sapphire/snowflake": 3.4.2
discord-api-types: 0.37.41
file-type: 18.3.0
tslib: 2.5.0
undici: 5.22.0
"@sapphire/snowflake": 3.5.1
discord-api-types: 0.37.50
file-type: 18.5.0
tslib: 2.6.0
undici: 5.22.1
dev: false
/@discordjs/util@0.3.1:
@ -122,10 +122,10 @@ packages:
"@discordjs/rest": 1.7.1
"@discordjs/util": 0.3.1
"@sapphire/async-queue": 1.5.0
"@types/ws": 8.5.4
"@vladfrangu/async_event_emitter": 2.2.1
discord-api-types: 0.37.41
tslib: 2.5.0
"@types/ws": 8.5.5
"@vladfrangu/async_event_emitter": 2.2.2
discord-api-types: 0.37.50
tslib: 2.6.0
ws: 8.13.0
transitivePeerDependencies:
- bufferutil
@ -139,7 +139,7 @@ packages:
}
engines: { node: ">=16.0.0", npm: ">=7.0.0" }
dependencies:
tsyringe: 4.7.0
tsyringe: 4.8.0
typedi: 0.10.0
dev: false
@ -149,8 +149,8 @@ packages:
integrity: sha512-JVUDCHzf+dTXqcF2hU++JzCJgVYt6G+StIubaF96SLGTMw8ZcaPUlrYClGAld3JXevzrQVr1yrRYScGObNgEMg==,
}
dependencies:
glob: 10.2.2
tslib: 2.5.0
glob: 10.3.3
tslib: 2.6.0
dev: false
/@discordx/internal@1.0.2:
@ -160,7 +160,7 @@ packages:
}
engines: { node: ">=16.0.0", npm: ">=7.0.0" }
dependencies:
tslib: 2.5.0
tslib: 2.6.0
dev: false
/@isaacs/cliui@8.0.2:
@ -172,7 +172,7 @@ packages:
dependencies:
string-width: 5.1.2
string-width-cjs: /string-width@4.2.3
strip-ansi: 7.0.1
strip-ansi: 7.1.0
strip-ansi-cjs: /strip-ansi@6.0.1
wrap-ansi: 8.1.0
wrap-ansi-cjs: /wrap-ansi@7.0.0
@ -213,7 +213,7 @@ packages:
dev: false
optional: true
/@prisma/client@4.15.0(prisma@4.15.0):
/@prisma/client@4.15.0(prisma@4.16.2):
resolution:
{
integrity: sha512-xnROvyABcGiwqRNdrObHVZkD9EjkJYHOmVdlKy1yGgI+XOzvMzJ4tRg3dz1pUlsyhKxXGCnjIQjWW+2ur+YXuw==,
@ -227,7 +227,7 @@ packages:
optional: true
dependencies:
"@prisma/engines-version": 4.15.0-28.8fbc245156db7124f997f4cecdd8d1219e360944
prisma: 4.15.0
prisma: 4.16.2
dev: false
/@prisma/engines-version@4.15.0-28.8fbc245156db7124f997f4cecdd8d1219e360944:
@ -237,10 +237,10 @@ packages:
}
dev: false
/@prisma/engines@4.15.0:
/@prisma/engines@4.16.2:
resolution:
{
integrity: sha512-FTaOCGs0LL0OW68juZlGxFtYviZa4xdQj/rQEdat2txw0s3Vu/saAPKjNVXfIgUsGXmQ72HPgNr6935/P8FNAA==,
integrity: sha512-vx1nxVvN4QeT/cepQce68deh/Turxy5Mr+4L4zClFuK1GlxN3+ivxfuv+ej/gvidWn1cE1uAhW7ALLNlYbRUAw==,
}
requiresBuild: true
@ -252,10 +252,10 @@ packages:
engines: { node: ">=v14.0.0", npm: ">=7.0.0" }
dev: false
/@sapphire/shapeshift@3.8.2:
/@sapphire/shapeshift@3.9.2:
resolution:
{
integrity: sha512-NXpnJAsxN3/h9TqQPntOeVWZrpIuucqXI3IWF6tj2fWCoRLCuVK5wx7Dtg7pRrtkYfsMUbDqgKoX26vrC5iYfA==,
integrity: sha512-YRbCXWy969oGIdqR/wha62eX8GNHsvyYi0Rfd4rNW6tSVVa8p0ELiMEuOH/k8rgtvRoM+EMV7Csqz77YdwiDpA==,
}
engines: { node: ">=v14.0.0", npm: ">=7.0.0" }
dependencies:
@ -263,10 +263,10 @@ packages:
lodash: 4.17.21
dev: false
/@sapphire/snowflake@3.4.2:
/@sapphire/snowflake@3.5.1:
resolution:
{
integrity: sha512-KJwlv5gkGjs1uFV7/xx81n3tqgBwBJvH94n1xDyH3q+JSmtsMeSleJffarEBfG2yAFeJiFA4BnGOK6FFPHc19g==,
integrity: sha512-BxcYGzgEsdlG0dKAyOm0ehLGm2CafIrfQTZGWgkfKYbj+pNNsorZ7EotuZukc2MT70E0UbppVbtpBrqpzVzjNA==,
}
engines: { node: ">=v14.0.0", npm: ">=7.0.0" }
dev: false
@ -299,32 +299,32 @@ packages:
}
dev: true
/@tsconfig/node16@1.0.3:
/@tsconfig/node16@1.0.4:
resolution:
{
integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==,
integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==,
}
dev: true
/@types/node@18.16.5:
/@types/node@20.4.4:
resolution:
{
integrity: sha512-seOA34WMo9KB+UA78qaJoCO20RJzZGVXQ5Sh6FWu0g/hfT44nKXnej3/tCQl7FL97idFpBhisLYCTB50S0EirA==,
integrity: sha512-CukZhumInROvLq3+b5gLev+vgpsIqC2D0deQr/yS1WnxvmYLlJXZpaQrQiseMY+6xusl79E04UjWoqyr+t1/Ew==,
}
/@types/ws@8.5.4:
/@types/ws@8.5.5:
resolution:
{
integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==,
integrity: sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==,
}
dependencies:
"@types/node": 18.16.5
"@types/node": 20.4.4
dev: false
/@vladfrangu/async_event_emitter@2.2.1:
/@vladfrangu/async_event_emitter@2.2.2:
resolution:
{
integrity: sha512-XtUEAS0m6uVddXW+EImGunLiJZzWNWAZQBoQCUneowrYXPQ6y7c0iWEm/wVYyGpTixTIhUfLRSoYCwojL64htA==,
integrity: sha512-HIzRG7sy88UZjBJamssEczH5q7t5+axva19UbZLO6u0ySbYPrwzWiXBcC0WuHyhKKoeCyneH+FvYzKQq/zTtkQ==,
}
engines: { node: ">=v14.0.0", npm: ">=7.0.0" }
dev: false
@ -344,10 +344,10 @@ packages:
engines: { node: ">=0.4.0" }
dev: true
/acorn@8.8.2:
/acorn@8.10.0:
resolution:
{
integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==,
integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==,
}
engines: { node: ">=0.4.0" }
hasBin: true
@ -542,10 +542,10 @@ packages:
engines: { node: ">=0.3.1" }
dev: true
/discord-api-types@0.37.41:
/discord-api-types@0.37.50:
resolution:
{
integrity: sha512-FaPGBK9hx3zqSRX1x3KQWj+OElAJKmcyyfcdCy+U4AKv+gYuIkRySM7zd1So2sE4gc1DikkghkSBgBgKh6pe4Q==,
integrity: sha512-X4CDiMnDbA3s3RaUXWXmgAIbY1uxab3fqe3qwzg5XutR3wjqi7M3IkgQbsIBzpqBN2YWr/Qdv7JrFRqSgb4TFg==,
}
dev: false
@ -562,13 +562,13 @@ packages:
"@discordjs/rest": 1.7.1
"@discordjs/util": 0.3.1
"@discordjs/ws": 0.8.3
"@sapphire/snowflake": 3.4.2
"@types/ws": 8.5.4
discord-api-types: 0.37.41
"@sapphire/snowflake": 3.5.1
"@types/ws": 8.5.5
discord-api-types: 0.37.50
fast-deep-equal: 3.1.3
lodash.snakecase: 4.1.1
tslib: 2.5.0
undici: 5.22.0
tslib: 2.6.0
undici: 5.22.1
ws: 8.13.0
transitivePeerDependencies:
- bufferutil
@ -588,7 +588,7 @@ packages:
"@discordx/internal": 1.0.2
discord.js: 14.11.0
lodash: 4.17.21
tslib: 2.5.0
tslib: 2.6.0
dev: false
/dotenv@16.0.3:
@ -627,10 +627,10 @@ packages:
}
dev: false
/file-type@18.3.0:
/file-type@18.5.0:
resolution:
{
integrity: sha512-pkPZ5OGIq0TYb37b8bHDLNeQSe1H2KlaQ2ySGpJkkr2KZdaWsO4QhPzHA0mQcsUW2cSqJk+4gM/UyLz/UFbXdQ==,
integrity: sha512-yvpl5U868+V6PqXHMmsESpg6unQ5GfnPssl4dxdJudBrr9qy7Fddt7EVX1VLlddFfe8Gj9N7goCZH22FXuSQXQ==,
}
engines: { node: ">=14.16" }
dependencies:
@ -657,7 +657,7 @@ packages:
engines: { node: ">=14" }
dependencies:
cross-spawn: 7.0.3
signal-exit: 4.0.1
signal-exit: 4.0.2
dev: false
/fsevents@2.3.2:
@ -681,19 +681,19 @@ packages:
is-glob: 4.0.3
dev: true
/glob@10.2.2:
/glob@10.3.3:
resolution:
{
integrity: sha512-Xsa0BcxIC6th9UwNjZkhrMtNo/MnyRL8jGCP+uEwhA5oFOCY1f2s1/oNKY47xQ0Bg5nkjsfAEIej1VeH62bDDQ==,
integrity: sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==,
}
engines: { node: ">=16 || 14 >=14.17" }
hasBin: true
dependencies:
foreground-child: 3.1.1
jackspeak: 2.2.0
minimatch: 9.0.0
minipass: 5.0.0
path-scurry: 1.7.0
jackspeak: 2.2.1
minimatch: 9.0.3
minipass: 7.0.2
path-scurry: 1.10.1
dev: false
/has-flag@3.0.0:
@ -776,10 +776,10 @@ packages:
}
dev: false
/jackspeak@2.2.0:
/jackspeak@2.2.1:
resolution:
{
integrity: sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==,
integrity: sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==,
}
engines: { node: ">=14" }
dependencies:
@ -802,10 +802,10 @@ packages:
}
dev: false
/lru-cache@9.1.1:
/lru-cache@10.0.0:
resolution:
{
integrity: sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==,
integrity: sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==,
}
engines: { node: 14 || >=16.14 }
dev: false
@ -826,22 +826,22 @@ packages:
brace-expansion: 1.1.11
dev: true
/minimatch@9.0.0:
/minimatch@9.0.3:
resolution:
{
integrity: sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==,
integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==,
}
engines: { node: ">=16 || 14 >=14.17" }
dependencies:
brace-expansion: 2.0.1
dev: false
/minipass@5.0.0:
/minipass@7.0.2:
resolution:
{
integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==,
integrity: sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==,
}
engines: { node: ">=8" }
engines: { node: ">=16 || 14 >=14.17" }
dev: false
/ms@2.1.3:
@ -864,7 +864,7 @@ packages:
ignore-by-default: 1.0.1
minimatch: 3.1.2
pstree.remy: 1.1.8
semver: 5.7.1
semver: 5.7.2
simple-update-notifier: 1.1.0
supports-color: 5.5.0
touch: 3.1.0
@ -897,15 +897,15 @@ packages:
engines: { node: ">=8" }
dev: false
/path-scurry@1.7.0:
/path-scurry@1.10.1:
resolution:
{
integrity: sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg==,
integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==,
}
engines: { node: ">=16 || 14 >=14.17" }
dependencies:
lru-cache: 9.1.1
minipass: 5.0.0
lru-cache: 10.0.0
minipass: 7.0.2
dev: false
/peek-readable@5.0.0:
@ -933,16 +933,16 @@ packages:
hasBin: true
dev: true
/prisma@4.15.0:
/prisma@4.16.2:
resolution:
{
integrity: sha512-iKZZpobPl48gTcSZVawLMQ3lEy6BnXwtoMj7hluoGFYu2kQ6F9LBuBrUyF95zRVnNo8/3KzLXJXJ5TEnLSJFiA==,
integrity: sha512-SYCsBvDf0/7XSJyf2cHTLjLeTLVXYfqp7pG5eEVafFLeT0u/hLFz/9W196nDRGUOo1JfPatAEb+uEnTQImQC1g==,
}
engines: { node: ">=14.17" }
hasBin: true
requiresBuild: true
dependencies:
"@prisma/engines": 4.15.0
"@prisma/engines": 4.16.2
/pstree.remy@1.1.8:
resolution:
@ -990,10 +990,10 @@ packages:
}
dev: false
/semver@5.7.1:
/semver@5.7.2:
resolution:
{
integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==,
integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==,
}
hasBin: true
dev: true
@ -1024,10 +1024,10 @@ packages:
engines: { node: ">=8" }
dev: false
/signal-exit@4.0.1:
/signal-exit@4.0.2:
resolution:
{
integrity: sha512-uUWsN4aOxJAS8KOuf3QMyFtgm1pkb6I+KRZbRF/ghdf5T7sM+B1lLLzPDxswUjkmHyxQAVzEgG35E3NzDM9GVw==,
integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==,
}
engines: { node: ">=14" }
dev: false
@ -1071,7 +1071,7 @@ packages:
dependencies:
eastasianwidth: 0.2.0
emoji-regex: 9.2.2
strip-ansi: 7.0.1
strip-ansi: 7.1.0
dev: false
/string_decoder@1.3.0:
@ -1093,10 +1093,10 @@ packages:
ansi-regex: 5.0.1
dev: false
/strip-ansi@7.0.1:
/strip-ansi@7.1.0:
resolution:
{
integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==,
integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==,
}
engines: { node: ">=12" }
dependencies:
@ -1162,7 +1162,7 @@ packages:
}
dev: false
/ts-node@10.9.1(@types/node@18.16.5)(typescript@4.9.5):
/ts-node@10.9.1(@types/node@20.4.4)(typescript@4.9.5):
resolution:
{
integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==,
@ -1183,9 +1183,9 @@ packages:
"@tsconfig/node10": 1.0.9
"@tsconfig/node12": 1.0.11
"@tsconfig/node14": 1.0.3
"@tsconfig/node16": 1.0.3
"@types/node": 18.16.5
acorn: 8.8.2
"@tsconfig/node16": 1.0.4
"@types/node": 20.4.4
acorn: 8.10.0
acorn-walk: 8.2.0
arg: 4.1.3
create-require: 1.1.1
@ -1203,17 +1203,17 @@ packages:
}
dev: false
/tslib@2.5.0:
/tslib@2.6.0:
resolution:
{
integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==,
integrity: sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==,
}
dev: false
/tsyringe@4.7.0:
/tsyringe@4.8.0:
resolution:
{
integrity: sha512-ncFDM1jTLsok4ejMvSW5jN1VGPQD48y2tfAR0pdptWRKYX4bkbqPt92k7KJ5RFJ1KV36JEs/+TMh7I6OUgj74g==,
integrity: sha512-YB1FG+axdxADa3ncEtRnQCFq/M0lALGLxSZeVNbTU8NqhOVc51nnv2CISTcvc1kyv6EGPtXVr0v6lWeDxiijOA==,
}
engines: { node: ">= 6.0.0" }
dependencies:
@ -1243,10 +1243,10 @@ packages:
}
dev: true
/undici@5.22.0:
/undici@5.22.1:
resolution:
{
integrity: sha512-fR9RXCc+6Dxav4P9VV/sp5w3eFiSdOjJYsbtWfd4s5L5C4ogyuVpdKIVHeW0vV1MloM65/f7W45nR9ZxwVdyiA==,
integrity: sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==,
}
engines: { node: ">=14.0" }
dependencies:
@ -1299,7 +1299,7 @@ packages:
dependencies:
ansi-styles: 6.2.1
string-width: 5.1.2
strip-ansi: 7.0.1
strip-ansi: 7.1.0
dev: false
/ws@8.13.0:

55
src/commands/report.ts Normal file
View file

@ -0,0 +1,55 @@
import {
ApplicationCommandOptionType,
Client,
CommandInteraction,
GuildMember,
TextChannel,
User,
} from "discord.js";
import { Discord, Slash, SlashOption } from "discordx";
import { prisma } from "../main.js";
@Discord()
export class Report {
@Slash({ description: "Report a user to the guild staff", name: "report" })
async report(
@SlashOption({
required: true,
description: "The user to report",
name: "user",
type: ApplicationCommandOptionType.User,
})
user: GuildMember | User,
@SlashOption({
required: true,
description: "Why you are reporting this user",
name: "reason",
type: ApplicationCommandOptionType.String,
})
reason: string,
interaction: CommandInteraction,
client: Client
) {
if (interaction.guild) {
const guild = await prisma.guild.findUnique({
where: {
id: interaction.guild.id,
},
});
if (guild && guild.reports_channel_id) {
await client.channels
.fetch(guild!.reports_channel_id!)
.then((channel) => {
if (channel!.isTextBased()) {
const ct = channel as TextChannel;
ct.send(`${interaction.user} reported ${user} for: ${reason}`);
}
});
}
await interaction.reply({ content: "Report sent!", ephemeral: true });
return;
}
await interaction.reply("You need to be in a guild to use this command");
}
}