Libgss

Network library for Groovenauts GSS.

Usually game developers use other network libraries built in each environment, but can use this network library in oder to write test script about Stored Script which is server side script in GSS.

Installation

Add this line to your application's Gemfile:

gem 'libgss'

And then execute:

$ bundle

Or install it yourself as:

$ gem install libgss

Usage

$ irb -r libgss

>> network = Libgss::Network.new("http://localhost:3000", ssl_disabled: true)
=> #<Libgss::Network:2152782140 @ssl_disabled=true, @base_url="http://localhost:3000", @ssl_base_url="http://localhost:3000", @platform="fontana">
>> network.player_id = "1000001"
=> "1000001"
>> network.login
=> true
>> 
?> req1 = network.new_action_request
=> #<Libgss::ActionRequest:2152568320 @action_url="http://localhost:3000/api/1.0.0/actions.json?auth_token=259rKDuSb3CT1UxbywAf", @status=0, @actions=[], @action_id=0>
>> req1.execute("ItemRubyStoredScript", "use_item", {"item_cd" => "20001"})
=> #<Libgss::Action:0x0000010092f7b0 @id=1, @args={:action=>"execute", :name=>"ItemRubyStoredScript", :key=>"use_item", :args=>{"item_cd"=>"20001"}}>
>> req1.get_by_game_data
=> #<Libgss::Action:0x000001008f9188 @id=2, @args={:action=>"get", :name=>"GameData"}>
>> req1.send_request
=> nil
>> 
?> req1.outputs
=> [{"result"=>"You don't have enough item", "id"=>1}, {"result"=>{"content"=>{"hp"=>15, "max_hp"=>15, "mp"=>5, "max_mp"=>5, "exp"=>100, "money"=>200, "items"=>{"20001"=>0, "20005"=>1}, "equipments"=>{"head"=>10018, "body"=>10012, "right_hand"=>10001, "left_hand"=>nil}}, "greeting_points"=>0, "login_bonus"=>[[10001, 1]], "invitation_code"=>nil, "invite_player"=>nil, "read_notifications"=>[]}, "id"=>2}]
>> 
?> req1.outputs.get(1)
=> {"result"=>"You don't have enough item", "id"=>1}

connection testing

You can use gss-server-time command to test connection like this:

$ gss-server-time http://localhost:3000 -a path/to/app_garden.yml.erb

or

$ gss-server-time http://localhost:3000 -p fontana -c <consumer_secret> -i <player_id>

see gss-server-time --help for more options