3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-03-15 05:41:51 +00:00

feat: add color option to starboard (#163)

Co-authored-by: Almeida <42935195+almeidx@users.noreply.github.com>
This commit is contained in:
vcokltfre 2021-04-02 14:42:25 +01:00 committed by GitHub
parent 2e50fa7630
commit fcbb25b7ff
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 18 additions and 2 deletions

View file

@ -57,6 +57,19 @@ export const StarboardPlugin = zeppelinGuildPlugin<StarboardPluginType>()("starb
stars_required: 5
~~~
### Basic starboard with custom color
Any message on the server that gets 5 star reactions will be posted into the starboard channel (604342689038729226), with the given color (0x87CEEB).
~~~yml
starboard:
config:
boards:
basic:
channel_id: "604342689038729226"
stars_required: 5
color: 0x87CEEB
~~~
### Custom star emoji
This is identical to the basic starboard above, but accepts two emoji: the regular star and a custom :mrvnSmile: emoji

View file

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

View file

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

View file

@ -16,7 +16,7 @@ export async function saveMessageToStarboard(
if (!channel) return;
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));
const starboardMessage = await (channel as TextChannel).createMessage({ embed });