丛林水塘
怎么才能获取到玩家准星做指向的实体?
例如我手持物品右键,如果准星没有指向任何实体,则什么也不做;
如果指向了实体,则向玩家发送一条消息。
谢谢!!

米迦勒c
PlayerInteractEntityEvent这个事件应该可以

QingyuOvO
论坛几年前曾经讨论过这个问题,我总结一下,spigot没办法获取。另外别管沙发的回答,纯属放屁,我都想举报他了。

原版玩家看向末影人会将其惹怒,但是这个的逻辑实际上是客户端判断玩家看到末影人后发包给服务端来让末影人发怒的,所以你想在没有客户端支持的情况下实现这个功能就比较复杂了,我的建议是如果是自己服务端用的话,建议单独开发一个客户端mod来判断,毕竟在客户端判断玩家在看谁是很简单的事情。

如果非要服务端实现,我复述一下几年前帖子讨论的结果:创建一个玩家不可见的投掷物并将其顺着玩家的视线抛出,然后检测投掷物的事件,这样在这个投掷物撞到第一个实体或者撞墙的时候就可以方便地获取了。但是这种判断不能一直做,不然太消耗性能了,比较适合做“玩家点击右键,把视线看向的实体怎么怎么样”这种功能。

ZX夏夜之风
本帖最后由 ZX夏夜之风 于 2021-12-19 11:02 编辑

之前我们组的 @咕蛋 回答过这样的问题,他当时用的是一个Java类实现的。
https://www.mcbbs.net/forum.php? ... 18&pid=23395761


Hueihuea
本帖最后由 Hueihuea 于 2021-12-19 12:11 编辑

二楼就扯淡,比如嗨皮咳嗽的枪械 就是获取眼前实体实现的。
用这个方法就行
https://hub.spigotmc.org/javadoc ... ml#rayTraceEntities(org.bukkit.Location,org.bukkit.util.Vector,double)

但是在服务端获取肯定是不如客户端获取的发给服务端的
因为服务端获取存在延迟,所以即时性强的表现不好
比如嗨皮咳嗽的枪械 你会发现在你移动特别快的时候 弹道会跟不上你

QingyuOvO
Hueihuea 发表于 2021-12-19 12:09
二楼就扯淡,比如嗨皮咳嗽的枪械 就是获取眼前实体实现的。
用这个方法就行
https://hub.spigotmc.org/java ...

但我这个屁放的比二楼的屁要...质量高一些,人类高质量屁

米迦勒c
你试试不就知道了,我之前用过这个事件做的右键其他玩家显示个人信息

米迦勒c
这种喷子我就不说啥了,我之前就用这个事件做过右键其他玩家显示个人信息的插件

LwTs
米迦勒c 发表于 2021-12-21 10:43
这种喷子我就不说啥了,我之前就用这个事件做过右键其他玩家显示个人信息的插件 ...

人家求的面向实体,不是右键实体

米迦勒c
LwTs 发表于 2022-1-17 23:57
人家求的面向实体,不是右键实体

"例如我手持物品右键" 你先自己看好要求好吗

mcpanglei
米迦勒c 发表于 2022-1-18 19:06
"例如我手持物品右键" 你先自己看好要求好吗

确实是9楼说的,准星指向实体,不是右键实体

贺兰兰
别争了,5楼正解,按照5楼的做就对了

yuban_301
大家不要吵了,有没有生成假玩家的方法呀