Ir para conteúdo
  • 0

Como criar um tempo de vip?


Henry_Fabio

Pergunta

Olá, não sou muito bom em criar tópicos, mas vamos ao assunto.

Estou criando um plugin de vip, e gostaria de saber como faço para o vip ter um tempo de termino, e quando o vip acabar é retirado do jogador

Já fico grato de quem puder me ajudar! 

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

Existem diveeeeersas maneiras de ser feito.

Eu faria o seguinte:

  1. Salvaria o tempo (em millis) do término do vip no mysql.
  2. Faria um scheduler repetindo e checando o tempo.
  3. checaria o jogador online, se o tempo de vip dele fosse menor que o tempo atual retiraria o vip.
Link para o comentário
Compartilhar em outros sites

Olá, não sou muito bom em criar tópicos, mas vamos ao assunto.

 

Estou criando um plugin de vip, e gostaria de saber como faço para o vip ter um tempo de termino, e quando o vip acabar é retirado do jogador

 

Já fico grato de quem puder me ajudar! 

 

 

 

Existem diveeeeersas maneiras de ser feito.

Eu faria o seguinte:

  1. Salvaria o tempo (em millis) do término do vip no mysql.
  2. Faria um scheduler repetindo e checando o tempo.
  3. checaria o jogador online, se o tempo de vip dele fosse menor que o tempo atual retiraria o vip.

 

Recomendo usar Date. :) seria mais fácil do que usar millis

Link para o comentário
Compartilhar em outros sites

Recomendo usar Date. :) seria mais fácil do que usar millis

 

Isso é questão de preferencia...

Eu prefiro o millis pois é uma sequencia só de números, e dá

para transforma-lo em date facilmente, alem de que fica estéticamente melhor.

:D

Link para o comentário
Compartilhar em outros sites

Isso é questão de preferencia...

Eu prefiro o millis pois é uma sequencia só de números, e dá

para transforma-lo em date facilmente, alem de que fica estéticamente melhor.

:D

concordo!! millis fica menos complicado

use esse exemplo, mas ainda acho que seria melhor criar um objeto para os vips, dai quando o servidor inicia vc carrega os dados, quando fechar salva os dados

//DATA - PODE SER USADO EM MYSQL OU YAML OU ATÉ SQLITE
	protected HashMap<Player, Long> vips = new HashMap<>();
	
	public void setVip(Player player, int segundos) {
		long time = TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis()) + segundos;
		vips.put(player, time);
		Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "pex user "+player.getName()+" group set vip");
	}
	
	public void checkVip(Player player) {
		if (!vips.containsKey(player)) return;
		
		if (vips.get(player) > TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis())) {
			vips.remove(player);
			Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "pex user "+player.getName()+" group remove vip");
			player.sendMessage("Seu Tempo de vip expirou");
		}
 	}
	
	public String getFinishDate(Player player) {
		if (!vips.containsKey(player)) return null;
		DateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
		df.getCalendar().setTimeZone(TimeZone.getTimeZone("GMT-3"));
		return df.format(new Date(vips.get(player)*1000));
	}

Link para o comentário
Compartilhar em outros sites

 

Existem diveeeeersas maneiras de ser feito.

Eu faria o seguinte:

  1. Salvaria o tempo (em millis) do término do vip no mysql.
  2. Faria um scheduler repetindo e checando o tempo.
  3. checaria o jogador online, se o tempo de vip dele fosse menor que o tempo atual retiraria o vip.

 

As formas que você sugeriu para ele são a mesma coisa, tirando a segunda pelo fato do scheduler ser desnecessário e poderia causar lag por uma coisa boba.

Link para o comentário
Compartilhar em outros sites

As formas que você sugeriu para ele são a mesma coisa, tirando a segunda pelo fato do scheduler ser desnecessário e poderia causar lag por uma coisa boba.

 

Não são 3 formas diferentes, são 3 passos.

Isso é o que EU faria, se existem maneiras melhores,

eu não sei ^~^

Link para o comentário
Compartilhar em outros sites

Não são 3 formas diferentes, são 3 passos.

Isso é o que EU faria, se existem maneiras melhores,

eu não sei ^~^

Você usou a palavra "maneiras" que é sinônimo de forma(http://prntscr.com/h2z4ax), ou se expresse melhor da próxima vez, e sim eu sei que erros são normais, apenas estou avisando.

 

Não descordo, acho também que essa é a melhor forma(talvez exista outras, ai eu não me recordo).

Link para o comentário
Compartilhar em outros sites

Você usou a palavra "maneiras" que é sinônimo de forma(http://prntscr.com/h2z4ax), ou se expresse melhor da próxima vez, e sim eu sei que erros são normais, apenas estou avisando.

 

Não descordo, acho também que essa é a melhor forma(talvez exista outras, ai eu não me recordo).

 

Eu disse que existem diversas maneiras, mas que eu faria do jeito destacado.

Agora vamos parar com esse assunto, o foco do tópico é ajudar o cara.

 

@TOPIC

Ja resolveu ?

Caso ainda precise de ajuda, pode continuar com o tópico.

Link para o comentário
Compartilhar em outros sites

Bem, eu crio meus plugins salvando informaçoes no yml...

vc pode salvar a data ou o tempo... eu prefiro usar o tempo, pq pode ser colocado em dias ou minutos

o code que eu fiz (tem a opção em dias ou em minutos)
https://hastebin.com/xikaqofeso.cs

 

Se tiver alguma duvida é só perguntar!

Link para o comentário
Compartilhar em outros sites

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