Disabling Spawner Placing in the Nether

Discussion in 'Plugin Development' started by Jarglax, Sep 22, 2014.

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

    Jarglax

    Code:java
    1. @EventHandler(priority = EventPriority.HIGH)
    2. public void onPlDayerUse(BlockPlaceEvent event) {
    3. Player p = event.getPlayer();
    4. if (p.getItemInHand().getType() == Material.MOB_SPAWNER) {
    5. if(event.getPlayer().getWorld().getEnvironment() != Environment.NETHER) {
    6. event.setCancelled(true);

    How do Disable Placing Spawners in the nether? ;)
     
  2. Offline

    Phreak2600

    That looks to me like you have it set so if the environment is NOT the nether to deny spawner placement?

    Try:
    Code:java
    1. if(event.getPlayer().getWorld().getEnvironment() == Environment.NETHER)
     
    es359 likes this.
  3. Offline

    es359

    Phreak2600 Is correct. Check to see if the world the player is in, is equal to the Nether. Jarglax
     
  4. Offline

    Jarglax

    Didn't fix it.. Still can place ITEM 52 in nether

    PhreaK
    Didn't Fix it
    ------
    And I tried this aswell
    Code:java
    1. @EventHandler(priority = EventPriority.HIGH)
    2. public void onPlDayerUse(BlockPlaceEvent event) {
    3. Player p = event.getPlayer();
    4. if (p.getItemInHand().getType() == Material.MOB_SPAWNER) {
    5. if(event.getPlayer().getWorld().getEnvironment() == Environment.NETHER)
    6. event.getBlockPlaced().breakNaturally();
    7. event.setCancelled(true);


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

    Phreak2600

    Try this? I'm pretty noobish at this, but worth a try...

    Code:java
    1. @EventHandler(priority = EventPriority.HIGH)
    2. public void onPlDayerUse(BlockPlaceEvent event) {
    3. Player p = event.getPlayer();
    4. if (p.getBlock().getType() == Material.MOB_SPAWNER) {
    5. if(event.getPlayer().getWorld().getEnvironment() == Environment.NETHER) {
    6. event.setCancelled(true);
     
  6. Offline

    Fhbgsdhkfbl

    Jarglax
    Did you register your events?
     
    es359 likes this.
  7. Offline

    es359

    This is what I tested... Worked fine. Make sure your events have been registered as Fhbgsdhkfbl said.
    Code:java
    1. @EventHandler
    2. public void onBlockPlace(BlockPlaceEvent event) {
    3.  
    4. Player p = event.getPlayer();
    5.  
    6. if(p.getItemInHand().getType() == Material.MOB_SPAWNER) {
    7. if(event.getPlayer().getWorld().getEnvironment() == World.Environment.NETHER) {
    8. if(!p.hasPermission("Place.spawner")) {
    9. event.setCancelled(true);
    10.  
    11. p.sendMessage(ChatColor.RED+ "You are not allowed to place spawners in the Nether, " + p.getName() + ChatColor.RED + ".");
    12. }
    13. }
    14. }
    15. }
     
  8. Offline

    Jarglax

    How to register events :O?

    im a newb btw
    And World.Environment doesnt work so i removed world.

    I've used events b4 without registering them

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

    es359

    Well they wouldn't have worked.

    In your onEnable method in your plugin, add:
    Code:java
    1. Bukkit.getServer().getPluginManager().registerEvents(new YourListener(), this);
     
  10. Offline

    Jarglax

    NVM ITS FIXED TYVM MAYN
     
Thread Status:
Not open for further replies.

Share This Page