Ir para conteúdo
  • SHOUTBOX GAMER'S BOARD ❤️

    Carregar mais
    Você não tem permissão para conversar :(
Entre para seguir isso  
smgabriel

Criando comando e registrando automaticamente sem usar plugin.yml

Posts Recomendados

RG4y56x.gif

 

Olá, hoje apresento um método de registrar comandos com facilidade. As vantagens da utilização desse método são diversas, como: comando configurável ou não precisar registrar comando em dois, três locais. Esqueceu de registrar o comando? Jamais!

 

Atualizações

 

Spoiler

-  Atualização para melhorias e remoção de comentários inúteis, yay! (Baixe no repositório a versão atualizada.)
- O reposiório no GitHub foi atualizado, agora conta com um tutorial de utilização. Clique Por favor, registre-se ou entre para visualizar isso. para conferir.
- Caso você tenha visto esse tópico antes do dia 19/01/2018, o código e esse tutorial foram refeitos.

 

TÓPICO

 

O Tópico está divido em quatro partes, confira:

 CRIANDO COMANDO
• REGISTRANDO COMANDOS DE FORMA "AUTOMÁTICA"
 Baixando recursos e conferindo documentações

• Porquês

 

Por favor, registre-se ou entre para visualizar isso.

 

CRIANDO COMANDO

 

Vamos utilizar a classe Por favor, registre-se ou entre para visualizar isso. para criar nosso comando. O primeiro passo é criar uma classe para ser a sub-classe da nossa classe Por favor, registre-se ou entre para visualizar isso., tornando ela, a classe Por favor, registre-se ou entre para visualizar isso., como super classe. Por questões de organização, dentro do seu pacote principal, crie um pacote chamado command, vamos deixar todos os comandos lá. Obviamente, não é necessário a criação desse pacote.

Crie uma classe chamada HelloWorld. Defina a classe Por favor, registre-se ou entre para visualizar isso. como super-classe, para isso, devemos utilizar extends Command onde informamos o nome da classe, exemplo:

Por favor, registre-se ou entre para visualizar isso.

Sua classe ficará mais ou menos assim.

 

Após definir a super classe, devemos criar um construtor publico e sem parâmetros.

Por favor, registre-se ou entre para visualizar isso.

Ainda no construtor, vamos recuperar o construtor da super-classe que requisita de um parâmetro do tipo String. Nesse parâmetro vamos definir o comando helloworld:

Por favor, registre-se ou entre para visualizar isso.

Pronto, nosso comando está pronto, agora precisamos dar alguma função para ele. Provavelmente sua IDE está requisitando que você implemente um método no seu código, implemente o mesmo. Caso não tenha pedido, adicione:

Por favor, registre-se ou entre para visualizar isso.
Citar
Citar

CommandSender sender - Retorna o responsável por executar o comando;
String commandLabel - Retorna o comando usado;
String[] args - Retorna os argumentos usados, separados por espaços

 

Agora vamos enviar uma mensagem pro sender/responsável:

Por favor, registre-se ou entre para visualizar isso.

Pronto, agora devemos registrar esse Comando, confira a próxima etapa.

 

REGISTRANDO COMANDOS

Como o título informa, "registrando automaticamente", chegamos à essa parte.

Com o comando pronto, devemos registrar ele, você pode baixar a classe clicando Por favor, registre-se ou entre para visualizar isso..

Crie um novo objeto CommandBuilder(classe baixada), ele requisitará de uma String, essa String é a package do local onde se encontra os comandos. Ele procurará todas classes que pertencem a aquele pacote ou a um sub-pacote que tem uma super classe do tipo Command. Lembrando que você deve fazer isso quando o servidor inicia, ou seja, no método #onEnable da sua classe principal.

 

Resultado:

Por favor, registre-se ou entre para visualizar isso.

Por favor, registre-se ou entre para visualizar isso.

 

Baixar

 

• Por favor, registre-se ou entre para visualizar isso.

 

 Por favor, registre-se ou entre para visualizar isso.

 

• #Por favor, registre-se ou entre para visualizar isso.

 

 #Por favor, registre-se ou entre para visualizar isso.


 

Por favor, registre-se ou entre para visualizar isso.

 

Por que eu usaria?

 

Por onde eu começo? Pela parte que você não precisa registrar comandos em todo lugar, pela parte onde você não precisará registrar mais comando ou pela parte que você pode deixar o publico feliz de poder escolher o comando que ele deseja?

 

Informações adicionais

Eu apresentei apenas 1% da classe Por favor, registre-se ou entre para visualizar isso., você pode acessar a documentação dela e conferir tudo que ela tem para você utilizar. Também, não existe limitações para o uso desse método, aqui apresentamos uma maneira, mas existem diversas maneiras de uso, tais como: registro automático de kits, ranks, classes(ctf), etc.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito bom! Eu tenho um metodo semelhamente porém mais avançado e simples de usar na hora de criar um comando novo. :bigsmile:

Valeu :)

Eu pensei em fazer em diversos métodos, mas todos teriam um padrão, ou seja, mais simples de criar/registrar, mas nem sempre todos querem manter um padrão.

 

 

Bem explicado ... parabéns tuto mt bom ..

 

 

Valeu :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

e como faço pra adicionar alises?

Por favor, registre-se ou entre para visualizar isso.

 

Você pode utilizar a classe utilitária Arrays para criar uma lista simples e com isso, listar os aliases.

Usando:

Por favor, registre-se ou entre para visualizar isso.

Ou faça o que nosso amigo @Out of Orbit sugeriu utilizando o método Por favor, registre-se ou entre para visualizar isso..

 

// OFF

 

Por favor, registre-se ou entre para visualizar isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
Entre para seguir isso  

×
Hospedagem de Minecraft Host de Minecraft Host de Minecraft BR Host de Minecraft EUA Servidor Cloud Servidor Cloud BR Servidor Cloud EUA