# Umstieg von CoreEngine

Mira hieß früher CoreEngine. Es ist dasselbe Plugin mit denselben Modulen und Configs: Daten, Claims, Konten und Items bleiben beim Update erhalten. Neu sind die Namen, unter denen Commands, Permissions und Platzhalter erreichbar sind. Die alten Namen funktionieren nicht mehr und müssen einmal umgestellt werden.

## Update in vier Schritten

1. Server stoppen und den Ordner `plugins/CoreEngine` sichern.
2. Die alte `CoreEngine-*.jar` aus `plugins/` entfernen. Den Ordner `plugins/CoreEngine` liegen lassen, Mira übernimmt ihn.
3. Die Mira-JAR in `plugins/` legen und den Server starten.
4. Permissions (zum Beispiel in LuckPerms), Platzhalter in anderen Plugins und eigene Befehls-Aliase oder Skripte auf die neuen Namen umstellen, siehe [Alt und neu](#alt-und-neu).

> **Tipp:** In LuckPerms lassen sich die alten Nodes im Web-Editor (`/lp editor`) schnell finden und ändern. Gruppen, die `coreengineclaim.rank.vip` hatten, brauchen danach `mira.claim.rank.vip`.

## Was beim ersten Start passiert

- `plugins/CoreEngine` wird in einem einzigen Schritt zu `plugins/Mira` umbenannt. Es wird nichts kopiert, es entsteht kein zweiter Datenstand.
- Die Hauptdatenbank `data/coreengine.db` heißt danach `data/mira.db`, ihre Begleitdateien (`-wal`, `-shm`, `-journal`) wandern mit, und `storage.sqlite-file` in der `config.yml` wird angepasst. Steht dort ein selbst gewählter Dateiname, bleibt alles, wie es ist.
- Die Claim-Datenbank `modules/claim/claims.db` behält ihren Namen.
- In den Kommentarzeilen der YAML-Dateien wird der alte Name durch Mira ersetzt. Eingestellte Werte bleiben unberührt.
- Ein nie veränderter Standard-Chat-Präfix `CORE »` wird zu `MIRA »`. Ein angepasster Präfix bleibt stehen.
- Items aus der CoreEngine-Zeit (zum Beispiel Cosmetics, Shop-Waren, `/lore`- und `/sign`-Texte) werden weiter erkannt und umgestellt, sobald Mira sie das nächste Mal bearbeitet.
- Mira legt in `plugins/Mira` die Datei `.migrated-from-coreengine` an. Darin steht, wann was übernommen wurde.

## Wann Mira deaktiviert bleibt

Mira legt nie eine leere Datenbank neben die echten Daten. Passt etwas nicht, bleibt das Plugin deaktiviert und schreibt eine Meldung mit Anleitung (SEVERE) ins Log:

| Situation | Lösung |
|---|---|
| Die alte CoreEngine-JAR ist noch geladen | Server stoppen, `plugins/CoreEngine-*.jar` entfernen (den Ordner behalten), neu starten |
| `plugins/CoreEngine` und ein nicht leerer Ordner `plugins/Mira` existieren beide | Mira führt nie zusammen. Enthält `plugins/Mira` nur die Standarddateien eines ersten Testlaufs, diesen Ordner aus `plugins/` verschieben. Liegen dort die gültigen Daten, `plugins/CoreEngine` in ein Backup verschieben |
| Der Ordner lässt sich nicht in einem Schritt umbenennen | Server stoppen und den Ordner von Hand in `Mira` umbenennen (auf demselben Laufwerk), dann starten |
| In `plugins/Mira` liegt die Datei `.migration-incomplete` | Die Anweisungen in der Datei befolgen, die Datei löschen, neu starten |

## Alt und neu

| Bereich | Alt (CoreEngine) | Neu (Mira) |
|---|---|---|
| Reload | `/coreengine reload`, `/ce reload` | `/mira reload` (ohne Alias) |
| Bestätigungs-Handler (intern) | `/coreconfirm` | `/miraconfirm` |
| Ban-Aliase | `/coreban`, `/coretempban`, `/coreunban`, `/corebanip`, `/coreunbanip` | `/miraban`, `/miratempban`, `/miraunban`, `/mirabanip`, `/miraunbanip`; die Hauptbefehle `/cban`, `/ctempban`, `/cunban`, `/cbanip`, `/cunbanip` bleiben |
| Namespace-Schreibweise | `/coreengine:msg`, `coreengine:home` | `/mira:msg`, `mira:home` |
| Web-Panel | `/cweb` | `/cweb` (unverändert) |
| Admin-Permissions | `coreengine.*`, `coreengine.admin.reload` | `mira.*`, `mira.admin.reload` |
| Claim-Permissions | `coreengineclaim.<node>`, z. B. `coreengineclaim.admin`, `coreengineclaim.blocksperhour.<zahl>`, `coreengineclaim.rank.<rang>` | `mira.claim.<node>`, z. B. `mira.claim.admin`, `mira.claim.blocksperhour.<zahl>`, `mira.claim.rank.<rang>` |
| Web-Panel-Permissions | `core.web.*`, `core.web.use`, `core.web.category.<name>`, `core.web.cooldown.bypass` | `mira.web.*`, `mira.web.use`, `mira.web.category.<name>`, `mira.web.cooldown.bypass` |
| Alle anderen Permissions | `home.use`, `team.*`, `mod.ban`, ... | unverändert |
| Platzhalter | `%coreengine_<name>%`, z. B. `%coreengine_balance%` | `%mira_<name>%`, z. B. `%mira_balance%` |
| Claim-Platzhalter | `%coreengineclaim_<name>%`, z. B. `%coreengineclaim_blocks_available%` | `%miraclaim_<name>%`, z. B. `%miraclaim_blocks_available%` |
| Datenordner | `plugins/CoreEngine/` | `plugins/Mira/` (wird automatisch verschoben) |
| Modul-Configs | `plugins/CoreEngine/modules/*.yml` | `plugins/Mira/modules/*.yml` |
| Datenbank | `data/coreengine.db` | `data/mira.db` (wird automatisch umbenannt) |
| Claim-Config | `GriefPrevention.Database.UseCoreEngine` in `modules/claim.yml` | entfällt; ein noch vorhandener Eintrag wird nicht mehr gelesen und kann gelöscht werden |
| Jobs-Herkunftsprüfung | `placed-block-provider: coreengineprotect` (auch `cep` oder `native`) in `modules/jobs.yml` | `auto` oder `coreprotect`; ein alter Wert erzeugt eine Warnung im Log, Mira nutzt dann `auto` |
| Wiki-Adressen | `coreengine.org/coreengine/...` | `coreengine.org/mira/...` (alte Links leiten weiter) |

Die vollständige Liste aller Commands und Permissions steht in der [Command- & Permission-Referenz](commands.md), alle Platzhalter unter [Integrationen](integrations.md#placeholderapi).

## Frühere Zusatz-Plugins

CoreEngineProtect und das eigenständige CoreEngineClaim gibt es nicht mehr. Der Grundstücksschutz steckt als [Claim-Modul](claim-overview.md) direkt in Mira, die Block-Historie für den [Exploit-Schutz der Jobs](jobs.md#exploit-schutz) und für das Untersuchungswerkzeug der Claims liefert [CoreProtect](integrations.md#coreprotect). Ihre JAR-Dateien gehören nicht mehr in den Ordner `plugins/`. Ein alter Ordner `plugins/CoreEngineClaim` aus der Zeit des eigenständigen Claim-Plugins wird nicht mehr automatisch übernommen.
