Hey guys, so I am trying to my a plugin like mcpvp monk class, however it dosen't work, the goal is when you right click the blaze rod, the person you right clicks item in hand goes into there backpack and gets replaced by another item, however it dosen't work, any ideas? Here is my code Code:java package me.niknea.Kits; import java.util.HashMap;import java.util.Random; import org.bukkit.ChatColor;import org.bukkit.Material;import org.bukkit.entity.Player;import org.bukkit.event.EventHandler;import org.bukkit.event.Listener;import org.bukkit.event.player.PlayerInteractEntityEvent;import org.bukkit.inventory.ItemStack;import org.bukkit.inventory.PlayerInventory; public class RodListener implements Listener{ Kits plugin; public RodListener(Kits plugin) { this.plugin = plugin; } public int cooldown = 15; public String monkCooldownMessage = ChatColor.BLUE + "You may monk them again in %s seconds!"; public String monkedMessage = ChatColor.BLUE + "Monked!"; public transient HashMap<ItemStack, Long> monkStaff = new HashMap<ItemStack, Long>(); public boolean sendThroughInventory = true; @SuppressWarnings("deprecation") @EventHandler public void onRightClick(PlayerInteractEntityEvent event) { ItemStack item = event.getPlayer().getItemInHand(); Player player = event.getPlayer(); if (event.getRightClicked() instanceof Player && item.getType() == Material.BLAZE_ROD) { long lastUsed = 0; if (monkStaff.containsKey(item)) lastUsed = monkStaff.get(item); if (lastUsed + (1000 * cooldown) > System.currentTimeMillis()) { event.getPlayer().sendMessage( String.format(monkCooldownMessage, (-((System.currentTimeMillis() - (lastUsed + (1000 * cooldown))) / 1000)))); } else { PlayerInventory inv = ((Player) event.getRightClicked()).getInventory(); int slot = new Random().nextInt(sendThroughInventory ? 36 : 9); ItemStack replaced = inv.getItemInHand(); if (replaced == null) replaced = new ItemStack(0); ItemStack replacer = inv.getItem(slot); if (replacer == null) replacer = new ItemStack(0); inv.setItemInHand(replacer); inv.setItem(slot, replaced); monkStaff.put(item, System.currentTimeMillis()); event.getPlayer().sendMessage(monkedMessage); } } } }
Need to be MUCH mroe specific than that to expect ANY help. Are there any internal errors? Did you check to make sure you have cleared all syntax events? Have you registered events in the onEnable method? Have you made sure that there is an @EventHandler where appropriate?
Gopaintman I have tried all that. xXSniperzzXx_SD Yes here is my main class Code:java package me.niknea.Kits; import java.util.ArrayList;import java.util.HashMap;import java.util.List; import org.bukkit.Material;import org.bukkit.entity.Player;import org.bukkit.plugin.Plugin;import org.bukkit.plugin.java.JavaPlugin; public class Kits extends JavaPlugin{ public static Kits plugin; public ArrayList<String> kit = new ArrayList<String>(); public ArrayList<String> fisherman = new ArrayList<String>(); public ArrayList<String> woodaxethor = new ArrayList<String>(); public ArrayList<String> snake = new ArrayList<String>(); public ArrayList<String> slug = new ArrayList<String>(); public ArrayList<String> mutant = new ArrayList<String>(); public ArrayList<String> superman = new ArrayList<String>(); public ArrayList<String> kangaroo = new ArrayList<String>(); public ArrayList<String> monk = new ArrayList<String>(); public ArrayList<String> frosty = new ArrayList<String>(); public ArrayList<String> prick = new ArrayList<String>(); @SuppressWarnings({ "unchecked", "rawtypes" })static HashMap<String, Material[]> matData = new HashMap(); @SuppressWarnings({ "unchecked", "rawtypes" })static List<Player> Frostynomsg = new ArrayList(); public void onEnable() { plugin = this; getServer().getPluginManager().registerEvents(new DiscListener(this), this); getServer().getPluginManager().registerEvents(new onDeath (this), this); getServer().getPluginManager().registerEvents(new onJoin (this), this); getServer().getPluginManager().registerEvents(new Quit (this), this); getServer().getPluginManager().registerEvents(new FishermanListener (this), this); getServer().getPluginManager().registerEvents(new WAxeListener (this), this); getServer().getPluginManager().registerEvents(new SnakeListener (this), this); getServer().getPluginManager().registerEvents(new SlugListener (this), this); getServer().getPluginManager().registerEvents(new KangarooListener (this), this); getServer().getPluginManager().registerEvents(new FrostyListener (this), this); getServer().getPluginManager().registerEvents(new MutListener (this), this); getServer().getPluginManager().registerEvents(new PrickListener (this), this); getServer().getPluginManager().registerEvents(new RodListener (this), this); getCommand("shadow").setExecutor(new kitShadow(this)); getCommand("fisherman").setExecutor(new Fisherman(this)); getCommand("monk").setExecutor(new kitMonk(this)); getCommand("pvp").setExecutor(new PvP(this)); getCommand("archer").setExecutor(new Archer(this)); getCommand("king").setExecutor(new King(this)); getCommand("knight").setExecutor(new kitKnight(this)); getCommand("grandpa").setExecutor(new Grandpa(this)); getCommand("scout").setExecutor(new kitScout(this)); getCommand("bowser").setExecutor(new Bowser(this)); getCommand("boo").setExecutor(new kitBoo(this)); getCommand("jesus").setExecutor(new kitJesus(this)); getCommand("tank").setExecutor(new Tank(this)); getCommand("chemist").setExecutor(new kitChemist(this)); getCommand("hammerbro").setExecutor(new kitHammerbro(this)); getCommand("sonic").setExecutor(new kitSonic(this)); getCommand("urgal").setExecutor(new kitUrgal(this)); getCommand("rabbit").setExecutor(new kitRabbit(this)); getCommand("thor").setExecutor(new Thor(this)); getCommand("snake").setExecutor(new Snake(this)); getCommand("slug").setExecutor(new Slug(this)); getCommand("mutant").setExecutor(new kitMutant(this)); getCommand("superman").setExecutor(new kitSuperman(this)); getCommand("kangaroo").setExecutor(new kitKangaroo(this)); getCommand("frosty").setExecutor(new Frosty(this)); getCommand("prick").setExecutor(new kitPrick(this)); } public void onDisable() {} public static Plugin getPlugin() { return plugin; } } EDIT by Moderator: merged posts, please use the edit button instead of double posting.
Put in broadcasts at every step of the way and see where it stops. Basically just put in debug messages.
Niknea Have you tried adding debugs?(Every 3rd line of code(Give or take a line) add a System.out.println(<debugNumber>))
xXSniperzzXx_SD The first one I did nothing happend... Here is my code Code:java package me.niknea.Kits; import java.util.HashMap;import java.util.Random; import org.bukkit.ChatColor;import org.bukkit.Material;import org.bukkit.entity.Player;import org.bukkit.event.EventHandler;import org.bukkit.event.Listener;import org.bukkit.event.player.PlayerInteractEntityEvent;import org.bukkit.inventory.ItemStack;import org.bukkit.inventory.PlayerInventory; public class RodListener implements Listener{ Kits plugin; public RodListener(Kits plugin) { this.plugin = plugin; } public int cooldown = 15; public String monkCooldownMessage = ChatColor.BLUE + "You may monk them again in %s seconds!"; public String monkedMessage = ChatColor.BLUE + "Monked!"; public transient HashMap<ItemStack, Long> monkStaff = new HashMap<ItemStack, Long>(); public boolean sendThroughInventory = true; @SuppressWarnings("deprecation") @EventHandler public void onRightClick(PlayerInteractEntityEvent event) { ItemStack item = event.getPlayer().getItemInHand(); Player player = event.getPlayer(); if (event.getRightClicked() instanceof Player && item.getType() == Material.BLAZE_ROD) { System.out.println("1"); long lastUsed = 0; if (monkStaff.containsKey(item)) lastUsed = monkStaff.get(item); if (lastUsed + (1000 * cooldown) > System.currentTimeMillis()) { event.getPlayer().sendMessage( String.format(monkCooldownMessage, (-((System.currentTimeMillis() - (lastUsed + (1000 * cooldown))) / 1000)))); } else { PlayerInventory inv = ((Player) event.getRightClicked()).getInventory(); int slot = new Random().nextInt(sendThroughInventory ? 36 : 9); ItemStack replaced = inv.getItemInHand(); if (replaced == null) replaced = new ItemStack(0); ItemStack replacer = inv.getItem(slot); if (replacer == null) replacer = new ItemStack(0); inv.setItemInHand(replacer); inv.setItem(slot, replaced); monkStaff.put(item, System.currentTimeMillis()); event.getPlayer().sendMessage(monkedMessage); } } } } The "1" didin't appear, any ideas?
In the off chance, did you make sure you're compiling your plugin to the right folder? Also that you're reloading your server?
GaaTavares Before the if(event.getRightClick() ... put a System.out.println(event.getRightClicked().toString()) Just see what it prints
Do it, glad I could alert you. I'm not who is having issues >.> EDIT by Moderator: merged posts, please use the edit button instead of double posting.
GaaTavares Opps wrong Tag Niknea Before the if(event.getRightClick() ... put a System.out.println(event.getRightClicked().toString()) Just see what it prints
xXSniperzzXx_SD Just to test if its with the code or on my part, I did it, however nothing happend, here is the code Code:java package me.niknea.Kits; import java.util.HashMap;import java.util.Random; import org.bukkit.ChatColor;import org.bukkit.Material;import org.bukkit.entity.Player;import org.bukkit.event.EventHandler;import org.bukkit.event.Listener;import org.bukkit.event.player.PlayerInteractEntityEvent;import org.bukkit.inventory.ItemStack;import org.bukkit.inventory.PlayerInventory; public class RodListener implements Listener{ Kits plugin; public RodListener(Kits plugin) { this.plugin = plugin; } public int cooldown = 15; public String monkCooldownMessage = ChatColor.BLUE + "You may monk them again in %s seconds!"; public String monkedMessage = ChatColor.BLUE + "Monked!"; public transient HashMap<ItemStack, Long> monkStaff = new HashMap<ItemStack, Long>(); public boolean sendThroughInventory = true; @SuppressWarnings("deprecation") @EventHandler public void onRightClick(PlayerInteractEntityEvent event) { ItemStack item = event.getPlayer().getItemInHand(); Player player = event.getPlayer(); System.out.println(event.getRightClicked().toString()); System.out.println("2"); if (event.getRightClicked() instanceof Player && item.getType() == Material.BLAZE_ROD) { System.out.println("1"); long lastUsed = 0; if (monkStaff.containsKey(item)) lastUsed = monkStaff.get(item); if (lastUsed + (1000 * cooldown) > System.currentTimeMillis()) { event.getPlayer().sendMessage( String.format(monkCooldownMessage, (-((System.currentTimeMillis() - (lastUsed + (1000 * cooldown))) / 1000)))); } else { PlayerInventory inv = ((Player) event.getRightClicked()).getInventory(); int slot = new Random().nextInt(sendThroughInventory ? 36 : 9); ItemStack replaced = inv.getItemInHand(); if (replaced == null) replaced = new ItemStack(0); ItemStack replacer = inv.getItem(slot); if (replacer == null) replacer = new ItemStack(0); inv.setItemInHand(replacer); inv.setItem(slot, replaced); monkStaff.put(item, System.currentTimeMillis()); event.getPlayer().sendMessage(monkedMessage); } } } }