Daimonte Postado Agosto 4, 2017 Denunciar Compartilhar Postado Agosto 4, 2017 Como faço para por exemplo o comando /punir, ser executado em players offline ? Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Agosto 4, 2017 Denunciar Compartilhar Postado Agosto 4, 2017 Está dando esse erro: http://prntscr.com/g4g5wv 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() .. 1 Link para o comentário Compartilhar em outros sites More sharing options...
GhostTheWolf Postado Agosto 4, 2017 Denunciar Compartilhar Postado Agosto 4, 2017 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 More sharing options...
arantesxyz Postado Agosto 4, 2017 Denunciar Compartilhar Postado Agosto 4, 2017 Poste seu código, não temos bola de cristal. Link para o comentário Compartilhar em outros sites More sharing options...
Daimonte Postado Agosto 4, 2017 Autor Denunciar Compartilhar Postado Agosto 4, 2017 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 More sharing options...
zAth Postado Agosto 4, 2017 Denunciar Compartilhar Postado Agosto 4, 2017 (editado) 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 Agosto 4, 2017 por zAth Link para o comentário Compartilhar em outros sites More sharing options...
Daimonte Postado Agosto 4, 2017 Autor Denunciar Compartilhar Postado Agosto 4, 2017 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 More sharing options...
arantesxyz Postado Agosto 4, 2017 Denunciar Compartilhar Postado Agosto 4, 2017 (editado) 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 Agosto 4, 2017 por SirKio Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Agosto 4, 2017 Denunciar Compartilhar Postado Agosto 4, 2017 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 More sharing options...
Daimonte Postado Agosto 4, 2017 Autor Denunciar Compartilhar Postado Agosto 4, 2017 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 More sharing options...
arantesxyz Postado Agosto 4, 2017 Denunciar Compartilhar Postado Agosto 4, 2017 Posta o erro que aparece no console no https://hastebin.com/e manda aqui. Posta o código que tá usando também. Link para o comentário Compartilhar em outros sites More sharing options...
Daimonte Postado Agosto 4, 2017 Autor Denunciar Compartilhar Postado Agosto 4, 2017 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 More sharing options...
arantesxyz Postado Agosto 4, 2017 Denunciar Compartilhar Postado Agosto 4, 2017 Usa o mesmo código igual antes e só troca o k.getName pelo args[0] e tenta novamente. Nna sua IDE (eclipse) tá dando algum erro? Link para o comentário Compartilhar em outros sites More sharing options...
Daimonte Postado Agosto 4, 2017 Autor Denunciar Compartilhar Postado Agosto 4, 2017 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 More sharing options...
žƒэเ†เ¢эเя๏ Postado Agosto 4, 2017 Denunciar Compartilhar Postado Agosto 4, 2017 Sua dúvida foi marcada como [Resolvido] e movido à área de dúvidas resolvidas. Atenciosamente, Gamer's Board Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Daimonte
Como faço para por exemplo o comando /punir, ser executado em players offline ?
Link para o comentário
Compartilhar em outros sites
14 respostass a esta questão
Posts Recomendados