disgo icon indicating copy to clipboard operation
disgo copied to clipboard

Implement Roadmap Features

Open switchupcb opened this issue 2 years ago • 9 comments

This issue functions as a feature tracker for features listed in the roadmap or in the issue tracker.

Features

If you are interested in contributing to any of these features, please let me know. I will provide more information and create an issue you can use to track the feature.

Task Assigned
Interactions via Outgoing Webhook
Voice Connection @switchupcb
Cache Manager @switchupcb

Examples

If you are interested in contributing an example, please let me know or create a pull request.

Example Description Location Tools Assigned
Message Components Demonstrate how to use every message component. _examples/message/components @switchupcb
Channel Demonstrate how to use all channel types. _examples/channel @switchupcb
Permissions Demonstrate how to use permissions. _examples/permissions Comparison, Conversion (String to BitFlag)
Guild Demonstrate how to use Guild features. _examples/guild/community
Guild (Community) Demonstrate how to use Guild features (that require the community setting to be activated). _examples/guild
Webhook Interaction Demonstrate how to handle interactions using outgoing webhook's. _examples/command/webhook
Webhook Demonstrate how to use a webhook to send a message. _examples/message/webhook

Guide

Use this guide to create an example. Each example must contain the following deliverables:

  • README.md
    • Description (Title, Description, Discord API Reference)
    • Setup (Environment, etc)
    • Usage (Running Example)
    • Output
    • Termination (if applicable)
    • etc
  • main.go (WITH COMMENTS)

The README contains a table of examples which you can check out to understand how to implement these requirements.

Tools

The Disgo Tools module contains utility tools that help users (developers) create a Disgo Bot. If you encounter code that meets any of the following criteria while creating an example, consider creating a Disgo Tool.

  • Code is boilerplate or time-consuming to create.
  • Code maintains a high complexity.
  • Code is prone to security issues without tool.
  • Code is frequently used (among programs and/or all of the Disgo ecosystem).

Refactor

If you are interested in increasing Disgo's adoption, consider creating a pull request (that refactors the current Go API Wrapper of the repository to Disgo) in the following libraries. In order to refactor these libraries, use a find and replace operation for the library name, then address all found locations. In order to save time, be sure to ask the maintainer prior to doing so or offer a service level agreement for support for a given time period.

DiscordGo

The following libraries use DiscordGo to perform operations within the Discord API.

Library Difficulty Status
~~notify~~ Easy Denied for Popularity
~~AutoDelete~~ Easy No Longer Supported
matterbridge Easy
kwatch Easy
wayback Easy
discord-stock-ticker Medium
mautrix Hard
yagpdb Elite

Ensure that the bot client's Timeout is set accordingly for each refactor pull request.

switchupcb avatar Dec 02 '22 22:12 switchupcb

@MarkArranz has been assigned to the Message Components example.

switchupcb avatar Dec 03 '22 00:12 switchupcb

The Voice Connection feature is similar to connecting to the Gateway, but with separate Events and Opcodes. There is also an added UDP Protocol step (which allows for Voice Processing). Voice Processing requires a method of parsing Opus Protocol packets. As a result of its similarity to the Gateway Implementation, I am willing to work on Voice Connections (but not Voice Processing) if required. However, this work will not be started before December 26th.

switchupcb avatar Dec 04 '22 09:12 switchupcb

@TopiSenpai I recognize that you have contributed to DiscordGo with the "Interactions via Outgoing Webhook" feature (https://github.com/bwmarrin/discordgo/pull/1263). Would you be willing to contribute that feature to disgo as well? It is production ready now.

switchupcb avatar Dec 05 '22 19:12 switchupcb

@switchupcb eh no thank you, I have my own lib I work on

topi314 avatar Dec 05 '22 21:12 topi314

https://github.com/switchupcb/disgo/issues/26#issuecomment-1340079705 provides new information regarding Sharding. In a similar manner to Voice Connections, I will be able to implement this in late December or January.

switchupcb avatar Dec 06 '22 22:12 switchupcb

Sharding has been implemented in v1.10.1.

switchupcb avatar Jul 08 '23 18:07 switchupcb

@MarkArranz has been unassigned from the Message Components example.

switchupcb avatar Jul 08 '23 18:07 switchupcb

I have added the Message Components example outline and request logic for the Action Row, Button, and Select Menu.

  • The request logic for the modal still must be demonstrated.
  • Handling message component interactions still must be demonstrated.

switchupcb avatar Jul 30 '23 05:07 switchupcb

I have updated the assignments for the next few weeks.

switchupcb avatar Jul 31 '23 00:07 switchupcb