Zrips / CMI

116 stars 98 forks source link

Placeholder bug with Chat hover #7440

Open Replaycchi opened 1 year ago

Replaycchi commented 1 year ago

Description of Issue

Hi, since a recent update placeholder who return null value make the "hover" bug and broke every other placeholders. Here for example %jobsr_user_jobs% return null for a new player. image

Version Information

[21:43:37 INFO]: CMI: 9.2.6.1 BungeeCord CMIB MySQL-> 9.3.0.1
[21:43:37 INFO]: CMILib: 1.2.3.7 -> 1.2.4.1
[21:43:37 INFO]: Server: Purpur 1.19.2-R0.1-SNAPSHOT
[21:43:37 INFO]: CMI economy: Activé Vault: 1.7.3-b CMI Chat: Activé
[21:43:37 INFO]: Modules -> 48 enabled 9 disabled: spawnerProximity, deathMessages, tablist, ranks, votifier, headDrop, spawners, spawnerCharge, namePlates

Errors

No response

Relevant Config Sections

Translations file of CMI

  publicHover: '&bPseudo : &7%cmi_user_name%\n {#6f5ce6}Rang : %luckperms_prefix%\n
    {#5C7AE6}Métier : &7%jobsr_user_jobs% &6Niv&e.%jobsr_user_totallevels% &7%cmi_user_meta_metier%\n
    {#22a6b3}Solde : &6%cmi_user_balance_formatted% &8| {#22a6b3}Gemmes : &d%playerpoints_points%
    &f%img_gemmes%\n {#59b378}Succès : &f%aach_achievements%/%aach_total_achievements%
    %img_succes%'
  privateHover: '&bPseudo : &7%cmi_user_name%\n {#6f5ce6}Rang : %luckperms_prefix%\n
    {#5C7AE6}Métier : &7%jobsr_user_jobs% &6Niv&e.%jobsr_user_totallevels% &7%cmi_user_meta_metier%\n
    {#22a6b3}Solde : &6%cmi_user_balance_formatted% &8| {#22a6b3}Gemmes : &d%playerpoints_points%
    &f%img_gemmes%\n {#59b378}Succès : &f%aach_achievements%/%aach_total_achievements%
    %img_succes%'

Relevant Plugins

No response

Agreements

mrfloris commented 1 year ago

If you upgrade to the latest CMI and CMILib, and and get the latest PAPI build from https://ci.extendedclip.com/job/PlaceholderAPI/ - and start the server back up, and you type: /cmi version, does it show chat: enabled, and when you type and over over the text, does it now parse them?

If they don't. Can you try: /papi parse playernamehere %broken_placeholder% as well as /cmi placeholders parse %broken_placeholder% playernamehere and let us know if they both show the expected outcome?

Replaycchi commented 1 year ago

Ok i've found why it's doing this, i'm using a trick with Tab placeholders output replacements to make this work again before a real fix : https://github.com/Zrips/Jobs/issues/1540 But it brokes %jobsr_user_jobs% when the player has no jobs and it gives this error

[20:01:52 INFO]: Replaycchi issued server command: /papi parse Replaycchi %jobsr_user_jobs%
[20:01:52 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'papi' in plugin PlaceholderAPI v2.11.2
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[purpur-api-1.19.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:168) ~[purpur-api-1.19.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_19_R1.CraftServer.dispatchCommand(CraftServer.java:962) ~[purpur-1.19.2.jar:git-Purpur-1835]
at org.bukkit.craftbukkit.v1_19_R1.command.BukkitCommandWrapper.run(BukkitCommandWrapper.java:64) ~[purpur-1.19.2.jar:git-Purpur-1835]
at com.mojang.brigadier.CommandDispatcher.execute(CommandDispatcher.java:264) ~[purpur-1.19.2.jar:?]
at net.minecraft.commands.Commands.performCommand(Commands.java:313) ~[?:?]
at net.minecraft.commands.Commands.performCommand(Commands.java:297) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.performChatCommand(ServerGamePacketListenerImpl.java:2386) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$21(ServerGamePacketListenerImpl.java:2340) ~[?:?]
at net.minecraft.util.thread.BlockableEventLoop.lambda$submitAsync$0(BlockableEventLoop.java:59) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[purpur-1.19.2.jar:git-Purpur-1835]
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1368) ~[purpur-1.19.2.jar:git-Purpur-1835]
at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:185) ~[purpur-1.19.2.jar:git-Purpur-1835]
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1345) ~[purpur-1.19.2.jar:git-Purpur-1835]
at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1338) ~[purpur-1.19.2.jar:git-Purpur-1835]
at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?]
at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1316) ~[purpur-1.19.2.jar:git-Purpur-1835]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1204) ~[purpur-1.19.2.jar:git-Purpur-1835]
at net.minecraft.server.MinecraftServer.lambda$spin$1(MinecraftServer.java:310) ~[purpur-1.19.2.jar:git-Purpur-1835]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.NullPointerException