Merge branch 'refactor/scripts'
This commit is contained in:
commit
6e1cb8c956
5 changed files with 26 additions and 15 deletions
|
@ -12,6 +12,7 @@ RUN npx prisma generate
|
||||||
# Typescript compiling
|
# Typescript compiling
|
||||||
COPY tsconfig.json .
|
COPY tsconfig.json .
|
||||||
COPY src ./src
|
COPY src ./src
|
||||||
|
COPY scripts ./scripts
|
||||||
RUN npx tsc
|
RUN npx tsc
|
||||||
|
|
||||||
# Run the app
|
# Run the app
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "tsc && node dist/src/index.js",
|
"start": "tsc && node dist/src/index.js",
|
||||||
"test": "echo \"Error: no test specified\" && exit 1",
|
"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",
|
"author": "Wroclaw",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
|
|
@ -1,23 +1,29 @@
|
||||||
// https://discordjs.guide/creating-your-bot/command-deployment.html#guild-commands
|
// https://discordjs.guide/creating-your-bot/command-deployment.html#guild-commands
|
||||||
|
|
||||||
import { REST, RESTGetAPIOAuth2CurrentApplicationResult, RESTPostAPIApplicationCommandsJSONBody, Routes } from "discord.js";
|
import { REST, RESTGetAPIOAuth2CurrentApplicationResult, RESTPostAPIApplicationCommandsJSONBody, Routes } from "discord.js";
|
||||||
import { config } from "../index";
|
import { config } from "../src/index";
|
||||||
import requireDirectory from "require-directory";
|
import requireDirectory from "require-directory";
|
||||||
|
|
||||||
import Command from "../command";
|
import Command from "../src/command";
|
||||||
|
|
||||||
const post: RESTPostAPIApplicationCommandsJSONBody[] = [];
|
const post: RESTPostAPIApplicationCommandsJSONBody[] = [];
|
||||||
|
|
||||||
const guildId = process.argv.slice(2)[0];
|
const guildId = process.argv.slice(2)[0];
|
||||||
requireDirectory<{default: Command}, void>(module, "../commands", {
|
const importedCommands = requireDirectory(module, "../src/commands");
|
||||||
visit: function (obj) {
|
|
||||||
console.log(obj);
|
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
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||||
// @ts-ignore
|
// @ts-expect-error
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
|
const constructedExport = new defaultExport() as unknown;
|
||||||
post.push(new obj.default().toRESTPostApplicationCommands());
|
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);
|
const rest = new REST().setToken(config.tokens.Discord);
|
||||||
|
|
||||||
|
@ -37,6 +43,8 @@ const rest = new REST().setToken(config.tokens.Discord);
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
console.log("Refreshed successfully");
|
console.log("Refreshed successfully");
|
||||||
|
process.exit(0);
|
||||||
})().catch( e => {
|
})().catch( e => {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
|
process.exit(1);
|
||||||
});
|
});
|
|
@ -4,13 +4,13 @@ import Command from "../command";
|
||||||
import { config } from "../index";
|
import { config } from "../index";
|
||||||
|
|
||||||
export default class MyLimit extends Command implements Command {
|
export default class MyLimit extends Command implements Command {
|
||||||
name = "check-limit";
|
name = "check-quota";
|
||||||
description = "Checks your limit and usage";
|
description = "Checks your quota and usage";
|
||||||
type = ApplicationCommandType.ChatInput;
|
type = ApplicationCommandType.ChatInput;
|
||||||
options: APIApplicationCommandOption[] = [
|
options: APIApplicationCommandOption[] = [
|
||||||
{
|
{
|
||||||
name: "recovery-for",
|
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,
|
type: ApplicationCommandOptionType.Integer,
|
||||||
required: false,
|
required: false,
|
||||||
},
|
},
|
||||||
|
@ -18,6 +18,7 @@ export default class MyLimit extends Command implements Command {
|
||||||
name: "ephemeral",
|
name: "ephemeral",
|
||||||
description: "if true, only you can see the response (default true)",
|
description: "if true, only you can see the response (default true)",
|
||||||
type: ApplicationCommandOptionType.Boolean,
|
type: ApplicationCommandOptionType.Boolean,
|
||||||
|
required: false,
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
"include": [
|
"include": [
|
||||||
"./src/**/*"
|
"./src/**/*",
|
||||||
|
"./scripts/**/*"
|
||||||
],
|
],
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"target": "ES2022",
|
"target": "ES2022",
|
||||||
|
|
Loading…
Reference in a new issue