[已解决]编程新手读不懂的代码求大佬解读 - 编程开发 - Minecraft(我的世界)中文论坛 -.htm

[已解决]编程新手读不懂的代码求大佬解读 - 编程开发 - Minecraft(我的世界)中文论坛 -

Minecraft(我的世界)中文论坛

 找回密码
 注册(register)

!header_login!

只需一步,立刻登录

查看: 320|回复: 6
打印 上一主题 下一主题

[其他开发问题] [已解决]编程新手读不懂的代码求大佬解读

[复制链接]
$catty 当前离线
积分
826
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-8-25
查看详细资料

来自:江苏

跳转到指定楼层
楼主
发表于 2022-6-27 10:00:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

您尚未登录,立即登录享受更好的浏览体验!

您需要 登录 才可以下载或查看,没有帐号?注册(register)

x
本帖最后由 $catty 于 2022-6-27 10:46 编辑
  1. if (e.getRawSlot() < 0 || e.getRawSlot() > e.getInventory().getSize()) {
  2.     // 这个方法来源于 Bukkit Development Note
  3.     // 如果在合理的范围内,getRawSlot 会返回一个合适的编号(0 ~ 物品栏大小-1)
  4.     return;
  5.     // 结束处理,使用 return 避免了多余的 else
  6. }
复制代码
这是一个获取被点击物品的段落节选
帖子永久链接: 

Minecraft中文论坛 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖若有内容转载自其它媒体,不代表本站赞同其观点和对其真实性负责
6、若本帖涉及任何版权问题,请立即告知本站,本站将及时予以删除并致以最深的歉意
7、Minecraft(我的世界)中文论坛管理员和版主有权不事先通知发贴者而删除本文

离渊丶 当前离线
积分
3694
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2015-3-15
查看详细资料

来自:福建

沙发
发表于 2022-6-27 10:14:39 | 只看该作者
如果 点击的格子小于0(界外)或大于这个箱子的最大格子数
  结束代码
回复

使用道具 举报

$catty 当前离线
积分
826
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-8-25
查看详细资料

来自:江苏

板凳
 楼主| 发表于 2022-6-27 10:19:43 | 只看该作者
离渊丶 发表于 2022-6-27 10:14
如果 点击的格子小于0(界外)或大于这个箱子的最大格子数
  结束代码

这里的结束代码就是关闭gui嘛
回复

使用道具 举报

$catty 当前离线
积分
826
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-8-25
查看详细资料

来自:江苏

地板
 楼主| 发表于 2022-6-27 10:23:30 | 只看该作者
离渊丶 发表于 2022-6-27 10:14
如果 点击的格子小于0(界外)或大于这个箱子的最大格子数
  结束代码

终止下一步的获取操作?
回复

使用道具 举报

$catty 当前离线
积分
826
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-8-25
查看详细资料

来自:江苏

5#
 楼主| 发表于 2022-6-27 10:40:29 | 只看该作者
完整代码
  1. Inventory inv = Bukkit.createInventory(Bukkit.getPlayer("RarityEG"), 3 * 9, "GUI 标题");
  2. ItemStack exitItem = new ItemStack(Material.BARRIER);
  3. inv.setItem(0, exitItem);
  4. Bukkit.getPlayer("RarityEG").openInventory(inv);
  5. @EventHandler
  6. public void onClick(InventoryClickEvent e) {
  7.     Player player = (Player) e.getWhoClicked();
  8.     // 只有玩家可以触发 InventoryClickEvent,可以强制转换
  9.     InventoryView inv = player.getOpenInventory();
  10.     if (inv.getTitle().equals("GUI 标题")) {
  11.         // 通过标题区分 GUI
  12.         e.setCancelled(true);
  13.     }
  14. }
  15. if (e.getRawSlot() < 0 || e.getRawSlot() > e.getInventory().getSize()) {
  16.     // 这个方法来源于 Bukkit Development Note
  17.     // 如果在合理的范围内,getRawSlot 会返回一个合适的编号(0 ~ 物品栏大小-1)
  18.     return;
  19.     // 结束处理,使用 return 避免了多余的 else
  20. }
  21. ItemStack clickedItem = e.getCurrentItem();
  22. // 获取被点的物品
  23. if (clickedItem == null){
  24.     // 确保不是 null
  25.     return;
  26. }
  27. // 后续处理
复制代码
回复

使用道具 举报

离渊丶 当前离线
积分
3694
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2015-3-15
查看详细资料

来自:福建

6#
发表于 2022-6-27 10:41:33 | 只看该作者
$catty 发表于 2022-6-27 10:19
这里的结束代码就是关闭gui嘛

停止代码继续往下走 所有的return都有这个效果
回复

使用道具 举报

离渊丶 当前离线
积分
3694
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2015-3-15
查看详细资料

来自:福建

7#
发表于 2022-6-27 10:42:55 | 只看该作者
$catty 发表于 2022-6-27 10:23
终止下一步的获取操作?

用这个方法可以一次次的判断来过滤条件 不用无限往下if else

评分

参与人数 1人气 +1金粒 +10收起 理由
$catty+ 1+ 101

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 京公网安备 11010502037624号 | 手机版

GMT+8, 2023-8-11 19:11 , Processed in 0.044063 second(s), Total 22, Slave 21 queries, Release: Build.2023.08.07 0824, Gzip On, Redis On.

"Minecraft"以及"我的世界"为美国微软公司的商标 本站与微软公司没有从属关系

© 2010-2023 我的世界中文论坛 版权所有 本站内原创内容版权属于其原创作者,除作者或版规特别声明外未经许可不得转载