Paper 1.19.4+ with Java 21? → multification-paper Bukkit/Spigot or older Java? → multification-bukkit
Use global replacer:
@Override
protected Replacer<CommandSender> globalReplacer() {
return (viewer, text) -> viewer instanceof Player p
? PlaceholderAPI.setPlaceholders(p, text) : text;
}
Both work. CDN is simpler, Okaeri has more features. Pick one.
Cause: Using Bukkit module on Paper or missing Adventure dependency Fix: Use multification-paper on Paper, or add adventure-platform-bukkit for Bukkit
Cause: Java version mismatch Fix: Paper module needs Java 21, Bukkit works with Java 8+
Cause: Version conflict with other plugins Fix: Relocate net.kyori in shadow jar
Possible causes:
Check placeholder syntax matches: {player} in config = "{player}" in .placeholder()
Override serializer:
@Override
protected ComponentSerializer<Component, Component, String> serializer() {
return MiniMessage.miniMessage();
}
Register serializer:
// CDN
.withComposer(Notice.class, new MultificationNoticeCdnComposer(multification))
// Okaeri
.withConfigurer(new MultificationSerdesPack(multification))