Ir para conteúdo

ARQUIVADO[Tutorial] Como fazer um "Jogando" dinamico para seu bot no Discord (Igual o da Loritta) com JDA!


BrunnoFdc

Posts Recomendados

Esse tutorial é destinado à quem está criando um bot no Discord usando JDA (Java Discord API). Se você utiliza qualquer outra API, não poderei lhe ajudar.

 

 

Para fazer isso, o processo é mais simples do que parece. Primeiro, vá até a classe Main do seu bot.

 

Crie uma variavel privada e estática do tipo JDA em algum lugar da sua classe.

private static JDA bot;

Depois, encontre o método build do seu bot (Tanto buildBlocking quanto buildAsync)

 

 

GiTG9rn-QDGcEo671egqkA.png

 

E então, inicialize a variável que você criou com o valor retornado por esse método.

bot = jda.buildBlocking();

Depois, crie um método para retornar a variável bot de uma forma que seja acessível por outras classes (public static)

 

gIk6J-F5QGu_dTqQunNpEw.png

 

Depois, crie uma classe, pode ser qualquer nome, eu coloquei GameHandler, e faça essa classe extender a classe TimerTask do Java.

Essa classe é abstrata, então você precisará implementar no código, o método run(). Ficando assim:

 

z-FUBFYfRFCv3Npk2WqchA.png

 

Crie um array de String na classe, e atribua como valores os Games que você deseja exibir. Se preferir, pode ser um List também.

 

HmtgH2w8QsuFsV1T3crjFw.png

 

Depois, vamos fazer com que o JVM escolha um número pseudo-aleatório para nós, e com esse número, escolheremos um dos textos que está dentro da array nomes para ser o nosso Game.

 

xsiCmM-DQDS7UAv6YRjarg.png

 

Caso queira que apareça "Transmitindo" ao invés de "Jogando", coloque o link para um canal da Twitch.tv ao lado do "nome" no método Game.of, como no exemplo abaixo:

 

UMPT45WBTBizKM0uMAgbXA.png

 

Onde está Jovana.getJDA(), você precisa trocar para NomedasuaclasseMain.métodoQueRetornaOJDA();

 

 

Por fim, vamos fazer com que o método run seja executado a cada X segundos. Para isso, faremos o seguinte:

 

Na classe principal, abaixo de onde colocamos o método jda.buildBlocking() ou buildAsync, iremos criar um Timer que irá executar o método run da classe GameHandler a cada 5 segundos (Por exemplo)

 

xsnymX3pTD_plmt844S36w.png

 

Aquele 5 na frente do 1000 corresponde aos intervalos de tempo (Segundos * 1000)

1000 = 1s (1000ms)

 

Vocês podem retirar um dos 5 * 1000 do código. Eu só utilizo assim porque eu coloco um Game diferente para mostrar que o bot está iniciando.

 

Com isso, nós teremos um "jogando" dinâmico :)

 

 

2RPORgpeTsusjZH_FNT0lQ.png  nuSFlqtrTIi_U05O0g9y7w.png

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Quem está navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...