const mysql = require("mysql2"); const utilsMath = require("./utils/utilsMath.js"); const dbConfig = { host: process.env.DB_HOST, user: process.env.DB_USER, password: process.env.DB_PASSWORD, database: process.env.DB_DATABASE, }; const con = mysql.createConnection(dbConfig); con.connect((err) => { if (err) { console.error("Erreur de connexion à la base de données:", err); process.exit(1); } console.log("Connected to Mysql"); }); //Get player position in Database async function getCharacterPos() { try { const [result, fields] = await con.promise().query(` SELECT woss.literalValue, wosp.landblockId, wosp.posX, wosp.posY FROM characters c INNER JOIN world_obj_stat_poss wosp ON c.objectId = wosp.objectId INNER JOIN world_obj_stat_strinfo woss ON c.objectId = woss.objectId `); // Tableau pour stocker les données converties let characterPositions = []; // Manipuler les données résultantes for (let row of result) { // Convertir les coordonnées de jeu en coordonnées Leaflet let leafletLoc = utilsMath.convertInGameLoctoLeafletLoc( row.landblockId, row.posX, row.posY ); // Ajouter les données converties au tableau characterPositions.push({ literalValue: row.literalValue, locx: leafletLoc.locx, locy: leafletLoc.locy, }); } return characterPositions; } catch (err) { console.error( "Erreur lors de la récupération des positions des personnages:", err ); return []; } } //Get npc position in Database async function getNpcPos() { try { const [result, fields] = await con.promise().query(` SELECT entityDid, landblockId, posX, posY, objectName FROM ac2re_map.map_npc; `); // Tableau pour stocker les données converties let npcPosition = []; // Manipuler les données résultantes for (let row of result) { // Convertir les coordonnées de jeu en coordonnées Leaflet let leafletLoc = utilsMath.convertInGameLoctoLeafletLoc( row.landblockId, row.posX, row.posY ); // Ajouter les données converties au tableau npcPosition.push({ entityid: row.entityDid, literalValue: row.objectName, locx: leafletLoc.locx, locy: leafletLoc.locy, }); } return npcPosition; } catch (err) { console.error( "Erreur lors de la récupération des positions des NPC:", err ); return []; } } module.exports = { getCharacterPos, getNpcPos };