Minecraft_652
代码:
    public static AnvilInventory createAnvilInventory(InventoryHolder invd) {
        AnvilInventory inv = (AnvilInventory) Bukkit.createInventory(invd, InventoryType.ANVIL);
        inv.setItem(0, APILibrary.getTargetItem(4));
        inv.setItem(2, APILibrary.getTargetItem(5));
        return inv;
    }
错误:
java.lang.ClassCastException: class org.bukkit.craftbukkit.v1_18_R2.inventory.CraftInventoryCustom cannot be cast to class org.bukkit.inventory.AnvilInventory (org.bukkit.craftbukkit.v1_18_R2.inventory.CraftInventoryCustom and org.bukkit.inventory.AnvilInventory are in unnamed module of loader java.net.URLClassLoader @5eb5c224)
        at com.sixfivetwo.sftfinance.APILibrary.createAnvilInventory(APILibrary.java:235) ~[SFTFinance-Release1.6.1-jar-with-dependencies.jar:?]
        at com.sixfivetwo.sftfinance.SFTCommand.lambda$onCommand$0(SFTCommand.java:134) ~[SFTFinance-Release1.6.1-jar-with-dependencies.jar:?]
        at org.bukkit.craftbukkit.v1_18_R2.scheduler.CraftTask.run(CraftTask.java:101) ~[purpur-1.18.2.jar:git-Purpur-1612]
        at org.bukkit.craftbukkit.v1_18_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:483) ~[purpur-1.18.2.jar:git-Purpur-1612]
        at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1558) ~[purpur-1.18.2.jar:git-Purpur-1612]
        at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:522) ~[purpur-1.18.2.jar:git-Purpur-1612]
        at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1482) ~[purpur-1.18.2.jar:git-Purpur-1612]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1246) ~[purpur-1.18.2.jar:git-Purpur-1612]
        at net.minecraft.server.MinecraftServer.lambda$spin$1(MinecraftServer.java:320) ~[purpur-1.18.2.jar:git-Purpur-1612]

结冰的离季
因为得用nms ,如果你只是设置物品,可以不用转为AnvilInventory
要用其他AnvilInventory 的方法的话建议用这个库或者提取它的代码:https://github.com/WesJD/AnvilGUI

Minecraft_652
结冰的离季 发表于 2022-5-4 11:13
因为得用nms ,如果你只是设置物品,可以不用转为AnvilInventory
要用其他AnvilInventory 的方法的话建议用 ...

哦哦哦谢谢. 如果不用 AnvilInventory 的话
我该怎么获取目标玩家打开铁砧往那个命名框里面输入的东西
在 AnvilInventory 里面是有 getRenameText 方法的

结冰的离季
Minecraft_652 发表于 2022-5-4 11:40
哦哦哦谢谢. 如果不用 AnvilInventory 的话
我该怎么获取目标玩家打开铁砧往那个命名框里面输入的东西
在 ...

用API的onComplete(BiFunction<Player, String, AnvilGUI.Response>)方法

Minecraft_652
结冰的离季 发表于 2022-5-4 12:01
用API的onComplete(BiFunction)方法

等等. 我不太清楚这个API该怎么用
我想做到的仅仅是打开一个 铁砧GUI 并且放进去物品 这个已经没问题了
我现在监听这个物品有没有被点击, 被点击了就获取那个铁砧框里的字符串
但是AnvilInventory不能被Cast, 问题出在这里
我不知道这个API该怎么实现它

xiyanxinnian
Minecraft_652 发表于 2022-5-4 11:40
哦哦哦谢谢. 如果不用 AnvilInventory 的话
我该怎么获取目标玩家打开铁砧往那个命名框里面输入的东西
在 ...

用event不更好吗

tycmc.top

我之前用的也是这个思路,但不知道为什么每次用getTitle都会报错,是不是铁砧页面不能getTitle
啊?

tycmc.top
结冰的离季 发表于 2022-5-4 12:01
用API的onComplete(BiFunction)方法



结冰的离季

https://github.com/WesJD/AnvilGUI

结冰的离季
Minecraft_652 发表于 2022-5-4 13:03
等等. 我不太清楚这个API该怎么用
我想做到的仅仅是打开一个 铁砧GUI 并且放进去物品 这个已经没问题了
...

原版的铁砧可以,但是你自己创建的铁砧无法得到,只能通过nms,nms的代码都在 我发的github API里

第一页 上一页 下一页 最后一页