Cuberite Forum
Problem using the lua api - Printable Version

+- Cuberite Forum (https://forum.cuberite.org)
+-- Forum: Cuberite (https://forum.cuberite.org/forum-4.html)
+--- Forum: Development (https://forum.cuberite.org/forum-13.html)
+--- Thread: Problem using the lua api (/thread-2070.html)



Problem using the lua api - SamJBarney - 07-24-2015

I'm busy working on a channel manager right now to simplify handling custom packets encapsulated within what we call plugin messages. However, I am having trouble with the lua api.

My manual binding, which can be found here, checks to see if the third argument is a valid function, which it is and it passes the check fine. However, when cPlugin::Call tries to use the stored function ref, cLuaState::PushFunction(int a_FnRef) fails because it says it is not a function.

What am I doing wrong?


RE: Problem using the lua api - SamJBarney - 07-24-2015

Nevermind. I fixed it. I was trying to grab the function directly instead of through LUA_REGISTRYINDEX.


RE: Problem using the lua api - xoft - 07-24-2015

That's why the cLuaState class has a cRef class, which is exactly what you should be using for storing function references.


RE: Problem using the lua api - SamJBarney - 07-25-2015

I tried using it, but I couldn't get it to work. Especially since there is no copy constructor for cRef.


RE: Problem using the lua api - xoft - 07-25-2015

It doesn't support copying (because it would be unnecessarily difficult to copy the value in Lua), you must std::move it.