Zum Hauptinhalt springen

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

BefehlBerechtigungHinweise
/fmm disguise <modelID>freeminecraftmodels.disguise.selfVerkleidet den Sender. Nur Spieler
/fmm disguise <modelID> <player>freeminecraftmodels.disguise.othersVerkleidet den genannten Spieler. Funktioniert von der Konsole
/fmm undisguisefreeminecraftmodels.disguise.selfEntfernt die Verkleidung des Senders. Nur Spieler
/fmm undisguise <player>freeminecraftmodels.disguise.othersEntfernt die Verkleidung des genannten Spielers. Funktioniert von der Konsole
/fmm disguiselistfreeminecraftmodels.disguise.othersListet 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 reload werden 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 mount mit /fmm disguise fü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.