Merge branch 'refactor/scripts'

This commit is contained in:
Wroclaw 2023-10-12 12:01:52 +02:00
commit 6e1cb8c956
5 changed files with 26 additions and 15 deletions

View file

@ -12,6 +12,7 @@ RUN npx prisma generate
# Typescript compiling
COPY tsconfig.json .
COPY src ./src
COPY scripts ./scripts
RUN npx tsc
# Run the app

View file

@ -6,7 +6,7 @@
"scripts": {
"start": "tsc && node dist/src/index.js",
"test": "echo \"Error: no test specified\" && exit 1",
"publishCommands": "tsc && node dist/src/scripts/pushCommands.js"
"publishCommands": "tsc && node dist/scripts/pushCommands.js"
},
"author": "Wroclaw",
"license": "MIT",

View file

@ -1,23 +1,29 @@
// https://discordjs.guide/creating-your-bot/command-deployment.html#guild-commands
import { REST, RESTGetAPIOAuth2CurrentApplicationResult, RESTPostAPIApplicationCommandsJSONBody, Routes } from "discord.js";
import { config } from "../index";
import { config } from "../src/index";
import requireDirectory from "require-directory";
import Command from "../command";
import Command from "../src/command";
const post: RESTPostAPIApplicationCommandsJSONBody[] = [];
const guildId = process.argv.slice(2)[0];
requireDirectory<{default: Command}, void>(module, "../commands", {
visit: function (obj) {
console.log(obj);
const importedCommands = requireDirectory(module, "../src/commands");
for (const obj in importedCommands) {
try {
const allExports = importedCommands[obj] as {default: unknown};
const defaultExport = allExports.default;
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
post.push(new obj.default().toRESTPostApplicationCommands());
},
});
// @ts-expect-error
const constructedExport = new defaultExport() as unknown;
if (!(constructedExport instanceof Command)) throw new Error(`${obj}'s default does not extends Command`);
post.push(constructedExport.toRESTPostApplicationCommands());
} catch (e) {
console.error(e);
}
}
const rest = new REST().setToken(config.tokens.Discord);
@ -37,6 +43,8 @@ const rest = new REST().setToken(config.tokens.Discord);
);
}
console.log("Refreshed successfully");
process.exit(0);
})().catch( e => {
console.error(e);
process.exit(1);
});

View file

@ -4,13 +4,13 @@ import Command from "../command";
import { config } from "../index";
export default class MyLimit extends Command implements Command {
name = "check-limit";
description = "Checks your limit and usage";
name = "check-quota";
description = "Checks your quota and usage";
type = ApplicationCommandType.ChatInput;
options: APIApplicationCommandOption[] = [
{
name: "recovery-for",
description: "Calculate the limit recovery time for given message count (default: amount required to use the bot again or 1)",
description: "Get the recovery time for given quota units count (default: until can use the bot or 1)",
type: ApplicationCommandOptionType.Integer,
required: false,
},
@ -18,6 +18,7 @@ export default class MyLimit extends Command implements Command {
name: "ephemeral",
description: "if true, only you can see the response (default true)",
type: ApplicationCommandOptionType.Boolean,
required: false,
}
];

View file

@ -1,6 +1,7 @@
{
"include": [
"./src/**/*"
"./src/**/*",
"./scripts/**/*"
],
"compilerOptions": {
"target": "ES2022",