We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
当玩家点击 SimpleForm 中的按钮,回调打开子表单时出现崩溃
目前我有两个插件都有此崩溃问题(0.13.5时都是正常的) 在LL 1.0.0-rc.1 到 rc.2 均复现。
我写了个最小复现代码,它能复现崩溃。
#include "ll/api/Expected.h" #include "ll/api/command/Command.h" #include "ll/api/command/CommandHandle.h" #include "ll/api/command/CommandRegistrar.h" #include "ll/api/command/Overload.h" #include "ll/api/command/OverloadData.h" #include "ll/api/form/SimpleForm.h" #include "ll/api/mod/RegisterHelper.h" #include "mc/server/commands/CommandOrigin.h" #include "mc/world/actor/player/Player.h" void FormB(Player& player); void FormA(Player& player) { ll::form::SimpleForm fm("A"); fm.setContent("A"); fm.appendButton("Button 1", "textures/ui/anvil_icon", "path", [](Player& player) { FormB(player); }); fm.appendButton("Button 2", "textures/ui/anvil_icon", "path", [](Player& player) { FormB(player); }); fm.appendButton("Button 3", "textures/ui/anvil_icon", "path", [](Player& player) { FormB(player); }); fm.sendTo(player); } void FormB(Player& player) { ll::form::SimpleForm fm("B"); fm.setContent("B"); fm.appendButton("Button 1", "textures/ui/icon_spring", "path", [](Player& player) { FormA(player); }); fm.appendButton("Button 1", "textures/ui/icon_spring", "path", [](Player& player) { FormA(player); }); fm.appendButton("Button 1", "textures/ui/icon_spring", "path", [](Player& player) { FormA(player); }); fm.sendTo(player); } bool MyMod::enable() { getSelf().getLogger().debug("Enabling..."); // Code for enabling the mod goes here. ll::command::CommandRegistrar::getInstance().getOrCreateCommand("test").overload().execute( [](CommandOrigin const& ori, CommandOutput& out) { auto ent = ori.getEntity(); if (ent && ent->isPlayer()) { if (auto player = static_cast<Player*>(ent)) { FormA(*player); } } } ); return true; }
当玩家执行命令test时,表单A会发送给玩家,玩家正常打开表单A,当玩家点击表单A中的按钮后服务端会崩溃。 这个崩溃CrashLogger无法捕获出原因,只显示unknown error。
使用最小复现代码,执行命令 test,点击按钮,即可复现崩溃
PS:有时候不是点击按钮立即崩溃,有概率可以正常打开子表单,在子表单点击按钮返回主表单重新尝试,如果客户端未收到表单,此时服务端看似正常运行,当玩家再次执行test命令后,点击按钮就崩溃
正常运行
win10
1.21.50-10.766+37da480 with LeviLamina-1.0.0-rc.2+321071467.
levilamina-mod-template.zip 最小复现代码(带已编译的dll,debug编译)
The text was updated successfully, but these errors were encountered:
ffc40f9
Dofes
No branches or pull requests
Describe the bug
当玩家点击 SimpleForm 中的按钮,回调打开子表单时出现崩溃
目前我有两个插件都有此崩溃问题(0.13.5时都是正常的)
在LL 1.0.0-rc.1 到 rc.2 均复现。
我写了个最小复现代码,它能复现崩溃。
当玩家执行命令test时,表单A会发送给玩家,玩家正常打开表单A,当玩家点击表单A中的按钮后服务端会崩溃。 这个崩溃CrashLogger无法捕获出原因,只显示unknown error。
To Reproduce
使用最小复现代码,执行命令 test,点击按钮,即可复现崩溃
PS:有时候不是点击按钮立即崩溃,有概率可以正常打开子表单,在子表单点击按钮返回主表单重新尝试,如果客户端未收到表单,此时服务端看似正常运行,当玩家再次执行test命令后,点击按钮就崩溃
Expected behavior
正常运行
Screenshots
Platform
win10
Version
1.21.50-10.766+37da480 with LeviLamina-1.0.0-rc.2+321071467.
Additional context
levilamina-mod-template.zip
最小复现代码(带已编译的dll,debug编译)
The text was updated successfully, but these errors were encountered: