Exception handling in Lua setting get

This commit is contained in:
Perttu Ahola 2011-11-26 03:40:16 +02:00
parent 234bf99743
commit 57a2bd056c
2 changed files with 14 additions and 5 deletions

View File

@ -1316,7 +1316,8 @@ minetest.register_on_respawnplayer(function(player)
end)
-- Example setting get
print("max_users = " .. dump(minetest.setting_get("max_users")))
print("setting max_users = " .. dump(minetest.setting_get("max_users")))
print("setting asdf = " .. dump(minetest.setting_get("asdf")))
--
-- Done, print some random stuff

View File

@ -861,8 +861,12 @@ static int l_register_on_respawnplayer(lua_State *L)
static int l_setting_get(lua_State *L)
{
const char *name = luaL_checkstring(L, 1);
std::string value = g_settings->get(name);
lua_pushstring(L, value.c_str());
try{
std::string value = g_settings->get(name);
lua_pushstring(L, value.c_str());
} catch(SettingNotFoundException &e){
lua_pushnil(L);
}
return 1;
}
@ -870,8 +874,12 @@ static int l_setting_get(lua_State *L)
static int l_setting_getbool(lua_State *L)
{
const char *name = luaL_checkstring(L, 1);
bool value = g_settings->getBool(name);
lua_pushboolean(L, value);
try{
bool value = g_settings->getBool(name);
lua_pushboolean(L, value);
} catch(SettingNotFoundException &e){
lua_pushnil(L);
}
return 1;
}