Spieler-Verkleidungen
FreeMinecraftModels kann jeden Online-Spieler als geladenes Modell verkleiden. Verkleidungen werden über Befehle, eine öffentliche DisguiseAPI und eine pro-Spieler-PlayerDisguiseEntity gesteuert, die die Unsichtbarkeit und das Modell-Rendering für den verkleideten Spieler übernimmt.
Befehle
| Befehl | Berechtigung | Hinweise |
|---|---|---|
/fmm disguise <modelID> | freeminecraftmodels.disguise.self | Verkleidet den Sender. Nur Spieler |
/fmm disguise <modelID> <player> | freeminecraftmodels.disguise.others | Verkleidet den genannten Spieler. Funktioniert von der Konsole |
/fmm undisguise | freeminecraftmodels.disguise.self | Entfernt die Verkleidung des Senders. Nur Spieler |
/fmm undisguise <player> | freeminecraftmodels.disguise.others | Entfernt die Verkleidung des genannten Spielers. Funktioniert von der Konsole |
/fmm disguiselist | freeminecraftmodels.disguise.others | Listet jeden verkleideten Spieler und das Modell auf, als das er verkleidet ist |
Die Wildcard freeminecraftmodels.* gewährt standardmäßig (OP) alle drei Berechtigungen (admin, disguise.self, disguise.others).
Verhalten
- Das Verkleiden eines bereits verkleideten Spielers ersetzt die vorherige Verkleidung sauber — kein vorheriges Enthüllen nötig.
- Der verkleidete Spieler wird für andere Spieler unsichtbar gemacht, sodass nur das Modell sichtbar ist. Der verkleidete Spieler sieht sich selbst weiterhin normal.
- Die Unsichtbarkeit bleibt durch Milcheimer, Beacon-Effekt-Lösungen und andere Interaktionen erhalten, die den Effekt normalerweise entfernen würden.
- Die Hitbox des Spielers bleibt unverändert. Mob-Zielerfassung, Kollision und PvP funktionieren wie gewohnt.
- Verkleidungen überleben keinen Server-Neustart. Sie werden nur im Speicher verfolgt.
- Bei
/fmm reloadwerden alle aktiven Verkleidungen als Teil des Plugin-Shutdowns abgebaut. Spieler müssen nach einem Reload erneut verkleidet werden.
Bedrock-Clients
Verkleidungen verlassen sich darauf, dass FMM das benutzerdefinierte Modell rendert. Damit Verkleidungen für Bedrock-Spieler sichtbar werden, musst du sendCustomModelsToBedrockClients: true in config.yml setzen und eine Bedrock-kompatible Ressourcenpaket-Pipeline haben (Floodgate + Geyser + konvertiertes Ressourcenpaket). Wenn das nicht konfiguriert ist, sehen Bedrock-Spieler weder das Modell noch den darunterliegenden unsichtbaren Spieler — sie sehen praktisch nichts an der Stelle, an der der verkleidete Spieler steht.
DisguiseAPI
Drittanbieter-Plugins können Verkleidungen programmatisch über com.magmaguy.freeminecraftmodels.api.DisguiseAPI steuern.
import com.magmaguy.freeminecraftmodels.api.DisguiseAPI;
// Verkleiden (gibt false zurück, wenn die Modell-ID nicht geladen ist)
boolean ok = DisguiseAPI.disguise(player, "dragon");
// Enthüllen (gibt true zurück, wenn eine Verkleidung entfernt wurde)
DisguiseAPI.undisguise(player);
// Abfragen
boolean isDisguised = DisguiseAPI.isDisguised(player);
String modelID = DisguiseAPI.getDisguiseModelID(player); // null, wenn nicht verkleidet
// Unveränderliche Momentaufnahme aller verkleideten Spieler
Collection<Player> all = DisguiseAPI.getDisguisedPlayers();
Die API ist der öffentliche, refactor-sichere Einstiegspunkt. Plugins sollten DisguiseAPI aufrufen statt des internen DisguiseManager.
Häufige Anwendungsfälle
- Rollenspiel- und RPG-Server: verkleide Spieler als Boss-Modelle für Filmsequenzen oder Quest-Skripte.
- Event-Hosting: verkleide einen Ansager als riesiges benutzerdefiniertes Modell.
- Reittiere und Fahrzeuge: kombiniere
/fmm mountmit/fmm disguisefür kreative Transport-Setups. - EliteMobs-Integration: Boss-Skripte können den Spieler verkleiden, der ein Event ausgelöst hat, für einen vorübergehenden Verwandlungseffekt.
Fehlerbehebung
Es passiert nichts, wenn ich /fmm disguise dragon ausführe.
Die Modell-ID muss exakt einem geladenen Modell entsprechen. Prüfe /fmm admin oder /fmm stats, um den Modellnamen zu verifizieren. Wenn dem Sender freeminecraftmodels.disguise.others fehlt, gibt FMM absichtlich eine generische „ungültige Entity-ID"-Nachricht zurück, selbst wenn das Modell existiert — damit wird vermieden, dass die Liste geladener Modell-IDs an nicht autorisierte Spieler durchgesickert wird.
Meine Verkleidung ist nach /fmm reload verschwunden.
Erwartet. Alle Verkleidungen werden beim Reload abgebaut. Höre auf FmmReloadedEvent, falls du Verkleidungen automatisch erneut anwenden möchtest.
Bedrock-Spieler können die Verkleidung nicht sehen. Siehe Bedrock-Clients oben.
Der verkleidete Spieler ist für andere weiterhin sichtbar. Die Unsichtbarkeit wird als paket-basierter Effekt angewendet. Wenn ein anderes Plugin in jedem Tick die Unsichtbarkeit zwangsweise entfernt (einige Anti-Cheat-Plugins tun das), kann es FMMs Wiederanwenden behindern. Setze FMM auf die Whitelist oder deaktiviere die widersprüchliche Prüfung.