3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-07-11 13:07:20 +00:00
zeppelin/backend/src/plugins/Starboard/util/saveMessageToStarboard.ts
vcokltfre e58014b70d feat: add color option to starboard (#163)
Co-authored-by: Almeida <42935195+almeidx@users.noreply.github.com>
2021-04-02 16:42:25 +03:00

24 lines
1.2 KiB
TypeScript

import { GuildPluginData } from "knub";
import { StarboardPluginType, TStarboardOpts } from "../types";
import { Message, GuildChannel, TextChannel, Embed } from "eris";
import moment from "moment-timezone";
import { EmbedWith, EMPTY_CHAR, messageLink } from "../../../utils";
import path from "path";
import { createStarboardEmbedFromMessage } from "./createStarboardEmbedFromMessage";
import { createStarboardPseudoFooterForMessage } from "./createStarboardPseudoFooterForMessage";
export async function saveMessageToStarboard(
pluginData: GuildPluginData<StarboardPluginType>,
msg: Message,
starboard: TStarboardOpts,
) {
const channel = pluginData.guild.channels.get(starboard.channel_id);
if (!channel) return;
const starCount = (await pluginData.state.starboardReactions.getAllReactionsForMessageId(msg.id)).length;
const embed = createStarboardEmbedFromMessage(msg, Boolean(starboard.copy_full_embed), starboard.color);
embed.fields!.push(createStarboardPseudoFooterForMessage(starboard, msg, starboard.star_emoji![0], starCount));
const starboardMessage = await (channel as TextChannel).createMessage({ embed });
await pluginData.state.starboardMessages.createStarboardMessage(channel.id, msg.id, starboardMessage.id);
}