Skip to content

oestrich/gossip-elixir

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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