Ir para conteúdo
  • 0

Alguem me ajuda?


PedroDev

Pergunta

Bom, estou fazendo um plugin de punir, mais quando eu vou punir um player offline, ele da aquele erro Internal erro ....

Queria que podesse punir players offline.

Alguem me ajuda?

 

Código:

 

  if (sender instanceof Player) {

Player p = (Player)sender;
if (args.length == 0) {
p.sendMessage("§cUse: /punir (jogador)");
}
if (args.length != 0 && args.length == 1) {
if (p.hasPermission("punir.use")) {
 
Player k = Bukkit.getPlayer(args[0]);
Editado por zPedroRJ
Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

 

Bom, estou fazendo um plugin de punir, mais quando eu vou punir um player offline, ele da aquele erro Internal erro ....

Queria que podesse punir players offline.

Alguem me ajuda?

 

Código:

 

  if (sender instanceof Player) {

Player p = (Player)sender;
if (args.length == 0) {
p.sendMessage("§cUse: /punir (jogador)");
}
if (args.length != 0 && args.length == 1) {
if (p.hasPermission("punir.use")) {
 
Player k = Bukkit.getPlayer(args[0]);

 

Poderia mandar o metodo completo?

Link para o comentário
Compartilhar em outros sites

Poderia mandar o metodo completo?

package Main;
 
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
 
public class Punir implements CommandExecutor, Listener {
Main main;
 
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("     §cTipo De Punições     ");
p.sendMessage("");
APIClickChat hack = new APIClickChat("", "§eUso De Hack", "§fTipo De Punição: Ban  \n§fTempo: Permanente");
                    hack.addComand("/ban " + k.getName() + " Uso De Hack");
                    hack.enviar(p);
                    APIClickChat antijogo = new APIClickChat("", "§eAnti-Jogo", "§fTipo De Punição: Ban  \n§fTempo: Permanente");
                    antijogo.addComand("/ban " + k.getName() + " Anti-Jogo");
                    antijogo.enviar(p);
                    APIClickChat bug = new APIClickChat("", "§eAbuso 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("", "§eOfenç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("", "§eDivulgaçã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("", "§eFlood/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("", "§eParavras 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("", "§eDifarmaçã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("", "§eIniciativa 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("", "§eUso 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);
                    p.sendMessage("");
p.sendMessage("     §cTipo De Punições     ");
p.sendMessage("");
                    
} else {
p.sendMessage("§cSem Permissão Para Executar Isto!");
}
}
}
return false;
}
}
 
 
 
// Tipo eu queria que podesse punir player offline.
Editado por zPedroRJ
Link para o comentário
Compartilhar em outros sites

Na hora de instanciar a classe Player:

Player banido = Bukkit.getPlayer(...);

if(banido != null) {
//Bane ele normalmente
} else {

OfflinePlayer banidooffline = Bukkit.getOfflinePlayer(...);

if(banidooffline.hasPlayedBefore()) {
//Bane baseado no banidooffline
} else {
//Envia msg que nunca entrou
}

Obs: Ofensa é com "s" '-'

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

Na hora de instanciar a classe Player:

Player banido = Bukkit.getPlayer(...);

if(banido != null) {
//Bane ele normalmente
} else {

OfflinePlayer banidooffline = Bukkit.getOfflinePlayer(...);

if(banidooffline.hasPlayedBefore()) {
//Bane baseado no banidooffline
} else {
//Envia msg que nunca entrou
}

Obs: Ofensa é com "s" '-'

 

Imbuti isso no código pra mim to todo embolado aq kkkkkk

Link para o comentário
Compartilhar em outros sites

Ta mais aonde eu boto isso

Desculpa, eu estava errado.

Transforma o "Player k = Bukkit.getPlayer();" para "OfflinePlayer k = Bukkit.getOfflinePlayer();", depois você pode checar se o player estiver online assim:

 

  if(k.isOnline())

  {

     Player on = k.getPlayer();

     //code

  } 

  else

  {

   //

  }

Link para o comentário
Compartilhar em outros sites

Desculpa, eu estava errado.

Transforma o "Player k = Bukkit.getPlayer();" para "OfflinePlayer k = Bukkit.getOfflinePlayer();", depois você pode checar se o player estiver online assim:

 

  if(k.isOnline())

  {

     Player on = k.getPlayer();

     //code

  } 

  else

  {

   //

  }

 

Vlw agr sim é nois <3, obrigado!

Link para o comentário
Compartilhar em outros sites

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