Compare commits

..

No commits in common. "653fe65078aba28ff65779358db51c397f35eac4" and "301803629f036ee4d58b72058739ac4a6a29aa1e" have entirely different histories.

View File

@ -175,6 +175,49 @@ const preloadPinboardImages = async (items) => {
} }
}; };
const waitMs = async (delayMs) => new Promise(resolve => {
setTimeout(resolve, delayMs);
});
const runVisualWarmup = async (message, status, pinboardItems, initialIndex, refreshKey) => {
if (!message || !message.id) return;
if (pinboardItems.length <= 1) return;
if (warmingMessageIds.has(message.id)) return;
if (warmupRefreshKeyByMessage.get(message.id) === refreshKey) return;
warmingMessageIds.add(message.id);
try {
for (let index = 0; index < pinboardItems.length; index += 1) {
selectedImageIndexByMessage.set(message.id, index);
const payload = buildPanelPayload(status, message.id, pinboardItems, {
useAttachmentForSelected: false,
disableCacheBustForSelected: true,
includeFiles: false,
refreshKey
});
await message.edit(payload);
}
selectedImageIndexByMessage.set(message.id, initialIndex);
const restoredPayload = buildPanelPayload(status, message.id, pinboardItems, {
useAttachmentForSelected: false,
disableCacheBustForSelected: true,
includeFiles: false,
refreshKey
});
await message.edit(restoredPayload);
warmupRefreshKeyByMessage.set(message.id, refreshKey);
console.log(`🔥 Warm-up visuel termine pour message ${message.id}`);
} catch (error) {
console.log(`⚠️ Warm-up visuel annule (${message.id}): ${error.message}`);
} finally {
warmingMessageIds.delete(message.id);
}
};
const buildSelectedImageEmbed = (item, imageReference, options = {}) => { const buildSelectedImageEmbed = (item, imageReference, options = {}) => {
const useAttachment = options.useAttachment !== false; const useAttachment = options.useAttachment !== false;
const disableCacheBust = options.disableCacheBust === true; const disableCacheBust = options.disableCacheBust === true;
@ -211,7 +254,7 @@ const buildImageNavigationRow = (items, selectedIndex) => {
const previousButton = new ButtonBuilder() const previousButton = new ButtonBuilder()
.setCustomId(PINBOARD_PREV_CUSTOM_ID) .setCustomId(PINBOARD_PREV_CUSTOM_ID)
.setLabel(' << ') .setLabel('<<')
.setStyle(ButtonStyle.Primary) .setStyle(ButtonStyle.Primary)
.setDisabled(!hasItems); .setDisabled(!hasItems);
@ -223,7 +266,7 @@ const buildImageNavigationRow = (items, selectedIndex) => {
const nextButton = new ButtonBuilder() const nextButton = new ButtonBuilder()
.setCustomId(PINBOARD_NEXT_CUSTOM_ID) .setCustomId(PINBOARD_NEXT_CUSTOM_ID)
.setLabel(' >> ') .setLabel('>>')
.setStyle(ButtonStyle.Primary) .setStyle(ButtonStyle.Primary)
.setDisabled(!hasItems); .setDisabled(!hasItems);
@ -359,6 +402,10 @@ const update = async (client) => {
await message.edit(payload); await message.edit(payload);
const initialIndex = clampIndex(selectedImageIndexByMessage.get(message.id) ?? 0, pinboardItems.length);
runVisualWarmup(message, status, pinboardItems, initialIndex, imageRefreshKey)
.catch(error => console.log(`⚠️ Warm-up visuel en erreur: ${error.message}`));
console.log(`📊 Panneau Minecraft mis a jour (${status.playersOnline}/${status.playersMax})`); console.log(`📊 Panneau Minecraft mis a jour (${status.playersOnline}/${status.playersMax})`);
} catch (error) { } catch (error) {
console.log(`❌ Erreur displayer: ${error.message}`); console.log(`❌ Erreur displayer: ${error.message}`);