Ir para conteúdo

[BUKKIT] Criando plugin de magnata da maneira mais GG do mundo!


Dery

Posts Recomendados

INTRODUÇÃO


Então, sempre quis saber como funcionava um plugin de magnata e sempre quis fazer um, porém, não tinha a mínima ideia de como ele funcionava.


Até que um tempão atrás me toquei que era bem simples: criar um loop com offline player e verificar se o dinheiro do atual jogador selecionado no loop for maior que o magnata, tchanrraaaammmmm, temos um novo magnata!


Bem, vamos lá!


 


TUTORIAL


- Crie seu plugin (avá '-');


- Vamos criar um método para fazer um loop de X em X segundos, verificando quem é o mais rico do servidor:


7XbdE6G.png


Bem, nossa variável "novo" só sera usada no final do método, ela servirá para identificar se houve ou não um novo magnata e enviar um Broadcast avisando a todos do servidor!


Então chegamos no loop de OfflinePlayer, que servirá para "varrer" e verificar a quantia de money do player no momento.


Dentro do Primeiro "IF" verificamos se o nome do atual OfflinePlayer é diferente do nome do atual magnata, para não enviar Broadcast sem motivo.


No segundo "IF" estamos verificando se o money do atual OfflinePlayer é maior que o do atual magnata, caso seja, temos um novo magnata!


Esse último "if", serve para verificar se houve ou não novo magnata, como eu disse anteriormente.


Em "runTaskTimer(this, 5*20, 5*20)" troque para:



runTaskTimer(sua class principal, 5*20, tempo que deseja para verificar*20)

Exemplo:



runTaskTimer(this, 5*20, 10*20)

Aqui, nós estamos verificando o magnata de 10 em 10 segundos!


- No nosso onEnable, vamos utilizar nosso método:


E57eJ18.png


Como vocês veem, existe outro BukkitRunnable, este servirá para iniciar a verificação somente depois de X segundos (já que existe um tempo para o servidor realmente ligar após o plugin ser iniciado).


Troque "10*20" pelo tempo desejado. Caso queira 60 segundos, utilize "60*20"!


O resto do onEnable não importa tanto, somente o setupEconomy (hook com o Vault) e o registerEvents!


4º (Opcional) - Essa parte é opcional!


Aqui nós iremos avisar quando o magnata entrar e sair do servidor, dar tag e o comando para ver o atual magnata!


KcXWVXk.png


Então é isso, não vou explicar essa última parte, procurem na página da api do LegendChat!


Na sua config.yml, adicione a string Magnata e algo aleatório, como "Magnata", exemplo:


Xdu6m4S.png


Agora é só lotar o fórum de plugins de magnata!


Editado por Dery
Link para o comentário
Compartilhar em outros sites

Legal, mas irá lagar toda hora que você verificar o Magnata, já que você fez que rode na Main Thread em vez de rodar Async. (Não, executar o checar() dentro de uma Async não irá mudar em nada, já que logo no método checar() você criou um runnable syncronized)

Link para o comentário
Compartilhar em outros sites

Legal, mas irá lagar toda hora que você verificar o Magnata, já que você fez que rode na Main Thread em vez de rodar Async. (Não, executar o checar() dentro de uma Async não irá mudar em nada, já que logo no método checar() você criou um runnable syncronized)

Sim, poderá causar sim um lag no servidor, esqueci de dizer isso

Editado por Dery
Link para o comentário
Compartilhar em outros sites

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Se você tiver uma conta, a class='ipsType_brandedLink' href='https://gamersboard.com.br/login/' data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-title='Sign In Now'>acesse agora para postar com sua conta.
Observação: sua postagem exigirá aprovação do moderador antes de ficar visível.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.

Processando...
×
×
  • Criar Novo...