개인 자료란 (JE)

  서버 커뮤니티

Profile 갈대 대표칭호 없음

Anixz 54176694187948aa9ec9826d18458e85

Profile

질문하기 플러그인

닉네임 옆에 레벨 표시 질문

2020.05.12 조회 수 591 추천 수 0

사용하는 플긴은 에센셜X, 에센셜챗, 에센셜스폰, 볼트, 럭펌 ,플레이스홀더API입니다. (나머지는 필요없어보여서  뺌)


essentialsx chat 플긴에서 유저의 칭호 관련해서 설정할 수 있는데,  플레이스홀더를 이용하면


닉네임 옆에 레벨(아래사진의 레벨의미)을 표시할 수 있을 거라고 생각했습니다.

c27e0de995d14c10f61c391589f730aa.png


그래서,  플레이어 관련 api를 내려받고 

  • Player

/papi ecloud download Player

Gives you various placeholders for the player, that triggers the action.

%player_level%


에센셜 config에서

format: '&r[%player_level%]{DISPLAYNAME} &r: {MESSAGE}'


다음과 같이 설정했습니다.

하지만, 에러가 뜨던데 해결 방법이 있을까요.. ㅜㅜ

[18:05:47] [Async Chat Thread - #11/ERROR]: Could not pass event AsyncPlayerChatEvent to EssentialsChat v2.17.2.0

org.bukkit.event.EventException: null

        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:320) ~[spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]

        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]

        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:529) [spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]

        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:508) [spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]

        at net.minecraft.server.v1_15_R1.PlayerConnection.chat(PlayerConnection.java:1579) [spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]

        at net.minecraft.server.v1_15_R1.PlayerConnection.a(PlayerConnection.java:1517) [spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]

        at net.minecraft.server.v1_15_R1.PacketPlayInChat$1.run(PacketPlayInChat.java:41) [spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]

        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_241]

        at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_241]

        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_241]

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_241]

        at java.lang.Thread.run(Unknown Source) [?:1.8.0_241]

Caused by: java.util.UnknownFormatConversionException: Conversion = 'p'

        at org.bukkit.event.player.AsyncPlayerChatEvent.setFormat(AsyncPlayerChatEvent.java:101) ~[spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]

        at com.earth2me.essentials.chat.EssentialsChatPlayerListenerLowest.onPlayerChat(EssentialsChatPlayerListenerLowest.java:60) ~[?:?]

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_241]

        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_241]

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_241]

        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_241]

        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:316) ~[spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]

        ... 11 more


3개의 댓글

oiso2019
2020.05.12

스크립트로 하시면 됩니다

 

on chat:

>set message format to "&r[%player's level%]%player% &r: %message%"

 

>은 notepad++에서 탭키 누르면 됩니다

갈대
2020.05.12
@oiso2019

음.. config에 해당 내용을 추가하라는 뜻인가요?

스크립트 개념이 미지해서 정확한 의미를 이해 못했습니다.. ㅜㅜ

갈대
2020.05.12

해결했습니다.

https://www.spigotmc.org/resources/chatinjector.38327/

chatinjector를 설치하시고, (PlaceholderAPI, ProtocolLib 필요) 로드하면

PlaceholderAPI에서 사용하는 값을 예를 들어 %player_name% -> {player_name}

형태로 사용할 수 있도록 호환이 됩니다.

 

그러면 format: '&r[{player_level}레벨]{DISPLAYNAME} &r: {MESSAGE}'

이렇게 작성하면 잘 되네요.