Custom event triggering EventException when calling event

Discussion in 'Plugin Development' started by TheWolfBadger, Jul 8, 2017.

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

    TheWolfBadger

    I should mention I do get the message "It's not null dafuq?"... Also the try catch block actually doesn't catch the exception so that's why I'm having a hard time debugging this...
    PHP:
                        //Call Event
                        
    CustomPlayerChatEvent customEvent = new
                                
    CustomPlayerChatEvent(ChatColor.translateAlternateColorCodes('&'message), evt.getPlayer(),
                                
    chatAdminPrefixStart+prefixsuffix);
                        
    /**/
                        
    Player developer Bukkit.getPlayer("TheWolfBadgerDev");
                        if(
    customEvent == null) {
                            
    developer.sendMessage("It's null oddly?");
                        } else {
                            
    developer.sendMessage("It's not null dafuq?");
                        }
                        try {
                            
    Bukkit.getServer().getPluginManager().callEvent(customEvent); //This is the line the error gives
                        
    } catch (Exception ex) {
                            
    developer.sendMessage(ex.getMessage());
                        }
    Error:
    PHP:
    org.bukkit.event.EventExceptionnull
    at org
    .bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-1.12.jar:git-Spigot-7228328-d603539]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1.12.jar:git-Spigot-7228328-d603539]
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:499) [spigot-1.12.jar:git-Spigot-7228328-d603539]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:484) [spigot-1.12.jar:git-Spigot-7228328-d603539]
    at com.jaredscarito.dcontroller.events.PlayerChatEvents.onPlayerChatEvent(PlayerChatEvents.java:47) [dController.jar:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_131]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_131]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_131]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_131]
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) [spigot-1.12.jar:git-Spigot-7228328-d603539]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [spigot-1.12.jar:git-Spigot-7228328-d603539]
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:499) [spigot-1.12.jar:git-Spigot-7228328-d603539]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:481) [spigot-1.12.jar:git-Spigot-7228328-d603539]
    at net.minecraft.server.v1_12_R1.PlayerConnection.chat(PlayerConnection.java:1307) [spigot-1.12.jar:git-Spigot-7228328-d603539]
    at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1245) [spigot-1.12.jar:git-Spigot-7228328-d603539]
    at net.minecraft.server.v1_12_R1.PacketPlayInChat$1.run(PacketPlayInChat.java:39) [spigot-1.12.jar:git-Spigot-7228328-d603539]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_131]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_131]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_131]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_131]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]
    Caused byjava.lang.NullPointerException
    Custom Event:
    PHP:
    package com.jaredscarito.dcontroller.events.custom;

    import org.bukkit.entity.Boat;
    import org.bukkit.entity.Player;
    import org.bukkit.event.Cancellable;
    import org.bukkit.event.Event;
    import org.bukkit.event.HandlerList;

    /**
    * Created by TheWolfBadger on 7/4/17.
    */
    public class CustomPlayerChatEvent extends Event implements Cancellable {
        private 
    String message;
        private 
    Player sender;
        private 
    String prefix;
        private 
    String suffix;
        private 
    Boolean cancelled;
        public 
    CustomPlayerChatEvent(String messagePlayer senderString prefixString suffix) {
            
    this.message message;
            
    this.sender sender;
            
    this.prefix prefix;
            
    this.suffix suffix;
            
    this.cancelled false;
        }
        private static final 
    HandlerList handlers = new HandlerList();

        @
    Override
        
    public HandlerList getHandlers() {
            return 
    handlers;
        }

        public static 
    HandlerList getHandlerList() {
            return 
    handlers;
        }

        @
    Override
        
    public boolean isCancelled() {
            return 
    this.cancelled;
        }

        @
    Override
        
    public void setCancelled(boolean b) {
            
    this.cancelled b;
        }
        public 
    String getMessage() {
            return 
    this.message;
        }
        public 
    String getPrefix() {
            return 
    this.prefix;
        }
        public 
    String getSuffix() {
            return 
    this.suffix;
        }
        public 
    Player getSender() {
            return 
    this.sender;
        }
        public 
    void setPrefix(String prefix) {
            
    this.prefix prefix;
        }
        public 
    void setSuffix(String suffix) {
            
    this.suffix suffix;
        }
        public 
    void setMessage(String message) {
            
    this.message message;
        }
    }
    dRanks (the other plugin which connects with the dController one):
    PHP:
    package com.jaredscarito.dranks.main;

    import com.jaredscarito.dcontroller.events.custom.CustomPlayerChatEvent;
    import com.jaredscarito.dcontroller.main.Dcontroller;
    import com.jaredscarito.dcontroller.ranks.RankAPI;
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.plugin.java.JavaPlugin;

    import java.io.File;

    /**
    * Created by TheWolfBadger on 7/7/17.
    */
    public class Drank extends JavaPlugin implements Listener {
        private 
    Dcontroller dController;
        private 
    RankAPI rankAPI;
        @
    Override
        
    public void onEnable() {
            
    this.getServer().getPluginManager().registerEvents(thisthis);
            if(!new 
    File(getDataFolder(), "config.yml").exists()) {
                
    saveDefaultConfig();
            }
            if(
    Bukkit.getServer().getPluginManager().getPlugin("dController").isEnabled()) {
                
    this.dController = (DcontrollerBukkit.getServer().getPluginManager().getPlugin("dController");
                
    this.rankAPI this.dController.getRankAPI();
            }
        }
        @
    Override
        
    public void onDisable() {}
        @
    EventHandler
        
    public void onPlayerChat(CustomPlayerChatEvent evt) {
            
    //replace <rank>
            
    String replaceRank evt.getPrefix();
            if(
    this.rankAPI.hasRank(evt.getSender())) {
                
    String rankPrefix ChatColor.translateAlternateColorCodes('&',
                        
    getConfig().getString("Ranks."+this.rankAPI.getRank(evt.getSender())));
                
    evt.setPrefix(evt.getPrefix().replace("<rank>"rankPrefix));
            } else {
                
    //Doesn't have a rank, give them lowest rank from config
                
    this.rankAPI.setRank(evt.getSender(), ChatColor.translateAlternateColorCodes('&'getConfig().getString("Ranks.LOWEST_RANK."
                        
    +evt.getSender().getWorld().getName())));
            }
        }
        public 
    boolean onCommand(CommandSender senderCommand cmdString commandLabelString args[]) {
            if(
    cmd.getName().equalsIgnoreCase("setrank")) {
                if(
    sender.hasPermission("dRanks.setrank")) {
                    if(
    args.length 2) {
                        for(
    Player player Bukkit.getOnlinePlayers()) {
                            if(
    args[0].equalsIgnoreCase(player.getName())) {
                                
    //This is the player
                                
    if(Bukkit.getWorld(args[2]) !=null) {
                                    
    //It exists
                                    
    this.rankAPI.setRank(playerargs[1]);
                                } else {
                                    
    sender.sendMessage(ChatColor.translateAlternateColorCodes('&'"&cThat world does not exist!"));
                                }
                            }
                        }
                    } else {
                        
    sender.sendMessage(ChatColor.translateAlternateColorCodes('&'"&cCorrect Usage: /setrank <player> <rank> <world>"));
                    }
                }
            }
            return 
    true;
        }
    }
     
Thread Status:
Not open for further replies.

Share This Page