From 9895d039e8b74486f16cba66c6048cba11862545 Mon Sep 17 00:00:00 2001 From: Louis Mazin Date: Thu, 16 Apr 2026 17:21:00 +0200 Subject: [PATCH] test --- src/pterodactyl/displayer.js | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/src/pterodactyl/displayer.js b/src/pterodactyl/displayer.js index 5ca8de0..57329fb 100644 --- a/src/pterodactyl/displayer.js +++ b/src/pterodactyl/displayer.js @@ -152,10 +152,13 @@ const preloadPinboardImages = async (items) => { } }; -const buildSelectedImageEmbed = (item, imageReference) => { - const imageUrl = imageReference?.attachmentName +const buildSelectedImageEmbed = (item, imageReference, options = {}) => { + const useAttachment = options.useAttachment !== false; + const disableCacheBust = options.disableCacheBust === true; + + const imageUrl = useAttachment && imageReference?.attachmentName ? `attachment://${imageReference.attachmentName}` - : toCacheBustedUrl(item.url); + : (disableCacheBust ? item.url : toCacheBustedUrl(item.url)); return new EmbedBuilder() .setColor('#f59e0b') @@ -220,7 +223,7 @@ const buildPanelEmbed = (status) => { return message; }; -const buildPanelPayload = (status, messageId, pinboardItems = null) => { +const buildPanelPayload = (status, messageId, pinboardItems = null, options = {}) => { const panelEmbed = buildPanelEmbed(status); const items = (pinboardItems || parsePinboardImageItems()).slice(0, 25); @@ -233,10 +236,14 @@ const buildPanelPayload = (status, messageId, pinboardItems = null) => { const selectedItem = items[currentIndex]; const cachedImage = preloadedImagesByUrl.get(selectedItem.url); - const selectedImageEmbed = buildSelectedImageEmbed(selectedItem, cachedImage); + const selectedImageEmbed = buildSelectedImageEmbed(selectedItem, cachedImage, { + useAttachment: options.useAttachmentForSelected, + disableCacheBust: options.disableCacheBustForSelected + }); const selectorRow = buildImageSelectorRow(items, currentIndex); - const files = cachedImage?.buffer + const shouldIncludeFiles = options.includeFiles !== false; + const files = shouldIncludeFiles && cachedImage?.buffer ? [new AttachmentBuilder(cachedImage.buffer, { name: cachedImage.attachmentName })] : []; @@ -291,7 +298,11 @@ const update = async (client) => { lastKnownStatus = status; const { message } = await resolvePanelMessage(client, channelId, messageId); - const payload = buildPanelPayload(status, message.id, pinboardItems); + const payload = buildPanelPayload(status, message.id, pinboardItems, { + useAttachmentForSelected: true, + disableCacheBustForSelected: false, + includeFiles: true + }); await message.edit(payload); @@ -319,7 +330,11 @@ const handlePinboardSelection = async (interaction) => { selectedImageIndexByMessage.set(interaction.message.id, selectedIndex); const status = lastKnownStatus || await getMinecraftStatus(); - const payload = buildPanelPayload(status, interaction.message.id, pinboardItems); + const payload = buildPanelPayload(status, interaction.message.id, pinboardItems, { + useAttachmentForSelected: false, + disableCacheBustForSelected: true, + includeFiles: false + }); await interaction.update(payload); return true; } catch (error) {