Solved Events not working detecting Materials? Why not?

Discussion in 'Plugin Development' started by MayoDwarf, Sep 22, 2013.

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

    MayoDwarf

    Code:java
    1. @EventHandler
    2. public void onPlayerClick(InventoryMoveItemEvent evt) {
    3. ItemStack Click = evt.getItem();
    4. if(Click.getType().equals(Material.RECORD_9)) {
    5. evt.setCancelled(true);
    6. }
    7. if(Click.getType().equals(Material.BLAZE_ROD)) {
    8. evt.setCancelled(true);
    9. }
    10.  
    11. }
    12.  
    13. @EventHandler
    14. public void onPlayerDrop(PlayerDropItemEvent evt) {
    15. Item item = evt.getItemDrop();
    16. if(item.getItemStack().equals(Material.RECORD_9)) {
    17. evt.setCancelled(true);
    18. }
    19. if(item.getItemStack().equals(Material.BLAZE_ROD)) {
    20. evt.setCancelled(true);
    21. }
    22. }
     
  2. Try just
    Code:java
    1. if(Player.getInventory.equals(Material.BLAZE_ROD)) {
    2. //Put code here you want to run
    3. }
     
  3. Offline

    ZeusAllMighty11

    Is your event registered and firing?
    Is the item in question null? is it even the item you are checking for?
    Does your class implement Listener?

    Variables start with lowercase, not Upper.


    That would check if the player inventory is a material (Blaze rod), which it will never be. It will never be anything other than the player's inventory.

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

    MayoDwarf

    Yah the event is registered but Idk why it wont run the rest of the code. No it is not. There are no errors. My class does implement listener. Variable should not be problem. TheGreenGamerHD

    This is not the answer. This will never turn true...

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

    ayden1232

    I'd try
    Code:java
    1. if(event.getItem().getTypeId() == 1) {
    2. // CODE
    3. }
    4.  

    It worked in my plugin
     
  6. Offline

    ZeusAllMighty11

    your second won't fire, because an ItemStack is NOT a Material enum, therefore you need to check it's type

    Edit: Hey MayoDwarf ! I know you from the Pokeballers server and Pixelmon website :D
     
  7. Offline

    MayoDwarf

    haha Ik you too :p :) I kinda dont play those anymore. More focused on my development jobs :p and so what should I do to fix it? What ayden sayd?
    EDIT: TheGreenGamerHD

    TheGreenGamerHD ayden1232

    Would this work?:

    Code:java
    1. @EventHandler
    2. public void onPlayerClick(InventoryMoveItemEvent evt) {
    3. ItemStack Click = evt.getItem();
    4. if(Click.getType().equals(Material.RECORD_9)) {
    5. evt.setCancelled(true);
    6. }
    7. if(Click.getType().equals(Material.BLAZE_ROD)) {
    8. evt.setCancelled(true);
    9. }
    10.  
    11. }
    12.  
    13. @EventHandler
    14. public void onPlayerDrop(PlayerDropItemEvent evt) {
    15. Item item = evt.getItemDrop();
    16. if(item.getType().equals(Material.RECORD_9)) {
    17. evt.setCancelled(true);
    18. }
    19. if(item.getType().equals(Material.BLAZE_ROD)) {
    20. evt.setCancelled(true);
    21. }
    22. }
    23.  


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

    afistofirony

    MayoDwarf or you can just do something like this:

    Code:
    @EventHandler
    public void onPlayerClick (InventoryMoveItemEvent event) {
        if (!event.isCancelled())
            event.setCancelled(event.getItem().equals(Material.RECORD_9) || event.getItem().equals(Material.BLAZE_ROD));
    }
     
  9. Offline

    ZeusAllMighty11

    It should...

    You can use an or statement or a switch statement instead of doing if if if if if for checks.

    Code:
    if(item.getType() == Material.RECORD_9 || item.getType() == Material.BLAZE_ROD){
        e.setCancelled(true);
    }
     
    switch(item.getType()){
        default:
            break;
        case RECORD_9:
            e.setCancelled(true);
            break;
        case BLAZE_ROD:
            e.setCancelled(true);
            break;
    }
     
Thread Status:
Not open for further replies.

Share This Page