Plugin YAML/pt

From BukkitWiki
Jump to: navigation, search

Quando Bukkit carrega um plugin, ele precisa saber algumas informações básicas sobre ele. Ele lê essas informações de um arquivo YAML, 'plugin.yml'. Este arquivo é composto por um conjunto de atributos, cada um definido em uma linha e sem recuo.

Attributes
Atributo Requerido? Descrição Exemplo Notas
name sim O nome de seu plugin name: MeuPlugin
  • Deve conter apenas caracteres alfanuméricos e sublinhado (a-z,A-Z,0-9, _)
  • Usado para determinar a pasta de dados do plugin. As pastas de dados são colocados na pasta ./plugins/ por padrão.
  • É recomendado colocar o mesmo nome na jar, por exemplo 'MeuPlugin.jar'
version sim A versão de seu plugin version: 1.4.1
  • Version é uma seqüência arbitrária, no entanto, o formato mais comum é LançamentoMaior.LançamentoMenor.Construção (ex: 1.4.1).
  • Normalmente você vai aumentar esse valor a cada vez que você lançar um novo recurso ou correção de bug.
  • É exibido quando um usuário digita /version NomeDoPlugin
description não Uma descrição sobre a funcionalidade que seu plugin proporciona description: Esse plugin permite que você se coloque em chamas.
  • A descrição pode conter várias linhas.
  • É exibida quando um usuário digita /version NomeDoPlugin
load não Especifica quando seu plugin será carregado. Se não for definido, o padrão será POSTWORLD. load: STARTUP Tem 2 valores possíveis.
  • STARTUP
  • POSTWORLD
author não Identifica quem desenvolveu o plugin. author: CaptainInflamo
  • Dá credito ao desenvolvedor.
  • Usado em algumas mensagens de erro para fornecer comentários úteis sobre quem contatar quando ocorre um erro.
  • É recomendado usar seu nick do bukkit.org ou seu endereço de e-mail.
  • É exibido quando um usuário digita /version NomeDoPlugin
authors não Permite listar vários autores, se for um trabalho coletivo. Veja author. authors: [Cogito, verrier, EvilSeph]
  • Você pode definir tanto o autor e os autores, porém eles serão mesclados em um lista interna.
website não O website do plugin ou do autor. website: http://forums.bukkit.org/threads/MyPlugin.31337/
  • Se você não tem site dedicado, é recomendado usar um link para o post no fórum Bukkit onde este plugin está listado.
  • É exibido quando um usuário digita /version NomeDoPlugin
main sim Aponta a classe que você usa 'extends JavaPlugin' main: org.bukkit.plugin.MyPlugin
  • Note que isso deve conter o endereço completo para a classe, incluindo o nome da classe.
  • Se seu namespace for org.bukkit.plugin, e sua classe se chama MyPlugin então isso deve ser org.bukkit.plugin.MyPlugin
