当前位置:首页 > CN2资讯 > 正文内容

我的世界容器上锁插件

2天前CN2资讯


三、容器

这一章节,我们讲讲怎么创建一个容器、往这个容器里加入一些东西和监听事件

编写教程

容器即Inventory,先创建一个对象

Inventory inv = Bukkit.createInventory(null,9,"");

其中9是容器可容纳物品的数量,而最后的String是这个容器的名字
一个容器最多只能容纳54个物品,数字必须是9的倍数
现在一个容器创建好了,想让玩家打开这个容器。先创建一个Player对象,调用里面的openInventory方法,里面的参数是填容器的名字

Player p; p.openInventory(inv);

我们已经成功创建一个容器,那么怎么往这个容器里添加一些物品呢
ItemStack(物品堆)

ItemStack is = new ItemStack(Material.COMPASS);

COMPASS是指南针,那么is就是个指南针。
我们也可以将这个物品更改名字和介绍

ItemMeta im = is.getItemMeta(); //更改物品名字 im.setDisplayName("点我传送"); //更改物品介绍 im.setLore(Arrays.asList("一个功能"));

这里感谢@MinecraftSTL指出错误,我们需要刷新一下物品

//更新原物品 is.setItemMeta(im)

现在将它放入容器中

inv.addItem(is);

现在我们的容器中就会有一个指南针了
当然你也可以调整它的位置

//将is调整至下标为9的地方 inv.setItem(9,is);

当然我们需要输入指令才能打开这个容器:

public boolean onCommand(CommandSender sender, Command cmd, String label, String args[]) { if(label.equalsIgnoreCase("test")) { Player p = (Player)sender; if(!(p instanceof Player)) { sender.sendMessage("只能在游戏中使用!"); return true; } Inventory inv = Bukkit.createInventory(null,54,"容器"); ItemStack is = new ItemStack(Material.COMPASS); ItemMeta im = is.getItemMeta(); im.setDisplayName("点我传送"); im.setLore(Arrays.asList("一个功能")); is.setItemMeta(im); inv.addItem(is); inv.setItem(9,is); p.openInventory(inv); return true; } return true; }

输入指令test,你会发现有一个容器出现在你的面前,里面是指南针


监听事件

但是你会发现我们可以从这个容器里取出指南针,然后再次输入test继续从容器里刷指南针,该怎么办呢?
这个时候需要用到监听事件:Listener

public class InventoryClickListener implements Listener { @EventHandler public void onClick(InventoryClickEvent e) { } }

可以看到,这个类使用了Listener接口,据 Bukkit 文档定义,它用于触发该类下所有的事件监听。

onClick方法用于监听「玩家点击容器物品」事件,其中可以看到这个方法加上了注解,告诉 Bukkit 这个方法是用来监听的。


监听事件确实非常方便,它可以得到被点击的那个容器。

//获取被点击的那个容器 Inventory inv = e.getClickedInventory();

判断玩家点击了容器里的物品,只需判断下标:

//如果被点击的物品下标为9 if(e.getRawSlot()==9) { ... }

那么这里我们的指南针下标是为9,如果玩家点击的物品下标为9,则执行里面的语句。

这里我们就假设玩家点击指南针后回到出生点

if(e.getRawSlot()==9) { //获取点击物品的玩家 Player p = (Player)e.getWhoClicked(); //模拟玩家输入指令/spawn p.chat("/spawn"); //关闭容器 p.closeInventory(); }

如果我们拒绝玩家从容器里拿东西就是:

//是否可以让玩家从容器里拿取物品 e.setCancelled(true);

打包一下,放到plugins文件夹中,再加载一下插件,回到游戏输入指令/test会发现一个容器,点击容器里的指南针就会回到出生点了。

@EventHandler public void onClick(InventoryClickEvent e) { Inventory inv = e.getClickedInventory(); if(e.getRawSlot()==9) { Player p = (Player)e.getWhoClicked(); p.chat("/spawn"); p.closeInventory(); e.setCancelled(true); } }

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/21660.html

    分享给朋友:

    “我的世界容器上锁插件” 的相关文章

    樱花VPS:高性价比的日本虚拟专用服务器推荐

    樱花VPS是一个由日本知名主机提供商Sakura Internet Inc.推出的虚拟专用服务器产品。在选择VPS时,用户常常关注服务的稳定性、速度和价格等方面,而樱花VPS正是在这些核心领域表现出色,吸引了一大批用户的关注。 首先,樱花VPS以其高性价比闻名。作为国内前三强的VPS提供商。其规模化...

    CN2 GIA是什么?探索高效国际网络连接的解决方案

    在当今这个数字化时代,网络连接的稳定性与速度成为了企业和个人活动的重中之重。CN2 GIA,或称为全球互联网接入(Global Internet Access),是由中国电信提供的一项高级国际专线网络服务。这项服务在CN2产品线中占据了顶级位置,专为那些需要快速且稳定的国际网络连接的用户而设计。通过...

    VPS重装系统的详细步骤与最佳实践

    在管理VPS时,有时会需要进行系统重装。VPS重装系统是指对虚拟专用服务器(Virtual Private Server)的操作系统进行全面重置和重新安装的过程。它可以帮助解决一些由于系统故障、配置错误或其他原因引发的问题。对于我来说,了解这一过程至关重要,可以让我更好地维护和管理我的服务器。 当我...

    Vorboss:伦敦领先的商业光纤网络提供商,互联网速度与稳定性之选

    Vorboss概述 在现代商业环境中,服务的速度和稳定性比以往任何时候都重要。Vorboss的出现,为伦敦的企业带来了一个崭新的光纤网络选择。作为伦敦唯一专用的商业光纤网络,Vorboss提供至少10Gbps的互联网速度,并且支持扩展到100Gbps。这种高效的网络解决方案为雄心勃勃的公司提供了直接...

    如何有效利用闲置VPS:再利用与出租的最佳实践

    闲置VPS,这个词可能对很多人来说并不陌生,尤其是在互联网和云计算技术快速发展的今天。说白了,闲置VPS就是那些购买了却没有得到充分利用的虚拟私人服务器。很多用户在购买VPS后,可能由于项目需求的变化或者个人时间的限制,最终导致这些资源被闲置。这不仅仅是浪费金钱,也让我们的资源没有得到最好的应用。...

    如何选择合适的免费VPS服务并有效利用

    免费VPS概述 在研究云计算相关技术的时候,VPS(虚拟专用服务器)成了一个非常重要的概念。简单来说,VPS是一种通过虚拟化技术来划分的服务器,每个VPS都是独立的,用户可以获得与一个物理服务器类似的操作体验。作为个人开发者或中小企业的选择,VPS提供了灵活性和可控性,是许多人搭建网站或开发项目的理...