这次我们来学习制作一个简单的GUI 这是也是最后一期,感谢您的陪伴。
创建一个包
我们和上次一样,在org.mallor.sky右键新建一个包,我给他命名gui
创建类
我们开始创建一个类,在这里我给他命名位GUI。
开始
我们创建类之后,在类的后面输入implements CommandExecutor,他会自动导入类,然后输入下面代码
1 |
|
然后呢我们开始创建一个GUI,我们在{}中输入
1 | Player player =(Player)commandSender; |
Player player = (Player)commandSender的意思是新建一个player,然后用这个代替Player,而且它等于commandSender中的Player Inventory GUI =Bukkit.createInventory(null,27, ChatColor.YELLOW+”GUI”);这个的意识是新建一个GUI,它等于Bukkit新建一个GUI,GUI的参数呢,等于括号内的,类型等于null,大小等于27个格(在mc中一般有两种[除了自己新建的]一个是27格,一个是54格)。 player.openInventory(GUI);这个就是玩家触发GUI时输入的指令。
注册
GUI注册需要两步,和指令差不多,我们回到主类在onEnable方法中输入
1 | getCommand("GUI").setExecutor(new GUI()); |
然后回到plugin.yml, 我们新建一个指令 输入
1 | GUI: |
然后开始构建
测试

拓展
现在我们新建了GUI,可是他里面没有东西,而且这个东西玩家可以放入,不过放进去物品就没有了,相当于垃圾箱。所以我们需要放入东西, 我们在我们的GUI参数下输入代码
1 | ItemStack item = new ItemStack(Material.BED); |
这是我的完整代码
1 | public class GUI implements CommandExecutor { |
然后我们构建测试
他就生成了64个床,这个床我们是可以拿走的,而且你关闭后,在输入指令还可以拿走。 下面我们就需要监听器帮助。
创建类
我们首先创建一个类,就叫做InventoryClick(都可以),然后我们给他导入类,在类的后面加上implements Listener,然后输入下面代码
1 |
|
在方法中输入
1 |
|
注册
这个和之前一样,在主类中输入下面代码
1 | getServer().getPluginManager().registerEvents(new InventoryClick(),this); |
剩下的一些用指令打开GUI啥的都很简单,大家可以单独问我,或者看看官方文档。 我在这里就不教学了。