bdjs
Version:
A potent package for creating Discord bots.
63 lines (62 loc) • 2.49 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const Function_1 = require("../structures/Function");
const discord_js_1 = require("discord.js");
const util_1 = require("util");
exports.default = new Function_1.BaseFunction({
description: 'Sends a message to the provided channel.',
parameters: [
{
name: 'Payload',
description: 'Message payload.',
required: true,
compile: false,
resolver: 'String',
value: 'none'
},
{
name: 'Channel ID',
description: 'The ID of the channel were the message will be sent.',
required: false,
resolver: 'String',
value: 'none'
},
{
name: 'Guild ID',
description: 'The ID of the guild were the channel is located.',
required: false,
resolver: 'String',
value: 'none'
},
{
name: 'Return ID',
description: 'Whether return the message ID.',
required: false,
resolver: 'Boolean',
value: 'false'
}
],
code: async function (d, [payload, channelID = d.ctx?.channel?.isTextBased() ? d.ctx.channel.id : undefined, guildID = d.ctx?.guild?.id, returnID = 'false']) {
if (payload === undefined)
throw new d.error(d, 'required', 'Message Payload', d.function?.name);
if (guildID === undefined)
throw new d.error(d, 'invalid', 'Guild ID', d.function?.name);
if (channelID === undefined)
throw new d.error(d, 'invalid', 'Channel ID', d.function?.name);
const guild = d.bot?.guilds.cache.get(guildID);
if (!guild)
throw new d.error(d, 'invalid', 'Guild', d.function?.name);
const channel = await d.util.getChannel(channelID, guild);
if (!channel || channel && !channel.isTextBased())
throw new d.error(d, 'invalid', 'Channel', d.function?.name);
const compiled = await d.reader.compile(payload, d);
if (compiled.code)
d.container.pushContent(compiled.code);
const message = await channel.send(d.container).catch((e) => {
throw new d.error(d, 'custom', (0, util_1.inspect)(e, { depth: 2 }));
});
d.container.clear();
if (message instanceof discord_js_1.Message && returnID === 'true')
return message.id;
}
});