Vanish Plugin Help (w/ Staffmode)

Discussion in 'Spigot Plugin Development' started by Nouroi, Jul 25, 2018.

  1. So if been making this kits plugin which also contains a staff plugin but the i'm stuck on this problem with vanish
    I want it to be so that when a player enters the staffmode it will see the other vanished staff and if he leaves the staff mode using "/staff" again it should hide the staff which are in vanish.

    The vanish toggle works fine, the only thing i am stuck on the is when another staff toggles vanish. It doesnt show the vanished player until the vanished player toggles there vanish on and off.

    It would be really helpful if you guys could tell me what i am doing wrong here bcz i'm clearly not seeing it

    Is it also possible to just make a vanish handler btw which does all.hideplayer(p) when vanish.contains(player) ??

    Many Thanks
    ~KikkerHenk

    Staff command
    Code (Text):

    package i.KikkerHenk.staffmode.commands;

    import java.util.HashMap;
    import java.util.Map;
    import java.util.UUID;

    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.inventory.ItemStack;

    import i.KikkerHenk.staffmode.inventories.staffinv;
    import i.KikkerHenk.staffmode.manager.staffmanager;
    import i.KikkerHenk.utils.ChatUtils;

    public class staff implements CommandExecutor{

       @SuppressWarnings("deprecation")
       @Override
       public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
         
           for(Player all : Bukkit.getServer().getOnlinePlayers()){
         
         
           Map<UUID, ItemStack[]> modeinventory = new HashMap<>();
           Map<UUID, ItemStack[]> modearmor = new HashMap<>();
         
           if(!(sender instanceof Player)){
               sender.sendMessage(ChatColor.DARK_RED + "Error!" + ChatColor.GRAY + " : " + ChatColor.RED +   "Only players can perform this command!");
               return false;
               }
         
               Player p = (Player) sender;

               if(cmd.getName().equalsIgnoreCase("staff")){
                   if(p.hasPermission("core.staff")){
                       if (!staffmanager.staffmode.contains(p)){
                       modeinventory.put(p.getUniqueId(), p.getInventory().getContents());
                       modearmor.put(p.getUniqueId(), p.getInventory().getArmorContents());
                       staffmanager.staffmode.add(p);
                       staffinv.giveItem(p);
                       p.sendMessage(ChatUtils.format("&6Staff Mode&7: &aEnabled"));
                       staffmanager.vanished.add(p);
                       if(staffmanager.vanished.contains(all)){
                       all.showPlayer(p);
                       p.showPlayer(all);
                       } else {
                           all.hidePlayer(p);
                           p.showPlayer(all);
                       }
                     
                       if(staffmanager.staffmode.contains(p)){
                         
                       }
                         
                     
                     
                     
                       return true;
                       } else {  
                           staffmanager.staffmode.remove(p);
                           staffmanager.vanished.remove(p);
                           p.getInventory().clear();
                           all.showPlayer(p);
                           if(staffmanager.vanished.contains(all)){
                               p.hidePlayer(all);
                           }

                           p.sendMessage(ChatUtils.format("&6Staff Mode&7: &cDisabled"));
                           return true;
                       }

                   }
                       p.sendMessage(ChatColor.DARK_RED + "Error!" + ChatColor.GRAY + " : " + ChatColor.RED +   "You don't have permissions to perform this command");
                       return false;
         
               }
               return false;
     
       }
           return false; }
    }
     

     
    Toggle Vanish:
    Code (Text):
    package i.KikkerHenk.staffmode.events;

    import org.bukkit.Bukkit;
    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;
    import org.bukkit.inventory.meta.ItemMeta;

    import i.KikkerHenk.staffmode.manager.staffmanager;
    import i.KikkerHenk.utils.ChatUtils;



    public class ToggleVanish implements Listener {
     

        @EventHandler
        public void onVanishInteract(PlayerInteractEvent e){
            Player p = e.getPlayer();
            Action a = e.getAction();
         
            @SuppressWarnings("deprecation")
            ItemStack enabled = new ItemStack( Material.getMaterial(351), 1, (short)10);
            ItemMeta enabledMeta = enabled.getItemMeta();  
            enabledMeta.setDisplayName(ChatUtils.format("&6Vanish &7» &aEnabled"));
            enabled.setItemMeta(enabledMeta);
         
            @SuppressWarnings("deprecation")
            ItemStack disabled = new ItemStack( Material.getMaterial(351), 1, (short)8);
            ItemMeta disabledMeta = disabled.getItemMeta();  
            disabledMeta.setDisplayName(ChatUtils.format("&6Vanish &7» &cDisabled"));
            disabled.setItemMeta(disabledMeta);
         
         
            if(a.equals(Action.RIGHT_CLICK_AIR) && !a.equals(Action.RIGHT_CLICK_BLOCK)){
                if (!(p.getInventory().getItemInHand() == null)){
                    if (!(p.getInventory().getItemInHand().getType() == Material.AIR)){
                        if (p.getInventory().getItemInHand().hasItemMeta()){
                            if (p.getInventory().getItemInHand().getItemMeta().hasDisplayName()){
                                if(p.hasPermission("staff.vanish")){
                                if (p.getInventory().getItemInHand().getItemMeta().getDisplayName().equals(ChatUtils.format(ChatUtils.format("&6Vanish &7» &aEnabled")))){
                                    p.setItemInHand(disabled);
                                    p.updateInventory();
                                    staffmanager.vanished.remove(p);
                                    e.setCancelled(true);
                                for(Player all : Bukkit.getOnlinePlayers()){
                                        all.showPlayer(p);
                                    }
                                    return;                      
                                        }
                                 
                                 
                                 
                             
                             
                                if(p.getInventory().getItemInHand().getItemMeta().getDisplayName().equals(ChatUtils.format("&6Vanish &7» &cDisabled"))){
                                    p.setItemInHand(enabled);
                                    p.updateInventory();
                                    staffmanager.vanished.add(p);
                                    for(Player all : Bukkit.getOnlinePlayers()){
                                        if(!staffmanager.staffmode.contains(all)){
                                            all.hidePlayer(p);
                                        } else {
                                            if(staffmanager.serverstaff.contains(all)){
                                                all.showPlayer(p);
                                        }
                                         
                                        }
                                        }
                                     
                                 
                                    }
                                    e.setCancelled(true);
                                    return;
                                }
                            }
                             
                         
                          }
                        }
                    }
             
            }
            }
        }


     


    Join event

    Code (Text):
    package i.KikkerHenk.events;

    import org.bukkit.Bukkit;
    import org.bukkit.Location;
    import org.bukkit.Sound;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;

    import i.KikkerHenk.inventories.joininv;
    import i.KikkerHenk.staffmode.manager.staffmanager;
    import i.KikkerHenk.utils.ChatUtils;

    public class onJoin implements Listener {
     
        @SuppressWarnings("deprecation")
        @EventHandler
        public static void Join(PlayerJoinEvent e){
            for(Player all : Bukkit.getServer().getOnlinePlayers()){
            Player p = e.getPlayer();
            Location loc = Bukkit.getWorld("world").getSpawnLocation();
            loc.add(0.500, 0, 0.500);
            loc.setYaw(-88);
            loc.setPitch(-4);
            p.teleport(loc);
         
            if(staffmanager.vanished.contains(all)){
                p.hidePlayer(all);
           } else {
               p.showPlayer(all);
            }
         
         
            p.sendMessage(ChatUtils.format("&7&m------------------------------------------------"));
            p.sendMessage(ChatUtils.format(""));
            p.sendMessage(ChatUtils.format("&7Welcome to the &6&lCarrot PvPNetwork"));
            p.sendMessage(ChatUtils.format(""));
            p.sendMessage(ChatUtils.format("&7» &6&lWebsite: &7www.carrotpvp.net"));
            p.sendMessage(ChatUtils.format("&7» &6&lStore: &7store.carrotpvp.net"));
            p.sendMessage(ChatUtils.format("&7» &6&lTeamspeak: &7ts.carrotpvp.net"));
            p.sendMessage(ChatUtils.format(""));
            p.sendMessage(ChatUtils.format("&7&m------------------------------------------------"));
         
            p.setHealth(20);
            p.playSound(p.getLocation(), Sound.ORB_PICKUP, 0.2f, 6.0f);
            joininv.giveItem(p);
            }
        }
    }


    Code (Text):
    package i.KikkerHenk.events;

    import org.bukkit.Bukkit;
    import org.bukkit.entity.Player;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerQuitEvent;

    import i.KikkerHenk.main;
    import i.KikkerHenk.handlers.KitHandler;
    import i.KikkerHenk.staffmode.manager.staffmanager;

    public class OnLeave implements Listener {

        public static void Leave(PlayerQuitEvent e){
            Player p = e.getPlayer();
            if(staffmanager.vanished.contains(p)){
                staffmanager.vanished.remove(p);
            }
            if(staffmanager.serverstaff.contains(p)){
            staffmanager.serverstaff.remove(p);
        }
            if(staffmanager.staffmode.contains(p)){
                staffmanager.staffmode.remove(p);
             
            }
         
            if(KitHandler.PvPKit.contains(p)){
                KitHandler.PvPKit.remove(p);
            }
         
            if(KitHandler.ArcherKit.contains(p)){
                KitHandler.ArcherKit.remove(p);
            }
         
            if(KitHandler.AcrobatKit.contains(p)){
                KitHandler.AcrobatKit.remove(p);
            }
         
            if(KitHandler.ScoutKit.contains(p)){
                KitHandler.ScoutKit.remove(p);
            }
         
            if(KitHandler.WizardKit.contains(p)){
                KitHandler.WizardKit.remove(p);
            }
         
            if(main.frozen.contains(p)){
                p.setBanned(true);
            }
         
        }
    }
     

    Edit: I don't to see an actual code of you guys no spoon feeding i just wanna know what to do in short steps Thanks!