Random Errors?

Discussion in 'Plugin Development' started by CheeseNips, Sep 16, 2015.

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

    CheeseNips

    Help i keep getting random errors
    Vanish.Java:
    Code:
    package xyz.cheesenips;
    
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import java.util.ArrayList;
    import java.util.logging.Logger;
    
    public class Vanish extends JavaPlugin {
    
        public Logger log = Logger.getLogger("Minecraft");
        private ArrayList<String> hiddenUsernames = new ArrayList<String>();
       
        public void onEnable() {
            getServer().getPluginManager().registerEvents(new VanishLoginHandler(this), this);
            getServer().getPluginManager().registerEvents(new VanishPlayerHandler(this), this);
            getCommand("vanish").setExecutor(this);
        }
    
        public void onDisable() {
            for (Player p : getServer().getOnlinePlayers()) {
                if (isVanished(p)) {
                    showPlayer(p);
                }
            }
            hiddenUsernames.clear();
            log.info("All players are visible again");
        }
       
    
        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
            if (!(sender instanceof Player)) return false;
           
            Player player = (Player) sender;
            if (args.length > 0) {
                if (args[0].equalsIgnoreCase("list")) {
                    if (!player.hasPermission("vanish.list")) {
                        player.sendMessage(ChatColor.GRAY + "You don't have permission");
                        return true;
                    }
                    if (hiddenUsernames.size() > 0) {
                        StringBuilder builder = new StringBuilder();
                        for (int i = 0; i < hiddenUsernames.size(); i++) {
                            builder.append(hiddenUsernames.get(i));
                            if (i < hiddenUsernames.size() - 1) {
                                builder.append(", ");
                            }
                        }
                   
                        player.sendMessage(ChatColor.GRAY + "Hidden players: " + builder.toString());
                    } else {
                        player.sendMessage(ChatColor.GRAY + "There are no hidden players");
                    }
                    return true;
                } else if (args[0].equalsIgnoreCase("help") || args[0].equalsIgnoreCase("?")) {
                    return false;
                } else if (player.hasPermission("vanish.vanishother")) {
                    Player target = getServer().getPlayer(args[0]);
                    if (target == null) target = getServer().getPlayerExact(args[0]);
                    if (target == null) {
                        player.sendMessage(ChatColor.GRAY + "Player doesn't exist or too many results");
                        return true;
                    }
                   
                    if (!isVanished(target)) {
                        vanishPlayer(target);
                        target.sendMessage(ChatColor.GRAY + "You have vanished");
                        player.sendMessage(ChatColor.GRAY + target.getName() + " is now invisible");
                        getServer().broadcastMessage(ChatColor.YELLOW + target.getName() + " left the game.");
                        return true;
                    } else {
                        showPlayer(target);
                        target.sendMessage(ChatColor.GRAY + "You are no longer invisible");
                        player.sendMessage(ChatColor.GRAY + target.getName() + " is no longer invisible");
                        getServer().broadcastMessage(ChatColor.YELLOW + target.getName() + " joined the game.");
                        return true;
                    }
                }
            } else if (player.hasPermission("vanish.vanish")) {
                if (!isVanished(player)) {
                    vanishPlayer(player);
                    player.sendMessage(ChatColor.GRAY + "You have vanished");
                    getServer().broadcastMessage(ChatColor.YELLOW + player.getName() + " left the game.");
                    return true;
                } else {
                    showPlayer(player);
                    player.sendMessage(ChatColor.GRAY + "You are visible again");
                    getServer().broadcastMessage(ChatColor.YELLOW + player.getName() + " joined the game.");
                    return true;
                }
            }
            return false;
        }
       
        public boolean isVanished(Player player) {
            return hiddenUsernames.contains(player.getName());
        }
    
        public void vanishPlayer(Player player) {
            hiddenUsernames.add(player.getName());
            for (Player p1 : getServer().getOnlinePlayers()) {
                if (p1 == player) {
                    continue;
                } else if (p1.hasPermission("vanish.seeall")) {
                    p1.sendMessage(ChatColor.GRAY + player.getName() + " vanished");
                    continue;
                } else if (p1.hasPermission("vanish.list")) {
                    p1.hidePlayer(player);
                    p1.sendMessage(ChatColor.GRAY + player.getName() + " vanished");
                    continue;
                }
                p1.hidePlayer(player);
            }
        }
       
        public void showPlayer(Player player) {
            hiddenUsernames.remove(player.getName());
            for (Player p1 : getServer().getOnlinePlayers()) {
                p1.showPlayer(player);
            }
        }
    
    
    }
    VanishLoginHandler.java:
    Code:
    package xyz.cheesenips;
    
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerLoginEvent;
    import org.bukkit.event.player.PlayerQuitEvent;
    
    public class VanishLoginHandler implements Listener {
       
        private Vanish plugin;
    
        public VanishLoginHandler(Vanish plugin) {
            this.plugin = plugin;
        }
       
        @EventHandler
        public void handleLogin(PlayerLoginEvent event) {
            Player player = event.getPlayer();
    
            if (plugin.isVanished(player)) {
                plugin.showPlayer(player);
            }
            if (player.hasPermission("vanish.seeall")) return;
            for (Player p1 : plugin.getServer().getOnlinePlayers()) {
                if (plugin.isVanished(p1) && player != p1 && p1 != null) { //`&& p1 != null` shouldn't be necessary. odd.
                    player.hidePlayer(p1);
                }
            }
        }
    
        @EventHandler
        public void handleQuit(PlayerQuitEvent event) {
            Player player = event.getPlayer();
           
            if (plugin.isVanished(player)) {
                plugin.showPlayer(player);
            }
        }
    }
    VanishPlayerHandler.java: (This is where i get errors)
    Code:
    package xyz.cheesenips;
    
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.EntityDamageByBlockEvent;
    import org.bukkit.event.entity.EntityDamageByEntityEvent;
    import org.bukkit.event.entity.EntityTargetEvent;
    import org.bukkit.event.player.PlayerPickupItemEvent;
    
    public class VanishPlayerHandler implements Listener {
       
        private Vanish plugin;
       
        public VanishPlayerHandler(Vanish plugin) {
            this.plugin = plugin;
        }
       
        @EventHandler
        public void onEntityTarget(EntityTargetEvent event) {
            if (event.getTarget() instanceof Player && plugin.isVanished((Player)event.getTarget())) {
                event.setCancelled(true);
            }
        }
    
    
        @EventHandler
        public void onDamageByBlock(EntityDamageByBlockEvent event) {
            if (event.getEntity() instanceof Player && plugin.isVanished((Player)event.getEntity())) {
                event.setCancelled(true);
            }
        }
       
        @EventHandler
        public void onDamageByEntity(EntityDamageByEntityEvent event) {
            if (event.getDamager() instanceof Player && plugin.isVanished((Player)event.getEntity())) {
                event.setCancelled(true);
            } else if (event.getEntity() instanceof Player && ((Vanish) plugin).isVanished((Player)event.getEntity())) {
                event.setCancelled(true);
            }
        }
    
        @EventHandler
        public void onItemPickup(PlayerPickupItemEvent event) {
            if (plugin.isVanished(event.getPlayer())) {
                event.setCancelled(true);
            }
        }
    }
    
    it is the [​IMG]
    in VanishPlayerHandler.Java HELP
     
  2. Offline

    boomboompower

    What does it say if you scoll over "isVanished"?
     
  3. Offline

    meguy26

    @CheeseNips
    There is no such thing as a random error...

    Edit:
    Allow me to clarify, what I mean by that is every error has a cause, its not a random event, an error occurs because something went wrong, however I'm not saying you caused the error, in fact, your code looks fine to me.... What DOES it say when you hover over said errors?
     
    Last edited: Sep 17, 2015
  4. Offline

    FabeGabeMC

    Isn't it about time we switch to UUIDs?
    Edit: Also, what "errors" are you getting?
     
Thread Status:
Not open for further replies.

Share This Page