@getsolara/solara.js
Version:
A lightweight and modular Discord bot framework built on discord.js v14, with truly optional feature packages.
17 lines • 1.28 kB
JavaScript
const { ChannelType } = require('discord.js');
module.exports = {
name: "$crosspostMessage", description: "Publishes (crossposts) a message in an announcement channel. Args: messageID;[channelID]", takesBrackets: true,
execute: async (context, args) => {
if (!args[0]) return "[Error: $crosspostMessage requires messageID]";
const messageId = args[0]; const channelId = args[1]?.trim() || context.channel?.id;
if (!channelId) return "[Error: Cannot determine channel context/ID]";
try {
const channel = await context.client.channels.fetch(channelId);
if (channel?.type !== ChannelType.GuildAnnouncement) return "[Error: Channel is not an Announcement channel]";
if (!channel.permissionsFor(context.guild?.members.me)?.has(["ViewChannel", "SendMessages", "ManageMessages"])) return "[Error: Bot lacks permissions (View, Send, Manage) in Announcement channel]";
const message = await channel.messages.fetch(messageId);
if (!message.crosspostable) return "[Error: Message cannot be crossposted (already published, blocked, etc.)]";
await message.crosspost(); return "";
} catch (err) { return `[Error crossposting: ${err.message}]`; }
}
};