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

TÓPICO ARQUIVADO

O tópico foi arquivado. A partir deste momento, não será mais possível editar ou adicionar novos comentários. Caso precise de informações adicionais, por favor, entre em contato conosco por Discord.

Equipe de Moderação
Gamer's Board
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...