All Projects → DisgoOrg → disgo

DisgoOrg / disgo

Licence: Apache-2.0 license
A modular Golang Discord API Wrapper

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to disgo

CustomRPC
Set a custom rich presence status on Discord
Stars: ✭ 25 (-77.88%)
Mutual labels:  discord-api, discord-rpc
discord-voice
⏲️ A complete framework to facilitate the tracking of user voice time using discord.js
Stars: ✭ 33 (-70.8%)
Mutual labels:  discord-api, discord-voice
Discord-Rich-Presence-Party-Mode
Discord Rich Presence Tool. Party Mode | Cycle Mode integrated. The first to do it.
Stars: ✭ 18 (-84.07%)
Mutual labels:  discord-api, discord-rpc
Disgord
Go module for interacting with the documented Discord's bot interface; Gateway, REST requests and voice
Stars: ✭ 277 (+145.13%)
Mutual labels:  voice, discord-api
react-native-android-voice
react-native-android-voice is a speech-to-text library for React Native for the Android Platform.
Stars: ✭ 100 (-11.5%)
Mutual labels:  voice
github-release-notifier
Automatize tasks when a specific package got a new release - Github Release Notifier
Stars: ✭ 21 (-81.42%)
Mutual labels:  webhook
snitch
Keep updated about all deploys on Tsuru
Stars: ✭ 16 (-85.84%)
Mutual labels:  webhook
mattermost-plugin-voice
Mattermost plugin for voice messaging. 🎤 🔉
Stars: ✭ 64 (-43.36%)
Mutual labels:  voice
tvoip
Terminal-based P2P VoIP application (TeamSpeak-/Skype-like voice chatting over LAN or Internet)
Stars: ✭ 34 (-69.91%)
Mutual labels:  voice
Volte
A free, robust, open-source Discord bot written in C# 8 using .NET Core 3.1 and a whole lotta Man Hours.
Stars: ✭ 78 (-30.97%)
Mutual labels:  discord-api
rebasebot
A GitHub bot that rebases your branches
Stars: ✭ 43 (-61.95%)
Mutual labels:  webhook
orca
C Multi-REST API library for Discord, Slack, Reddit, etc.
Stars: ✭ 360 (+218.58%)
Mutual labels:  discord-api
Diskord
[Mirror of GitLab] A Kotlin client for Discord with a light wrapper on the REST APIs and a simple to use DSL for basic bots.
Stars: ✭ 146 (+29.2%)
Mutual labels:  discord-api
JHSoundWaveView
音波图,声波图
Stars: ✭ 22 (-80.53%)
Mutual labels:  voice
Simple-Voice-Recorder
An easy way of recording any discussion or sounds without ads or internet access
Stars: ✭ 278 (+146.02%)
Mutual labels:  voice
acord
An API wrapper for discord, built using aiohttp and pydantic.
Stars: ✭ 25 (-77.88%)
Mutual labels:  discord-api
adobe-discord-rpc
Discord Rich Presence extension for your adobe apps!
Stars: ✭ 383 (+238.94%)
Mutual labels:  discord-rpc
Foxy
🦊 A very, very cute, multipurpose, multilingual bot for Discord! Making your server cuter -w-
Stars: ✭ 58 (-48.67%)
Mutual labels:  discord-api
firefox-discord
Discord Rich Presence for Firefox (Inactive)
Stars: ✭ 16 (-85.84%)
Mutual labels:  discord-rpc
lessampler
lessampler is a Singing Voice Synthesizer
Stars: ✭ 59 (-47.79%)
Mutual labels:  voice

Go Reference Go Report Go Version License DisGo Version DisGo Discord

discord gopher

DisGo

DisGo is a Discord API wrapper written in Golang aimed to be consistent, modular, customizable and higher level than other Discord API wrappers.

Summary

  1. Stability
  2. Features
  3. Missing Features
  4. Getting Started
  5. Documentation
  6. Examples
  7. Other interesting Projects to look at
  8. Other Golang Discord Libraries
  9. Troubleshooting
  10. Contributing
  11. License

Stability

The public API of DisGo is mostly stable at this point in time. Smaller breaking changes can happen before the v1 is released.

After v1 is released breaking changes may only happen if the Discord API requires them. They tend to break their released API versions now and then. In general for every new Discord API version the major version of DisGo should be increased and with that breaking changes between non-major versions should be held to a minimum.

Features

Missing Features

Getting Started

Installing

go get github.com/disgoorg/disgo

Building a DisGo Instance

Build a bot client to interact with the Discord API

package main

import (
	"context"
	"os"
	"os/signal"
	"syscall"

	"github.com/disgoorg/disgo"
	"github.com/disgoorg/disgo/bot"
	"github.com/disgoorg/disgo/events"
	"github.com/disgoorg/disgo/gateway"
)

func main() {
	client, err := disgo.New("token",
		// set gateway options
		bot.WithGatewayConfigOpts(
			// set enabled intents
			gateway.WithIntents(
				gateway.IntentGuilds,
				gateway.IntentGuildMessages,
				gateway.IntentDirectMessages,
			),
		),
		// add event listeners
		bot.WithEventListenerFunc(func(e *events.MessageCreate) {
			// event code here
		}),
	)
	if err != nil {
		panic(err)
	}
	// connect to the gateway
	if err = client.OpenGateway(context.TODO()); err != nil {
		panic(err)
	}

	s := make(chan os.Signal, 1)
	signal.Notify(s, syscall.SIGINT, syscall.SIGTERM)
	<-s
}

Full Ping Pong Example

A full Ping Pong example can also be found here

Logging

DisGo uses our own small logging interface which you can use with most other logging libraries. This lib also comes with a default logger which is based on the standard log package.

Documentation

Documentation is wip and can be found under

  • Go Reference
  • Discord Documentation

GitHub Wiki is currently under construction. We appreciate help here.

Examples

You can find examples here

There is also a bot template with commands & db here

or in these projects:

Libraries for DisGo

  • handler is a simple application command, component and modal handler library.

  • disgomd is a command utility library that uses struct based approach

Other interesting Projects to look at

Lavalink

Is a standalone audio sending node based on Lavaplayer and JDA-Audio. Which allows for sending audio without it ever reaching any of your shards. Lavalink can be used in combinatio with DisGolink for music Bots

Being used in production by FredBoat, Dyno, LewdBot, and more.

DisGolink

Is a Lavalink-Client which can be used to communicate with LavaLink to play/search tracks

DisLog

Is a Discord webhook logger hook for logrus

Other Golang Discord Libraries

Troubleshooting

For help feel free to open an issue or reach out on Discord

Contributing

Contributions are welcomed but for bigger changes we recommend first reaching out via Discord or create an issue to discuss your problems, intentions and ideas.

License

Distributed under the License. See LICENSE for more information.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].