Calling Bukkit Event

Discussion in 'Plugin Development' started by iWareWolf, Nov 28, 2013.

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

    iWareWolf

    Code:
    2013-11-28 15:01:04 [SEVERE] Could not pass event ArenaStartEvent to CraftedFever v0.1
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
        at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30)
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:478)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:463)
        at me.CraftedFever.Listener.JoinListener.onArenaEvent(JoinListener.java:59)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
        at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30)
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:478)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:463)
        at me.CraftedFever.Listener.JoinListener.onInteract(JoinListener.java:34)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
        at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30)
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:478)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:463)
        at org.bukkit.craftbukkit.v1_6_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:207)
        at net.minecraft.server.v1_6_R3.PlayerInteractManager.interact(PlayerInteractManager.java:374)
        at net.minecraft.server.v1_6_R3.PlayerConnection.a(PlayerConnection.java:631)
        at net.minecraft.server.v1_6_R3.Packet15Place.handle(Packet15Place.java:43)
        at org.spigotmc.netty.NettyNetworkManager.b(NettyNetworkManager.java:237)
        at net.minecraft.server.v1_6_R3.PlayerConnection.e(PlayerConnection.java:117)
        at net.minecraft.server.v1_6_R3.ServerConnection.b(SourceFile:37)
        at org.spigotmc.netty.NettyServerConnection.b(NettyServerConnection.java:131)
        at net.minecraft.server.v1_6_R3.MinecraftServer.t(MinecraftServer.java:604)
        at net.minecraft.server.v1_6_R3.DedicatedServer.t(DedicatedServer.java:240)
        at net.minecraft.server.v1_6_R3.MinecraftServer.s(MinecraftServer.java:493)
        at net.minecraft.server.v1_6_R3.MinecraftServer.run(MinecraftServer.java:425)
        at net.minecraft.server.v1_6_R3.ThreadServerApplication.run(SourceFile:583)
    Caused by: java.lang.StackOverflowError
    Code:
        @EventHandler
        public void onArenaEvent(ArenaJoinEvent e) {
            Arena a = e.getArena();
            Player p = e.getPlayer();
            if (a.getPlayersInLobby.size() < 16 || cf.isDonor(p) == true) {
                List<Player> inLobby = a.getPlayersInLobby;
                inLobby.add(p);
                a.setPlayersInLobby(inLobby);
                cf.playerInArena.put(p.getName(), a);
                p.sendMessage(ChatColor.DARK_RED + "You have joined " + a.getArenaName);
                p.teleport(a.getLobby);
                if (cf.isDonor(p) == false) {
                    p.sendMessage(ChatColor.DARK_RED + "[!]" + ChatColor.GRAY + " Unlock Brute to receive crazy perks and advantages!");
                }
                if (a.getPlayersInLobby.size() > 1) {
                    ArenaStartEvent event = new ArenaStartEvent(a.getPlayersInLobby, a);
                    cf.getServer().getPluginManager().callEvent(event);
                }
            } else {
                p.sendMessage(ChatColor.DARK_RED + "[!]" + ChatColor.GRAY + " Unlock Brute to join games without worrying if they are full!");
            }
        }
    }
     
  2. Offline

    pope_on_dope

    can we see the event class? ArenaStartEvent?
     
  3. Offline

    iWareWolf

    pope_on_dope

    Code:
    package me.CraftedFever.Events;
     
    import java.util.List;
    import me.CraftedFever.Arena;
    import org.bukkit.entity.Player;
    import org.bukkit.event.Event;
    import org.bukkit.event.HandlerList;
     
    public class ArenaStartEvent extends Event {
     
        private static final HandlerList handlers = new HandlerList();
        private List<Player> players;
        private Arena arena;
     
        public ArenaStartEvent(List<Player> players, Arena a) {
            this.players = players;
            this.arena = a;
        }
     
        public List<Player> getPlayers() {
            return this.getPlayers();
        }
     
        public Arena getArena() {
            return this.arena;
        }
     
        @Override
        public HandlerList getHandlers() {
            return handlers;
        }
     
        public static HandlerList getHandlerList() {
            return handlers;
        }
    }
    
     
  4. Offline

    pope_on_dope

    what is line 59 of join listener class?
    is it calling the event?
     
  5. Offline

    iWareWolf

    pope_on_dope

    Yes.

    Code:
                    cf.getServer().getPluginManager().callEvent(event);
     
  6. Offline

    pope_on_dope

    what is the text underneath this line in the error?
    Code:
    Caused by: java.lang.StackOverflowError
    when it gives you the cause, it usually gives you the lines where it occured

    BTW! do not store instances of players, like your List<Player> things, it will cause memory leaks. store their name instead
     
  7. Offline

    xTrollxDudex

  8. Offline

    iWareWolf

    xTrollxDudex
    I just switched to Bukkit but it is still not working with the same error.
     
  9. Offline

    xTrollxDudex

  10. Offline

    kamcio96

    public List<Player> getPlayers() {
    return this.getPlayers();
    }
    Do you understand this code?
    Change to:

    public List<Player> getPlayers() {
    return this.players;
    }
     
  11. Offline

    iWareWolf

  12. Offline

    kamcio96

    And you can use spigot ;)
     
Thread Status:
Not open for further replies.

Share This Page