Categorygithub.com/engineer152/discordgo
modulepackage
0.12.1
Repository: https://github.com/engineer152/discordgo.git
Documentation: pkg.go.dev

# README

Discordgo ==== [![GoDoc](https://godoc.org/github.com/bwmarrin/discordgo?status.svg)](https://godoc.org/github.com/bwmarrin/discordgo) [![Go report](http://goreportcard.com/badge/bwmarrin/discordgo)](http://goreportcard.com/report/bwmarrin/discordgo) [![Build Status](https://travis-ci.org/bwmarrin/discordgo.svg?branch=master)](https://travis-ci.org/bwmarrin/discordgo)

Discordgo is a Go package that provides low level bindings to the Discord chat client API. Discordgo has nearly complete support for all of the Discord JSON-API endpoints, websocket interface, and voice interface.

  • See dgVoice package to extend Discordgo with additional voice helper functions and features.

  • See dca for an experimental stand alone tool that wraps ffmpeg to create opus encoded audio appropriate for use with Discord (and Discordgo)

Join #go_discordgo Discord chat channel for support.

Getting Started

master vs develop Branch

  • The master branch represents the latest released version of Discordgo. This branch will always have a stable and tested version of the library. Each release is tagged and you can easily download a specific release and view release notes on the github releases page.

  • The develop branch is where all development happens and almost always has new features over the master branch. However breaking changes are frequently added to develop and even sometimes bugs are introduced. Bugs get fixed and the breaking changes get documented before pushing to master.

So, what should you use?

If you can accept the constant changing nature of develop then it is the recommended branch to use. Otherwise, if you want to tail behind development slightly and have a more stable package with documented releases then use master

Installing

Discordgo has been tested to compile on Debian 8 (Go 1.3.3), FreeBSD 10 (Go 1.5.1), and Windows 7 (Go 1.5.2).

This assumes you already have a working Go environment, if not please see this page first.

go get will always pull the latest released version from the master branch.

go get github.com/bwmarrin/discordgo

If you want to use the develop branch, follow these steps next.

cd $GOPATH/src/github.com/bwmarrin/discordgo
git checkout develop

Usage

Import the package into your project.

import "github.com/bwmarrin/discordgo"

Construct a new Discord client which can be used to access the variety of Discord API functions and to set callback functions for Discord events.

discord, err := discordgo.New("username", "password")

See Documentation and Examples below for more detailed information.

Documentation

NOTICE : This library and the Discord API are unfinished. Because of that there may be major changes to library functions, constants, and structures.

The Discordgo code is fairly well documented at this point and is currently the only documentation available. Both GoDoc and GoWalker (below) present that information in a nice format.

Examples

Below is a list of examples and other projects using Discordgo. Please submit an issue if you would like your project added or removed from this list

  • Basic - New A basic example using the easy New() helper function
  • Basic - API A basic example using the low level API functions.
  • Awesome Discordgo A curated list of high quality projects using DiscordGo

Troubleshooting

For help with common problems please reference the Troubleshooting section of the project wiki.

Contributing

Contributions are very welcomed, however please follow the below guidelines.

  • First open an issue describing the bug or enhancement so it can be discussed.
  • Fork the develop branch and make your changes.
  • Try to match current naming conventions as closely as possible.
  • This package is intended to be a low level direct mapping of the Discord API so please avoid adding enhancements outside of that scope without first discussing it.
  • Create a Pull Request with your changes against the develop branch.

List of Discord APIs

See this chart for a feature comparison and list of other Discord API libraries.

# Packages

No description provided by the author

# Functions

New creates a new Discord session and will automate some startup tasks if given enough information to do so.
NewState creates an empty state.

# Constants

Constants for the different bit offsets of general permissions.
Constants for the different bit offsets of general permissions.
Constants for the different bit offsets of general permissions.
Constants for the different bit offsets of general permissions.
Constants for the different bit offsets of text channel permissions.
Constants for the different bit offsets of general permissions.
Constants for the different bit offsets of general permissions.
Constants for the different bit offsets of text channel permissions.
Constants for the different bit offsets of general permissions.
Constants for the different bit offsets of general permissions.
Constants for the different bit offsets of text channel permissions.
Constants for the different bit offsets of general permissions.
Constants for the different bit offsets of general permissions.
Constants for the different bit offsets of text channel permissions.
Constants for the different bit offsets of text channel permissions.
Constants for the different bit offsets of text channel permissions.
Constants for the different bit offsets of text channel permissions.
Constants for the different bit offsets of text channel permissions.
Constants for the different bit offsets of voice permissions.
Constants for the different bit offsets of voice permissions.
Constants for the different bit offsets of voice permissions.
Constants for the different bit offsets of voice permissions.
Constants for the different bit offsets of voice permissions.
Constants for the different bit offsets of voice permissions.
Constants for VerificationLevel levels from 0 to 3 inclusive.
Constants for VerificationLevel levels from 0 to 3 inclusive.
Constants for VerificationLevel levels from 0 to 3 inclusive.
Constants for VerificationLevel levels from 0 to 3 inclusive.
VERSION of Discordgo, follows Symantic Versioning.

# Variables

Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
TODO consider removing.
Known Discord API Endpoints.
ErrJSONUnmarshal is returned for JSON Unmarshall errors.
ErrNilState is returned when the state is nil.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.
Known Discord API Endpoints.

# Structs

An Application struct stores values for a Discord OAuth2 Application.
An Attachment stores data for message attachments.
A Channel holds all data related to an individual Discord channel.
ChannelCreate is a wrapper struct for an event.
ChannelDelete is a wrapper struct for an event.
ChannelUpdate is a wrapper struct for an event.
Connect is an empty struct for an event.
Disconnect is an empty struct for an event.
An Embed stores data for message embeds.
Emoji struct holds data related to Emoji's.
An Event provides a basic initial struct for all websocket event.
A Game struct holds the name of the "playing .." game for a user.
A Guild holds all data related to a specific Discord Guild.
A GuildBan stores data for a guild ban.
GuildBanAdd is a wrapper struct for an event.
GuildBanRemove is a wrapper struct for an event.
GuildCreate is a wrapper struct for an event.
GuildDelete is a wrapper struct for an event.
A GuildEmojisUpdate stores data for a guild emoji update event.
A GuildIntegrationsUpdate stores data for the guild integrations update websocket event.
GuildMemberAdd is a wrapper struct for an event.
GuildMemberRemove is a wrapper struct for an event.
GuildMemberUpdate is a wrapper struct for an event.
A GuildParams stores all the data needed to update discord guild settings.
A GuildRole stores data for guild role websocket events.
GuildRoleCreate is a wrapper struct for an event.
A GuildRoleDelete stores data for the guild role delete websocket event.
GuildRoleUpdate is a wrapper struct for an event.
GuildUpdate is a wrapper struct for an event.
A ICEServer stores data for a specific voice ICE server.
A Invite stores all data related to a specific Discord Guild or Channel invite.
A Member stores user information for Guild members.
A Message stores all data related to a specific Discord message.
A MessageAck stores data for the message ack websocket event.
MessageCreate is a wrapper struct for an event.
MessageDelete is a wrapper struct for an event.
MessageUpdate is a wrapper struct for an event.
A Packet contains the headers and content of a received voice packet.
A PermissionOverwrite holds permission overwrite data for a Channel.
A Presence stores the online, offline, or idle and game status of Guild members.
A PresenceUpdate stores data for the presence update websocket event.
A RateLimit struct holds information related to a specific rate limit.
A ReadState stores data on the read state of channels.
A Ready stores all data for the websocket READY event.
A Role stores information about Discord guild member roles.
A Session represents a connection to the Discord API.
A Settings stores data for a specific users Discord client settings.
A State contains the current known state.
A TypingStart stores data for the typing start websocket event.
A User stores all data for an individual Discord user.
A UserGuildSettings stores data for a users guild settings.
A UserGuildSettingsChannelOverride stores data for a channel override for a users guild settings.
UserGuildSettingsUpdate is a map for an event.
UserUpdate is a wrapper struct for an event.
A VoiceConnection struct holds all the data and functions related to a Discord Voice Connection.
A VoiceICE stores data for voice ICE servers.
A VoiceRegion stores data for a specific voice region server.
A VoiceServerUpdate stores the data received during the Voice Server Update data websocket event.
VoiceSpeakingUpdate is a struct for a VoiceSpeakingUpdate event.
A VoiceState stores the voice states of Guilds.
VoiceStateUpdate is a wrapper struct for an event.

# Type aliases

PresencesReplace is an array of Presences for an event.
UserSettingsUpdate is a map for an event.
VerificationLevel type defination.
VoiceSpeakingUpdateHandler type provides a function defination for the VoiceSpeakingUpdate event.