Zum Hauptinhalt springen

FreeMinecraftModels

FreeMinecraftModels ist sowohl eine Laufzeitumgebung für benutzerdefinierte Modelle als auch eine API für Entwickler.

Das aktuelle Plugin ist nicht mehr nur ein "imports-Ordner plus /fmm reload"-Workflow. Die aktuelle Codebasis bietet zusätzlich:

  • einen Ersteinrichtungs-Ablauf und eine Erinnerung beim Beitritt, bis die Einrichtung als abgeschlossen markiert ist
  • ein Nightbreak-gestütztes Einrichtungsmenü für offizielle Modellpaket-Installationen und -Updates
  • einen generierten Ressourcenpaket-Ordner unter plugins/FreeMinecraftModels/output/FreeMinecraftModels
  • ein gezipptes Paket-Artefakt unter plugins/FreeMinecraftModels/output/FreeMinecraftModels.zip
  • eine erweiterte Befehlsoberfläche für Einrichtung, Inhaltsaktualisierungen, Spawning, Verkleidungen, Props und Debugging
  • Mount-Point-Bones — Bones, deren Name mit mount_ beginnt, erzeugen reitbare Sitzpunkte an einem Modell, sodass Spieler benutzerdefinierte Entitäten reiten können
  • Benutzerdefiniertes Display-Modell-JSON — platziere eine begleitende .json-Datei (Blockbench-Display-Item-Export) neben einer .bbmodel-Datei, um das In-Game-Aussehen des Items zu überschreiben (erfordert 1.21.4+)
  • Benutzerdefinierte, skriptfähige Items — Modelle, deren YML-Konfiguration material: setzt, werden zu haltbaren benutzerdefinierten Items mit voller Lua-Skripting-Unterstützung und 22 Item-Hooks
  • Admin-Inhaltsbrowser (/fmm admin) — ein Inventarmenü für Admins zum Durchsuchen installierter Pakete, Ordner, Modelle und benutzerdefinierter Items
  • Spieler-Menü für craftbare Items (/fmm) — ein Inventarmenü, das alle craftbaren Items mit ihren Rezepten zeigt; ein Klick auf ein Item zeigt das räumliche 3x3-Gitter mit Pfeil und Ausgabe
  • Spieler-Verkleidungssystem/fmm disguise <model> [player], /fmm undisguise [player], /fmm disguiselist, mit einer öffentlichen DisguiseAPI für Drittanbieter-Plugins
  • Möbelshop — optionaler Vault-gestützter /fmm shop zum Verkauf craftbarer Props, konfigurierbar pro Rezept über shopEnabled / shopPrice
  • Spieler-UI-API — Lua-Skripte können Boss-Bars, Action-Bars und Titel für Spieler anzeigen
  • LocationAPI — Drittanbieter-Plugins können Dungeon-Detektoren und Schutzanbieter registrieren, die FMMs Lua-Prädikate em.location.is_in_dungeon und em.location.is_protected antreiben

Hier starten

Lua-Skripting

FreeMinecraftModels enthält Lua-Skripting-Unterstützung sowohl für Props als auch für benutzerdefinierte Items, angetrieben durch die MagmaCore 2.0 Skript-Engine. Skripte befinden sich in plugins/FreeMinecraftModels/scripts/.

Prop-Hooks (8)

Prop-Skripte können auf folgende Hooks reagieren:

HookAuslöser
on_spawnProp wird in die Welt gespawnt
on_game_tickJeden Spiel-Tick, während der Prop existiert
on_zone_enterEin Spieler betritt die Interaktionszone des Props
on_zone_leaveEin Spieler verlässt die Interaktionszone des Props
on_destroyProp wird aus der Welt entfernt
on_left_clickEin Spieler klickt den Prop links an
on_right_clickEin Spieler klickt den Prop rechts an
on_projectile_hitEin Projektil trifft den Prop

Prop-Skripte erhalten eine context.prop-Tabelle mit Feldern wie model_id und current_location sowie Methoden wie play_animation(name) und stop_animation().

Item-Hooks (22)

Benutzerdefinierte Item-Skripte (für Modelle mit gesetztem material: in ihrer YML) können auf folgende Hooks reagieren:

HookAuslöser
on_equipItem wird ausgerüstet (kommt in einen aktiven Slot)
on_unequipItem wird abgelegt (verlässt einen aktiven Slot)
on_attack_entitySpieler greift eine Entität an, während er das Item hält
on_kill_entitySpieler tötet eine Entität, während er das Item hält
on_take_damageSpieler erleidet Schaden, während das Item ausgerüstet ist
on_shield_blockSpieler blockt Schaden mit einem Schild
on_shoot_bowSpieler schießt mit einem Bogen
on_projectile_hitEin vom Spieler abgefeuertes Projektil trifft etwas
on_projectile_launchSpieler startet ein Projektil
on_right_clickSpieler klickt rechts, während er das Item hält
on_left_clickSpieler klickt links, während er das Item hält
on_shift_right_clickShift + Rechtsklick, während er das Item hält
on_shift_left_clickShift + Linksklick, während er das Item hält
on_interact_entitySpieler klickt eine Entität rechts an, während er das Item hält
on_swap_handsItem wird zwischen den Händen getauscht
on_dropSpieler lässt das Item fallen
on_break_blockSpieler bricht einen Block, während er das Item hält
on_consumeItem wird konsumiert (Nahrung/Trank)
on_item_damageItem nimmt Haltbarkeitsschaden
on_fishSpieler benutzt eine Angel
on_deathSpieler stirbt, während das Item ausgerüstet ist
on_game_tickJeden Server-Tick, während das Item ausgerüstet ist

Item-Skripte erhalten eine context.item-Tabelle mit Feldern und Methoden, die für das gehaltene Item und den haltenden Spieler relevant sind. Lua-Skripte können außerdem die Spieler-UI-API nutzen, um Boss-Bars, Action-Bars und Titel anzuzeigen.

Aktuelle Hinweise

  • Offizielle Nightbreak-verwaltete Pakete, die ins Plugin integriert sind: Basic Furniture Pack, BetterStructures Prop Pack, EliteMobs Prop Pack, Craftenmine's Weapons Item Pack und Craftenmine Tools Item Pack.
  • FreeMinecraftModels baut seine Ressourcenpaket-Ausgabe beim Start und bei /fmm reload neu auf und sendet ein FmmReloadedEvent, damit abhängige Plugins ihre Modellreferenzen erneut anhängen können.
  • ResourcePackManager bleibt die empfohlene Methode, das generierte Paket automatisch an Clients zu verteilen.