Skip to content

NoSuchMethodError for (removed adventure) Book interface's setter #14030

Description

@TheosRee

Expected behavior

When compiling against Paper 26.1.2 (or before) using the BookMeta#pages setter methods should also work on a 26.2 server since it is api.

Observed/Actual behavior

[17:35:25 INFO]: TheosRee issued server command: /bookmetatest getter
[17:35:29 INFO]: TheosRee issued server command: /bookmetatest setterArray
[17:35:29 ERROR]: Command exception: /bookmetatest setterArray
java.lang.NoSuchMethodError: 'net.kyori.adventure.inventory.Book org.bukkit.inventory.meta.BookMeta.pages(net.kyori.adventure.text.Component[])'
at TR-Test.jar//de.ree.theos.Test$1.execute(Test.java:69) ~[?:?]
at io.papermc.paper.command.brigadier.bukkit.BukkitCommandNode$BukkitBrigCommand.run(BukkitCommandNode.java:83) ~[paper-26.2.jar:26.2-20-2c0341f]
at com.mojang.brigadier.context.ContextChain.runExecutable(ContextChain.java:73) ~[brigadier-1.3.10.jar:?]
at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:30) ~[paper-26.2.jar:26.2-20-2c0341f]
[…more stack trace]
[17:35:33 INFO]: TheosRee issued server command: /bookmetatest setterList
[17:35:33 ERROR]: Command exception: /bookmetatest setterList
java.lang.NoSuchMethodError: 'net.kyori.adventure.inventory.Book org.bukkit.inventory.meta.BookMeta.pages(java.util.List)'
at TR-Test.jar//de.ree.theos.Test$1.execute(Test.java:68) ~[?:?]
at io.papermc.paper.command.brigadier.bukkit.BukkitCommandNode$BukkitBrigCommand.run(BukkitCommandNode.java:83) ~[paper-26.2.jar:26.2-20-2c0341f]
at com.mojang.brigadier.context.ContextChain.runExecutable(ContextChain.java:73) ~[brigadier-1.3.10.jar:?]
at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:30) ~[paper-26.2.jar:26.2-20-2c0341f]
[…more stack trace]

Steps/models to reproduce

getServer().getCommandMap().register("ignored", new Command("bookmetatest") {
    @Override
    public boolean execute(final CommandSender sender, final String label, final String[] args) {
        final ItemStack book = ItemStack.of(Material.WRITTEN_BOOK);
        final BookMeta meta = (BookMeta) book.getItemMeta();
        switch (args[0]) {
            case "getter" -> meta.pages();
            case "setterList" -> meta.pages(List.of());
            case "setterArray" -> meta.pages(Component.empty());
        }
        return true;
    }
});

targetting the following version or any before down to like 1.18

<dependency>
    <groupId>io.papermc.paper</groupId>
    <artifactId>paper-api</artifactId>
    <version>26.1.2.build.72.stable</version>
    <scope>provided</scope>
</dependency>

Plugin and Datapack List

The test plugin

Paper version

This server is running Paper version 26.2-20-dev/26.2@2c0341f (2026-06-17T19:31:24Z) (Implementing API version 26.2.build.20-alpha)
You are 28 version(s) behind
Download the new version at: https://papermc.io/downloads/paper
Previous version: 26.2-19-80d1098 (MC: 26.2)

This server is running Paper version 26.2-48-main@87c4d42 (2026-07-04T14:09:05Z) (Implementing API version 26.2.build.48-alpha)
You are running the latest version
Previous version: 26.2-20-2c0341f (MC: 26.2)

Other

it is since https://fill-ui.papermc.io/projects/paper/version/26.2?build=20 with
2c0341f#diff-e0871225f23971b54756b88cbe0d16e1aa4995d857a5d0c56aa7c18e904f647eL17-R20
I asked on Discord and it was suggested to open the issue in Paper instead Adventure because it is an Item-/BookMeta issue and should probably get an api-version rewrite.

Metadata

Metadata

Assignees

No one assigned

    Type

    Fields

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions