Hi, im making a Quake Plugin and i've coded a Railgun that instant kills the target entity... The problem is that I'd like to have a CommandManager class (i've already coded it) and another packet wich contains the classes of the commands.. I want to check if the player had executed the command "/gun", i've coded it but in the RailGun class.. Now I want to make the Gun command class and i can't do it.. Sorry for my bad english and hope u understood it.. Here is the RailGun Class code: Code:java package me.TheL0w3R.MGQuake.Guns; import java.lang.reflect.Method;import java.util.Random; import org.bukkit.Location;import org.bukkit.Material;import org.bukkit.block.Block;import org.bukkit.entity.Entity;import org.bukkit.entity.Firework;import org.bukkit.entity.LivingEntity;import org.bukkit.entity.Player;import org.bukkit.event.EventHandler;import org.bukkit.event.block.Action;import org.bukkit.event.player.PlayerInteractEvent; public class RailGun { int timer,id = 0; Random gen = new Random(); @SuppressWarnings("deprecation") @EventHandler public void onS(PlayerInteractEvent event){ if (event.getAction() != Action.RIGHT_CLICK_AIR) return; Player p = event.getPlayer(); if (p.getItemInHand()==null) return; if (p.getItemInHand().getType()!= Material.DIAMOND_HOE) return; try { for(Block loc:event.getPlayer().getLineOfSight(null, 100)){ playFirework(loc.getLocation()); for (Entity e : loc.getChunk().getEntities()){ if (!(e instanceof LivingEntity)) continue; Location l = p.getEyeLocation(); LivingEntity le = (LivingEntity) e; if (le.getLocation().distance(l)<=1.5) le.damage(100000); } } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } private Object[] dataStore = new Object[5]; public void playFirework(Location loc) throws Exception { Firework fw = (Firework) loc.getWorld().spawn(loc, Firework.class); if(dataStore[0] == null) dataStore[0] = getMethod(loc.getWorld().getClass(), "getHandle"); if(dataStore[2] == null) dataStore[2] = getMethod(fw.getClass(), "getHandle"); dataStore[3] = ((Method) dataStore[0]).invoke(loc.getWorld(), (Object[]) null); dataStore[4] = ((Method) dataStore[2]).invoke(fw, (Object[]) null); if(dataStore[1] == null) dataStore[1] = getMethod(dataStore[3].getClass(), "addParticle"); ((Method) dataStore[1]).invoke(dataStore[3], new Object[] {"fireworksSpark", loc.getX(),loc.getY(),loc.getZ(),gen.nextGaussian() * 0.05D, -(loc.getZ()* 1.15D) * 0.5D, gen.nextGaussian() * 0.05D}); fw.remove(); } private Method getMethod(Class<?> cl, String method) { for(Method m : cl.getMethods()) if(m.getName().equals(method)) return m; return null; }} And here is the Gun command class code: Code:java package me.TheL0w3R.MGQuake.cmds; import java.util.ArrayList; import org.bukkit.ChatColor;import org.bukkit.Material;import org.bukkit.command.CommandSender;import org.bukkit.entity.Player;import org.bukkit.inventory.ItemStack; import me.TheL0w3R.MGQuake.GameCommand; [USER=90791533]me.[/USER]TheL0w3R.MGQuake.CommandInfo(description = "Give the player a Gun.", aliases = {"gun"}, usage = "")public class Gun extends GameCommand{ ArrayList<Player> playerGunner = new ArrayList<Player>(); @Override public void onCommand(CommandSender sender, Player p, String[] args) { p = (Player) sender; playerGunner.add(p); p.sendMessage(ChatColor.GREEN + "Here is your RailGun!"); p.getInventory().addItem(new ItemStack(Material.DIAMOND_HOE)); } } I'd like to check if they had used the command by adding this: Code:java if (!(playerGunner.contains(p))); But i can't use playerGunner ArrayList because it's on the Gun command class..