特性
Sponge 使用若干系统属性以协助调试及其他任务。你可以通过命令行来指定这些属性的具体值,而这些属性能提供的日志会在你提交 issue ticket 的时候派上用场。
使用方法
你需要在启动服务器的命令中用 -Dkey=value
这样的语法来指定命令行参数,就像这样:java -Dsponge.shouldFireAll=true -Dsponge.filter.debug=true -jar forge.jar
。
備註
上述示例本身就是启动服务器的命令。你的服务器启动命令也许会有其他选项在里面。
可用属性
屬性(Property) |
說明 |
---|---|
sponge.debugBlockTransactions (布尔值,默认为 false) |
对于所有被捕获的方块,打印非常冗长的调试信息,包括哪一个 |
sponge.debugcauseframes (布尔值,默认为 false) |
在 Sponge 实现或者某个插件有可能破坏 |
sponge.debugProxyChanges (布尔值,默认为 false) |
和 |
sponge.debugShouldFire (布尔值,默认为 false) |
在因事件监听器注册或取消注册而导致 |
sponge.filter.debug (布尔值,默认为 false) |
将 filter generator 产生的所有类全部输出至 |
sponge.print_all_catalog_types (布尔值,默认为 false) |
在 PreInit 启动阶段之前打印所有 Sponge 提供的 |
sponge.shouldFireAll (布尔值,默认为 false) |
设定为 true 时,Sponge 将会无视事件是否有对应的监听器,直接创建并发布事件(正常情况下,Sponge 不会发布那些没有人监听的事件,比如说如果没有人监听 |
sponge.world.migrate_old (布尔值,默认为 true) |
设定为 false 时 Sponge 不会进行存档迁移。关于存档迁移的过程可参考:轉移至 Sponge。 |
timings.bypassMax (任意值) |
允许超出 Aikar 的 Timing API 的 frame 数量上限。仅当 API 也被配置为允许超出此上限时该设定才会生效。 |
警告
sponge.debugcauseframes 有可能会增加性能开销,因为整个游戏生命周期中的每一 frame 都会产生新的栈帧。
sponge.debugProxyChanges 也有可能大幅增加性能开销,因为启用此选项后会在所有 Entity
、TileEntity
和 Block
的每一次刷新(tick)时创建一个新异常(以获取栈帧)。