Need help with a kits plugin!

Discussion in 'Plugin Development' started by XAGaming360X, May 24, 2016.

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

    XAGaming360X

    Hello all, recently I got back into coding and I am making kits for a private server of mine for me and my friends. My problem is that for my "Viper" kit, my Listener does not appear to work. I made sure to register events and the event is in a class with other active listeners. I will post pictures of my code below. Any help/suggestions appreciated.
    (listener class) (right-click and open in new tab)
    [​IMG]
    (Util class)
    [​IMG]
    (Main class)
    [​IMG]
    (Util class)
    [​IMG]
     
  2. Offline

    Zombie_Striker

    @XAGaming360X
    Please provide your code in text form. It will be easier to read, quote, and see exactly how each class is written.

    Have you debugged? Are you sure any of the events in that class work? If they do, where and when does your code stop working as intended?
     
  3. Offline

    XAGaming360X

    Code:
    package agkits.main;
    
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import agkits.cmds.KitCommand;
    import agkits.events.InventoryListener;
    import agkits.events.PlayerListener;
    
    public class Main extends JavaPlugin {
       
        public void onEnable() {
            PluginManager pm = getServer().getPluginManager();
           
            pm.registerEvents(new PlayerListener(), this);
            pm.registerEvents(new InventoryListener(), this);
           
            getCommand("kit").setExecutor(new KitCommand());
           
            System.out.println("AGKits Aplha v0.1 Enabled!");
           
           
           
        }
       
        public void onDisable() {
            System.out.println("AGKits Aplha v0.1 Disabled!");
        }
    
    }
    
    Code:
    package agkits.events;
    
    import java.util.Random;
    
    import org.bukkit.ChatColor;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.EntityDamageByEntityEvent;
    import org.bukkit.event.entity.FoodLevelChangeEvent;
    import org.bukkit.event.entity.PlayerDeathEvent;
    import org.bukkit.event.player.PlayerDropItemEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerKickEvent;
    import org.bukkit.event.player.PlayerQuitEvent;
    import org.bukkit.potion.PotionEffect;
    import org.bukkit.potion.PotionEffectType;
    
    import agkits.util.Util;
    
    public class PlayerListener implements Listener {
       
        @EventHandler
        public void onPlayerJoin(PlayerJoinEvent e) {
            e.setJoinMessage(null);
            Player p = e.getPlayer();
            p.sendMessage(ChatColor.DARK_GREEN + "This server is running AGKits v0.1.a");
        }
       
    
        public void onPlayerKick(PlayerKickEvent e) {
            e.setLeaveMessage(null);
        }
       
        @EventHandler
        public void onPlayerQuit(PlayerQuitEvent e) {
            e.setQuitMessage(null);
        }
       
        @EventHandler
        public void onPlayerDeath(PlayerDeathEvent e) {
            String s = e.getDeathMessage();
            s = ChatColor.GOLD + s;
            e.setDeathMessage(s);
            if(Util.hasKit.contains(e.getEntity().getName())) {
                Util.hasKit.remove(e.getEntity().getName());
            }
        }
       
        @EventHandler
        public void onHungerDrop(FoodLevelChangeEvent e) {
            e.setCancelled(true);
           
        }
       
        public void onPlayerDrop(PlayerDropItemEvent e) {
            e.setCancelled(true);
        }
       
       
        @EventHandler
        public void onPlayerViper(EntityDamageByEntityEvent e) {
            Player p = (Player) e.getDamager();
            Player p2 = (Player) e.getEntity();
            if (Util.viperKit.contains(p.getName())) {
       
                Random randomGenerator = new Random();
                int percentage = randomGenerator.nextInt(3);
                if (percentage <=1) {
                    p2.addPotionEffect(new PotionEffect(PotionEffectType.POISON, 40, 1));
                    return;
            }
               
        }
           
        }
       
        @EventHandler
        public void onDeath(PlayerDeathEvent e) {
            if (Util.viperKit.contains(e.getEntity().getName())) {
                Util.viperKit.remove(e.getEntity().getName());
            }
        }
    }
    
       
    
        
    Code:
    package agkits.util;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.bukkit.Color;
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.PlayerInventory;
    import org.bukkit.inventory.meta.LeatherArmorMeta;
    
    public class Util {
       
        public static List<String> hasKit = new ArrayList<String>();
       
        public static List<String> viperKit = new ArrayList<String>();
       
        public static void clearInventory(PlayerInventory inv) {
            inv.clear();
            inv.setHelmet(null);
            inv.setChestplate(null);
            inv.setLeggings(null);
            inv.setBoots(null);
        }
       
        public static void addSoup(PlayerInventory inv) {
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
           
        }
           
        public static void kitPlayer(Player p, String kit) {
            if(kit.equalsIgnoreCase("pvp")) {
            String n = p.getName();
            hasKit.add(n);
            clearInventory(p.getInventory());
            p.getInventory().addItem(new ItemStack(Material.DIAMOND_SWORD));
            p.getInventory().setHelmet(new ItemStack(Material.IRON_HELMET));
            p.getInventory().setChestplate(new ItemStack(Material.IRON_CHESTPLATE));
            p.getInventory().setLeggings(new ItemStack(Material.IRON_LEGGINGS));
            p.getInventory().setBoots(new ItemStack(Material.IRON_BOOTS));
            addSoup(p.getInventory());
           
        }
           
            if(kit.equalsIgnoreCase("archer")) {
                String n = p.getName();
                hasKit.add(n);
                clearInventory(p.getInventory());
                p.getInventory().addItem(new ItemStack(Material.STONE_SWORD));
                p.getInventory().addItem(new ItemStack(Material.BOW));
                p.getInventory().addItem(new ItemStack(Material.ARROW, 64));
                p.getInventory().setHelmet(new ItemStack(Material.LEATHER_HELMET));
                p.getInventory().setChestplate(new ItemStack(Material.IRON_CHESTPLATE));
                p.getInventory().setLeggings(new ItemStack(Material.IRON_LEGGINGS));
                p.getInventory().setBoots(new ItemStack(Material.LEATHER_BOOTS));
                addSoup(p.getInventory());
            }
           
           
            if(kit.equalsIgnoreCase("viper")) {
                String n = p.getName();
                hasKit.add(n);
                viperKit.add(n);
                clearInventory(p.getInventory());
                p.getInventory().addItem(new ItemStack(Material.IRON_SWORD));
                ItemStack helm = new ItemStack(Material.LEATHER_HELMET);
                ItemStack boots = new ItemStack(Material.LEATHER_BOOTS);
                LeatherArmorMeta meta = (LeatherArmorMeta) helm.getItemMeta();
                meta.setColor(Color.GREEN);
                helm.setItemMeta(meta);
                LeatherArmorMeta meta2 = (LeatherArmorMeta) boots.getItemMeta();
                meta2.setColor(Color.GREEN);
                boots.setItemMeta(meta2);
                p.getInventory().setHelmet(helm);
                p.getInventory().setChestplate(new ItemStack(Material.IRON_CHESTPLATE));
                p.getInventory().setLeggings(new ItemStack(Material.IRON_LEGGINGS));
                p.getInventory().setBoots(boots);
                addSoup(p.getInventory());
            }
        }
        }
    
    
    Code:
    package agkits.cmds;
    
    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 agkits.util.Util;
    
    public class KitCommand implements CommandExecutor {
        @Override
        public boolean onCommand(CommandSender s, Command cmd, String label, String[] args) {
            if(!(s instanceof Player)) {
                return false;
            }
           
            if(Util.hasKit.contains(s.getName())) {
                s.sendMessage(ChatColor.RED + "You already have a kit!");
                return false;
            }
           
            Player p = (Player) s;
            if(args[0].equalsIgnoreCase("pvp")) {
                p.sendMessage(ChatColor.GREEN + "You have chosen the " + args[0] + " kit!");
                Util.kitPlayer(p, "pvp");
                return true;
            }
           
            if(args[0].equalsIgnoreCase("archer")) {
                p.sendMessage(ChatColor.GREEN + "You have chosen the " + args[0] + " kit!");
                Util.kitPlayer(p, "archer");
                return true;
            }
           
            if(args[0].equalsIgnoreCase("viper")) {
                p.sendMessage(ChatColor.GREEN + "You have chosen the " + args[0] + " kit!");
                Util.kitPlayer(p, "viper");
                return true;
            }
            return true;
        }
    
    }
    
    ^^^

    All of the other events in the class work. The code stops working at the "onPlayerViper"

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
  4. Offline

    Zombie_Striker

    This method does not have the @EventHandler tag, so it will not work.

    This variable inside onPlayerViper is never referenced. You can remove it.

    Use ThreadLocalRandom instead of creating a new instance of Random each time.

    This it at the bottom of that method. There is no need to return since there is no other lines to read. Remove this.

    Are you sure the player is inside the arraylist?
     
  5. Offline

    XAGaming360X

    @Zombie_Striker I have made those changes and will check when after I get back home. Thank you for the input!
     
  6. Offline

    XAGaming360X

    Still not working, this is my code

    Main Class:
    Code:
    package agkits.main;
    
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import agkits.cmds.KitCommand;
    import agkits.events.InventoryListener;
    import agkits.events.PlayerListener;
    
    public class Main extends JavaPlugin {
       
        public void onEnable() {
            PluginManager pm = getServer().getPluginManager();
           
            pm.registerEvents(new PlayerListener(), this);
            pm.registerEvents(new InventoryListener(), this);
           
            getCommand("kit").setExecutor(new KitCommand());
           
            System.out.println("AGKits Aplha v0.1 Enabled!");
           
           
           
        }
       
        public void onDisable() {
            System.out.println("AGKits Aplha v0.1 Disabled!");
        }
    
    }
    
    Listener Class:
    Code:
    package agkits.events;
    
    import java.util.Random;
    import java.util.concurrent.ThreadLocalRandom;
    
    import org.bukkit.ChatColor;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.EntityDamageByEntityEvent;
    import org.bukkit.event.entity.FoodLevelChangeEvent;
    import org.bukkit.event.entity.PlayerDeathEvent;
    import org.bukkit.event.player.PlayerDropItemEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerKickEvent;
    import org.bukkit.event.player.PlayerQuitEvent;
    import org.bukkit.potion.PotionEffect;
    import org.bukkit.potion.PotionEffectType;
    
    import agkits.util.Util;
    
    public class PlayerListener implements Listener {
       
        @EventHandler
        public void onPlayerJoin(PlayerJoinEvent e) {
            e.setJoinMessage(null);
            Player p = e.getPlayer();
            p.sendMessage(ChatColor.DARK_GREEN + "This server is running AGKits v0.1.a");
        }
       
    
        @EventHandler
        public void onPlayerKick(PlayerKickEvent e) {
            e.setLeaveMessage(null);
        }
       
        @EventHandler
        public void onPlayerQuit(PlayerQuitEvent e) {
            e.setQuitMessage(null);
        }
       
        @EventHandler
        public void onPlayerDeath(PlayerDeathEvent e) {
            String s = e.getDeathMessage();
            s = ChatColor.GOLD + s;
            e.setDeathMessage(s);
            if(Util.hasKit.contains(e.getEntity().getName())) {
                Util.hasKit.remove(e.getEntity().getName());
            }
        }
       
        @EventHandler
        public void onHungerDrop(FoodLevelChangeEvent e) {
            e.setCancelled(true);
           
        }
       
       
        @EventHandler
        public void onPlayerDrop(PlayerDropItemEvent e) {
            e.setCancelled(true);
        }
       
       
        @EventHandler
        public void onPlayerViper(EntityDamageByEntityEvent e) {
            Player damager = (Player) e.getDamager();
            Player p2 = (Player) e.getEntity();
            if (Util.viperKit.contains(damager.getName())) {
       
                ThreadLocalRandom randomGenerator = (ThreadLocalRandom) new Random();
                int percentage = randomGenerator.nextInt(3);
                if (percentage <=1) {
                    p2.addPotionEffect(new PotionEffect(PotionEffectType.POISON, 40, 1));
                   
            }
               
        }
           
        }
       
        @EventHandler
        public void onDeath(PlayerDeathEvent e) {
            if (Util.viperKit.contains(e.getEntity().getName())) {
                Util.viperKit.remove(e.getEntity().getName());
            }
        }
    }
    
       
    
    KitCommand:
    Code:
    package agkits.cmds;
    
    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 agkits.util.Util;
    
    public class KitCommand implements CommandExecutor {
        @Override
        public boolean onCommand(CommandSender s, Command cmd, String label, String[] args) {
            if(!(s instanceof Player)) {
                return false;
            }
           
            if(Util.hasKit.contains(s.getName())) {
                s.sendMessage(ChatColor.RED + "You already have a kit!");
                return false;
            }
           
            Player p = (Player) s;
            if(args[0].equalsIgnoreCase("pvp")) {
                p.sendMessage(ChatColor.GREEN + "You have chosen the " + args[0] + " kit!");
                Util.kitPlayer(p, "pvp");
                return true;
            }
           
            if(args[0].equalsIgnoreCase("archer")) {
                p.sendMessage(ChatColor.GREEN + "You have chosen the " + args[0] + " kit!");
                Util.kitPlayer(p, "archer");
                return true;
            }
           
            if(args[0].equalsIgnoreCase("viper")) {
                p.sendMessage(ChatColor.GREEN + "You have chosen the " + args[0] + " kit!");
                Util.viperKit.add(p.getName());
                Util.kitPlayer(p, "viper");
                return true;
            }
           
            return true;
        }
    
    }
    
    Util Class:
    Code:
    package agkits.util;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.bukkit.Color;
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.PlayerInventory;
    import org.bukkit.inventory.meta.LeatherArmorMeta;
    
    public class Util {
       
        public static List<String> hasKit = new ArrayList<String>();
       
        public static List<String> viperKit = new ArrayList<String>();
       
        public static void clearInventory(PlayerInventory inv) {
            inv.clear();
            inv.setHelmet(null);
            inv.setChestplate(null);
            inv.setLeggings(null);
            inv.setBoots(null);
        }
       
        public static void addSoup(PlayerInventory inv) {
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
            inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
           
        }
           
        public static void kitPlayer(Player p, String kit) {
            if(kit.equalsIgnoreCase("pvp")) {
            String n = p.getName();
            hasKit.add(n);
            clearInventory(p.getInventory());
            p.getInventory().addItem(new ItemStack(Material.DIAMOND_SWORD));
            p.getInventory().setHelmet(new ItemStack(Material.IRON_HELMET));
            p.getInventory().setChestplate(new ItemStack(Material.IRON_CHESTPLATE));
            p.getInventory().setLeggings(new ItemStack(Material.IRON_LEGGINGS));
            p.getInventory().setBoots(new ItemStack(Material.IRON_BOOTS));
            addSoup(p.getInventory());
           
        }
           
            if(kit.equalsIgnoreCase("archer")) {
                String n = p.getName();
                hasKit.add(n);
                clearInventory(p.getInventory());
                p.getInventory().addItem(new ItemStack(Material.STONE_SWORD));
                p.getInventory().addItem(new ItemStack(Material.BOW));
                p.getInventory().addItem(new ItemStack(Material.ARROW, 64));
                p.getInventory().setHelmet(new ItemStack(Material.LEATHER_HELMET));
                p.getInventory().setChestplate(new ItemStack(Material.IRON_CHESTPLATE));
                p.getInventory().setLeggings(new ItemStack(Material.IRON_LEGGINGS));
                p.getInventory().setBoots(new ItemStack(Material.LEATHER_BOOTS));
                addSoup(p.getInventory());
            }
           
           
            if(kit.equalsIgnoreCase("viper")) {
                String n = p.getName();
                hasKit.add(n);
                clearInventory(p.getInventory());
                p.getInventory().addItem(new ItemStack(Material.IRON_SWORD));
                ItemStack helm = new ItemStack(Material.LEATHER_HELMET);
                ItemStack boots = new ItemStack(Material.LEATHER_BOOTS);
                LeatherArmorMeta meta = (LeatherArmorMeta) helm.getItemMeta();
                meta.setColor(Color.GREEN);
                helm.setItemMeta(meta);
                LeatherArmorMeta meta2 = (LeatherArmorMeta) boots.getItemMeta();
                meta2.setColor(Color.GREEN);
                boots.setItemMeta(meta2);
                p.getInventory().setHelmet(helm);
                p.getInventory().setChestplate(new ItemStack(Material.IRON_CHESTPLATE));
                p.getInventory().setLeggings(new ItemStack(Material.IRON_LEGGINGS));
                p.getInventory().setBoots(boots);
                addSoup(p.getInventory());
            }
        }
        }
    
     
  7. Offline

    N00BHUN73R

    @XAGaming360X
    Try adding debug messages in the methods you use for ViperKit and see where it stops
     
  8. Offline

    Zombie_Striker

    Bukkit already logs your plugins for you. You don't need to print out that your plugin has been enabled twice.

    Because of the above, you can remove this whole method too.

    Never blidnly cast. How do you know that only players will be both the damager and the damged? You don't. Check if the damager and and the damaged entitys are players before you cast.

    Thats not how this works. This is how you get the Thread's random
    Code:
    Random randomGenerator = ThreadLocalRandom.current;
    This is a duplicate of the PlayerDeathEvent above.

    These close to Fifty lines can be reduced to Two by using a for loop.


    As I asked in the previous post, are you sure the player is in the array? Have you debugged? Doing so will show you which line is wrong.
     
  9. Offline

    XAGaming360X

    Thank you for your help! it works now! However I have a new bug in my "Kangaroo kit" I have it all setup and it works fine, but when I get to the part where I want to set different velocities when theyre crouching it no longer works. I'll post the listener here. Any help appreciated

    Code:
        
    @EventHandler
        public void KangarooPerms(PlayerInteractEvent e) {
            Player p = e.getPlayer();
            if (((e.getAction() == Action.LEFT_CLICK_AIR) || (e.getAction() == Action.LEFT_CLICK_BLOCK)
                    || (e.getAction() == Action.RIGHT_CLICK_AIR) || (e.getAction() == Action.RIGHT_CLICK_BLOCK))
                    && (p.getItemInHand().getType() == Material.FIREWORK) && (Util.kangarooKit.contains(p.getName()))) {
                if (!p.isSneaking()) {
                    e.setCancelled(true);
                    if (!Util.kangarooJump.containsKey(p.getName())) {
                        Util.kangarooJump.put(p.getName(), Integer.valueOf(0));
                    }
                    if (((Number) Util.kangarooJump.get(p.getName())).equals(Integer.valueOf(0))) {
                        Util.kangarooJump.put(p.getName(), Integer.valueOf(1));
                        Vector vector = p.getEyeLocation().getDirection();
                        vector.multiply(.5);
                        vector.setY(1.5);
                        p.setVelocity(vector);
                        p.setFallDistance(-3.0F);
                    }
                    if (((Number) Util.kangarooJump.get(p.getName())).equals(Integer.valueOf(1))) {
                        Util.kangarooJump.put(p.getName(), Integer.valueOf(2));
                        Vector vector = p.getEyeLocation().getDirection();
                        vector.multiply(.25);
                        vector.setY(.75);
                        p.setVelocity(vector);
                        p.setFallDistance(-1.50F);
                    }
    
                    if (((Number) Util.kangarooJump.get(p.getName())).equals(Integer.valueOf(1))) {
                       
                    } else if (p.isSneaking()) {
    
                            e.setCancelled(true);
                            if (!Util.kangarooJump.containsKey(p.getName())) {
                                Util.kangarooJump.put(p.getName(), Integer.valueOf(0));
                            }
                            if (((Number) Util.kangarooJump.get(p.getName())).equals(Integer.valueOf(0))) {
                                Util.kangarooJump.put(p.getName(), Integer.valueOf(1));
                                Vector vector = p.getEyeLocation().getDirection();
                                vector.multiply(1.25);
                                vector.setY(.5);
                                p.setVelocity(vector);
                                p.setFallDistance(-1.0F);
                            }
                            if (((Number) Util.kangarooJump.get(p.getName())).equals(Integer.valueOf(1))) {
                                Util.kangarooJump.put(p.getName(), Integer.valueOf(2));
                                Vector vector = p.getEyeLocation().getDirection();
                                vector.multiply(.75);
                                vector.setY(.35);
                                p.setVelocity(vector);
                                p.setFallDistance(-.50F);
                            }
    
                            if (((Number) Util.kangarooJump.get(p.getName())).equals(Integer.valueOf(1))) {
                                return;
                            }
                        }
                    }
                }
            }
        
     
  10. Offline

    Zombie_Striker

    This is why encapsulation is important. This else statement states that if the player is sneaking and if the player is somehow also not sneaking at the same time (because that else statement is inside that if statement). Sincethe else is accosted with that if statement (post above), it is also checking if the value from that hashmap is not equal to 1.

    How to solve this: Fix your encapsulation. Add an end bracket between this else statement and the if statement posted above.
     
Thread Status:
Not open for further replies.

Share This Page