Shop

Discussion in 'Plugin Development' started by XgXXSnipz, Jan 30, 2014.

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

    XgXXSnipz

    I have a weird bug for my shop plugin, when you buy something it wont take away your coins, and it won't give you items, and I've tried to change the slot that the TNT class is in, it wont change. Please HELP! this is my main class

    Code:java
    1. package me.JoeyLangston.RevisedKits;
    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.CommandSender;
    10. import org.bukkit.configuration.file.FileConfiguration;
    11. import org.bukkit.entity.Player;
    12. import org.bukkit.event.Listener;
    13. import org.bukkit.inventory.Inventory;
    14. import org.bukkit.inventory.ItemStack;
    15. import org.bukkit.inventory.meta.ItemMeta;
    16. import org.bukkit.plugin.java.JavaPlugin;
    17.  
    18. public class KitsMain extends JavaPlugin implements Listener {
    19.  
    20. public static FileConfiguration config;
    21.  
    22. public static KitsMain plugin = null;
    23.  
    24. public void onEnable() {
    25. getServer().getPluginManager().registerEvents(new EventHandlers(), this);
    26.  
    27. config = getConfig();
    28.  
    29. plugin = this;
    30. }
    31.  
    32. public static void saveFile(){
    33. plugin.saveConfig();
    34. }
    35.  
    36. public ItemStack createItem(Material material, int amount, short shrt,
    37. String displayname, String lore) {
    38. ItemStack item = new ItemStack(material, amount, (short) shrt);
    39. ItemMeta meta = item.getItemMeta();
    40. meta.setDisplayName(displayname);
    41. ArrayList<String> Lore = new ArrayList<String>();
    42. Lore.add(lore);
    43. meta.setLore(Lore);
    44.  
    45. item.setItemMeta(meta);
    46. return item;
    47. }
    48.  
    49. static Inventory shop;
    50. {
    51. shop = Bukkit.createInventory(null, 9, ChatColor.RED.toString() + ChatColor.BOLD + "SelectibleKits");
    52.  
    53. shop.setItem(1, createItem(Material.IRON_SWORD, 1, (short) 0, "§3Warrior","§fPrice §6200 §fSilver"));
    54. shop.setItem(3, createItem(Material.BOW, 1, (short) 0, "§4Archer","§fPrice §2200 §fSilver"));
    55. shop.setItem(6, createItem(Material.TNT, 1, (short) 0, "§5DemoMan","§fPrice §5200 §fSilver"));
    56.  
    57. }
    58. public boolean onCommand(CommandSender sender, Command cmd, String label,String[] a) {
    59. Player player = (Player) sender;
    60. if (cmd.getName().equalsIgnoreCase("mkit") && player.hasPermission("kits.show")) {
    61. player.openInventory(shop);
    62.  
    63. } else {
    64. player.sendMessage(ChatColor.AQUA + "Im sorry, but your current permission group does not allow you to use our plugin(mkit) if for some reason you belive this is an error please contact a server administrator or the " + ChatColor.GREEN + "Plugin Developer :D");
    65. }
    66. return false;
    67. }
    68. }
    69.  


    This is my currency class :
    Code:java
    1. package me.JoeyLangston.RevisedKits;
    2.  
    3. import org.bukkit.entity.Player;
    4. import org.bukkit.event.Listener;
    5.  
    6. public class myAPI implements Listener {
    7.  
    8. public static void giveSilver(Player p, int i) {
    9. KitsMain.config.set(p.getName() + ".Silver",
    10. KitsMain.config.getInt(p.getName() + ".Silver", 0) + i);
    11. KitsMain.saveFile();
    12. p.sendMessage("§2§l$" + i + " silver received!");
    13. }
    14.  
    15. public static void takeSilver(Player p, int i) {
    16. KitsMain.config.set(p.getName() + ".Silver",
    17. KitsMain.config.getInt(p.getName() + ".Silver", 0) - i);
    18. KitsMain.saveFile();
    19. p.sendMessage("§c§l$" + i + " silver taken!");
    20. }
    21.  
    22. public static boolean hasEnough(Player p, int i) {
    23. if (KitsMain.config.getInt(p.getName() + ".Silver") >= i)
    24. return true;
    25. return false;
    26. }
    27. }
    28.  


    This is my event handler class:
    Code:java
    1. package me.JoeyLangston.RevisedKits;
    2.  
    3. import org.bukkit.Material;
    4. import org.bukkit.entity.Monster;
    5. import org.bukkit.entity.Player;
    6. import org.bukkit.entity.Villager;
    7. import org.bukkit.event.EventHandler;
    8. import org.bukkit.event.Listener;
    9. import org.bukkit.event.entity.EntityDeathEvent;
    10. import org.bukkit.event.inventory.InventoryClickEvent;
    11. import org.bukkit.event.player.PlayerJoinEvent;
    12. import org.bukkit.inventory.ItemStack;
    13.  
    14. public class EventHandlers implements Listener {
    15.  
    16. @EventHandler
    17. public void onJoin(PlayerJoinEvent e) {
    18. Player p = e.getPlayer();
    19.  
    20. if (!KitsMain.config.contains(p.getName())) {
    21. KitsMain.config.set(p.getName() + ".Silver", 0);
    22. }
    23. }
    24.  
    25. @EventHandler
    26. public void onKill(EntityDeathEvent e) {
    27.  
    28. if (e.getEntity() instanceof Monster) {
    29. Monster m = (Monster) e.getEntity();
    30. if (m.getKiller() instanceof Player) {
    31. Player p = m.getKiller();
    32.  
    33. myAPI.giveSilver(p, 200);
    34. }
    35.  
    36.  
    37. if (e.getEntity() instanceof Villager) {
    38. Villager v = (Villager) e.getEntity();
    39. if (v.getKiller() instanceof Player) {
    40. Player p = v.getKiller();
    41. myAPI.takeSilver(p, 200);
    42. }
    43. }
    44. }
    45. }
    46. @EventHandler
    47. public void onClick(InventoryClickEvent event) {
    48. Player p = (Player) event.getWhoClicked();
    49.  
    50. if (event.getInventory().getName().equals(KitsMain.shop.getName())) {
    51. event.setCancelled(true);
    52.  
    53. if (event.getCurrentItem() == null) {
    54. return;
    55. }
    56.  
    57. if (!(event.getCurrentItem().hasItemMeta())) {
    58. return;
    59. }
    60.  
    61. if (event.getCurrentItem().getItemMeta().getDisplayName().equals("§3Warrior")) {
    62. event.getWhoClicked().getInventory().addItem(new ItemStack(Material.IRON_SWORD, 1));
    63. event.getWhoClicked().getInventory().addItem(new ItemStack(Material.COOKED_BEEF, 64));
    64. event.getWhoClicked().getInventory().setChestplate(new ItemStack(Material.CHAINMAIL_CHESTPLATE, 1));
    65. event.getWhoClicked().getInventory().setHelmet(new ItemStack(Material.TNT, 1));
    66. event.getWhoClicked().getInventory().setLeggings(new ItemStack(Material.CHAINMAIL_LEGGINGS, 1));
    67. event.getWhoClicked().getInventory().setBoots(new ItemStack(Material.CHAINMAIL_BOOTS, 1));
    68. event.getWhoClicked().closeInventory();
    69. if (event.getCurrentItem().getItemMeta().getDisplayName().equals("§3Archer")) {
    70. event.getWhoClicked().getInventory().addItem(new ItemStack(Material.BOW, 1));
    71. event.getWhoClicked().getInventory().addItem(new ItemStack(Material.ARROW, 64));
    72. event.getWhoClicked().getInventory().setChestplate(new ItemStack(Material.CHAINMAIL_CHESTPLATE, 1));
    73. event.getWhoClicked().getInventory().setHelmet(new ItemStack(Material.CHAINMAIL_HELMET, 1));
    74. event.getWhoClicked().getInventory().setLeggings(new ItemStack(Material.CHAINMAIL_LEGGINGS, 1));
    75. event.getWhoClicked().getInventory().setBoots(new ItemStack(Material.CHAINMAIL_CHESTPLATE, 1));
    76. event.getWhoClicked().closeInventory();
    77. if (event.getCurrentItem().getItemMeta().getDisplayName().equals("§3DemoMan")) {
    78. event.getWhoClicked().getInventory().addItem(new ItemStack(Material.STONE_SWORD, 1));
    79. event.getWhoClicked().getInventory().addItem(new ItemStack(Material.COOKED_BEEF, 64));
    80. event.getWhoClicked().getInventory().setChestplate(new ItemStack(Material.LEATHER_CHESTPLATE, 1));
    81. event.getWhoClicked().getInventory().setHelmet(new ItemStack(Material.LEATHER_HELMET, 1));
    82. event.getWhoClicked().getInventory().setLeggings(new ItemStack(Material.LEATHER_LEGGINGS, 1));
    83. event.getWhoClicked().getInventory().setBoots(new ItemStack(Material.LEATHER_CHESTPLATE, 1));
    84. event.getWhoClicked().getInventory().addItem(new ItemStack(Material.REDSTONE_TORCH_ON, 5));
    85. event.getWhoClicked().getInventory().addItem(new ItemStack(Material.TNT, 15));
    86. event.getWhoClicked().closeInventory();
    87.  
    88.  
    89. }
    90. if (myAPI.hasEnough(p, 25)) {
    91. myAPI.takeSilver(p, 25);
    92. } else {
    93. p.sendMessage("§cYou're too poor, go kill stuff!");
    94. }
    95. }
    96. }
    97. }
    98. }
    99. }
    100.  


    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 6, 2016
  2. Offline

    McMhz

    Try casting the thing who clicked into a player.
    Code:java
    1. Player p = (Player) e.getWhoClicked();
     
  3. Offline

    XgXXSnipz

    ok im trying now!

    no work

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 6, 2016
Thread Status:
Not open for further replies.

Share This Page