English | 简体中文
这是一个适用于Minecraft 1.21的fabric模组,为数据包的开发引入了重要的断点调试功能
- 设置断点
在数据包中,你可以在.mcfunction文件中插入#breakpoint注释来设置断点。例如:
#test:test
say 1
say 2
#breakpoint
say 3
say 4在这个例子中,当游戏执行完say 2后,游戏将会遇到断点,从而被“冻结",或者说进入“断点调试模式”。这个时候,你仍然可以四处移动,或者执行命令之类的,任何
你想做的事情。这个“冻结”的效果和执行了tick freeze命令后的效果类似。
你可以在游戏被冻结的时候,执行一些命令来观察你数据包的过程量,或者进行一些调试。不过需要注意的是,只有聊天栏里面执行的命令才会被正常运行,即使是通过 聊天栏执行了函数,那么被执行的函数中的语句也会被冻结。
- 步进
当游戏被冻结的时候,你可以使用命令/breakpoint step来执行下一条命令。在上面的例子中,当游戏遇到断点后,你可以使用/breakpoint step来执行say 3,
然后再使用/breakpoint step来执行say 4。当所有的命令都被执行完后,游戏将会被解冻,继续运行。
当游戏被冻结的时候,你可以使用命令/breakpoint move来解冻游戏,继续运行。
- 宏参数的获取
使用/breakpoint get <key>可以获取到宏函数中的宏参数的值。例如:
#test:test_macro
say start
#breakpoint
$say $(msg)
say end在执行function test:test_macro {"msg":"test"}后,我们将值test传递给了宏参数msg。同时,在执行函数的过程中,游戏会在$say $(msg)
之前触发断点暂停。这个时候,就可以使用/breakpoint get msg来获取到值test。
- 获取函数栈
- Get Function Stack
使用/breakpoint stack可以获取到当前游戏的函数栈。例如,如果我们有以下两个函数:
#test:test1
say 1
function test:test2
say 2
#test: test2
say A
#breakpoint
say B当游戏暂停在断点位置的时候,在聊天栏执行/breakpoint stack即可将函数调用栈打印在聊天栏中。
test:test2
test:test
- 在当前上下文中运行命令
通过/breakpoint run <command>,你可以在当前上下文中运行任何命令,就像execute ... run ...一样。