1. Welcome to the Starbound support forums. Please check the support FAQs before posting: http://playstarbound.com/support

Bug/Issue sb.printJson(), "pretty" parameter bug

Discussion in 'Starbound Support' started by ThreeTen22, Mar 17, 2017.

  1. ThreeTen22

    ThreeTen22 Astral Cartographer

    Hi, this is a minor bug with an easy workaround, but just to give you a heads up the hook function, sb.printJson, is incorrectly trying to convert the "pretty" bool parameter to an integer.

    As it is now, something like this:
    Code:
    local jsonObject =  'sometable'
    sb.printJson(jsonObject, true)
    will give you an error stating that it cannot convert a lua value to an int.
    It seems that rather than accepting a boolean value, it is looking for an integer representation of a bool value (0 or 1).

    So the current workaround is just simply:
    Code:
    local jsonObject = [any table]
    sb.printJson(jsonObject, 1)  --> will format
    sb.printJson(jsonObject, 0)   --> will not format
    
    Thought you'd like to know!
    __________

    For reference:

    Documentation of the function found in the game directory:

    Error Log:
    Code:
    [15:51:03.464] [Error] Exception while calling script init: (LuaException) Error code 2, [string "/objects/NpcSpawner/NpcPanel.lua"]:10: (LuaConversionException) Error converting LuaValue to type 'class Star::Maybe<int>'
    [0] 7ff67ff44403 Star::captureStack
    [1] 7ff67ff4318e Star::StarException::StarException
    [2] 7ff67ff0f0cb Star::LuaConversionException::LuaConversionException
    [3] 7ff67ff0a8d6 Star::LuaConversionException::format<char const * __ptr64>
    [4] 7ff67ff0b83c Star::luaTo<Star::Maybe<int> >
    [5] 7ff680113a94 Star::LuaDetail::ArgGet<Star::Maybe<int> >::get
    [6] 7ff6805da054 <lambda_60938d196eaf092faaa3f81ae772b5e1>::operator()
    [7] 7ff6805d48cf std::_Invoker_functor::_Call<<lambda_60938d196eaf092faaa3f81ae772b5e1> & __ptr64,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>
    [8] 7ff6805d6370 std::invoke<<lambda_60938d196eaf092faaa3f81ae772b5e1> & __ptr64,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>
    [9] 7ff6805d51a9 std::_Invoke_ret<Star::Variant<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::LuaVariadic<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> > >,<lambda_60938d196eaf092faaa3f81ae772b5e1> & __ptr64,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>
    [10] 7ff6805dbcbb std::_Func_impl<<lambda_60938d196eaf092faaa3f81ae772b5e1>,std::allocator<int>,Star::Variant<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::LuaVariadic<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> > >,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>::_Do_call
    [11] 7ff67ff11e8d std::_Func_class<Star::Variant<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::LuaVariadic<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> > >,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>::operator()
    [12] 7ff67ff10f24 <lambda_a03bcae4599b53751a446949639a4d5e>::operator()
    [13] 7ff67fe9b6a8 luaD_precall
    [14] 7ff67feb4451 luaV_execute
    [15] 7ff67fe9b1b3 luaD_call
    [16] 7ff67fe9b98b luaD_rawrunprotected
    [17] 7ff67fe9b3c0 luaD_pcall
    [18] 7ff67fe918d4 lua_pcallk
    [19] 7ff67ff18ed0 Star::LuaEngine::pcallWithTraceback
    [20] 7ff6800e6824 Star::LuaEngine::callFunction<>
    [21] 7ff6800e9ee1 Star::LuaFunction::invoke<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> >
    [22] 7ff68052f413 Star::LuaContext::invokePath<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> >
    [23] 7ff680530e57 Star::LuaBaseComponent::init
    [24] 7ff680530862 Star::LuaBaseComponent::checkInitialization
    [25] 7ff6800ea270 Star::LuaBaseComponent::invoke<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,float>
    [26] 7ff6800ef12c Star::LuaUpdatableComponent<Star::LuaWorldComponent<Star::LuaBaseComponent> >::update<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,float>
    [27] 7ff6801c42cf Star::Object::update
    [28] 7ff68051af5b Star::ContainerObject::update
    [29] 7ff68047d32e <lambda_5251ea3b435705ab973fc9e3a86aa323>::operator()
    [30] 7ff68007b5e7 Star::EntityMap::updateAllEntities
    [31] 7ff68049ddc2 Star::WorldServer::update
    [32] 7ff6804a5c42 Star::WorldServerThread::update
    [33] 7ff6804a56a8 Star::WorldServerThread::run
    [34] 7ff67ff40f2e Star::ThreadImpl::runThread
    [35] 7ffcc48813d2 BaseThreadInitThunk
    [36] 7ffcc6725444 RtlUserThreadStart
    stack traceback:
       [C]: in ?
       [C]: in field 'printJson'
       [string "/objects/NpcSpawner/NpcPanel.lua"]:10: in function <[string "/objects/NpcSpawner/NpcPanel.lua"]:4>
    [0] 7ff67ff44403 Star::captureStack
    [1] 7ff67ff4318e Star::StarException::StarException
    [2] 7ff67ff17a91 Star::LuaEngine::handleError
    [3] 7ff6800e683d Star::LuaEngine::callFunction<>
    [4] 7ff6800e9ee1 Star::LuaFunction::invoke<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> >
    [5] 7ff68052f413 Star::LuaContext::invokePath<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> >
    [6] 7ff680530e57 Star::LuaBaseComponent::init
    [7] 7ff680530862 Star::LuaBaseComponent::checkInitialization
    [8] 7ff6800ea270 Star::LuaBaseComponent::invoke<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,float>
    [9] 7ff6800ef12c Star::LuaUpdatableComponent<Star::LuaWorldComponent<Star::LuaBaseComponent> >::update<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,float>
    [10] 7ff6801c42cf Star::Object::update
    [11] 7ff68051af5b Star::ContainerObject::update
    [12] 7ff68047d32e <lambda_5251ea3b435705ab973fc9e3a86aa323>::operator()
    [13] 7ff68007b5e7 Star::EntityMap::updateAllEntities
    [14] 7ff68049ddc2 Star::WorldServer::update
    [15] 7ff6804a5c42 Star::WorldServerThread::update
    [16] 7ff6804a56a8 Star::WorldServerThread::run
    [17] 7ff67ff40f2e Star::ThreadImpl::runThread
    [18] 7ffcc48813d2 BaseThreadInitThunk
    [19] 7ffcc6725444 RtlUserThreadStart
    
    Code Used To generate the error, called during the Init() function of a container ScriptConsole :
    Code:
      local table = {testKey = "value", testKeyTwo = "valueTwo"}
      local printValue = sb.printJson(table, true)
    
     

Share This Page