Problems with the new #602

Discussion in 'Plugin Development' started by Lolmen, Mar 30, 2011.

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

    Lolmewn

    Well, I'm trying to fix my plugin [sortal], but it's not going well. The block-rightclick has been moved or something, how to get it working again?
    I tried to find it, but did not succeed in my quest.
     
  2. Offline

    aPunch

    The BLOCK_RIGHTCLICKED event has been replaced by PLAYER_INTERACT.
     
  3. Offline

    Lolmewn

    Aha! And that just works the same?
    Because it doesn't seem to work for me..
    Code:
    pm.registerEvent(Event.Type.PLAYER_INTERACT, blockListener, Priority.Normal, this);
    Code:
    public void onBlockRightClick(PlayerInteractEvent event) {
    Block block = event.getClickedBlock();
    Player player = event.getPlayer();
    if(block.getType == Material.SIGN_POST){
    player.sendMessage("TEST");
    }
    }
     
  4. Offline

    aPunch

    I believe you need to use onPlayerInteract in place of onBlockRightClick.
     
  5. Offline

    MrChick

  6. Offline

    Lolmewn

    Well, something seems to work again.
    Code:
    13:00:55 [SEVERE] Could not pass event PLAYER_INTERACT to [Sortal]
    java.lang.ClassCastException: nl.lolmen.Sortal.SortalBlockListener cannot be cast to org.bukkit.event.player.PlayerListener
            at org.bukkit.plugin.java.JavaPluginLoader$9.execute(JavaPluginLoader.java:214)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:255)
            at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:161)
            at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:210)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:447)
            at net.minecraft.server.Packet15Place.a(SourceFile:57)
            at net.minecraft.server.NetworkManager.a(NetworkManager.java:192)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:72)
            at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:357)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    Added: Action ac = event.getAction();
    Is it now something like if(ac == "RIGHT_CLICK_BLOCK"){
    }
    or something?

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

    MrChick

    Exactly. This is how I do it:
    Code:
       @Override
        public void onPlayerInteract(PlayerInteractEvent event)
        {
            if (event.getAction().equals(Action.RIGHT_CLICK_BLOCK) )
            {
                // TODO: code here
            }
        }
     
  8. Offline

    Lolmewn

    I still get the same error:
    Code:
    13:24:08 [SEVERE] Could not pass event PLAYER_INTERACT to [Sortal]
    java.lang.ClassCastException: nl.lolmen.Sortal.SortalBlockListener cannot be cast to org.bukkit.event.player.PlayerListener
            at org.bukkit.plugin.java.JavaPluginLoader$9.execute(JavaPluginLoader.java:214)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:255)
            at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:161)
            at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:210)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:447)
            at net.minecraft.server.Packet15Place.a(SourceFile:57)
            at net.minecraft.server.NetworkManager.a(NetworkManager.java:192)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:72)
            at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:357)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
     
  9. Offline

    Edward Hand

    The error is giving you a massive hint!
    Code:
    nl.lolmen.Sortal.SortalBlockListener cannot be cast to org.bukkit.event.player.PlayerListener
    I think you probably forgot that PLAYER_INTERACT is a player event and needs to be registered to a PlayerListener
     
  10. Offline

    Lolmewn

    Ok, I get a message now =D
    Now to let the Teleport work again..

    Got a problem: Sign isn't getting recognized or something.
    Code:
    Block block = event.getClickedBlock;
    Sign s = (Sign) block;
    if(s.getLine(1).equalsIgnoreCase("[sortal]")){
    //Do stuff
    }
    What's wrong with this?
    Also, another question: Appearently player.teleportTo seems to be deprecated. What is replaced for it?

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

    Crash

    Code:
    Sign s = (Sign)block.getState();
     
    Lolmen likes this.
  12. Offline

    Lolmewn

    Ur awesome!
     
Thread Status:
Not open for further replies.

Share This Page