Current section
Files
Jump to
Current section
Files
lib/soulless/lobby_client.ex
defmodule Soulless.LobbyClient do
use Soulless.RPC,
namespace: Soulless.LobbyClient,
proto_namespace: Soulless.Game,
packet_type: Soulless.Packet.GamePacket,
create_modules: false,
service_names: ["Lobby"],
fetch_fn: &Soulless.LobbyClient.fetch/3
use Soulless.RPC,
namespace: Soulless.LobbyClient,
proto_namespace: Soulless.Game,
packet_type: Soulless.Packet.GamePacket,
create_modules: true,
service_names: ["Route"],
fetch_fn: &Soulless.LobbyClient.fetch/3
def start(opts) do
opts
|> Keyword.put_new(:implementation, Soulless.Websocket.Implementation.Lobby)
|> Soulless.Websocket.Client.start()
end
def start_link(opts) do
opts
|> Keyword.put_new(:implementation, Soulless.Websocket.Implementation.Lobby)
|> Soulless.Websocket.Client.start_link()
end
def child_spec(args) do
%{
id: __MODULE__,
start: {__MODULE__, :start_link, [args]},
restart: :permanent,
shutdown: 5000,
type: :worker
}
end
defdelegate fetch(client, payload), to: Soulless.Websocket.Client
defdelegate fetch(client, payload, timeout), to: Soulless.Websocket.Client
@doc """
Currently authenticated account, if available.
"""
def account(client) do
Soulless.Websocket.Client.fetch_state(client, [:account])
end
@doc """
Current game version.
"""
def version(client) do
Soulless.Websocket.Client.fetch_state(client, [:version])
end
end