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"},
]
endConfiguration
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.GamesCallback 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 achannels/broadcastevent[:gossip, :events, :channels, :send, :request]- Sending achannels/sendevent[:gossip, :events, :core, :authenticate, :request]- Received a response toauthenticate[:gossip, :events, :core, :authenticate, :response]- Sending anauthenticateevent[:gossip, :events, :core, :heartbeat, :request]- Received aheartbeatevent[:gossip, :events, :core, :restart]- Received arestartevent[:gossip, :events, :games, :connect]- Received agames/connectevent[:gossip, :events, :games, :disconnect]- Received agames/disconnectevent[:gossip, :events, :games, :status, :request]- Sending agames/statusevent[:gossip, :events, :games, :status, :response]- Received a response togames/status[:gossip, :events, :players, :sign_in]- Received aplayers/sign-inevent[:gossip, :events, :players, :sign_out]- Received aplayers/sign-outevent[:gossip, :events, :players, :status, :request]- Sending aplayers/statusevent[:gossip, :events, :players, :status, :response]- Received a response toplayers/status[:gossip, :events, :tells, :receive]- Received atells/receiveevent[:gossip, :events, :tells, :send, :request]- Sending atells/sendevent[:gossip, :events, :tells, :send, :response]- Received a response totells/send