migration deploy from js to ts

This commit is contained in:
kdh8219 2023-04-26 19:39:30 +09:00
parent fa909079aa
commit 88ddedef97
4 changed files with 45 additions and 44 deletions

View file

@ -1,32 +0,0 @@
require("dotenv").config();
const { REST, Routes } = require("discord.js");
const fs = require("node:fs");
const commands = [];
// Grab all the command files from the commands directory you created earlier
const commandFiles = fs.readdirSync("./commands").filter((file) => file.endsWith(".js"));
// Grab the SlashCommandBuilder#toJSON() output of each command's data for deployment
for (const file of commandFiles) {
const command = require(`./commands/${file}`);
commands.push(command.data.toJSON());
}
// Construct and prepare an instance of the REST module
const rest = new REST({ version: "10" }).setToken(process.env.DISCORD_TOKEN);
// and deploy your commands!
(async () => {
try {
console.log(`Started refreshing ${commands.length} application (/) commands.`);
// The put method is used to fully refresh all commands in the guild with the current set
const data = await rest.put(Routes.applicationGuildCommands(process.env.CLIENT_ID, process.env.GUILD_ID), { body: commands });
console.log(`Successfully reloaded ${data.length} application (/) commands.`);
} catch (error) {
// And of course, make sure you catch and log any errors!
console.error(error);
}
})();

32
src/deploy.ts Executable file
View file

@ -0,0 +1,32 @@
import { REST, Routes } from "discord.js";
import { config } from "dotenv";
config();
import { getCommands } from "./functions";
const commands = getCommands();
// Construct and prepare an instance of the REST module
const rest = new REST({ version: "10" }).setToken(
process.env.DISCORD_TOKEN as string
);
// and deploy your commands!
(async () => {
try {
console.log(`Started refreshing all application (/) commands.`);
// The put method is used to fully refresh all commands in the guild with the current set
await rest.put(
Routes.applicationGuildCommands(
process.env.discord_CLIENT_ID as string,
process.env.discord_GUILD_ID as string
),
{ body: commands }
);
console.log(`Successfully reloaded all application (/) commands.`);
} catch (error) {
// And of course, make sure you catch and log any errors!
console.error(error);
}
})();

View file

@ -1,4 +1,6 @@
import { SlashCommandBuilder } from "discord.js";
import { Collection, SlashCommandBuilder } from "discord.js";
import commands from "./command/commands.js";
export type TCommand = {
data: SlashCommandBuilder;
@ -63,3 +65,11 @@ export function check_user_type_by_minecraft_uuid(
}
return EUserType.Unregistered;
}
export function getCommands(): Collection<string, TCommand> {
const commandColection = new Collection<string, TCommand>();
for (const command of commands) {
commandColection.set(command.data.name, command);
}
return commandColection;
}

View file

@ -1,9 +1,8 @@
import { Client, Collection, Events, GatewayIntentBits } from "discord.js";
import { Client, Events, GatewayIntentBits } from "discord.js";
import { config } from "dotenv";
config();
import { TCommand } from "./functions.js";
import commands from "./command/commands.js";
import { getCommands } from "./functions.js";
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
@ -44,11 +43,3 @@ client.on(Events.InteractionCreate, async (interaction) => {
});
client.login(process.env.DISCORD_TOKEN);
function getCommands(): Collection<string, TCommand> {
const commandColection = new Collection<string, TCommand>();
for (const command of commands) {
commandColection.set(command.data.name, command);
}
return commandColection;
}