louyukai
Paper-1.18.2-388,TrChat-2.0.0-PRE-40,Waterfall-Bootstrap:1.20-R0.1-SNAPSHOT
一名玩家上线后发现自己无法看到任何玩家的聊天消息,包括自己发送的(但自己发送的可以在别人的客户端显示)
本服务器使用Waterfall跨服,使用TrChat插件进行跨服聊天。只在主服有这个问题,在其他子服都可以正常接收玩家消息。
使用离线登录,已排除客户端的屏蔽功能。
加入的TrChat聊天频道为Global,与其他玩家一致。
该玩家在出现此问题之前没有做过任何特殊的行为。
目前发现的线索如下:
1.此前,玩家尝试登录服务器时有如下报错(但此时似乎没有出现无法收到消息的问题)
报错如下:

2.该玩家在出现问题前(指的是出现无法接受聊天消息前,此时已经是1.所述的报错之后)反馈无法登录服务器(指主服),经检查发现是主服IpLimit插件(https://www.spigotmc.org/resources/iplimit.41098/)误判同ip多账号同时在线而禁止进入游戏,通过编辑配置文件、卸载重载插件等方法后,玩家可以正常进入服务器。
尝试使用plugman卸载插件,玩家依然无法收到聊天消息。

请问有办法解决吗?

TDT-金鱼
尝试让该玩家重启家中的路由器以完全规避IP限制。

louyukai
TDT-金鱼 发表于 2023-7-3 20:26
尝试让该玩家重启家中的路由器以完全规避IP限制。

这个问题已经解决了,现在玩家可以正常进入服务器。看起来并不是这个插件的问题,因为卸载了插件之后玩家依然无法接收到消息。此外,我使用玩家账号在自己电脑登录,也是同样的结果。

FireworkPolymer
我只记得ProtocolLib可以阻止玩家收到消息,不确定是什么原因..

TDT-金鱼
louyukai 发表于 2023-7-3 20:43
这个问题已经解决了,现在玩家可以正常进入服务器。看起来并不是这个插件的问题,因为卸载了插件之后玩家 ...

尝试删除玩家存档。

ed333
(下面是我根据以往经验推测,可能不准)
一个 vault 请求(应该是 list命令的注册插件,essx)发生在了服务器主线程上导致了 lp 无法安全的处理这个请求,所以报错

这个请求需要查询玩家的数据
因为这个请求发生在主线程上,导致lp没法安全的回应请求,从而报错。

解决方法其实里面也很详细了,一个就是向插件作者反馈讲对应请求进行异步处理(这个时候后台应该会有报错吧,不清楚我没遇到过类似的问题)一个就是打开内个设置让 lp 回应请求(按理说开一会儿就关掉就行,因为从你的描述中好像其他玩家并没有出现类似情况)

或许再不济尝试升级下ess看看(虽然不知道你是不是最新版的ess)

louyukai
ed333 发表于 2023-7-3 22:20
(下面是我根据以往经验推测,可能不准)
一个 vault 请求(应该是 list命令的注册插件,essx)发生在了服 ...

可是这是为什么...以前都没有发生过这样的事。
后台报错的话,除了主楼说的那个以外并没有报错。
如果开着这个设置,是否会有崩服的可能性?如果开一会就关掉,关掉后玩家还能正常游玩吗?

louyukai
TDT-金鱼 发表于 2023-7-3 21:52
尝试删除玩家存档。

应该删除哪些内容?只需要world/playerdata里面的文件吗

ed333
louyukai 发表于 2023-7-3 22:30
可是这是为什么...以前都没有发生过这样的事。
后台报错的话,除了主楼说的那个以外并没有报错。
如果开 ...

崩服不好说,因为插件请求是运行在服务器主线程上,这是一种不安全的行为,所以lp 拒绝回应这个请求

或许你可以使用二分法查找什么插件的锅
应该和是聊天有关的,因为从你的描述中说只有玩家在聊天时才会出现此现象,vault的性质是一个经济前置,但其实它还包含设置玩家名的前缀后缀等等设置,应当着重检查设置这些内容的插件

如果你之前开的好好的那么
我觉得插件这边应该没什么问题,
可以打开这个选项,
但还请注意这个仍然是一种不安全的行为

TDT-金鱼
louyukai 发表于 2023-7-3 22:31
应该删除哪些内容?只需要world/playerdata里面的文件吗

playerdata UUID对应的玩家文件