mirror of
https://github.com/webbukkit/dynmap.git
synced 2024-11-27 12:45:59 +01:00
fix: explicitly set sign lines
Minecraft allows for plugins to retrieve the text of a newly created or modified sign through the `SignChangeEvent.getLines()` method. In vanilla, the lines returned can be mutated, however a `SignChangeEvent.setLine(idx, text)` method exists. PaperMC has internally switched most user-facing text to using the Adventure Text components, to better support text styling and optimize serializations. For backwards compatibility with most plugins, PaperMC retains deprecated `getLines` and `setLine` methods by providing a legacy serialization view of the Aventure components, however mutations of the returned list are ignored. This changeset calls `setLine` after all event listeners ran, allowing PaperMC to preserve the sign mutations.
This commit is contained in:
parent
fc3fc5e18c
commit
2e382ae160
@ -398,6 +398,10 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
if(p != null) dp = new BukkitPlayer(p);
|
if(p != null) dp = new BukkitPlayer(p);
|
||||||
core.listenerManager.processSignChangeEvent(EventType.SIGN_CHANGE, b.getType().name(),
|
core.listenerManager.processSignChangeEvent(EventType.SIGN_CHANGE, b.getType().name(),
|
||||||
getWorld(l.getWorld()).getName(), l.getBlockX(), l.getBlockY(), l.getBlockZ(), lines, dp);
|
getWorld(l.getWorld()).getName(), l.getBlockX(), l.getBlockY(), l.getBlockZ(), lines, dp);
|
||||||
|
|
||||||
|
for (int i = 0; i < 4; i++) {
|
||||||
|
evt.setLine(i, lines[i]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}, DynmapPlugin.this);
|
}, DynmapPlugin.this);
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user