Command not registering?

Discussion in 'Plugin Development' started by TCO_007, Mar 15, 2014.

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

    TCO_007

    I am having a bit of a problem with my plugin. So far, I have made it to the point of where I have 2 kits, fisherman and PvP, and fisherman is working perfectly fine with a GUI and everything. Strangely enough, its the PvP Kit I am having problems with. When I type /pvp on my server, absolutely nothing happens. I tried debugging already and nothing showed up. I cant figure out whats going on and I hope someone can help me fix it. Thanks!

    Main Class:
    Code:java
    1. package me.TCOB055.MultiKits;
    2.  
    3. import java.util.ArrayList;
    4.  
    5. import org.bukkit.Bukkit;
    6. import org.bukkit.event.Listener;
    7. import org.bukkit.plugin.PluginManager;
    8. import org.bukkit.plugin.java.JavaPlugin;
    9.  
    10. public class Main extends JavaPlugin {
    11. public GUIListener guilisten = new GUIListener(this);
    12. public Events Events = new Events(this);
    13. //array lists for kits
    14. ArrayList<String> PvP = new ArrayList<String>();
    15. ArrayList<String> Fisherman = new ArrayList<String>();
    16. ArrayList<String> kitused = new ArrayList<String>();
    17. //end of array lists
    18.  
    19. public void onEnable() {
    20. commands();
    21. events();
    22. }
    23.  
    24. public void commands(){
    25. getCommand("Fisherman").setExecutor(new Fisherman(this));
    26. getCommand("PvP").setExecutor(new PvP(this));
    27. getCommand("kit").setExecutor(new Kit(this));
    28.  
    29. }
    30.  
    31. public void events(){
    32. PluginManager pm = getServer().getPluginManager();
    33. pm.registerEvents(Events, this);
    34. pm.registerEvents(guilisten, this);
    35.  
    36. }
    37. }
    38.  


    PvP Class:
    Code:java
    1. package me.TCOB055.MultiKits;
    2.  
    3. import org.bukkit.ChatColor;
    4. import org.bukkit.Material;
    5. import org.bukkit.command.Command;
    6. import org.bukkit.command.CommandExecutor;
    7. import org.bukkit.command.CommandSender;
    8. import org.bukkit.enchantments.Enchantment;
    9. import org.bukkit.entity.Player;
    10. import org.bukkit.inventory.ItemStack;
    11.  
    12. public class PvP implements CommandExecutor{
    13.  
    14. private Main plugin;
    15. public PvP(Main instance){
    16. plugin = instance;
    17. }
    18. public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String [] args){
    19. Player p = (Player) sender;
    20. if(commandLabel.equalsIgnoreCase("PvP")){
    21. if(!plugin.PvP.contains(p.getName())) {
    22. if(!plugin.kitused.contains(p.getName())){
    23. plugin.PvP.add(p.getName());
    24. plugin.kitused.add(p.getName());
    25. p.getInventory().clear();
    26. ItemStack PvP = new ItemStack(Material.DIAMOND_SWORD);
    27. PvP.addEnchantment(Enchantment.DAMAGE_ALL, 1);
    28. p.getInventory().addItem(PvP);
    29. p.getInventory().setHelmet(new ItemStack(Material.IRON_HELMET));
    30. p.getInventory().setChestplate(new ItemStack(Material.IRON_CHESTPLATE));
    31. p.getInventory().setLeggings(new ItemStack(Material.IRON_LEGGINGS));
    32. p.getInventory().setBoots(new ItemStack(Material.IRON_BOOTS));
    33. for(int i = 0; i < 30; i++){
    34. p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP));
    35. }
    36. } else {
    37. p.sendMessage(ChatColor.RED + "You have already chosen a kit!");
    38. }
    39.  
    40. }else {
    41. p.sendMessage(ChatColor.RED + "You have already chosen the PVP kit!");
    42. }
    43. }
    44.  
    45.  
    46. return false;
    47. }
    48. }
    49.  


    Event Class:
    Code:java
    1. package me.TCOB055.MultiKits;
    2.  
    3. import org.bukkit.ChatColor;
    4. import org.bukkit.Material;
    5. import org.bukkit.entity.Player;
    6. import org.bukkit.event.EventHandler;
    7. import org.bukkit.event.Listener;
    8. import org.bukkit.event.entity.PlayerDeathEvent;
    9. import org.bukkit.event.player.PlayerFishEvent;
    10.  
    11. public class Events implements Listener {
    12. private Main plugin;
    13. public Events(Main instance){
    14. plugin = instance; }
    15.  
    16. @EventHandler
    17. public void onPlayerHitFishingrodscorpion(final PlayerFishEvent event) {
    18. final Player player = event.getPlayer();
    19. if (event.getCaught() instanceof Player) {
    20. final Player caught = (Player) event.getCaught();
    21. if (plugin.Fisherman.contains(player.getName())) {
    22. if (player.getItemInHand().getType() == Material.FISHING_ROD) {
    23. player.sendMessage(ChatColor.AQUA + "You have fished " + ChatColor.BOLD + ChatColor.RED + caught.getName() + ChatColor.AQUA + " to you!");
    24. caught.teleport(player.getLocation());
    25. }
    26. }
    27. }
    28. }
    29. @EventHandler
    30. public void onDeath(PlayerDeathEvent e){
    31. Player p = e.getEntity();
    32. if(plugin.kitused.contains(p.getName())){
    33. plugin.kitused.remove(p.getName());
    34. if(plugin.Fisherman.contains(p.getName())){
    35. plugin.Fisherman.remove(p.getName());
    36. if(plugin.PvP.contains(p.getName())){
    37. plugin.PvP.remove(p.getName());
    38. }
    39. }
    40. }
    41. }
    42. }


    Kit Class:
    Code:java
    1. package me.TCOB055.MultiKits;
    2.  
    3. import java.util.ArrayList;
    4.  
    5. import org.bukkit.Bukkit;
    6. import org.bukkit.ChatColor;
    7. import org.bukkit.Material;
    8. import org.bukkit.command.Command;
    9. import org.bukkit.command.CommandExecutor;
    10. import org.bukkit.command.CommandSender;
    11. import org.bukkit.enchantments.Enchantment;
    12. import org.bukkit.entity.Player;
    13. import org.bukkit.inventory.Inventory;
    14. import org.bukkit.inventory.ItemStack;
    15. import org.bukkit.inventory.meta.ItemMeta;
    16.  
    17. public class Kit implements CommandExecutor{
    18. private Main plugin;
    19. public Kit(Main instance){
    20. plugin = instance;
    21. }
    22. public static Inventory kits = Bukkit.createInventory(null, 18, ChatColor.GOLD + "Kits");
    23.  
    24. public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
    25. Player p = (Player) sender;
    26. if(commandLabel.equalsIgnoreCase("kit")){
    27. kits.clear();
    28. p.sendMessage(ChatColor.GREEN + "You have opened your kits!");
    29.  
    30. ItemStack PvP = new ItemStack(Material.DIAMOND_SWORD);
    31. ItemMeta PvPMeta = PvP.getItemMeta();
    32. PvPMeta.setDisplayName(ChatColor.GRAY + "PvP");
    33. PvP.addEnchantment(Enchantment.DAMAGE_ALL, 1);
    34. ArrayList<String> PvPLore = new ArrayList<String>();
    35. PvPLore.add(ChatColor.RED + "Diamond Sword - Sharpness 1");
    36. PvPLore.add(ChatColor.GRAY + "Full iron armour!");
    37. PvPMeta.setLore(PvPLore);
    38. PvP.setItemMeta(PvPMeta);
    39. kits.setItem(0 , PvP);
    40.  
    41.  
    42.  
    43. ItemStack Fisherman = new ItemStack(Material.FISHING_ROD);
    44. ItemMeta FishermanMeta = Fisherman.getItemMeta();
    45. FishermanMeta.setDisplayName(ChatColor.GOLD + "Fisherman");
    46. Fisherman.addUnsafeEnchantment(Enchantment.DURABILITY, 10);
    47. ArrayList<String> FishermanLore = new ArrayList<String>();
    48. FishermanLore.add(ChatColor.AQUA + "Stone Sword - Sharpness 1");
    49. FishermanLore.add(ChatColor.GOLD + "Hook your enemies and pull them to you!");
    50. FishermanMeta.setLore(FishermanLore);
    51. Fisherman.setItemMeta(FishermanMeta);
    52. kits.setItem(1, Fisherman);
    53.  
    54.  
    55. p.openInventory(kits);
    56.  
    57.  
    58.  
    59. }
    60. return false;
    61. }
    62. }
    63.  


    GUIListener Class:
    Code:java
    1. package me.TCOB055.MultiKits;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.ChatColor;
    5. import org.bukkit.entity.Player;
    6. import org.bukkit.event.EventHandler;
    7. import org.bukkit.event.Listener;
    8. import org.bukkit.event.inventory.InventoryClickEvent;
    9. import org.bukkit.inventory.Inventory;
    10.  
    11. public class GUIListener implements Listener{
    12. private Main plugin;
    13. public GUIListener(Main instance){
    14. plugin = instance;
    15. }
    16. @EventHandler
    17. public void onClick(InventoryClickEvent event){
    18. if ((event.getCurrentItem() != null) && (event.getCurrentItem().getItemMeta() != null)){
    19. Inventory inv = event.getInventory();
    20. Player p = (Player)event.getWhoClicked();
    21. if ((inv.getTitle().equals(ChatColor.GOLD + "Kits"))){
    22. if (event.getCurrentItem().getItemMeta().getDisplayName().equals(ChatColor.GRAY + "PvP")){
    23. Bukkit.dispatchCommand(p, "PvP");
    24. event.setCancelled(true);
    25. p.closeInventory();
    26.  
    27. }
    28. if (event.getCurrentItem().getItemMeta().getDisplayName().equals(ChatColor.GOLD + "Fisherman")){
    29. Bukkit.dispatchCommand(p, "Fisherman");
    30. event.setCancelled(true);
    31. p.closeInventory();
    32.  
    33. }
    34.  
    35. }
    36.  
    37. }
    38.  
    39. }
    40. }
    41.  
     
  2. Did you add your commands in plugin.yml?
     
  3. Offline

    TCO_007

    Yes. I made sure to do that. Im not exactly sure if I entered them in correctly though.
    FYI the - means spaces. Forums doesnt really allow it so Im using the - to demonstrate spaces.
    name: MultiKits
    version: 1.0
    main: me.TCOB055.MultiKits.Main
    author: TCOB055
    description: All the servers kits!
    commands:
    --Fisherman:
    --PvP:
    --kit:
    DanyBv
     
  4. Offline

    jeussa

    You have nothing added to the commands.
    Add at least one thing, like a description.

    commands:
    --Fisherman:
    ----description: (description)
    --PvP:
    ----description: (description)
    --kit:
    ----description: (description)
     
  5. Offline

    TCO_007

    I tried doing that but the PvP command still does not work. jeussa
     
  6. Offline

    jeussa

    TCO_007
    Make sure that if the command is being performed by the PvP.java to return with 'true'. Otherwise bukkit will think the command has not been performed by your plugin and sends you the message 'Unknown command'

    Put
    Code:java
    1. return true;

    between lines 42 and 43 of the PvP.java
     
  7. Offline

    TCO_007

    jeussa I tried that and the command still refuses to work D:
     
Thread Status:
Not open for further replies.

Share This Page