MAp management and helpers
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
/**
|
||||
* Fonctions réutilisables pour afficher une carte de monde dans le chat.
|
||||
*/
|
||||
import { SectorMapApp } from './SectorMapApp.js';
|
||||
|
||||
const BASE_URL = 'https://travellermap.com';
|
||||
|
||||
/**
|
||||
* Récupère les données d'un monde via l'API et poste une carte détaillée dans le chat.
|
||||
* @param {string} sector Nom du secteur
|
||||
* @param {string} hex Code hex sur 4 chiffres
|
||||
* @param {object} [options] { whisper: bool }
|
||||
*/
|
||||
export async function postWorldCardToChat(sector, hex, options = {}) {
|
||||
if (!sector || !hex) {
|
||||
ui.notifications.error('Secteur et hex requis');
|
||||
return;
|
||||
}
|
||||
|
||||
const url = `${BASE_URL}/data/${encodeURIComponent(sector)}/${encodeURIComponent(hex)}`;
|
||||
let resp;
|
||||
try {
|
||||
resp = await fetch(url);
|
||||
} catch (err) {
|
||||
console.error('worldCard | fetch error:', err);
|
||||
ui.notifications.error('Erreur réseau');
|
||||
return;
|
||||
}
|
||||
if (!resp.ok) {
|
||||
ui.notifications.error(`Monde introuvable : ${sector} ${hex}`);
|
||||
return;
|
||||
}
|
||||
|
||||
const data = await resp.json();
|
||||
const world = data.Worlds?.[0];
|
||||
if (!world) {
|
||||
ui.notifications.error(`Aucune donnée pour ${sector} ${hex}`);
|
||||
return;
|
||||
}
|
||||
|
||||
const html = SectorMapApp._buildWorldCardHTML(world);
|
||||
const msgData = { content: html };
|
||||
if (options.whisper !== false) msgData.whisper = [game.user.id];
|
||||
|
||||
await ChatMessage.create(msgData);
|
||||
}
|
||||
Reference in New Issue
Block a user