Erster Commit
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
// -------------------------------------------------------------
|
||||
// EINMALIGES MIGRATIONSSKRIPT
|
||||
// Überträgt tiles.json und objectConfig.json in die neuen
|
||||
// "tile_config"- und "object_config"-Tabellen der Datenbank.
|
||||
//
|
||||
// Ausführen mit: node migrate_configs.js
|
||||
// (im selben Ordner wie server.js, NACHDEM die beiden Tabellen
|
||||
// per SQL angelegt wurden)
|
||||
// -------------------------------------------------------------
|
||||
|
||||
import fs from "fs";
|
||||
import path from "path";
|
||||
import { fileURLToPath } from "url";
|
||||
import mysql from "mysql2/promise";
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = path.dirname(__filename);
|
||||
|
||||
const db = await mysql.createPool({
|
||||
host: "156.67.28.205",
|
||||
user: "game",
|
||||
password: "tito13101",
|
||||
database: "gamegta",
|
||||
port: "3406",
|
||||
connectionLimit: 5
|
||||
});
|
||||
|
||||
async function migrate() {
|
||||
// --- TILES ---
|
||||
const tilesPath = path.join(__dirname, "tiles.json");
|
||||
if (fs.existsSync(tilesPath)) {
|
||||
const tiles = JSON.parse(fs.readFileSync(tilesPath, "utf8"));
|
||||
let count = 0;
|
||||
|
||||
for (const [id, tile] of Object.entries(tiles)) {
|
||||
await db.query(
|
||||
`INSERT INTO tile_config (id, name, color, collision) VALUES (?, ?, ?, ?)
|
||||
ON DUPLICATE KEY UPDATE name=?, color=?, collision=?`,
|
||||
[
|
||||
Number(id), tile.name || ("Tile " + id), tile.color || "#888888", tile.collision ? 1 : 0,
|
||||
tile.name || ("Tile " + id), tile.color || "#888888", tile.collision ? 1 : 0
|
||||
]
|
||||
);
|
||||
count++;
|
||||
}
|
||||
console.log(`✅ ${count} Tile(s) migriert.`);
|
||||
} else {
|
||||
console.log("Keine tiles.json gefunden - übersprungen.");
|
||||
}
|
||||
|
||||
// --- OBJECTS ---
|
||||
const objectsPath = path.join(__dirname, "objectConfig.json");
|
||||
if (fs.existsSync(objectsPath)) {
|
||||
const objects = JSON.parse(fs.readFileSync(objectsPath, "utf8"));
|
||||
let count = 0;
|
||||
|
||||
for (const [type, obj] of Object.entries(objects)) {
|
||||
await db.query(
|
||||
`INSERT INTO object_config (type, name, color, width, height, collision, interactive, action)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
||||
ON DUPLICATE KEY UPDATE name=?, color=?, width=?, height=?, collision=?, interactive=?, action=?`,
|
||||
[
|
||||
type, obj.name || type, obj.color || "#888888", obj.width || 32, obj.height || 32,
|
||||
obj.collision ? 1 : 0, obj.interactive ? 1 : 0, obj.action || null,
|
||||
obj.name || type, obj.color || "#888888", obj.width || 32, obj.height || 32,
|
||||
obj.collision ? 1 : 0, obj.interactive ? 1 : 0, obj.action || null
|
||||
]
|
||||
);
|
||||
count++;
|
||||
}
|
||||
console.log(`✅ ${count} Objekt-Typ(en) migriert.`);
|
||||
} else {
|
||||
console.log("Keine objectConfig.json gefunden - übersprungen.");
|
||||
}
|
||||
|
||||
console.log("Migration abgeschlossen.");
|
||||
console.log("Du kannst tiles.json/objectConfig.json jetzt umbenennen/archivieren, sobald du geprüft hast, dass alles im Spiel korrekt lädt.");
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
migrate().catch(err => {
|
||||
console.error("Migration fehlgeschlagen:", err);
|
||||
process.exit(1);
|
||||
});
|
||||
Reference in New Issue
Block a user