凉凉丶
如何通过点击一个容器中的物品打开一个书的界面以及可以点击书中的选项
和任务插件差不多类似 任务描述+选项键

弥猫うた
本帖最后由 Mucrazy 于 2019-11-15 16:06 编辑
#创建一个背包[容器]
Inventory inv = Bukkit.createInventory(null,InventoryType.CHEST , "你的容器");
p.openInventory(inv);
#新建一个物品我就不说了
#判断你那个物品在容器的位置
getRawSlot(x)
#设置持有物品位置
int slot = player.getInventory().getHeldItemSlot();
ItemStack itemStack = player.getItemInHand();
#创建一本书
ItemStack book = new ItemStack(Material.WRITTEN_BOOK);
BookMeta bookMeta = (BookMeta) book.getItemMeta();
#添加文字并设置效果,这里举例点击和鼠标滞留
TextComponent text
text.setClickEvent
text.setHoverEvent
#设置玩家背包
player.getInventory().setItem(slot, book);
#发包(此处代码源于BookNews
ByteBuf buf = Unpooled.buffer(256);
buf.setByte(0, 0);
buf.writerIndex(1);
PacketPlayOutCustomPayload packet = new PacketPlayOutCustomPayload("MC|BOpen", new PacketDataSerializer(buf));
CraftPlayer craftPlayer = (CraftPlayer)player;
(craftPlayer.getHandle()).playerConnection.sendPacket(packet);
player.getInventory().setItem(slot, itemStack);


凉凉丶
我又发现了另一种方法,bbs以前也有分享
就是用BookAPI
https://www.mcbbs.net/forum.php? ... etag=s_pctim_aiomsg
这里给个地址,这个办法也挺方便的