PaperMC / PaperMC/Paper

Score Component not being rendered on signs

Open
#9,121 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

status: input wanted type: bug
Dominant language
Java
Stars
12.7k
Forks
3.5k
Avg merge
3d 13h
Merged PRs (30d)
11

Description

Expected behavior

When creating a Adventure score component and putting it onto a sign, it should display the score immediately upon update.

Observed/Actual behavior

The sign will change the component without rendering a score number.
Only when then cloning the sign with nbt, using middle click, and placing it as a new block, the component is rendered properly.

Steps/models to reproduce

In this example, I created a command, using the CommandAPI, that interpretes MiniMessage, but it will behave the same way, when directly manipulating a sign on a hardcoded location and without interpreting MiniMessage or executing a command.

return new CommandAPICommand("setline")
    .withArguments(
        new IntegerArgument("line", 1, 4),
        new TextArgument("text")
    ).executesPlayer((player, args) -> {
        Sign sign = getSign(player); // this method just traces the sign in sight

        sign.line((Integer) args[0] - 1, MiniMessage.miniMessage().deserialize((String) args[1]));
        sign.update();
    });

You can see the behaviour in this video: https://youtu.be/TK64-E8hQAQ

Plugin and Datapack List
Server Plugins (19):
Bukkit Plugins:
  - Bansystem, Chunky, ChunkyBorder, Faradize, FaradizeApi, FaradizeDB, Inventories, LuckPerms, Magellan, Multiverse-Core
  *ParticleLIB, Protect, ProtocolLib, ServerSigns, Vault, verbereitet, Votifier, WorldEdit, WorldGuard

There are 2 data packs enabled: [vanilla (built-in)], [file/bukkit (world)]
There are no more data packs available
Paper version
This server is running Paper version git-Paper-508 (MC: 1.19.4) (Implementing API version 1.19.4-R0.1-SNAPSHOT) (Git: 5ffdff8)
You are running the latest version
Previous version: git-Paper-489 (MC: 1.19.4)
Other

I already discussed this issue with the folks of Kyori and they noted that this is probably an issue with the implementing platform.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the sign.update() behavior with the provided Java command and a score component on a sign. Trace the sign update path in the Paper implementation and compare it with the NBT clone-and-place behavior described in the report. Done means the score renders immediately after the sign is updated.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.