In which plugin has the error occurred?
FancyNpcs
What happened?
When creating an NPC via the plugin API, Nexo (and likely other plugins that intercept scoreboard packets), Adventure API throws an exception caused by legacy colors.
My suggested fix is to simply migrate to modern formatting, because there is practically no reason to still use legacy.
*Nexo's developer refused to make modifications to their code.
Snippet of the API usage:
@Override
public String preview(Player player) {
Location loc = player.getEyeLocation();
Vector direction = loc.getDirection().normalize().multiply(2.5);
Location locationAhead = loc.add(direction);
locationAhead.setY(player.getY());
locationAhead.setPitch(0);
locationAhead.setYaw(player.getYaw() + 180);
NpcData data = new NpcData(player.getName() + "_preview", player.getUniqueId(), locationAhead);
data.setMirrorSkin(true);
data.setDisplayName("<empty>");
data.setVisibility(NpcVisibility.MANUAL);
data.setVisibilityDistance(6);
Npc npc = FancyNpcsPlugin.get().getNpcAdapter().apply(data);
npc.setSaveToFile(false);
FancyNpcsPlugin.get().getNpcManager().registerNpc(npc);
npc.create();
Bukkit.getScheduler().runTaskAsynchronously(Cosmetics.get(), () -> npc.spawn(player));
player.playSound(player, Sound.ENTITY_PUFFER_FISH_BLOW_UP, 0.7f, 1f);
player.closeInventory();
Bukkit.getScheduler().runTaskLater(Cosmetics.get(), () -> {
FancyNpcsPlugin.get().getNpcManager().removeNpc(npc);
npc.removeForAll();
if (player.isOnline()) {
player.playSound(player, Sound.ENTITY_ILLUSIONER_MIRROR_MOVE, 1, 1.1f);
Location particleLoc = locationAhead.clone().add(0, 1, 0);
player.spawnParticle(Particle.POOF, particleLoc, 10, 0.35, 0.8, 0.35, 0.1);
}
Bukkit.getScheduler().runTaskLater(Cosmetics.get(), () -> {
if (player.isOnline()) Cosmetics.get().cosmeticMenus.get(CosmeticType.HAT).open(player);
}, 20);
}, 100);
return "";
}
}
In which software has the error occurred?
Paper
Plugin version
2.11.0
Server version
1.21.11 PaperMC
Relevant log output
[14:52:33 WARN]: net.kyori.adventure.text.LegacyFormattingDetected: Legacy formatting codes have been detected in a component - this is unsupported behaviour. Please refer to the Adventure documentation (https://docs.papermc.io/adventure/) for more information. Component: TextComponentImpl{content="npc-�f�3�4�f�4�8�n�6", style=StyleImpl{obfuscated=not_set, bold=not_set, strikethrough=not_set, underlined=not_set, italic=not_set, color=null, shadowColor=null, clickEvent=null, hoverEvent=null, insertion=null, font=null}, children=[]}
[14:52:33 WARN]: at net.kyori.adventure.text.TextComponentImpl.warnWhenLegacyFormattingDetected(TextComponentImpl.java:84)
[14:52:33 WARN]: at net.kyori.adventure.text.TextComponentImpl.<init>(TextComponentImpl.java:74)
[14:52:33 WARN]: at net.kyori.adventure.text.TextComponentImpl.create(TextComponentImpl.java:55)
[14:52:33 WARN]: at net.kyori.adventure.text.TextComponentImpl.create0(TextComponentImpl.java:60)
[14:52:33 WARN]: at net.kyori.adventure.text.TextComponentImpl.style(TextComponentImpl.java:107)
[14:52:33 WARN]: at net.kyori.adventure.text.TextComponentImpl.style(TextComponentImpl.java:39)
[14:52:33 WARN]: at net.kyori.adventure.text.Component.hoverEvent(Component.java:2567)
[14:52:33 WARN]: at net.kyori.adventure.text.ScopedComponent.hoverEvent(ScopedComponent.java:213)
[14:52:33 WARN]: at nexo-1.25.1.jar//com.nexomc.nexo.nms.v1_21_R10.packets.transformers.ComponentTransformer.transformKyori(ComponentTransformer.kt:73)
[14:52:33 WARN]: at nexo-1.25.1.jar//com.nexomc.nexo.nms.v1_21_R10.packets.transformers.ComponentTransformer.transform(ComponentTransformer.kt:37)
[14:52:33 WARN]: at nexo-1.25.1.jar//com.nexomc.nexo.nms.v1_21_R10.packets.transformers.ComponentTransformer.transform(ComponentTransformer.kt:33)
[14:52:33 WARN]: at nexo-1.25.1.jar//com.nexomc.nexo.nms.v1_21_R10.packets.transformers.ComponentTransformer.transform(ComponentTransformer.kt:30)
[14:52:33 WARN]: at nexo-1.25.1.jar//com.nexomc.nexo.nms.commons.packets.NexoCommonsHandler.transform(NexoCommonsHandler.kt:355)
[14:52:33 WARN]: at nexo-1.25.1.jar//com.nexomc.nexo.nms.v1_21_R10.packets.NexoChannelHandler._init_$lambda$1(NexoChannelHandler.kt:97)
[14:52:33 WARN]: at nexo-1.25.1.jar//com.nexomc.nexo.nms.v1_21_R10.packets.NexoChannelHandler$special$$inlined$registerTransformer$1.invoke(NexoCommonsHandler.kt:119)
[14:52:33 WARN]: at nexo-1.25.1.jar//com.nexomc.nexo.nms.v1_21_R10.packets.NexoChannelHandler$special$$inlined$registerTransformer$1.invoke(NexoCommonsHandler.kt:118)
[14:52:33 WARN]: at nexo-1.25.1.jar//com.nexomc.nexo.nms.commons.packets.NexoCommonsHandler.transformPacket(NexoCommonsHandler.kt:138)
[14:52:33 WARN]: at nexo-1.25.1.jar//com.nexomc.nexo.nms.commons.packets.NexoCommonsHandler._init_$lambda$0(NexoCommonsHandler.kt:161)
[14:52:33 WARN]: at nexo-1.25.1.jar//com.nexomc.nexo.nms.commons.packets.NexoCommonsHandler$special$$inlined$registerTransformer$default$1.invoke(NexoCommonsHandler.kt:119)
[14:52:33 WARN]: at nexo-1.25.1.jar//com.nexomc.nexo.nms.commons.packets.NexoCommonsHandler$special$$inlined$registerTransformer$default$1.invoke(NexoCommonsHandler.kt:118)
[14:52:33 WARN]: at nexo-1.25.1.jar//com.nexomc.nexo.nms.commons.packets.NexoCommonsHandler.transformPacket(NexoCommonsHandler.kt:138)
[14:52:33 WARN]: at nexo-1.25.1.jar//com.nexomc.nexo.nms.commons.packets.NexoCommonsHandler.write(NexoCommonsHandler.kt:96)
[14:52:33 WARN]: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:825)
[14:52:33 WARN]: at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:804)
[14:52:33 WARN]: at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1041)
[14:52:33 WARN]: at io.netty.channel.Channel.writeAndFlush(Channel.java:262)
[14:52:33 WARN]: at net.minecraft.network.Connection.doSendPacket(Connection.java:469)
[14:52:33 WARN]: at net.minecraft.network.Connection.lambda$sendPacket$10(Connection.java:451)
In which plugin has the error occurred?
FancyNpcs
What happened?
When creating an NPC via the plugin API, Nexo (and likely other plugins that intercept scoreboard packets), Adventure API throws an exception caused by legacy colors.
My suggested fix is to simply migrate to modern formatting, because there is practically no reason to still use legacy.
*Nexo's developer refused to make modifications to their code.
Snippet of the API usage:
In which software has the error occurred?
Paper
Plugin version
2.11.0
Server version
1.21.11 PaperMC
Relevant log output