Git Product home page Git Product logo

Comments (15)

AnzhiZhang avatar AnzhiZhang commented on July 18, 2024

这个数据包是不是创建假人加入的时候名字没有 假的 前缀?

from mcdreforgedplugins.

Jerry-FaGe avatar Jerry-FaGe commented on July 18, 2024

这个数据包是不是创造假人加入的时候名字没有假的前缀?
看了下数据包源码,貌似创建和kill时就是单纯的调用了carpet的/player指令,前缀是通过设置假人的team前缀显示的,MCDR的player参数不知道是否会读取到team前缀

from mcdreforgedplugins.

AnzhiZhang avatar AnzhiZhang commented on July 18, 2024

也就是假人先加入游戏再设置的前缀?

from mcdreforgedplugins.

Jerry-FaGe avatar Jerry-FaGe commented on July 18, 2024

也就是假人先加入游戏再设置的附加?

可以这么理解吧,但是我也不太确定,本人不太熟悉mcfunc,也是挺吃力的才勉强读懂数据包的源码
WeChat72969c37d0c6063e6e61252c89264cd2

from mcdreforgedplugins.

AnzhiZhang avatar AnzhiZhang commented on July 18, 2024

是的,先加入游戏再设置前缀
这样会导致加入游戏的名称为 player xxx joinde the game
而退出游戏时为 player Fake xxx leave the game
MCDR识别的玩家名称分别为 xxx 和 ``Fake xxx`
建议修改数据包删除添加前缀的部分使加入加入和离开游戏时使用同一个id

from mcdreforgedplugins.

Jerry-FaGe avatar Jerry-FaGe commented on July 18, 2024

是的,先加入游戏再设置前缀
这样会导致加入游戏的名称为 player xxx joinde the game
而退出游戏时为 player Fake xxx leave the game
MCDR识别的玩家名称分别为 xxx 和 ``Fake xxx`
建议修改数据包删除添加前缀的部分使加入加入和离开游戏时使用同一个id

了解了,谢谢大佬。等我回家搭个本地环境调试一下,腐竹可能不会支持删除前缀所以我可能会改服务器上您的插件做一下兼容

from mcdreforgedplugins.

Jerry-FaGe avatar Jerry-FaGe commented on July 18, 2024

大佬我在本地搭建了相同的环境,发现可能并不是名字的问题。用数据包创建的假人退出的时候根本就没走on_player_left这个方法,而创建的时候正常走on_player_joined,所以才导致了这个问题。

OT89A}O@TEU9)R8@UVA$R

from mcdreforgedplugins.

AnzhiZhang avatar AnzhiZhang commented on July 18, 2024

请问一下你的MCDR解析器是什么呢

from mcdreforgedplugins.

Jerry-FaGe avatar Jerry-FaGe commented on July 18, 2024

请问一下你的MCDR解析器是什么呢

解析器是vanilla_parser,Fabric 服务端

from mcdreforgedplugins.

AnzhiZhang avatar AnzhiZhang commented on July 18, 2024

加入游戏

MCDR响应的是 \w{1,16}\[(?:/[\d.:]+|local)\] logged in with entity id \d+ at \([\dE\-., ]+\)
所以你的 Steve[local] logged in with entity id 3919 at (237.775632, 68.0, -99.033614) 可以被识别并触发 on_player_joined

离开游戏

MCDR响应的是 \w{1,16} left the game
所以你的 假的 Steve left the game 因为有 这3个字符不属于 \w 所以无法被识别并触发 on_player_left

MCDR并不能很好的支持队伍前缀后缀问题,参见 Fallen-Breath/MCDReforged#15
解决方案为删除你的假人插件的添加前缀功能
另外既然你的假人数据包使用的是carpet的 /player 你可以考虑使用我的 Bot 插件,是同样的原理,而且可以记忆机器人的位置

from mcdreforgedplugins.

Jerry-FaGe avatar Jerry-FaGe commented on July 18, 2024

加入游戏

MCDR响应的是 \w{1,16}\[(?:/[\d.:]+|local)\] logged in with entity id \d+ at \([\dE\-., ]+\)
所以你的 Steve[local] logged in with entity id 3919 at (237.775632, 68.0, -99.033614) 可以被识别并触发 on_player_joined

离开游戏

MCDR响应的是 \w{1,16} left the game
所以你的 假的 Steve left the game 因为有 这3个字符不属于 \w 所以无法被识别并触发 on_player_left

MCDR并不能很好的支持队伍前缀后缀问题,参见 Fallen-Breath/MCDReforged#15
解决方案为删除你的假人插件的添加前缀功能
另外既然你的假人数据包使用的是carpet的 /player 你可以考虑使用我的 Bot 插件,是同样的原理,而且可以记忆机器人的位置

原来是这样!懂了懂了!那我就又多了一种解决方式(不过要改MCDR底层)

31605151321_ pic_hd

其实到这里我的需求就已经解决了(但其实写死这种操作并不完美),不过佛冷的issue我也大概想到了解决思路,等我去那个issue跟佛冷讨论一下!

  • 关于数据包删除添加前缀功能
    我感觉可能那个可能是服务器“刚需”,这个腐竹还是挺固执的,还想要完美还不想改太多东西。我想大佬应该跟哈尔威佛冷大佬他们很熟吧,如果能帮我稍微问下哈尔威通过修改数据包的解决思路 感激不尽(没法问也没关系,我现在脑中已经有了几种解决方案,我会一一尝试)

  • 关于您的Bot插件
    这个插件是否也具备创建的假人不被记分板(数据包记分板or插件记分板)统计的功能呢

from mcdreforgedplugins.

AnzhiZhang avatar AnzhiZhang commented on July 18, 2024

数据包删除添加前缀您可以自行学习解决

我的Bot插件没有不被计分板记录的功能

from mcdreforgedplugins.

Jerry-FaGe avatar Jerry-FaGe commented on July 18, 2024

数据包删除添加前缀您可以自行学习解决

我的Bot插件没有不被计分板记录的功能

haha我不是那个意思:laughing:,我不是那种伸手党,如果要删除前缀我肯定会自己研究的。我指的是在不删除添加前缀功能的情况下,有没有通过修改数据包(比如说修改数据包对控制台的返回之类的,这部分我不太了解)解决这个问题的思路

from mcdreforgedplugins.

AnzhiZhang avatar AnzhiZhang commented on July 18, 2024

有这个办法
就是 将原来的 假人加入->添加前缀->假人退出 流程修改为这个流程 假人加入->添加前缀->删除前缀->假人退出
也需要修改数据包

from mcdreforgedplugins.

Jerry-FaGe avatar Jerry-FaGe commented on July 18, 2024

有这个办法
就是 将原来的 假人加入->添加前缀->假人退出 流程修改为这个流程 假人加入->添加前缀->删除前缀->假人退出
也需要修改数据包

了解了,感谢感谢:pray:,大佬真是太有耐心了

from mcdreforgedplugins.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.