Помогите Нужно в ChatEx добавить поддержку плейсхолдеров из placeholderapi

ВukkitPrоfi

Активный участник
Пользователь
Баллы
76
Нужно, чтобы в формате чата работали плейсхолдеры, проходящие через плагин placeholderapi. Чтобы можно было использовать примерно так (строки из конфига chatex):
message-format: '[%server_time_hh:mm%] [L] %player_name%: %message'
global-message-format: '[%server_time_hh:mm%] [G] %player_name%: %message'

Знаю, есть плагины, поддерживающие это, но у них нет разделения на глобальный и локальный чаты. Ни у нового ChatManager, ни у DeluxeChat, формат отображения глобального и локального чатов в их конфигах не изменить.

https://github.com/TheJeterLP/ChatEx
 
Одной строчкой заводится.
string = PlaceholderAPI.setBracketPlaceholders(player, string);
допустим, здесь вставлять, как и где?
Код:
    public static String replacePlayerPlaceholders(Player player, String format) {
        String result = format;
        result = result.replace("%displayname", player.getDisplayName());
        result = result.replace("%prefix", PluginManager.getInstance().getPrefix(player));
        result = result.replace("%suffix", PluginManager.getInstance().getSuffix(player));
        result = result.replace("%player", player.getDisplayName());
        result = result.replace("%world", player.getWorld().getName());
        result = result.replace("%group", PluginManager.getInstance().getGroupNames(player)[0]);
        result = replaceTime(result);
        result = replaceFaction(player, result);
       
        ChatExEvent e = new ChatExEvent(player, result);
        ChatEX.getInstance().getServer().getPluginManager().callEvent(e);
        result = e.getFormat();
         
        result = replaceColors(result);
        return result;
    }
 
Перед
PHP:
return result
добавь строку
PHP:
result = PlaceholderAPI.setBracketPlaceholders(players, result);
 
Перед
PHP:
return result
добавь строку
PHP:
result = PlaceholderAPI.setBracketPlaceholders(players, result);
при наличии плейсхолдера в формате, пишу в чат и выдает это:
Код:
Could not pass event AsyncPlayerChatEvent to ChatEx v1.1
org.bukkit.event.EventException: null
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[craftbukkit.jar:git-Spigot-3d850ec-809c399]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Spigot-3d850ec-809c399]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:500) [craftbukkit.jar:git-Spigot-3d850ec-809c399]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:482) [craftbukkit.jar:git-Spigot-3d850ec-809c399]
        at net.minecraft.server.v1_12_R1.PlayerConnection.chat(PlayerConnection.java:1319) [craftbukkit.jar:git-Spigot-3d850ec-809c399]
        at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1257) [craftbukkit.jar:git-Spigot-3d850ec-809c399]
        at net.minecraft.server.v1_12_R1.PacketPlayInChat$1.run(PacketPlayInChat.java:39) [craftbukkit.jar:git-Spigot-3d850ec-809c399]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_141]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_141]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_141]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_141]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_141]
Caused by: java.util.UnknownFormatConversionException: Conversion = ':'
        at org.bukkit.event.player.AsyncPlayerChatEvent.setFormat(AsyncPlayerChatEvent.java:100) ~[craftbukkit.jar:git-Spigot-3d850ec-809c399]
        at de.thejeterlp.chatex.ChatListener.execute(ChatListener.java:91) ~[?:?]
        at de.thejeterlp.chatex.listeners.LOWEST.onPlayerChat(LOWEST.java:15) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_141]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_141]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_141]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_141]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[craftbukkit.jar:git-Spigot-3d850ec-809c399]
 
при наличии плейсхолдера в формате, пишу в чат и выдает это:
Код:
Could not pass event AsyncPlayerChatEvent to ChatEx v1.1
org.bukkit.event.EventException: null
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[craftbukkit.jar:git-Spigot-3d850ec-809c399]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Spigot-3d850ec-809c399]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:500) [craftbukkit.jar:git-Spigot-3d850ec-809c399]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:482) [craftbukkit.jar:git-Spigot-3d850ec-809c399]
        at net.minecraft.server.v1_12_R1.PlayerConnection.chat(PlayerConnection.java:1319) [craftbukkit.jar:git-Spigot-3d850ec-809c399]
        at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1257) [craftbukkit.jar:git-Spigot-3d850ec-809c399]
        at net.minecraft.server.v1_12_R1.PacketPlayInChat$1.run(PacketPlayInChat.java:39) [craftbukkit.jar:git-Spigot-3d850ec-809c399]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_141]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_141]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_141]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_141]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_141]
Caused by: java.util.UnknownFormatConversionException: Conversion = ':'
        at org.bukkit.event.player.AsyncPlayerChatEvent.setFormat(AsyncPlayerChatEvent.java:100) ~[craftbukkit.jar:git-Spigot-3d850ec-809c399]
        at de.thejeterlp.chatex.ChatListener.execute(ChatListener.java:91) ~[?:?]
        at de.thejeterlp.chatex.listeners.LOWEST.onPlayerChat(LOWEST.java:15) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_141]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_141]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_141]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_141]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[craftbukkit.jar:git-Spigot-3d850ec-809c399]
Caused by: java.util.UnknownFormatConversionException: Conversion = ':'
de.thejeterlp.chatex.ChatListener.execute(ChatListener.java:91)
 
Назад
Верх