oestrich / gossip-elixir

An Elixir client for Grapevine

Home Page:https://grapevine.haus/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Gossip

A client for connecting to the Gossip MUD chat network. See https://grapevine.haus/docs for more information.

Installation

The package can be installed by adding gossip to your list of dependencies in mix.exs:

def deps do
  [
    {:gossip, "~> 0.6"},
  ]
end

Configuration

Set the following in your mix project's configuration. Do not commit the client id and secret. These should be in a prod.secret.exs file or similar that is ignored from your repo.

config :gossip, :client_id, "CLIENT ID"
config :gossip, :client_secret, "CLIENT SECRET"
config :gossip, :callback_modules,
  core: Callbacks.Core,
  players: Callbacks.Players,
  tells: Callbacks.Tells,
  games: Callbacks.Games

Callback Modules

You can opt into specific support flags on Gossip by configuring callback modules that follow the specific behaviours.

See a sample set of callbacks by viewing the TestCallback module for this client, here.

Core/Channels

The channels flag must be supported and can be set up by providing a callback module that has the Gossip.Client.Core behaviour.

Players

The players flag can be set up by providing a callback module that has the Gossip.Client.Players behaviour.

Tells

The tells flag can be set up by providing a callback module that has the Gossip.Client.Tells behaviour.

Games

the games flag can be set up by providing a callback module that has the gossip.client.games behaviour.

Telemetry Events

  • [:gossip, :events, :channels, :broadcast] - Received a channels/broadcast event
  • [:gossip, :events, :channels, :send, :request] - Sending a channels/send event
  • [:gossip, :events, :core, :authenticate, :request] - Received a response to authenticate
  • [:gossip, :events, :core, :authenticate, :response] - Sending an authenticate event
  • [:gossip, :events, :core, :heartbeat, :request] - Received a heartbeat event
  • [:gossip, :events, :core, :restart] - Received a restart event
  • [:gossip, :events, :games, :connect] - Received a games/connect event
  • [:gossip, :events, :games, :disconnect] - Received a games/disconnect event
  • [:gossip, :events, :games, :status, :request] - Sending a games/status event
  • [:gossip, :events, :games, :status, :response] - Received a response to games/status
  • [:gossip, :events, :players, :sign_in] - Received a players/sign-in event
  • [:gossip, :events, :players, :sign_out] - Received a players/sign-out event
  • [:gossip, :events, :players, :status, :request] - Sending a players/status event
  • [:gossip, :events, :players, :status, :response] - Received a response to players/status
  • [:gossip, :events, :tells, :receive] - Received a tells/receive event
  • [:gossip, :events, :tells, :send, :request] - Sending a tells/send event
  • [:gossip, :events, :tells, :send, :response] - Received a response to tells/send

About

An Elixir client for Grapevine

https://grapevine.haus/

License:MIT License


Languages

Language:Elixir 100.0%