wangjj123
wolaihungejinli tishengkaatishegka

零点星辰
本帖最后由 新科 于 2020-5-31 20:15 编辑
WERKXXT 发表于 2020-5-31 16:38
请问大佬能否给一下具体的代码?
看完分析还是有点脑瘫和无法解决
谢谢 ...

首先要确认你的版本, 我上面代码使用了双持判断, 如果你插件的游戏版本不支持双持是一定会报错的。啊这, 忘记写空值判断了, 感谢评分提醒, 获取之前要先判断手上物体是否为空值, 是空值的话也会报错的
我代码的第一行其实只是告诉你, 接下来我用的 player 是一个 Player 对象, 具体你要代入进去
Player player;
这个 player 你可以理解为一个假设, 意思是“假设接下来涉及到的玩家变量是 player”.
因为这个语句中 player 并没有被赋予内容, 只是说填充了一个 Player 的"结构", 也就是没有后面的等于号, 那么我们就说这个变量没有被初始化.
如果你要使用这个变量, 你首先要找到内容 - (受害者)一个真实存在的玩家。

如果你是要在一个事件里面获取玩家手持物品名, 那么在方法里你就要先获取这个玩家的对象 event.getPlayer(), 然后你再去操作玩家。
那么就要使用


String 物品名 = event.getPlayer().getInventory().getItemInMainHand().getItemMeta().getDisplayName();


如果你是在命令里面要操作,那么同理,你要先获取到命令发送者 Sender 的玩家对象, 这里因为咱们的参数 sender 实际上是 CommandSender, 所以你需要在确保执行命令的人是玩家而不是控制台的情况下,进行从 CommandSender 类型到 Player 类型的强制转换 (Player) sender;


if ( sender instanceof Player ) {
    // 执行命令的人确实是玩家
    Player senderplayer = (Player) sender;
    String 物品名 = senderplayer.getInventory().getItemInMainHand().getItemMeta().getDisplayName();
}

这样应该够详细了吧...




Rukio
66666666666666666666

eessss
本帖最后由 eessss 于 2020-6-27 19:05 编辑

66666666手機修理666666666

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