Player Chat FormatFlagsConversionMismatchException

Discussion in 'Plugin Development' started by rmb938, Aug 12, 2012.

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

    rmb938

    So I am getting the error bellow:

    Code:
    2012-08-12 14:39:29 [SEVERE] Could not pass event AsyncPlayerChatEvent to DevCore
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:332)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:459)
        at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:830)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:807)
        at net.minecraft.server.Packet3Chat.handle(Packet3Chat.java:44)
        at net.minecraft.server.NetworkManager.i(NetworkManager.java:216)
        at net.minecraft.server.NetworkManager.c(NetworkManager.java:331)
        at net.minecraft.server.NetworkReaderThread.run(SourceFile:93)
    Caused by: java.util.FormatFlagsConversionMismatchException: Conversion = c, Flags =
        at org.bukkit.event.player.AsyncPlayerChatEvent.setFormat(AsyncPlayerChatEvent.java:82)
        at com.gmail.rmb1993.devcore.listeners.DevCorePlayerListener.onPlayerChat(DevCorePlayerListener.java:179)
        at sun.reflect.GeneratedMethodAccessor94.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:330)
        ... 9 more

    Not to sure what is causing it. Here is the code:

    Code:
        @EventHandler(priority = EventPriority.NORMAL)
        public void onPlayerChat(AsyncPlayerChatEvent event) {
            Player p = event.getPlayer();
            User u = DevCore.getDb().getUser(p.getName());
            String message = event.getMessage();
            PermissionUser user = PermissionsEx.getUser(p);
            if (u.isMuted() == true) {
                event.setCancelled(true);
                return;
            }
            String prefix = user.getPrefix(p.getWorld().getName());
            if (u.getTitle().equalsIgnoreCase("none") == false) {
                if (prefix.equalsIgnoreCase("&6[Member] &f") == true) {
                    prefix = u.getTitle() + " Member] &f";
                } else if (prefix.equalsIgnoreCase("&f[Guest] ") == true) {
                    prefix = u.getTitle() + " Guest] &f";
                }
            }
            if (u.getChatChannel().equalsIgnoreCase("world") == true) {
                String world = p.getWorld().getName();
                world.replace("_nether", "");
                world.replace("_the_end", "");
                for (Player r : new HashSet<>(event.getRecipients())) {
                    String myWorld = r.getWorld().getName();
                    myWorld.replace("_nether", "");
                    myWorld.replace("_the_end", "");
                    if (world.equalsIgnoreCase(myWorld) == false) {
                        event.getRecipients().remove(r);
                    }
                }
      This is line 179 -->>          event.setFormat("<" + prefix.replaceAll("&([0-9a-fA-F])", "§$1") + "" + p.getName() + ChatColor.WHITE + "> " + message);
            } else if (u.getChatChannel().equalsIgnoreCase("global") == true) {
                if (p.hasPermission("devcore.admin") == false && p.hasPermission("devcore.mod") == false) {
                    if (globalChat.containsKey(p.getName()) == true) {
                        if (System.currentTimeMillis() - globalChat.get(p.getName()) < 15000) {
                            p.sendMessage(ChatColor.RED + "You need to wait 15 seconds to send global chat again!");
                            event.setCancelled(true);
                            return;
                        } else {
                            globalChat.remove(p.getName());
                        }
                    }
                    globalChat.put(p.getName(), System.currentTimeMillis());
                }
                event.setFormat("<" + ChatColor.RED + "[GLOBAL]" + ChatColor.WHITE + prefix.replaceAll("&([0-9a-fA-F])", "§$1") + "" + p.getName() + ChatColor.WHITE + "> " + message);
            }
        }
    if anyone has any ideas that would be awesome!
     
  2. Offline

    one4me

    Just use ChatColor.translateAlternateColorCodes('&', prefix); instead of that pattern.
     
  3. Offline

    rmb938

    ah ok ty. Did not know that was added.
     
Thread Status:
Not open for further replies.

Share This Page