VanillaMine Plugins

Regras de publicação de plugins

Todo plugin publicado aqui segue estas regras. As seções A a D são baseadas nas regras de publicação do Poggit, com os mesmos códigos, atualizadas para o PocketMine-MP 5; a E e a F são nossas.

As regras marcadas como automáticas são verificadas no envio; o resto é verificado por um moderador. Um moderador que rejeita uma versão indica as regras que ela descumpre.

A. Sobre o plugin

A ideia do plugin. Plugins cujo propósito descumpre estas regras não são aceitos.

A1 Completo e útil é rejeitada

O plugin precisa estar completo e servir para algo. Partes inacabadas são permitidas se estiverem desativadas por padrão.

A2 Um propósito específico é rejeitada

O plugin precisa ter um propósito específico e útil para a maioria dos servidores. Plugins "core" feitos para um servidor privado e pacotes de funções sem relação entre si não são aceitos.

A3 Sem duplicatas é rejeitada

Se outro plugin daqui já faz tudo o que o seu faz, não publique o seu, a menos que aquele esteja desatualizado e abandonado. Explique na descrição o que o seu tem de melhor.

A4 Sem execução remota de código é rejeitada

Serviços externos precisam ser confiáveis ou totalmente transparentes, e o plugin nunca pode servir de porta dos fundos. É proibido baixar e executar código, inclusive atualizadores automáticos que baixem de qualquer lugar que não seja este repositório.

A5 O pagamento é opcional é rejeitada

O plugin precisa poder ser usado sem pagar, ao menos em um servidor pequeno (cerca de 5 jogadores). Um serviço externo pago precisa de um plano gratuito razoável.

A6 Bibliotecas são virions é rejeitada

Bibliotecas são publicadas como virions, não como plugins. A única exceção são plugins de API que fazem outros plugins funcionarem juntos; eles precisam de documentação clara para desenvolvedores.

A7 Só os seus próprios plugins é rejeitada

Não publique plugins de outras pessoas sem permissão. Para assumir um plugin abandonado, siga a regra F3.

B. Sobre o código

Se o código descumprir estas regras, a versão é rejeitada: altere o código e envie uma nova versão.

B1 Só versões de API lançadas verificada automaticamente é rejeitada

O plugin.yml só pode listar versões de API já lançadas, e só a mais antiga de cada versão principal (5.0.0, não 5.0.0 e 5.3.0).

B2 Sem ofuscação verificada automaticamente é rejeitada

O código precisa ser legível. Código ofuscado ou minificado não é aceito.

B3 Sem mensagens inúteis ao iniciar verificada automaticamente é rejeitada

Não mostre mensagens como "plugin ativado" ou o nome do autor ao iniciar ou parar, nem adicione comandos que só mostram a versão. Avisos e erros reais são permitidos.

B4 Inglês por padrão é rejeitada

Traduções são bem-vindas, mas o idioma padrão das mensagens e da configuração precisa ser o inglês.

C. Sobre a compatibilidade

Para que os plugins funcionem bem juntos. Se o código descumprir estas regras, a versão é rejeitada.

C1 Um namespace único verificada automaticamente é rejeitada

Use um namespace como NomeDoAutor\NomeDoPlugin (nunca pocketmine). Todas as classes do plugin, inclusive as bibliotecas incluídas, precisam estar dentro dele. Não o altere entre versões.

C2 Comandos é rejeitada

Comandos registrados diretamente no CommandMap usam o nome do plugin como prefixo (não iniciais), e todo comando implementa PluginOwned.

C3 Permissões verificada automaticamente é rejeitada

Os nomes das permissões começam com o nome do plugin e só usam letras, dígitos, hífens e pontos.

C4 Eventos é rejeitada

Escolha @priority e @handleCancelled com cuidado (NORMAL na dúvida) e nunca altere um evento na prioridade MONITOR.

C5 Arquivos e dados salvos é rejeitada

