Pular para o conteúdo principal

Fast Crafting

Menu de criação no servidor com criação rápida, catálogo de profissões, busca e grade 3x3 opcional.

Privadasv0.1.1Economia e criação
RequerTypeWriter0.9BasicRPG CoreGUIMMOItemsopcional

Criada para a rede BornToCraft. Esta extensão é documentada como referência e não é distribuída.

Visão geral​

O Fast Crafting substitui a mesa de trabalho vanilla por um menu que lista as receitas que um jogador pode fazer e as cria com um clique. As receitas são lidas do catálogo de receitas do servidor, e o que um jogador pode criar é recalculado a partir do próprio inventário, no servidor. Os jogadores escolhem uma quantidade, ou usam shift + clique para criar o máximo, e os ingredientes são retirados do inventário.

O menu integrado usa um único inventário de 54 slots com duas abas. Crafting tem uma linha de criação rápida com as receitas atualmente disponíveis e uma grade 3x3 manual. Recipes é um catálogo organizado pelas profissões do RPG Core (combate, mineração, agricultura, criação e assim por diante), com contadores de disponíveis e totais, filtros, ordenação e um diálogo de busca. Clicar em uma receita do catálogo a cria imediatamente; uma receita nunca é colocada na grade por você.

A extensão roda no build BTC do TypeWriter (BTC Core, Paper/Folia) e é documentada aqui como referência. Ela lê os metadados das receitas do RPG Core e aplica a ele o bloqueio por nível das receitas.

Recursos​

  • Criação com um clique — clique em uma receita para criar a quantidade selecionada (1, 4, 8, 16, 32, 64 por padrão, ou automática), shift + clique para o máximo.
  • Linha de criação rápida — mostra as receitas disponíveis, apenas para jogadores com uma permissão.
  • Catálogo por profissão — nove categorias com contadores available / total, a partir da profissão do RPG Core de cada receita.
  • Busca, ordenação e filtro — uma busca por diálogo do Paper sobre nome, identificador e profissão, ordenação alfabética ou por disponibilidade e filtros de todas, disponíveis ou faltantes.
  • Grade 3x3 manual — uma grade opcional com um slot de saída, onde o jogador coloca os ingredientes à mão; os itens restantes voltam para ele quando o menu fecha.
  • Substituição da mesa de trabalho — clicar com o botão direito em uma mesa de trabalho pode abrir este menu no lugar dela.
  • Fontes de receitas — receitas vanilla, um único namespace como custom ou receitas de estações do MMOItems.
  • Bloqueio por nível — o bloqueio por nível de receitas do RPG Core é aplicado, e outros plugins podem recusar uma criação por meio de um evento.
  • Resultados seguros — o excedente cai aos pés do jogador ou bloqueia a criação, e um cooldown opcional limita o spam.

Instalação​

  1. Instale o RPG Core (a extensão RPGBundle), a extensão Basic do TypeWriter e a extensão GUI (GuiAndDialogs). O Fast Crafting não carrega sem elas.
  2. Opcional: instale o MMOItems se quiser suas receitas de estações (useMMOItemsRecipes).
  3. Coloque o JAR do Fast Crafting em plugins/Typewriter/extensions/ e reinicie o servidor.
  4. Conceda a permissão fastcrafting.quickcraft aos jogadores que podem ver a linha de criação rápida.

Primeiros passos​

Abra o menu integrado a partir de um comando:

  1. No painel web do TypeWriter, abra uma page manifest e adicione uma ação Fast Crafting.
  2. Defina inventoryTitle, deixe inventoryRows em 6 e ative integratedMenu.enabled.
  3. Deixe categoryIds com as nove profissões do RPG Core, ou mantenha apenas as que você usa. Ative classicCrafting.enabled se quiser a grade 3x3 manual.
  4. Se você quer apenas as suas próprias receitas, defina recipeNamespace como o namespace das suas receitas, por exemplo custom.
  5. Adicione uma entry de comando personalizado (por exemplo fastcrafting) e coloque a ação Fast Crafting em seus triggers. NPCs, itens e diálogos também podem disparar a ação.
  6. Para substituir a mesa de trabalho vanilla, ative replaceCraftingTable e, se necessário, defina replaceCraftingTablePermission.
  7. Publique, pegue alguns ingredientes e execute o comando.
Dois layouts

Com integratedMenu.enabled desativado (o padrão), a ação abre o layout mais antigo, construído a partir de layoutPool, recipeGrid e marcadores fastcraft_button:. Ative-o para o menu de inventário único descrito aqui. O menu integrado ignora os botões antigos de abrir e fechar e o botão SELECTION_INFO.

No layout antigo, os marcadores são OPEN_GRID, REFRESH, PAGE_PREV, PAGE_NEXT, CRAFT_AMOUNT, SELECTION_INFO e CLOSE. Clique esquerdo em uma receita a fabrica, Shift + clique esquerdo fabrica o máximo e clique direito a seleciona. SELECTION_INFO exibe a receita selecionada com o clique direito (ou fabricada por último), com textos tirados do campo selectionInfo: nome, quantidade obtida, número de fabricações possíveis e uma linha por ingrediente. Veja Fast Crafting para as chaves.

Como funciona​

