Solved Hiding players for a player

Discussion in 'Plugin Help/Development/Requests' started by Scorpionvssub, Oct 4, 2015.

Thread Status:
Not open for further replies.
  1. Offline

    Scorpionvssub

    Working on a minigame and it kinda requires or i want to give players the ability to hide other players from their view as doing parkour and seeing a bunch of people can be REALLY frustrating..

    Code:
    package me.neo.parkour;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.Action;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.inventory.ItemStack;
    
    /**
    * Created by Neotroost on 1-10-2015.
    * Copyrighted!
    */
    public class PlayerToggler implements Listener {
        Main plugin;
    
        String prefix = ChatColor.GOLD + "[" + ChatColor.BLUE + "Parkour" + ChatColor.GOLD + "]";
    
    
        public PlayerToggler(Main plugin) {
            this.plugin = plugin;
        }
    
        @EventHandler
        public void items(PlayerInteractEvent e) {
            Action a = e.getAction();
            ItemStack is = e.getItem();
    
            if (a == Action.PHYSICAL || is == null || is.getType() == Material.AIR) {
                return;
            }
            if (is.getType() == Material.EMERALD) {
                if (this.plugin.invs.containsKey(e.getPlayer())) {
                    e.setCancelled(true);
                    e.getPlayer().chat("/pk quit");
                    return;
                }
            }
            if (is.getType() == Material.EYE_OF_ENDER) {
                System.out.println("Heey");
                if (this.plugin.invs.containsKey(e.getPlayer())) {
                    System.out.println("hellooo");
                    e.setCancelled(true);
                    if (this.plugin.hidden.contains(e.getPlayer().getName())) {
                        System.out.println("hel232looo");
                        for (Player p : Bukkit.getServer().getOnlinePlayers()) {
                            if (!p.equals(e.getPlayer())) continue;
                            e.getPlayer().showPlayer(p);
                        }
                        e.getPlayer().sendMessage("You are now showing players");
                        this.plugin.hidden.remove(e.getPlayer().getName());
                    } else {
                        if (this.plugin.invs.containsKey(e.getPlayer())) {
                            for (Player p : Bukkit.getServer().getOnlinePlayers()) {
                                if (!p.equals(e.getPlayer())) {
                                    e.getPlayer().hidePlayer(p);
                                }
                                e.getPlayer().sendMessage("You are now hiding players");
                                this.plugin.hidden.add(e.getPlayer().getName());
                            }
                        }
                    }
                }
            }
        }
    }
    The emerald works just fine no issues there, the eye of ender is read or seen but only goes till the "hellooo" before stopping and never checks "if hidden contains player" it stops there for some reason, a friend said it was because of that line but i need a way to check if a player isnt already hiding players as they might wanna show players again which can be handy (i thought) but i cant figure out why its not even firing the else
     
Thread Status:
Not open for further replies.

Share This Page