Skip to content

[Bug] 关服引发崩溃 #379

Description

@wuw111

Describe the bug

关闭服务器时,PlayerClass::getNbt内部遇到无效状态,引起崩溃

trace_2026-07-21_05-00-00.zip

To Reproduce

版本:LSE 0.19.2(0.18.2版本不会产生问题)
在服务器关闭时,PlayerClass::getNbt仍然被调用
例如,创建一个监听玩家离开事件,然后扫描该玩家NBT的JS插件,
玩家正常离开时,该插件逻辑运行正常,不会崩溃,
而服务器关闭时,若关闭前有玩家在线则会崩溃

FixCopyItem.js

测试发现这个崩溃无法被插件卸载事件拦截,可能是因为插件卸载事件在玩家离开事件之后发生

Expected behavior

避免崩溃现象发生

Screenshots

No response

Platform

Windows10&Windows11

BDS Version

1.26.20.5

LeviLamina Version

LeviLamina-26.20.4

LegacyScriptEngine Version

v0.19.2

Additional context

这个问题是1.26.20开始稳定出现的,也就是说,1.26.10(0.18.2)及以前的版本没有此直接崩溃的问题,这可能和近几个版本对nbt功能加强有关,但会对已有插件产生严重兼容性问题

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions