bdjs
Version:
A potent package for creating Discord bots.
65 lines (64 loc) • 2.6 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const Function_1 = require("../structures/Function");
const Container_1 = require("../structures/Container");
const util_1 = require("util");
exports.default = new Function_1.BaseFunction({
description: 'Retrieves data from an embed message.',
parameters: [
{
name: 'Message',
description: 'The message payload.',
required: true,
compile: false,
value: 'none'
},
{
name: 'Guild ID',
description: 'Guild ID where message is in.',
required: false,
resolver: 'String',
value: 'd.ctx?.guild?.id'
},
{
name: 'Channel ID',
description: 'Channel ID where message is in.',
required: false,
resolver: 'String',
value: 'd.ctx?.channel?.id'
},
{
name: 'Message ID',
description: 'Message ID to get the data from.',
required: false,
resolver: 'String',
value: 'd.ctx?.message?.id'
}
],
code: async function (d, [payload, guildID = d.ctx?.guild?.id, channelID = d.ctx?.channel?.id, messageID = d.ctx?.message?.id]) {
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);
if (messageID === undefined)
throw new d.error(d, 'invalid', 'Message ID', d.function?.name);
const guild = await d.bot?.guilds.cache.get(guildID);
if (!guild)
throw new d.error(d, 'invalid', 'Guild ID', d.function?.name);
const channel = await d.util.getChannel(channelID, guild);
if (!channel)
throw new d.error(d, 'invalid', 'Channel ID', d.function?.name);
const message = await d.util.getMessage(channel, messageID);
if (!message)
throw new d.error(d, 'invalid', 'Message ID', d.function?.name);
const container = new Container_1.Container;
const result = await d.reader.compile(payload, d);
if (result?.code)
container.pushContent(result.code);
const data = await message.edit(container).catch(e => {
throw new d.error(d, 'custom', (0, util_1.inspect)(e, { depth: 4 }));
});
}
});