O catálogo é construído uma vez por configuração de entry a partir das receitas do Bukkit: apenas receitas de criação, filtradas por recipeNamespace e disableVanillaRecipes. A profissão de cada receita vem do RPG Core, e receitas sem uma vão para crafting. O que pode ser criado é recalculado a partir do inventário do jogador, que é atualizado quando ele move, pega, solta ou consome itens.

Os resultados que são itens vanilla são convertidos em seus equivalentes BTC quando o RPG Core tem uma substituição. Sem um recipeNamespace, receitas cujo resultado é um item do CraftEngine ou BTC ficam ocultas do catálogo, então defina recipeNamespace (por exemplo custom) para listar suas receitas personalizadas.

O menu integrado tem seis linhas:

LinhaAba CraftingAba Recipes
1As abas Crafting e Recipes.As abas Crafting e Recipes.
2Receitas de criação rápida (até quickRecipesPerPage, ocultas sem a permissão de criação rápida), com paginação.As categorias de profissão com seus contadores available / total.
3 a 5A grade 3x3 manual, o slot de saída e o botão de quantidade.As receitas da categoria escolhida (recipesPerPage, 27 por padrão).
6Controles do menu.Controles de busca, ordenação, filtro e página.

O clique esquerdo em uma receita cria a quantidade selecionada. Shift + clique cria o máximo quando allowShiftCraftAll está ativado. O botão de quantidade alterna entre os valores de craftAmountButton.values, com uma opção Auto quando includeAuto está ativado. O diálogo de busca procura no nome, identificador e profissão da receita. A ordenação padrão é defaultSort (AVAILABLE_FIRST ou ALPHABETICAL) e o filtro padrão é defaultFilter (ALL, AVAILABLE ou MISSING). Os textos do menu estão em francês.

A grade manual é posicionada com classicCrafting. Os jogadores colocam itens nela à mão, e o resultado é criado quando clicam no slot de saída, com shift + clique para o máximo. Os itens deixados na grade voltam ao inventário quando o menu fecha.

Configuração​

Tudo é definido na entry Fast Crafting. As principais configurações que não tratam do layout:

ConfiguraçãoFinalidade
fastCraftPermissionPermissão necessária para abrir o menu e criar (vazia para todos).
recipeNamespaceLista apenas as receitas desse namespace.
disableVanillaRecipesOculta as receitas minecraft:.
useMMOItemsRecipesAdiciona as receitas de estações do MMOItems quando o MMOItems está ativado e oculta as receitas vanilla.
dropWhenInventoryFullSolta o resultado aos pés do jogador quando o inventário está cheio. Desativado significa que a criação é recusada quando o resultado não cabe.
craftCooldownTicksCooldown entre criações em ticks (0 para nenhum).
autoRefreshTicksAtualiza o menu aberto a cada N ticks (0 para nenhum).
replaceCraftingTableAbre este menu em vez da mesa de trabalho vanilla. Jogadores que se agacham mantêm a mesa vanilla.

Permissões​

PermissãoConcede
fastcrafting.quickcraftMostra a linha de criação rápida do menu integrado. O nome é o padrão de integratedMenu.quickCraftPermission; deixe-o vazio para mostrar a linha a todos.
valor de fastCraftPermissionUma permissão à sua escolha para abrir o menu e criar.
valor de replaceCraftingTablePermissionUma permissão à sua escolha para receber o menu ao usar uma mesa de trabalho.

A extensão não tem comando próprio nem placeholders. Os cliques no menu usam um canal interno fastcraft: ligado ao menu aberto do jogador e que não pode ser digitado.

Entries​

1 entradas, geradas a partir do código-fonte da extensão.

Ações1

Solução de problemas​

O menu é o layout antigo. integratedMenu.enabled está desativado, que é o padrão. Ative-o para obter as abas, o catálogo e a linha de criação rápida.

O catálogo está vazio. Verifique recipeNamespace: apenas as receitas desse namespace são listadas. Sem um namespace, receitas cujo resultado é um item do CraftEngine ou BTC ficam ocultas. Com disableVanillaRecipes ou useMMOItemsRecipes, as receitas minecraft: são removidas.

A linha de criação rápida não aparece. O jogador não tem a permissão de criação rápida (fastcrafting.quickcraft por padrão). Esvazie o campo para mostrar a linha a todos.

Uma receita aparece acinzentada ou se recusa a ser criada. O jogador pode não ter os ingredientes, estar abaixo do nível do RPG Core exigido pela receita (a mensagem aparece na action bar) ou outro plugin pode ter cancelado a criação. A criação também é recusada enquanto o cooldown está em andamento e quando o resultado não cabe e dropWhenInventoryFull está desativado.

Uma receita está na categoria errada. A categoria vem da profissão registrada no RPG Core para a chave da receita. Receitas sem uma vão para crafting. Uma categoria em categoryIds que o RPG Core não define ainda é exibida, com um nome e um ícone genéricos.

A mesa de trabalho vanilla não é substituída. replaceCraftingTable deve estar ativado, o jogador deve ter replaceCraftingTablePermission se definida, e jogadores agachados mantêm a mesa vanilla. A primeira entry com a opção ativada é a usada.

O botão de busca não faz nada. integratedMenu.searchEnabled deve estar ativado. A busca abre um diálogo do Paper, então exige um servidor que suporte diálogos do Paper.

Extensões relacionadas​

  • RPG Core — profissões e bloqueio por nível de receitas usados pelo catálogo.
  • GUI — motor de menus.
  • MMOItems — receitas de estações com useMMOItemsRecipes.