UNPKG

oceanic-transcripts

Version:

A nicely formatted html transcript generator for oceanic.js.

102 lines 6.26 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = SystemMessage; exports.Highlight = Highlight; exports.JoinMessage = JoinMessage; const discord_components_react_1 = require("@derockdev/discord-components-react"); const oceanic_js_1 = require("oceanic.js"); const react_1 = __importDefault(require("react")); const utils_1 = require("../../utils/utils"); async function SystemMessage({ message, context }) { var _a, _b, _c, _d, _e, _f, _g, _h, _j; const member = context.profiles[message.author.id]; switch (message.type) { case oceanic_js_1.MessageTypes.RECIPIENT_ADD: case oceanic_js_1.MessageTypes.USER_JOIN: return (react_1.default.createElement(discord_components_react_1.DiscordSystemMessage, { id: `m-${message.id}`, key: message.id, type: "join" }, react_1.default.createElement(JoinMessage, { member: member, color: (_a = member.roleColor) !== null && _a !== void 0 ? _a : '#FFFFFF', fallbackUser: message.author }))); case oceanic_js_1.MessageTypes.CHANNEL_PINNED_MESSAGE: return (react_1.default.createElement(discord_components_react_1.DiscordSystemMessage, { id: `m-${message.id}`, key: message.id, type: "pin" }, react_1.default.createElement(Highlight, { color: (_b = member.roleColor) !== null && _b !== void 0 ? _b : '#FFFFFF' }, (_c = message.author.globalName) !== null && _c !== void 0 ? _c : message.author.username), ' ', "pinned ", react_1.default.createElement("i", { "data-goto": (_d = message.referencedMessage) === null || _d === void 0 ? void 0 : _d.id }, "a message"), " to this channel.", message.reactions.length > 0 && (react_1.default.createElement(discord_components_react_1.DiscordReactions, { slot: "reactions" }, message.reactions.map((reaction, id) => (react_1.default.createElement(discord_components_react_1.DiscordReaction, { key: `${message.id}r${id}`, name: reaction.emoji.name, emoji: (0, utils_1.parseDiscordEmoji)(reaction.emoji), count: reaction.count }))))))); case oceanic_js_1.MessageTypes.GUILD_BOOST: case oceanic_js_1.MessageTypes.GUILD_BOOST_TIER_1: case oceanic_js_1.MessageTypes.GUILD_BOOST_TIER_2: case oceanic_js_1.MessageTypes.GUILD_BOOST_TIER_3: return (react_1.default.createElement(discord_components_react_1.DiscordSystemMessage, { id: `m-${message.id}`, key: message.id, type: "boost" }, react_1.default.createElement(Highlight, { color: (_e = member.roleColor) !== null && _e !== void 0 ? _e : '#FFFFFF' }, (_f = message.author.globalName) !== null && _f !== void 0 ? _f : message.author.username), ' ', "boosted the server!")); case oceanic_js_1.MessageTypes.THREAD_STARTER_MESSAGE: return (react_1.default.createElement(discord_components_react_1.DiscordSystemMessage, { id: `ms-${message.id}`, key: message.id, type: "thread" }, react_1.default.createElement(Highlight, { color: (_g = member.roleColor) !== null && _g !== void 0 ? _g : '#FFFFFF' }, (_h = message.author.globalName) !== null && _h !== void 0 ? _h : message.author.username), ' ', "started a thread: ", react_1.default.createElement("i", { "data-goto": (_j = message.referencedMessage) === null || _j === void 0 ? void 0 : _j.id }, message.content))); default: return undefined; } } function Highlight({ children, color }) { return react_1.default.createElement("i", { style: { color: color !== null && color !== void 0 ? color : 'white' } }, children); } const allJoinMessages = [ '{user} just joined the server - glhf!', '{user} just joined. Everyone, look busy!', '{user} just joined. Can I get a heal?', '{user} joined your party.', '{user} joined. You must construct additional pylons.', 'Ermagherd. {user} is here.', 'Welcome, {user}. Stay awhile and listen.', 'Welcome, {user}. We were expecting you ( ͡° ͜ʖ ͡°)', 'Welcome, {user}. We hope you brought pizza.', 'Welcome {user}. Leave your weapons by the door.', 'A wild {user} appeared.', 'Swoooosh. {user} just landed.', 'Brace yourselves {user} just joined the server.', '{user} just joined. Hide your bananas.', '{user} just arrived. Seems OP - please nerf.', '{user} just slid into the server.', 'A {user} has spawned in the server.', 'Big {user} showed up!', "Where's {user}? In the server!", '{user} hopped into the server. Kangaroo!!', '{user} just showed up. Hold my beer.', 'Challenger approaching - {user} has appeared!', "It's a bird! It's a plane! Nevermind, it's just {user}.", "It's {user}! Praise the sun! \\\\[T]/", 'Never gonna give {user} up. Never gonna let {user} down.', 'Ha! {user} has joined! You activated my trap card!', 'Cheers, love! {user} is here!', 'Hey! Listen! {user} has joined!', "We've been expecting you {user}", "It's dangerous to go alone, take {user}!", "{user} has joined the server! It's super effective!", 'Cheers, love! {user} is here!', '{user} is here, as the prophecy foretold.', "{user} has arrived. Party's over.", 'Ready player {user}', '{user} is here to kick butt and chew bubblegum. And {user} is all out of gum.', "Hello. Is it {user} you're looking for?", ]; function JoinMessage({ member, color, fallbackUser }) { const randomMessage = allJoinMessages[Math.floor(Math.random() * allJoinMessages.length)]; return randomMessage .split('{user}') .flatMap((item, i) => { var _a, _b; return [ item, react_1.default.createElement(Highlight, { color: color, key: i }, (_b = (_a = member === null || member === void 0 ? void 0 : member.author) !== null && _a !== void 0 ? _a : fallbackUser.globalName) !== null && _b !== void 0 ? _b : fallbackUser.username), ]; }) .slice(0, -1); } //# sourceMappingURL=systemMessage.js.map