1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем ВukkitPrоfi, 23 июн 2018.

  1. Автор темы
    ВukkitPrоfi

    В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
     
  2. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Одной строчкой заводится.
    string = PlaceholderAPI.setBracketPlaceholders(player, string);
     
  3. Автор темы
    ВukkitPrоfi

    ВukkitPrоfi Активный участник Пользователь

    Баллы:
    76
    допустим, здесь вставлять, как и где?
    Код:
    
        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;
        }
    
     
  4. Slavkaa

    Slavkaa Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Slavok2001
    Перед
    PHP:
    return result
    добавь строку
    PHP:
    result PlaceholderAPI.setBracketPlaceholders(playersresult);
     
  5. Автор темы
    ВukkitPrоfi

    ВukkitPrоfi Активный участник Пользователь

    Баллы:
    76
    при наличии плейсхолдера в формате, пишу в чат и выдает это:
    Код:
    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]
    
     
  6. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Caused by: java.util.UnknownFormatConversionException: Conversion = ':'
    de.thejeterlp.chatex.ChatListener.execute(ChatListener.java:91)
     

Поделиться этой страницей