Só grave arquivos dentro da pasta de dados do plugin (exceto gerenciadores de plugins), não use chdir() e guarde os dados que o plugin adiciona a mundos, entidades ou itens sob uma tag com o nome do seu namespace.

D. Sobre a ficha

As informações da página do plugin. Se descumprirem estas regras, o moderador as devolve: corrija o formulário e envie o mesmo arquivo de novo.

D1 Uma descrição detalhada verificada automaticamente corrigir a ficha

Explique o que o plugin faz e por que é útil, sem supor que o leitor conhece os termos.

D2 Descrição em inglês corrigir a ficha

A descrição precisa estar disponível em inglês. Traduções podem vir depois.

D3 Uma descrição limpa corrigir a ficha

Só informações sobre o plugin: sem propaganda nem conteúdo sem relação. Alguns links de contato são permitidos.

D4 Uma descrição bem formatada corrigir a ficha

Use títulos, listas e blocos de código do Markdown para que a página seja fácil de ler.

D5 Um changelog informativo verificada automaticamente corrigir a ficha

Toda atualização precisa de um changelog que diga o que mudou para os usuários, não linhas como "Updated README.md".

D6 Uma licença de verdade verificada automaticamente corrigir a ficha

Escolha uma licença real (um identificador SPDX como MIT, GPL-3.0 ou LGPL-3.0). Licenças informais inventadas não são aceitas.

E. Segurança e privacidade

Os donos de servidores precisam poder confiar no que instalam. Descumprir estas regras faz a versão ser retirada e pode levar ao banimento da conta.

E1 Sem comportamento malicioso verificada automaticamente é rejeitada

Nada de portas dos fundos, dar operador ou permissões escondido, travar ou deixar servidores lentos de propósito, minerar criptomoedas ou executar programas do sistema sem um motivo claro e documentado.

E2 Declarar o acesso à rede e os dados verificada automaticamente é rejeitada

Se o plugin se conecta à internet, diga na descrição a quais serviços, para quê e quais dados envia. Estatísticas e telemetria precisam ser opcionais ou fáceis de desativar, e nunca podem enviar endereços IP, XUIDs ou o chat a terceiros sem o consentimento do dono do servidor.

E3 Sem código oculto ou gerado verificada automaticamente é rejeitada

Nada de código PHP escondido em arquivos que não são PHP, gravar arquivos PHP durante a execução ou blocos codificados que são decodificados e executados.

E4 Avisar sobre vulnerabilidades é rejeitada

Se encontrar um problema de segurança no seu plugin, publique logo uma versão corrigida e avise os moderadores, para que um aviso de segurança seja mostrado aos servidores que o usam.

F. Nomes e propriedade

Os nomes dos plugins são únicos e os servidores baixam plugins pelo nome, então os nomes são tratados com cuidado.

F1 Sem reservar nomes é rejeitada

Não reserve nomes que não vai usar nem use um nome que se passe por outro plugin ou autor. Nomes que nunca foram aprovados são liberados quando suas versões são rejeitadas.

F2 Plugins do Poggit é rejeitada

O nome de um plugin publicado no Poggit pertence ao seu autor no Poggit. Se outra pessoa o pegou aqui, o autor original pode reivindicá-lo aos moderadores com provas (por exemplo, o repositório).

F3 Adotar um plugin abandonado é rejeitada

Um plugin pode ser adotado quando está há 14 dias sem funcionar na API mais recente do VanillaMine, ou quando um bug grave está aberto há 28 dias. Corrija-o em um fork, ofereça a correção ao autor e peça aos moderadores. O autor tem 7 dias para se opor ou publicar uma correção. A primeira versão adotada só pode atualizar o plugin, sem novas funções, e precisa respeitar a licença.

Baseado nas regras de publicação de plugins do Poggit (A-D) e na sua política de adoção de plugins abandonados (F3).

Publicar uma versão Publicar a partir do CI