3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-07-14 05:57:18 +00:00

feat: enable coloured starboard embeds

This commit is contained in:
vcokltfre 2021-03-15 22:13:48 +00:00
parent 7dcdb5f72f
commit 9ecb98a0d7
3 changed files with 5 additions and 2 deletions

View file

@ -12,6 +12,7 @@ const StarboardOpts = t.type({
copy_full_embed: tNullable(t.boolean), copy_full_embed: tNullable(t.boolean),
enabled: tNullable(t.boolean), enabled: tNullable(t.boolean),
show_star_count: t.boolean, show_star_count: t.boolean,
color: t.number,
}); });
export type TStarboardOpts = t.TypeOf<typeof StarboardOpts>; export type TStarboardOpts = t.TypeOf<typeof StarboardOpts>;
@ -27,6 +28,7 @@ export const defaultStarboardOpts: Partial<TStarboardOpts> = {
star_emoji: ["⭐"], star_emoji: ["⭐"],
enabled: true, enabled: true,
show_star_count: true, show_star_count: true,
color: 0,
}; };
export interface StarboardPluginType extends BasePluginType { export interface StarboardPluginType extends BasePluginType {

View file

@ -8,7 +8,7 @@ const videoAttachmentExtensions = ["mp4", "mkv", "mov"];
type StarboardEmbed = EmbedWith<"footer" | "author" | "fields" | "timestamp">; type StarboardEmbed = EmbedWith<"footer" | "author" | "fields" | "timestamp">;
export function createStarboardEmbedFromMessage(msg: Message, copyFullEmbed: boolean): StarboardEmbed { export function createStarboardEmbedFromMessage(msg: Message, copyFullEmbed: boolean, color: number): StarboardEmbed {
const embed: StarboardEmbed = { const embed: StarboardEmbed = {
footer: { footer: {
text: `#${(msg.channel as GuildChannel).name}`, text: `#${(msg.channel as GuildChannel).name}`,
@ -18,6 +18,7 @@ export function createStarboardEmbedFromMessage(msg: Message, copyFullEmbed: boo
}, },
fields: [], fields: [],
timestamp: new Date(msg.timestamp).toISOString(), timestamp: new Date(msg.timestamp).toISOString(),
color: color,
}; };
if (msg.author.avatarURL) { if (msg.author.avatarURL) {

View file

@ -16,7 +16,7 @@ export async function saveMessageToStarboard(
if (!channel) return; if (!channel) return;
const starCount = (await pluginData.state.starboardReactions.getAllReactionsForMessageId(msg.id)).length; const starCount = (await pluginData.state.starboardReactions.getAllReactionsForMessageId(msg.id)).length;
const embed = createStarboardEmbedFromMessage(msg, Boolean(starboard.copy_full_embed)); const embed = createStarboardEmbedFromMessage(msg, Boolean(starboard.copy_full_embed), starboard.color);
embed.fields!.push(createStarboardPseudoFooterForMessage(starboard, msg, starboard.star_emoji![0], starCount)); embed.fields!.push(createStarboardPseudoFooterForMessage(starboard, msg, starboard.star_emoji![0], starCount));
const starboardMessage = await (channel as TextChannel).createMessage({ embed }); const starboardMessage = await (channel as TextChannel).createMessage({ embed });