Closed engsr6982 closed 1 month ago
在事件回调中,调用 RemoteCallAPI 导入的函数似乎工作异常。
PlotCraft 已使用最新版本的依赖进行编译,问题依旧
https://github.com/engsr6982/PlotCraft/tree/main/src/remote
https://github.com/engsr6982/PlotCraft/issues/10
KernelBase.dll!00007fff4494cf19() 未知 vcruntime140.dll!00007fff37435267() 未知 legacy-script-engine-quickjs.dll!pack(script::Local<script::Value> value) 行 80 C++ legacy-script-engine-quickjs.dll!MakeRemoteCall(const std::string & nameSpace, const std::string & funcName, const script::Arguments & args) 行 189 C++ [内联框架] legacy-script-engine-quickjs.dll!LlClass::importFunc::__l9::<lambda_1>::operator()(const script::Arguments &) 行 291 C++ > [内联框架] legacy-script-engine-quickjs.dll!std::invoke(LlClass::importFunc::__l9::<lambda_1> & _Obj, const script::Arguments &) 行 1715 C++ legacy-script-engine-quickjs.dll!std::_Func_impl_no_alloc<`LlClass::importFunc'::`9'::<lambda_1>,script::Local<script::Value>,script::Arguments const &>::_Do_call(const script::Arguments & <_Args_0>) 行 876 C++ legacy-script-engine-quickjs.dll!std::vector<struct JSValue,class std::allocator<struct JSValue> >::~vector<struct JSValue,class std::allocator<struct JSValue> >(void) C++ legacy-script-engine-quickjs.dll!cyanray::WebSocketClient::Shutdown(void) C++ legacy-script-engine-quickjs.dll!__JS_FreeValueRT() C legacy-script-engine-quickjs.dll!JS_CallConstructor() C legacy-script-engine-quickjs.dll!JS_CallConstructor() C legacy-script-engine-quickjs.dll!JS_CallConstructor() C legacy-script-engine-quickjs.dll!JS_Call() C legacy-script-engine-quickjs.dll!script::Local<class script::Value>::operator==(class script::Local<class script::Value> const &) C++ legacy-script-engine-quickjs.dll!script::Local<class script::Function>::call<class script::Local<class script::Value> const &,class script::Local<class script::Value> const &>(class script::Local<class script::Value> const &,class script::Local<class script::Value> const &,class script::Local<class script::Value> const &) C++ legacy-script-engine-quickjs.dll!script::Local<class script::Function>::callImpl(class script::Local<class script::Value> const &,unsigned __int64,class script::Local<class script::Value> const *) C++ [内联框架] legacy-script-engine-quickjs.dll!script::Local<script::Function>::call(const script::Local<script::Value> &) 行 469 C++ legacy-script-engine-quickjs.dll!script::Local<script::Function>::call<script::Local<script::Object>,script::Local<script::Value>,script::Local<script::Number>,script::Local<script::Number>>(const script::Local<script::Value> & thiz, script::Local<script::Object> && <args_0>, script::Local<script::Value> && <args_1>, script::Local<script::Number> && <args_2>, script::Local<script::Number> && <args_3>) 行 586 C++ legacy-script-engine-quickjs.dll!EnableEventListener::__l4::<lambda_21>::operator()(ll::event::entity::ActorHurtEvent & ev) 行 542 C++ LeviLamina.dll!ll::event::CallbackStream::publish(ll::event::Event & event) 行 32 C++ LeviLamina.dll!ll::event::EventBus::publish(ll::event::Event & event, ll::event::EventId eventId) 行 154 C++ [内联框架] LeviLamina.dll!ll::event::EventBus::publish(ll::event::entity::ActorHurtEvent &) 行 59 C++ LeviLamina.dll!ll::event::entity::ActorHurtEventHook::detour(const ActorDamageSource & source, float damage, bool knock, bool ignite) 行 42 C++ bedrock_server_mod.exe!Player::attack(class Actor &,enum ActorDamageCause const &) 未知 [内联框架] LeviLamina.dll!ll::event::player::PlayerAttackEventHook::origin(Actor &) 行 19 C++ LeviLamina.dll!ll::event::player::PlayerAttackEventHook::detour(Actor & ac, const ActorDamageCause & cause) 行 34 C++ bedrock_server_mod.exe!std::_Func_impl_no_alloc<<lambda_a0e718c720b7400b1bbfb47dd72c5db9>,void>::_Do_call() 未知 bedrock_server_mod.exe!Container::createTransactionContext(class std::function<void (class Container &,int,class ItemStack const &,class ItemStack const &)>,class std::function<void (void)>) 未知 bedrock_server_mod.exe!PlayerInventory::createTransactionContext(class std::function<void (class Container &,int,class ItemStack const &,class ItemStack const &)>,class std::function<void (void)>) 未知 bedrock_server_mod.exe!GameMode::attack(class Actor &) 未知 bedrock_server_mod.exe!std::_Func_impl_no_alloc<<lambda_406a3022eeba5734d67053416ca985d9>,void>::_Do_call() 未知 bedrock_server_mod.exe!Container::createTransactionContext(class std::function<void (class Container &,int,class ItemStack const &,class ItemStack const &)>,class std::function<void (void)>) 未知 bedrock_server_mod.exe!PlayerInventory::createTransactionContext(class std::function<void (class Container &,int,class ItemStack const &,class ItemStack const &)>,class std::function<void (void)>) 未知 bedrock_server_mod.exe!ItemUseOnActorInventoryTransaction::handle(class Player &,bool) 未知 bedrock_server_mod.exe!ServerPlayerInventoryTransactionSystem::transactInventoryPacket(class InventoryTransactionPacket const &,class ServerPlayer &,class BlockPalette &) 未知 bedrock_server_mod.exe!details::CandidateAdapter<&ServerPlayerInventoryTransactionSystem::tickInventoryTransactionSystem(class StrictEntityContext const &,struct ServerPlayerInventoryTransactionComponent const &,class ActorOwnerComponent &,class EntityModifier<struct ServerPlayerInventoryTransactionComponent>)>::Impl<struct entt::type_list<struct ServerPlayerInventoryTransactionComponent const &,class ActorOwnerComponent &,class EntityModifier<struct ServerPlayerInventoryTransactionComponent> >,struct entt::type_list<class StrictEntityContext const &,struct ServerPlayerInventoryTransactionComponent const &,class ActorOwnerComponent &,class EntityModifier<struct ServerPlayerInventoryTransactionComponent> >,struct entt::type_list<class EntityModifier<struct ServerPlayerInventoryTransactionComponent> > >::tickEntity(class StrictEntityContext const &,struct ServerPlayerInventoryTransactionComponent const &,class ActorOwnerComponent &,class EntityModifier<struct ServerPlayerInventoryTransactionComponent>) 未知 bedrock_server_mod.exe!entt::basic_view<struct entt::get_t<class entt::basic_storage<struct ServerPlayerInventoryTransactionComponent,class EntityId,class std::allocator<struct ServerPlayerInventoryTransactionComponent>,void> const ,class entt::basic_storage<class ActorOwnerComponent,class EntityId,class std::allocator<class ActorOwnerComponent>,void> >,struct entt::exclude_t<>,void>::each<0,class <lambda_b791c9d15c497cfdf0d538130943e04e>,0,1>(class <lambda_b791c9d15c497cfdf0d538130943e04e> &,struct std::integer_sequence<unsigned __int64,0,1>) 未知 bedrock_server_mod.exe!StrictTickingSystemFunctionAdapter<&details::CandidateAdapter<&ServerPlayerInventoryTransactionSystem::tickInventoryTransactionSystem(class StrictEntityContext const &,struct ServerPlayerInventoryTransactionComponent const &,class ActorOwnerComponent &,class EntityModifier<struct ServerPlayerInventoryTransactionComponent>)>::Impl<struct entt::type_list<struct ServerPlayerInventoryTransactionComponent const &,class ActorOwnerComponent &,class EntityModifier<struct ServerPlayerInventoryTransactionComponent> >,struct entt::type_list<class StrictEntityContext const &,struct ServerPlayerInventoryTransactionComponent const &,class ActorOwnerComponent &,class EntityModifier<struct ServerPlayerInventoryTransactionComponent> >,struct entt::type_list<class EntityModifier<struct ServerPlayerInventoryTransactionComponent> > >::tickSystem(class ViewT<class StrictEntityContext,struct ServerPlayerInventoryTransactionComponent const ,class ActorOwnerComponent>,class EntityModifier<struct ServerPlayerInventoryTransactionComp 未知 bedrock_server_mod.exe!IStrictTickingSystem<class StrictExecutionContext<struct Filter<class FlagComponent<struct ActorMovementTickNeededFlag> const ,struct ServerPlayerCurrentMovementComponent const >,struct Read<class FlagComponent<struct PlayerComponentFlag> >,struct Write<class ActorOwnerComponent>,struct AddRemove<>,struct GlobalRead<>,struct GlobalWrite<>,struct EntityFactoryT<> > >::tick(class EntityRegistry &) 未知 bedrock_server_mod.exe!`anonymous namespace'::DefaultEntitySystemsCollection::internalForeachSystemWithCategories() 未知 bedrock_server_mod.exe!`anonymous namespace'::DefaultEntitySystemsCollection::foreachTickingSystem() 未知 bedrock_server_mod.exe!EntitySystems::tickMovementCatchup(class EntityRegistry &) 未知 bedrock_server_mod.exe!Minecraft::_tryCatchupMovementTicks(class EntitySystems &,class EntityRegistry &) 未知 bedrock_server_mod.exe!Minecraft::_tryCatchupMovementTicks(void) 未知 bedrock_server_mod.exe!Minecraft::update(void) 未知 bedrock_server_mod.exe!ServerInstance::_update(void) 未知 bedrock_server_mod.exe!<lambda>(void)() 未知 bedrock_server_mod.exe!std::thread::_Invoke<std::tuple<<lambda>(void)>,0>() 未知 ucrtbase.dll!00007fff447f1bb2() 未知 kernel32.dll!00007fff45e77344() 未知 ntdll.dll!00007fff471426b1() 未知
https://github.com/engsr6982/PlotCraft/actions/runs/10278742792
安装 PlotCraft 和 PlotCraft-Fixer.js
/plo go plot 切换到地皮维度
在地皮内放置并攻击实体 或 购买地皮使用活塞推地皮边框
正常运行
0.13.5 测试
0.13.4 测试
win10
1.21.3.01(ProtocolVersion 686)
LeviLamina-0.13.5+f4a975491
v0.8.10
PS D:\1.21.3&0.13.5> lip list +---------------------------------------------------------+--------------------------------+---------+ | TOOTH | NAME | VERSION | +---------------------------------------------------------+--------------------------------+---------+ | gitea.litebds.com/LiteLDev/legacy-script-engine-quickjs | LegacyScriptEngine with | 0.8.10 | | | QuickJs backend | | | github.com/LiteLDev/CrashLogger | CrashLogger | 1.1.1 | | github.com/LiteLDev/LegacyMoney | LegacyMoney | 0.8.4 | | github.com/LiteLDev/LegacyParticleAPI | LegacyParticleAPI | 0.8.3 | | github.com/LiteLDev/LegacyRemoteCall | LegacyRemoteCall | 0.8.3 | | github.com/LiteLDev/LeviLamina | LeviLamina | 0.13.5 | | github.com/LiteLDev/MoreDimensions | MoreDimensions | 0.4.1 | | github.com/LiteLDev/PeEditor | PeEditor | 3.7.0 | | github.com/LiteLDev/PreLoader | PreLoader | 1.9.2 | | github.com/LiteLDev/bds | Minecraft Bedrock Dedicated | 1.21.3 | | | Server | | | github.com/LiteLDev/bdsdown | bdsdown | 1.0.1 | | github.com/LiteLDev/levilamina-loc | levilamina-loc | 1.5.0 | +---------------------------------------------------------+--------------------------------+---------+
Unsupported Type: kFunction
LSE RemoteCall不支持将函数作为参数导入
bad variant access
你的插件或者LSE的什么玩意没有判断optional_ref是否有值
optional_ref
Describe the bug
在事件回调中,调用 RemoteCallAPI 导入的函数似乎工作异常。
PlotCraft 已使用最新版本的依赖进行编译,问题依旧
https://github.com/engsr6982/PlotCraft/tree/main/src/remote
https://github.com/engsr6982/PlotCraft/issues/10
To Reproduce
https://github.com/engsr6982/PlotCraft/actions/runs/10278742792
安装 PlotCraft 和 PlotCraft-Fixer.js
/plo go plot 切换到地皮维度
在地皮内放置并攻击实体 或 购买地皮使用活塞推地皮边框
Expected behavior
正常运行
Screenshots
0.13.5 测试
0.13.4 测试
Platform
win10
BDS Version
1.21.3.01(ProtocolVersion 686)
LeviLamina Version
LeviLamina-0.13.5+f4a975491
LegacyScriptEngine Version
v0.8.10
Additional context