mirror of
https://github.com/PretendoNetwork/Yamamura.git
synced 2024-06-12 17:47:23 -04:00
53 lines
1.2 KiB
JavaScript
53 lines
1.2 KiB
JavaScript
const Discord = require('discord.js');
|
|
const { REST } = require('@discordjs/rest');
|
|
const { Routes } = require('discord-api-types/v10');
|
|
const util = require('./util');
|
|
const { bot_token: botToken } = require('../config.json');
|
|
const rest = new REST({ version: '10' }).setToken(botToken);
|
|
|
|
/**
|
|
*
|
|
* @param {Discord.Guild} guild
|
|
*/
|
|
async function setupGuild(guild) {
|
|
// do nothing if the bot does not have the correct permissions
|
|
if (!guild.me.permissions.has([Discord.Permissions.FLAGS.MANAGE_CHANNELS])) {
|
|
console.log('Bot does not have permissions to set up in guild', guild.name);
|
|
return;
|
|
}
|
|
|
|
// Setup commands
|
|
await deployCommandsToGuild(guild);
|
|
|
|
try {
|
|
await util.updateMemberCountChannels(guild);
|
|
} catch {
|
|
// we dont care if it fails on setup, itll sync again on join
|
|
}
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param {Discord.Guild} guild
|
|
*/
|
|
async function deployCommandsToGuild(guild) {
|
|
const deploy = [];
|
|
|
|
guild.client.commands.forEach((command) => {
|
|
deploy.push(command.deploy);
|
|
});
|
|
|
|
guild.client.contextMenus.forEach((contextMenu) => {
|
|
deploy.push(contextMenu.deploy);
|
|
});
|
|
|
|
|
|
await rest.put(Routes.applicationGuildCommands(guild.me.id, guild.id), {
|
|
body: deploy,
|
|
});
|
|
}
|
|
|
|
module.exports = {
|
|
setupGuild,
|
|
};
|