Ir para conteúdo
  • 0

Dúvida - Java


Daimonte

Pergunta

14 respostass a esta questão

Posts Recomendados

Dependendo do que seu comando faz, não será possível usar em jogadores offline.

 

O que eu já fiz para contornar isso é criar uma "fila". Salvo o nome dos caras e as ações a executar neles num arquivo. E quando eles logarem, checo o nome e tal e executo.

Link para o comentário
Compartilhar em outros sites

Poste seu código, não temos bola de cristal.

	public void registrar(){

		getCommand("punir").setExecutor(new Punir());
	public Punir(Main plugin) {
		plugin = this.main;
	}

	public Punir() {
	}

	public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
		if (!(sender instanceof Player)) {
			sender.sendMessage("Voce nao e um jogador.");
			return true;
		}
		if (sender instanceof Player) {
			Player p = (Player)sender;
			if (args.length == 0) {
				p.sendMessage("§8[Punir] §cUse: /punir (Player)");
			}
				if (args.length != 0 && args.length == 1) {
				if (p.hasPermission("punir.use")) {
					
					Player k = Bukkit.getPlayer(args[0]);
					
					p.sendMessage("");
					p.sendMessage("§eEscolha o tipo de punição:     ");
					p.sendMessage("");
					APIClickChat hack = new APIClickChat("", "§fUso de Hack", "§fPunição: §c§lHACK \n§fTipo: §c§lBAN\n§fTempo: §c§lPERMANENTE\n§fGrupo: §2[Moderador]");
                    hack.addComand("/ban " + k.getName() + " Uso De Hack");
                    hack.enviar(p);
                    APIClickChat antijogo = new APIClickChat("", "§fAnti-Jogo", "§fTipo De Punição: Ban  \n§fTempo: Permanente");
                    antijogo.addComand("/ban " + k.getName() + " Anti-Jogo");
                    antijogo.enviar(p);
                    APIClickChat bug = new APIClickChat("", "§fAbuso De Bug", "§fTipo De Punição: Ban  \n§fTempo: Permanente");
                    bug.addComand("/ban " + k.getName() + " Abuso De Bug");
                    bug.enviar(p);
                    APIClickChat ofença = new APIClickChat("", "§fOfença a Staffer/Player", "§fTipo De Punição: Ban  \n§fTempo: Permanente");
                    ofença.addComand("/ban " + k.getName() + " Ofença a Staffer/Player");
                    ofença.enviar(p);
                    APIClickChat divulgação = new APIClickChat("", "§fDivulgação De Link/Ip", "§fTipo De Punição: Ban Temporario  \n§fTempo: 8 Horas");
                    divulgação.addComand("/tempban " + k.getName() + " 8 hour Divulgação De Link/Ip");
                    divulgação.enviar(p);
                    APIClickChat flood = new APIClickChat("", "§fFlood/Spam", "§fTipo De Punição: Ban Temporario  \n§fTempo: 5 Horas");
                    flood.addComand("/tempban " + k.getName() + " 5 hour Flood/Spam");
                    flood.enviar(p);
                    APIClickChat inadequadas = new APIClickChat("", "§fParavras Inadequadas", "§fTipo De Punição: Ban Temporario  \n§fTempo: 4 Horas");
                    inadequadas.addComand("/tempban " + k.getName() + " 4 hour Palavras Inadequadas");
                    inadequadas.enviar(p);
                    APIClickChat difarmação = new APIClickChat("", "§fDifarmação Ao Server", "§fTipo De Punição: Ban Temporario  \n§fTempo: 10 Horas");
                    difarmação.addComand("/tempban " + k.getName() + " 10 hour Difarmação Ao Server");
                    difarmação.enviar(p);
                    APIClickChat iniciativaflood = new APIClickChat("", "§fIniciativa De Flood", "§fTipo De Punição: Ban Temporario  \n§fTempo: 10 Horas");
                    iniciativaflood.addComand("/kick " + k.getName() + " 10 hour Iniciativa De Flood");
                    iniciativaflood.enviar(p);
                    APIClickChat modproibido = new APIClickChat("", "§fUso De Mod Proibido", "§fTipo De Punição: Ban Temporario  \n§fTempo: 3 Dias");
                    modproibido.addComand("/kick " + k.getName() + " 3 day Uso De Mod Proibido");
                    modproibido.enviar(p);
                    APIClickChat teste = new APIClickChat("", "§fUso De Mod Proibido", "§fTipo De Punição: Ban Temporario  \n§fTempo: 3 Dias");
                    teste.addComand("/kick " + k.getName() + " 3 day Uso De Mod Proibido");
                    teste.enviar(p);
Link para o comentário
Compartilhar em outros sites

Player k = Bukkit.getOfflinePlayer(args[0]);

Obviamente que não irá usar /kick .. ele está offline.

Se o seu comando for apenas isso, .getOfflinePlayer deve funcionar.

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

Player k = Bukkit.getOfflinePlayer(args[0]);

Obviamente que não irá usar /kick .. ele está offline.

Se o seu comando for apenas isso, .getOfflinePlayer deve funcionar.

 

No caso:

@SuppressWarnings("deprecation")
Player k = (Player) Bukkit.getOfflinePlayer(args[0]);
Link para o comentário
Compartilhar em outros sites

Substitui o k.getName pelo args[0]

APIClickChat hack = new APIClickChat("", "§fUso de Hack", "§fPunição: §c§lHACK \n§fTipo: §c§lBAN\n§fTempo: §c§lPERMANENTE\n§fGrupo: §2[Moderador]");
                    hack.addComand("/ban " + args[0] + " Uso De Hack"); // Substitui por args[0]. e deixa o k.getName para os onlines, como kick e mute
                    hack.enviar(p);
Editado por SirKio
Link para o comentário
Compartilhar em outros sites

 

No caso:

@SuppressWarnings("deprecation")
Player k = (Player) Bukkit.getOfflinePlayer(args[0]);

Bukkit.getOfflinePlayer retorna OfflinePlayer.

Apenas usa o nome dele como o kio falou

if(k == null)
    hack.addComand("/ban " + args[0] + " Uso De Hack"); 
else
    hack.addComand("/ban " + k.getName() + " Uso De Hack");

Ou simplesmente usa o args[0] em todo lado.

Link para o comentário
Compartilhar em outros sites

Bukkit.getOfflinePlayer retorna OfflinePlayer.

Apenas usa o nome dele como o kio falou

if(k == null)
    hack.addComand("/ban " + args[0] + " Uso De Hack"); 
else
    hack.addComand("/ban " + k.getName() + " Uso De Hack");

Ou simplesmente usa o args[0] em todo lado.

Está dando esse erro: http://prntscr.com/g4g5wv

Link para o comentário
Compartilhar em outros sites

Posta o erro que aparece no console no https://hastebin.com/e manda aqui.

 

Posta o código que tá usando também.

Não dá erro no console!

 

 


	public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
		if (!(sender instanceof Player)) {
			sender.sendMessage("Voce nao e um jogador.");
			return true;
		}
		if (sender instanceof Player) {
			Player p = (Player)sender;
			if (args.length == 0) {
				p.sendMessage("§8[Punir] §cUse: /punir (Player)");
			}
				if (args.length != 0 && args.length == 1) {
				if (p.hasPermission("punir.use")) {
					
					@SuppressWarnings("deprecation")
					Player k = (Player) Bukkit.getOfflinePlayer(args[0]);
					
					p.sendMessage("");
					p.sendMessage("§eEscolha o tipo de punição:     ");
					p.sendMessage("");
					APIClickChat hack = new APIClickChat("", "§fUso de Hack", "§fPunição: §c§lHACK \n§fTipo: §c§lBAN\n§fTempo: §c§lPERMANENTE\n§fGrupo: §2[Moderador]");
                    hack.addComand("/ban " + args[0] + " Uso De Hack");
                    hack.enviar(p);
                    APIClickChat antijogo = new APIClickChat("", "§fAnti-Jogo", "§fTipo De Punição: Ban  \n§fTempo: Permanente");
                    antijogo.addComand("/ban " + k.getName() + " Anti-Jogo");
                    antijogo.enviar(p);
                    APIClickChat bug = new APIClickChat("", "§fAbuso De Bug", "§fTipo De Punição: Ban  \n§fTempo: Permanente");
                    bug.addComand("/ban " + k.getName() + " Abuso De Bug");
                    bug.enviar(p);
                    APIClickChat ofença = new APIClickChat("", "§fOfença a Staffer/Player", "§fTipo De Punição: Ban  \n§fTempo: Permanente");
                    ofença.addComand("/ban " + k.getName() + " Ofença a Staffer/Player");
                    ofença.enviar(p);
                    APIClickChat divulgação = new APIClickChat("", "§fDivulgação De Link/Ip", "§fTipo De Punição: Ban Temporario  \n§fTempo: 8 Horas");
                    divulgação.addComand("/tempban " + k.getName() + " 8 hour Divulgação De Link/Ip");
                    divulgação.enviar(p);
                    APIClickChat flood = new APIClickChat("", "§fFlood/Spam", "§fTipo De Punição: Ban Temporario  \n§fTempo: 5 Horas");
                    flood.addComand("/tempban " + k.getName() + " 5 hour Flood/Spam");
                    flood.enviar(p);
                    APIClickChat inadequadas = new APIClickChat("", "§fParavras Inadequadas", "§fTipo De Punição: Ban Temporario  \n§fTempo: 4 Horas");
                    inadequadas.addComand("/tempban " + k.getName() + " 4 hour Palavras Inadequadas");
                    inadequadas.enviar(p);
                    APIClickChat difarmação = new APIClickChat("", "§fDifarmação Ao Server", "§fTipo De Punição: Ban Temporario  \n§fTempo: 10 Horas");
                    difarmação.addComand("/tempban " + k.getName() + " 10 hour Difarmação Ao Server");
                    difarmação.enviar(p);
                    APIClickChat iniciativaflood = new APIClickChat("", "§fIniciativa De Flood", "§fTipo De Punição: Ban Temporario  \n§fTempo: 10 Horas");
                    iniciativaflood.addComand("/kick " + k.getName() + " 10 hour Iniciativa De Flood");
                    iniciativaflood.enviar(p);
                    APIClickChat modproibido = new APIClickChat("", "§fUso De Mod Proibido", "§fTipo De Punição: Ban Temporario  \n§fTempo: 3 Dias");
                    modproibido.addComand("/kick " + k.getName() + " 3 day Uso De Mod Proibido");
                    modproibido.enviar(p);
                    APIClickChat teste = new APIClickChat("", "§fUso De Mod Proibido", "§fTipo De Punição: Ban Temporario  \n§fTempo: 3 Dias");
                    teste.addComand("/kick " + k.getName() + " 3 day Uso De Mod Proibido");
                    teste.enviar(p);
Link para o comentário
Compartilhar em outros sites

Bukkit.getOfflinePlayer retorna OfflinePlayer, não Player então não pode usar

Player k = (Player) Bukkit.getOfflinePlayer("zath");

 

Use args[0] no lugar do k.getName() ..

Valeu deu muito certo, obrigado!

Link para o comentário
Compartilhar em outros sites

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