Action of placing water or lava bucket

Discussion in 'Plugin Development' started by C0nsole, May 12, 2012.

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

    C0nsole

    Hey there!
    So, my code is this:
    Code:
    package me.garrett2smart87.liquidprotect;
     
    import org.bukkit.Material;
    import org.bukkit.plugin.java.JavaPlugin;
    import java.util.logging.Logger;
     
    import org.bukkit.entity.Player;
    import org.bukkit.event.*;
    import org.bukkit.event.block.BlockPlaceEvent;
     
    public class Liquids extends JavaPlugin implements Listener
    {
        public Logger log;
         
        public void onEnable()
        {
            log = getLogger();
             
            getServer().getPluginManager().registerEvents(this, this);
        }
         
        @EventHandler()
        public void onBlockPlace(BlockPlaceEvent event)
        {
            if (event.getBlockPlaced().getType().equals(Material.LAVA))
            {
                if (event.getPlayer().hasPermission("lava.use"))
                {
                }
                else
                {
                    event.setCancelled(true);
                    Player p = event.getPlayer();
                    p.sendMessage("You can't place lava!");
                }
            }
        {
            if (event.getBlockPlaced().getType().equals(Material.WATER))
            {
                if (event.getPlayer().hasPermission("water.use"))
                {
                }
                else
                {
                    event.setCancelled(true);
                    Player p = event.getPlayer();
                    p.sendMessage("You can't place water!");
                }
            }
        }
    }
    }
    
    and this obviously makes it so you can't place water or lava without the permissions. Well, this makes it so you can't place the water or lava BLOCK. I was wondering how you could make it so that you could use a water or lava bucket unless you have permissions? I tried replacing where it says LAVA with LAVA_BUCKET but that doesn't work because using a lava bucket is not actually placing a block, it is an action
     
  2. Offline

    Craftiii4

    Use

    Code:java
    1. @EventHandler
    2. public void onPlayerBucketEmpty(PlayerBucketEmptyEvent event) {
    3.  
    4. }
     
  3. Offline

    C0nsole

    Ah. Many thanks :D
     
  4. Offline

    Craftiii4

    happy to help ^^
     
  5. Offline

    C0nsole

    Hm. (I'm a noobie at this) so where do I put "lava" in that line of code?
     
  6. Offline

    Craftiii4

    Code:java
    1. @EventHandler
    2. public void onPlayerBucketEmpty(PlayerBucketEmptyEvent event) {
    3.  
    4. Material bucket = event.getBucket();
    5.  
    6. if (bucket.toString().contains("LAVA")) {
    7.  
    8. }
    9.  
    10. if (bucket.toString().contains("WATER")) {
    11.  
    12. }
    13.  
    14. }
     
    garrett2smart87 likes this.
  7. Offline

    C0nsole

    Ah. Thanks...

    Craftiii4
    ok, so now my code is
    Code:java
    1. package me.garrett2smart87.liquidprotect;
    2.  
    3. import org.bukkit.Material;
    4. import org.bukkit.plugin.java.JavaPlugin;
    5. import java.util.logging.Logger;
    6.  
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.event.*;
    9. import org.bukkit.event.block.BlockPlaceEvent;
    10. import org.bukkit.event.player.PlayerBucketEmptyEvent;
    11.  
    12. public class Liquids extends JavaPlugin implements Listener
    13. {
    14. public Logger log;
    15.  
    16. public void onEnable()
    17. {
    18. log = getLogger();
    19.  
    20. getServer().getPluginManager().registerEvents(this, this);
    21.  
    22.  
    23. @EventHandler()
    24. public void onPlayerBucketEmpty(PlayerBucketEmptyEvent event) {
    25.  
    26. Material bucket = event.getBucket();
    27.  
    28. if (bucket.toString().contains("WATER")) {
    29.  
    30. if (event.getPlayer().hasPermission("water.use"))
    31. {
    32. }
    33. else
    34. {
    35. event.setCancelled(true);
    36. Player p = event.getPlayer();
    37. p.sendMessage("You can't place water!");
    38. }
    39. }
    40. {
    41. if (bucket.toString().contains("LAVA")) {
    42.  
    43. if (event.getPlayer().hasPermission("lava.use"))
    44. {
    45. }
    46. else
    47. {
    48. event.setCancelled(true);
    49. Player p = event.getPlayer();
    50. p.sendMessage("You can't place lava!");
    51. }
    52. }
    53. {
    54.  

    and I can still place water and lava buckets without the permission...

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

    Craftiii4

    Maybe try having it in its own class?, i never run anything like this from the main thread.

    You also cant run it with in the onEnable() and where's your onDissable()?

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

    C0nsole

    Ok, I beleive I have it fixed now. thanks for all your help :D
     
Thread Status:
Not open for further replies.

Share This Page