Pular para o conteúdo principal

FreeMinecraftModels

FreeMinecraftModels é ao mesmo tempo um runtime de modelos customizados e uma API voltada para desenvolvedores.

O plugin atual não é mais apenas um fluxo de trabalho de "pasta imports mais /fmm reload". A base de código atual adiciona:

  • um fluxo de configuração inicial e lembrete ao entrar até que a configuração seja marcada como concluída
  • um menu de configuração gerenciado pelo Nightbreak para instalação e atualização de pacotes oficiais de modelos
  • uma pasta de resource pack gerado em plugins/FreeMinecraftModels/output/FreeMinecraftModels
  • um artefato de pack compactado em plugins/FreeMinecraftModels/output/FreeMinecraftModels.zip
  • uma superfície de comandos mais ampla para configuração, atualizações de conteúdo, spawn, disfarces, props e depuração
  • bones de ponto de montaria — bones cujo nome começa com m_ criam pontos de assento montáveis em um modelo, permitindo que jogadores montem entidades customizadas
  • JSON de modelo de exibição customizado — coloque um arquivo .json irmão (exportação de display-item do Blockbench) ao lado de um .bbmodel para substituir a aparência do item no jogo (requer 1.21.4+)
  • itens customizados programáveis — modelos cuja configuração YML define material: tornam-se itens seguráveis customizados com suporte completo a scripting Lua e 22 hooks de item
  • navegador de conteúdo para admins (/fmm admin) — um menu de inventário para admins navegarem pacotes instalados, pastas, modelos e itens customizados
  • menu de itens craftáveis para jogadores (/fmm) — um menu de inventário mostrando todos os itens craftáveis com suas receitas; clicar em um item mostra a grade espacial 3x3 com seta e resultado
  • sistema de disfarce de jogadores/fmm disguise <model> [player], /fmm undisguise [player], /fmm disguiselist, com uma DisguiseAPI pública para plugins de terceiros
  • loja de mobília/fmm shop opcional baseado em Vault para vender props craftáveis, configurada por receita via shopEnabled / shopPrice
  • API de UI de jogador — scripts Lua podem exibir boss bars, action bars e títulos para jogadores
  • LocationAPI — plugins de terceiros podem registrar detectores de dungeon e provedores de proteção que alimentam os predicados Lua em.location.is_in_dungeon e em.location.is_protected do FMM

Comece Aqui

Scripting Lua

O FreeMinecraftModels inclui suporte a scripting Lua tanto para props quanto para itens customizados, alimentado pelo motor de scripting MagmaCore 2.0. Os scripts ficam em plugins/FreeMinecraftModels/scripts/.

Hooks de Prop (8)

Scripts de prop podem responder aos seguintes hooks:

HookGatilho
on_spawnO prop é spawnado no mundo
on_game_tickA cada tick de jogo enquanto o prop estiver vivo
on_zone_enterUm jogador entra na zona de interação do prop
on_zone_leaveUm jogador sai da zona de interação do prop
on_destroyO prop é removido do mundo
on_left_clickUm jogador clica com o botão esquerdo no prop
on_right_clickUm jogador clica com o botão direito no prop
on_projectile_hitUm projétil atinge o prop

Scripts de prop recebem uma tabela context.prop com campos como model_id e current_location, e métodos como play_animation(name) e stop_animation().

Hooks de Item (22)

Scripts de itens customizados (para modelos com material: definido em seu YML) podem responder aos seguintes hooks:

HookGatilho
on_equipO item é equipado (entra em um slot ativo)
on_unequipO item é desequipado (sai de um slot ativo)
on_attack_entityO jogador ataca uma entidade segurando o item
on_kill_entityO jogador mata uma entidade segurando o item
on_take_damageO jogador sofre dano enquanto o item está equipado
on_shield_blockO jogador bloqueia dano com um escudo
on_shoot_bowO jogador atira com um arco
on_projectile_hitUm projétil disparado pelo jogador atinge algo
on_projectile_launchO jogador lança um projétil
on_right_clickO jogador clica com o botão direito segurando o item
on_left_clickO jogador clica com o botão esquerdo segurando o item
on_shift_right_clickShift + clique direito segurando
on_shift_left_clickShift + clique esquerdo segurando
on_interact_entityO jogador clica com botão direito em uma entidade segurando
on_swap_handsO item é trocado entre as mãos
on_dropO jogador derruba o item
on_break_blockO jogador quebra um bloco segurando o item
on_consumeO item é consumido (comida/poção)
on_item_damageO item sofre dano de durabilidade
on_fishO jogador usa uma vara de pesca
on_deathO jogador morre com o item equipado
on_game_tickA cada tick do servidor enquanto o item estiver equipado

Scripts de item recebem uma tabela context.item com campos e métodos relevantes ao item segurado e ao jogador que o segura. Scripts Lua também podem usar a API de UI do jogador para exibir boss bars, action bars e títulos.

Notas Atuais

  • Packs oficiais gerenciados pelo Nightbreak embutidos no plugin: Basic Furniture Pack, BetterStructures Prop Pack, EliteMobs Prop Pack, Craftenmine's Weapons Item Pack e Craftenmine Tools Item Pack.
  • O FreeMinecraftModels reconstrói sua saída de resource pack na inicialização e em /fmm reload, e dispara um FmmReloadedEvent para que plugins dependentes possam reanexar suas referências de modelo.
  • O ResourcePackManager continua sendo a forma recomendada de distribuir automaticamente o pack gerado aos clientes.