Implemented World::probe_lua_call and tested
This commit is contained in:
@@ -90,7 +90,35 @@ public:
|
||||
}
|
||||
|
||||
virtual void do_work_command() override {
|
||||
do_unknown_command("work");
|
||||
master_->snapshot();
|
||||
StreamBuffer datapack;
|
||||
StreamBuffer retvals;
|
||||
datapack.write_string("engio");
|
||||
datapack.write_string("myfunction");
|
||||
datapack.write_simple_dynamic_tag(SimpleDynamicTag::NUMBER);
|
||||
datapack.write_double(3.7);
|
||||
datapack.write_simple_dynamic_tag(SimpleDynamicTag::STRING);
|
||||
datapack.write_string("banana");
|
||||
datapack.write_simple_dynamic_tag(SimpleDynamicTag::BOOLEAN);
|
||||
datapack.write_bool(true);
|
||||
master_->probe_lua_call(admin_id_, admin_id_, datapack.view(), &retvals);
|
||||
while (!retvals.empty()) {
|
||||
SimpleDynamicValue value;
|
||||
retvals.read_simple_dynamic(&value);
|
||||
if (value.type == SimpleDynamicTag::NUMBER) {
|
||||
util::dprint("retval: ", value.x);
|
||||
} else if (value.type == SimpleDynamicTag::STRING) {
|
||||
util::dprint("retval: ", value.s);
|
||||
} else if (value.type == SimpleDynamicTag::BOOLEAN) {
|
||||
util::dprint(value.x ? "retval: true" : "retval: false");
|
||||
} else if (value.type == SimpleDynamicTag::VECTOR) {
|
||||
util::dprint("retval: ", value.x, " ", value.y, " ", value.z);
|
||||
} else {
|
||||
util::dprint("retval: invalid");
|
||||
break;
|
||||
}
|
||||
}
|
||||
master_->rollback();
|
||||
}
|
||||
|
||||
virtual void do_display_command() override {
|
||||
@@ -111,7 +139,7 @@ public:
|
||||
|
||||
virtual void do_luaprobe_command(std::string_view cmd) override {
|
||||
master_->snapshot();
|
||||
stdostream() << master_->probe_lua(admin_id_, cmd);
|
||||
stdostream() << master_->probe_lua_expr(admin_id_, cmd);
|
||||
master_->rollback();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user