Solved How to make your plugin last at messing with chat?

Discussion in 'Plugin Development' started by MGlolenstine, May 24, 2017.

Thread Status:
Not open for further replies.
  1. Ok, so I've been working on a plugin, that gives players prefixes, which correlate to their ranks in-game. But simultaneously I use Factions plugin, which also changes player's name. So, how can I set my plugin, to be the last at editing the chat message? I disabled the Factions' in-chat prefix, but now the text is normal, so it apparently resets my edits.

    Thanks for the help!
     
  2. Online

    timtower Administrator Administrator Moderator

  3. My code or the Factions' code?
     
  4. Online

    timtower Administrator Administrator Moderator

  5. Code:
    @EventHandler
        public void apce(AsyncPlayerChatEvent e) throws Exception{
            main1 = mgbuy.getPlugin(mgbuy.class);
            String name = "";
            String divide = main1.getDivider();
            String pre_message = main1.getPreMsg();
            String msg = "";
            String full_name = "";
            String gf = e.getFormat();
            if(getRank(e.getPlayer().getDisplayName())-50 >= 0){
                name = main1.rankNames[getRank(e.getPlayer().getDisplayName())-50]+" "+e.getPlayer().getDisplayName();
            }else{
                name = e.getPlayer().getDisplayName();
            }
       
            msg = pre_message+e.getMessage();
            String name1 = ChatColor.translateAlternateColorCodes('&', name);
            String msg1 = ChatColor.translateAlternateColorCodes('&', msg);
            String divider = ChatColor.translateAlternateColorCodes('&', divide);
            //Bukkit.getPlayer("MGlolenstine").sendMessage("msg: "+msg);
            //Bukkit.getPlayer("MGlolenstine").sendMessage("msg1: "+msg1);
            if(name != null && msg1 != null && divider != null){
                //full_name = String.format("[%3$tT] %1$2s%4$2s%2$2s", name1, msg1, Calendar.getInstance(), divider);
                full_name = String.format("[%1$tT] %2$2s%3$2s%4$2s", Calendar.getInstance(), name1, divider, msg1);
            }
            e.setFormat(full_name);
        }
    Here you go!
    Anything wrong with the code?
    It works on servers without Factions plugin.
    I just realised, that there is an error on line 41:
    Code:
    [19:33:17 ERROR]: Could not pass event AsyncPlayerChatEvent to MGBuy v1.0
    org.bukkit.event.EventException
            at com.destroystokyo.paper.event.executor.MethodHandleEventExecutor.exec
    ute(MethodHandleEventExecutor.java:37) ~[spigot-1.11.2-R0.1-SNAPSHOT.jar:git-Tac
    oSpigot-"2cf491a"]
            at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:7
    4) ~[spigot-1.11.2-R0.1-SNAPSHOT.jar:git-TacoSpigot-"2cf491a"]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62) ~[spigot-1.11.2-R0.1-SNAPSHOT.jar:git-TacoSpigot-"2cf491a"]
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:517) [spigot-1.11.2-R0.1-SNAPSHOT.jar:git-TacoSpigot-"2cf491a"]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:499) [spigot-1.11.2-R0.1-SNAPSHOT.jar:git-TacoSpigot-"2cf491a"]
            at net.minecraft.server.v1_11_R1.PlayerConnection.chat(PlayerConnection.
    java:1290) [spigot-1.11.2-R0.1-SNAPSHOT.jar:git-TacoSpigot-"2cf491a"]
            at net.minecraft.server.v1_11_R1.PlayerConnection.a(PlayerConnection.jav
    a:1205) [spigot-1.11.2-R0.1-SNAPSHOT.jar:git-TacoSpigot-"2cf491a"]
            at net.minecraft.server.v1_11_R1.PacketPlayInChat$1.run(PacketPlayInChat
    .java:39) [spigot-1.11.2-R0.1-SNAPSHOT.jar:git-TacoSpigot-"2cf491a"]
            at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [
    ?:1.8.0_131]
            at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_131]
            at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:
    1.8.0_131]
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?
    :1.8.0_131]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_131]
    Caused by: java.lang.NullPointerException
            at xyz.mglolenstine.mgbuy.getPreMsg(mgbuy.java:111) ~[?:?]
            at xyz.mglolenstine.MyListener.apce(MyListener.java:41) ~[?:?]
            at com.destroystokyo.paper.event.executor.MethodHandleEventExecutor.exec
    ute(MethodHandleEventExecutor.java:35) ~[spigot-1.11.2-R0.1-SNAPSHOT.jar:git-Tac
    oSpigot-"2cf491a"]
            ... 12 more
    Fixed it... A small mistake on my part... There was no required stuff in the config.yml.
    [​IMG]
     
    Last edited: May 24, 2017
Thread Status:
Not open for further replies.

Share This Page