database não Marque true se seu plugin usa uma base de dados. database: false
depend não Uma lista de plugins que o seu plugin requer para carregar. depend: [UmPlugin, OutroPlugin]
  • O valor deve estar em um formato de lista YAML (Veja http://pt.wikipedia.org/wiki/YAML#Listas )
  • Use o atributo "name" do plugin necessário para especificar a dependência.
  • Se algum plugin listado aqui não for encontrado o seu plugin não irá carregar.
  • Se você definir uma lista de vários plugins e eles forem dependentes uns aos outros, todos irão falhar ao carregar.
  • (Veja: Wiki: Plugin_Dependencies)
prefix não O nome a ser usado para exibir no log do console, em vez do nome do plugin. prefix: prefixo-exibido
softdepend não Uma lista de plugins que são necessários para o seu plugin para ter uma funcionalidade completa. softdepend: [UmPlugin, OutroPlugin]
  • O valor deve estar em um formato de lista YAML (Veja http://pt.wikipedia.org/wiki/YAML#Listas )
  • Use o atributo "name" do plugin necessário para especificar a dependência.
  • Seu plugin irá carregar depois dos plugins listados aqui.
  • softdepend's circulares são carregados de forma arbitrária.
  • (Veja: Wiki: Plugin_Dependencies)
loadbefore não Uma lista de plugins que devem ser carregados após o seu plugin. loadbefore: [UmPlugin, OutroPlugin]
  • O valor deve estar em um formato de lista YAML (Veja http://pt.wikipedia.org/wiki/YAML#Listas )
  • Seu plugin será tratado como softdepend dos plugins listados.
  • Use o atributo "name" do plugin necessário para especificar a dependência.
  • Seu plugin irá carregar antes de todos plugins listados aqui.
  • softdepend's circulares são carregados de forma arbitrária.
  • (Veja: Wiki: Plugin_Dependencies)
commands não Os comandos que o plugin quer registrar, e também uma lista opcional de atributos.

commands:
 flagrate:
   [atributos opcionais de comandos]

  • O comando não pode conter o iniciante '/' que deve ser colocado para emitir um comando.
  • Você pode escolher o nome que você deseja para o comando no entanto, comandos 'comuns' como /kick muitas vezes já estão registrados. Use o atributo 'alias' para registrar comandos alternativos. @TODO: nós estamos felizes com isso.
permissions não Permissões que o plugin deseja registrar. Cada node representa uma permissão para se registrar. Cada permissão pode ter atributos adicionais.
permissions:
  inferno.*:
    [atributos opcionais de permissões]
  inferno.flagate:
    [atributos opcionais de permissões]
  inferno.burningdeaths:
    [atributos opcionais de permissões]
  • O registro de permissões é opcional, também pode ser feito a partir do código.
  • O registro de permissões permite que você defina as descrições, padrões e permissões pai e filhas.
  • Nomes de permissão devem ser mantidas no estilo de <nome do plugin>.[categoria].[categoria].<permissão>


Um bloco de comando inicia com o nome do comando, e em seguida a lista de atributos.

Atributo Requerido? Descrição Exemplo Notas
description não Uma curta descrição do que seu comando faz. description: Coloca fogo em si mesmo.
  • Pode ser utilizado em conjunto com /help
aliases não Nomes de comandos alternativos que um usuário pode usar no lugar do comando original.
aliases: combust_me OU 
aliases: [combust_me, combustMe, cm]
permission não O node de permissão mais básico requerido para usar o comando.
permission: inferno.flagrate
  • Este node de permissão pode ser usado para determinar se um player deve ser capaz de ver o comando
  • Alguns plugins podem usar isso para fazerem um /help personalizado.
permission-message não Uma mensagem para quando não há permissão. permission-message: Você não tem a permissão /<permission>
  • Exibito a um player que tenta usar o comando, mas não tem a permissão associada.
  • <permission> e um macro que é substituído com o node de permissão que é necessário para usar o comando.
  • Você pode usar aspas vazias para indicar nada deve ser exibido.
usage não Uma curta descrição de como deve ser usado o comando. usage: Esso de sintaze! Talvez você queira dizer /<command> NomeDoPlayer?
  • Exibido para quem emitiu o comando quando o handler de comando do plugin (tipicamente onCommand) retorna com return false.
  • <command> é uma macro que é substituída pelo comando emitido onde quer que ocorra.
  • Para usar a string "Uso:" (ex: usage: Uso: /god [player], coloque o texto após usage: entre aspas duplas:
    usage: "Uso: /god [player]"


Um bloco de permissão começa com o nome da permissão, e em seguida uma lista de atributos

Atributo Requerido? Descrição Exemplo Notas
description não Uma curta descrição do que a permissão permite
description: Permite que o player coloque fogo em si mesmo
  • Permite o acesso programado, e ajuda os administradores dos servidores.
default não Marca o valor padrão da permissão
default: true
  • Se não existir o padrão será marcado para OP
  • valores permitidos: true, false, op, not op
  • padrão op significa que o player terá permissão se ele for op
  • not op significa o contrário(sem op)
children não Permite que você defina as permissões-filhas da permissão. Nodes filhas são geralmente nomes de permissão
children:
  inferno.flagrate: true
  inferno.burningdeaths: true
  • Cada node de permissões filhas deve ser defina como true ou false
    • Uma node com true faz a permissão pai herda-la
    • Uma node com false herda a permissão inversa.
  • Também pode conter outros nodes de permissão {1}


Exemplo:

 name: Inferno
 version: 1.4.1
 description: Esse plugin permite que você se coloque em chamas.
 # We could place every author in the authors list, but chose not to for illustrative purposes
 # Also, having an author distinguishes that person as the project lead, and ensures their 
 # name is displayed first
 author: CaptainInflamo
 authors: [Cogito, verrier, EvilSeph] 
 website: http://forums.bukkit.org/threads/MyPlugin.31337/
 
 main: com.captaininflamo.bukkit.inferno.Inferno
 database: false
 depend: [NewFire, FlameWire]
 
 commands:
   flagrate:
     description: Coloca fogo em si.
     aliases: [combust_me, combustMe]
     permission: inferno.flagrate
     usage: Erro de sintaxe! Use simplesmente /&lt;command&gt; para colocar fogo em si.
   burningdeaths:
     description: Lista quantas vezes voce ja morreu pelo fogo.
     aliases: [burning_deaths, burningDeaths]
     permission: inferno.burningdeaths
     usage: |
       /&lt;command&gt; [player]
       Exemplo: /&lt;command&gt; - ve quantas vezes você foi queimado ate a morte
       Exemplo: /&lt;command&gt; CaptainIce - ve quantas vezes CaptainIce foi queimado ate a morte
 
 permissions:
   inferno.*:
     description: Da acesso a todos comandos do Inferno
     children:
       inferno.flagrate: true
       inferno.burningdeaths: true
       inferno.burningdeaths.others: true
   inferno.flagrate:
     description: Permite colocar fogo em si
     default: true
   inferno.burningdeaths:
     description: Permite ver quantas vezes voce foi queimado ate a morte
     default: true
   inferno.burningdeaths.others:
     description: Permite ver quantas vezes outros players foram queimados ate a morte
     default: op
     children:
       inferno.burningdeaths: true
Language   EnglishбеларускаяDeutschespañolsuomifrançaisitaliano한국어Nederlandsnorskpolskiportuguêsрусскийlietuviųčeština