yLR111 Postado Julho 9, 2018 Denunciar Compartilhar Postado Julho 9, 2018 Criei um pl de vanish e como faço se eu entrar de /v, e o pessoal que tiver permissao me ver de /v, quero colocar para os meu staff tbm me ver private ArrayList<Player> vanished = new ArrayList<Player>(); public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) { if (!(sender instanceof Player)) { sender.sendMessage(ChatColor.RED + "§cUse comando in-game!"); return true; } Player p = (Player) sender; if(p.hasPermission("obycraft.vanish")) { if ((cmd.getName().equalsIgnoreCase("vanish")) || (cmd.getName().equalsIgnoreCase("v"))){ if (!vanished.contains(p)) { for (Player pl : Bukkit.getServer().getOnlinePlayers()) { pl.hidePlayer(p); } vanished.add(p); p.sendMessage(ChatColor.GREEN + "§d§l[VANISH] §aModo invisível ativado"); return true; }else { for (Player pl : Bukkit.getServer().getOnlinePlayers()) { pl.showPlayer(p); } vanished.remove(p); p.sendMessage(ChatColor.GREEN + "§d§l[VANISH] §aModo invisível desativado"); } } } return false; } Link para o comentário Compartilhar em outros sites More sharing options...
0 Out of Orbit Postado Julho 9, 2018 Denunciar Compartilhar Postado Julho 9, 2018 (editado) Outra coisa, sabe como checo se o inventario do jogador estiver cheio, se estiver executaria outra coisa? O Codigo que vocë me passou, eu testei com staff meu e se ele entra no /v ele sai do tab e desaparece, queria tirar isso, se ele for staff ele tbm me ver de /v Ah, desculpa. Interpretei a questão errado. private Set<Player> vanished = new HashSet<>(); public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) { if (!(sender instanceof Player)) { sender.sendMessage(ChatColor.RED + "§cUse comando in-game!"); return true; } Player p = (Player) sender; if (p.hasPermission("obycraft.vanish")) { if ((cmd.getName().equalsIgnoreCase("vanish")) || (cmd.getName().equalsIgnoreCase("v"))) { if (!vanished.contains(p)) { Bukkit.getOnlinePlayers().stream() .filter(pl -> !pl.hasPermission("obycraft.vanish")) .forEach(pl -> pl.hidePlayer(p)); vanished.add(p); p.sendMessage(ChatColor.GREEN + "§d§l[VANISH] §aModo invisível ativado"); return true; } else { Bukkit.getOnlinePlayers().stream() .forEach(pl -> pl.showPlayer(p)); vanished.remove(p); p.sendMessage(ChatColor.GREEN + "§d§l[VANISH] §aModo invisível desativado"); } } } return false; } E para verificar se o inventário do jogador está cheio, tenta isso aqui: if (p.getInventory().firstEmpty() == -1) { // Está cheio... } else { // Não está cheio } Editado Julho 9, 2018 por Out of Orbit Link para o comentário Compartilhar em outros sites More sharing options...
0 Out of Orbit Postado Julho 9, 2018 Denunciar Compartilhar Postado Julho 9, 2018 private Set<Player> vanished = new HashSet<>(); public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) { if (!(sender instanceof Player)) { sender.sendMessage(ChatColor.RED + "§cUse comando in-game!"); return true; } Player p = (Player) sender; if (p.hasPermission("obycraft.vanish")) { if ((cmd.getName().equalsIgnoreCase("vanish")) || (cmd.getName().equalsIgnoreCase("v"))) { if (!vanished.contains(p)) { Bukkit.getOnlinePlayers().stream() .filter(pl -> !vanished.contains(pl)) .forEach(pl -> pl.hidePlayer(p)); vanished.add(p); p.sendMessage(ChatColor.GREEN + "§d§l[VANISH] §aModo invisível ativado"); return true; } else { Bukkit.getOnlinePlayers().stream() .forEach(pl -> pl.showPlayer(p)); vanished.remove(p); p.sendMessage(ChatColor.GREEN + "§d§l[VANISH] §aModo invisível desativado"); } } } return false; } Troquei a lista por um set, pois quando utilizado apenas para pesquisas rápidas, é mais eficiente Fiz com streams pra filtrar os jogadores que não estão no modo vanish, daí os que não estão não verão aqueles que estão, Já os que estão no modo vanish verão. Link para o comentário Compartilhar em outros sites More sharing options...
0 yLR111 Postado Julho 9, 2018 Autor Denunciar Compartilhar Postado Julho 9, 2018 (editado) private Set<Player> vanished = new HashSet<>(); public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) { if (!(sender instanceof Player)) { sender.sendMessage(ChatColor.RED + "§cUse comando in-game!"); return true; } Player p = (Player) sender; if (p.hasPermission("obycraft.vanish")) { if ((cmd.getName().equalsIgnoreCase("vanish")) || (cmd.getName().equalsIgnoreCase("v"))) { if (!vanished.contains(p)) { Bukkit.getOnlinePlayers().stream() .filter(pl -> !vanished.contains(pl)) .forEach(pl -> pl.hidePlayer(p)); vanished.add(p); p.sendMessage(ChatColor.GREEN + "§d§l[VANISH] §aModo invisível ativado"); return true; } else { Bukkit.getOnlinePlayers().stream() .forEach(pl -> pl.showPlayer(p)); vanished.remove(p); p.sendMessage(ChatColor.GREEN + "§d§l[VANISH] §aModo invisível desativado"); } } } return false; } Troquei a lista por um set, pois quando utilizado apenas para pesquisas rápidas, é mais eficiente Fiz com streams pra filtrar os jogadores que não estão no modo vanish, daí os que não estão não verão aqueles que estão, Já os que estão no modo vanish verão. Outra coisa, sabe como checo se o inventario do jogador estiver cheio, se estiver executaria outra coisa? O Codigo que vocë me passou, eu testei com staff meu e se ele entra no /v ele sai do tab e desaparece, queria tirar isso, se ele for staff ele tbm me ver de /v Editado Julho 9, 2018 por yLR111 Link para o comentário Compartilhar em outros sites More sharing options...
0 Lightwood Postado Julho 11, 2018 Denunciar Compartilhar Postado Julho 11, 2018 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
yLR111
Criei um pl de vanish e como faço se eu entrar de /v, e o pessoal que tiver permissao me ver de /v, quero colocar para os meu staff tbm me ver
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados