Skip to content

Add role gradient colors #453

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 22 commits into
base: v0.19
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
6bbc00a
update go version to 1.24 in preperation for iterators & omitzero
topi314 Mar 3, 2025
56a23d7
components v2 (#426)
topi314 Apr 19, 2025
6174889
add note about removed message embeds & content with components v2
topi314 Apr 19, 2025
e73983f
Remove unused errors (#421)
apricotbucket28 Apr 19, 2025
9c98452
new omit module with json omitzero support (#429)
topi314 Apr 21, 2025
9bfe811
remove code marked as deprecated
topi314 Apr 19, 2025
e9c0b19
fix examples
topi314 Apr 21, 2025
dc26e2d
prevent nil pointer access in gateway open
topi314 Apr 21, 2025
77c974f
reformat imports & update .editorconfig
topi314 Apr 21, 2025
e953552
implement new iterators in cache (#428)
topi314 Apr 21, 2025
b819cbb
make Gateway.Open wait until ready event is received (#321)
topi314 Apr 21, 2025
8645b86
feat: new text display with format (#448)
yokkkoso Apr 22, 2025
061bd9d
Use Go 1.22 features (#447)
apricotbucket28 Apr 22, 2025
2fea404
Apply suggestions from code review
topi314 Apr 24, 2025
8174d2b
Apply suggestions from code review
topi314 Apr 24, 2025
64f1ced
Update discord/webhook_message_create_builder.go
topi314 Apr 24, 2025
612f29d
fix variable name
topi314 Apr 24, 2025
bd08d97
feat: add missing flags methods for message builders (#449)
yokkkoso Apr 24, 2025
7a9f159
update webhook client to include params
topi314 Apr 24, 2025
8c914a0
implement missing LayoutComponent in TextDisplayComponent
topi314 May 2, 2025
38f8cca
Merge branch 'master' into v0.19
sebm253 May 12, 2025
dafd6e9
Add role gradient colors
sebm253 May 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ end_of_line = lf
indent_size = 4
indent_style = space
insert_final_newline = false
max_line_length = 120
max_line_length = 180
tab_width = 4
ij_continuation_indent_size = 8
ij_formatter_off_tag = @formatter:off
Expand All @@ -16,11 +16,11 @@ ij_smart_tabs = false
ij_visual_guides = none
ij_wrap_on_typing = false

[{*.go,*.go2}]
[*.go]
indent_style = tab
ij_continuation_indent_size = 4
ij_go_GROUP_CURRENT_PROJECT_IMPORTS = false
ij_go_add_leading_space_to_comments = false
ij_go_GROUP_CURRENT_PROJECT_IMPORTS = true
ij_go_add_leading_space_to_comments = true
ij_go_add_parentheses_for_single_import = false
ij_go_call_parameters_new_line_after_left_paren = true
ij_go_call_parameters_right_paren_on_new_line = true
Expand All @@ -42,6 +42,8 @@ ij_go_wrap_func_params_newline_before_rparen = true
ij_go_wrap_func_result = off
ij_go_wrap_func_result_newline_after_lparen = true
ij_go_wrap_func_result_newline_before_rparen = true
ij_go_local_group_mode = project
ij_go_run_go_fmt_on_reformat = true

[{*.markdown,*.md}]
indent_style = tab
Expand Down
12 changes: 3 additions & 9 deletions .github/workflows/go.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,14 @@ on:
- '**/go.mod'
- '**/go.sum'
- '.github/workflows/go.yml'
pull_request_target:
paths:
- '**/*.go'
- '**/go.mod'
- '**/go.sum'
- '.github/workflows/go.yml'

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v5
with:
go-version: 1.21
go-version: 1.24
- uses: actions/checkout@v4
- name: go build
run: go build -v ./...
Expand All @@ -30,7 +24,7 @@ jobs:
steps:
- uses: actions/setup-go@v5
with:
go-version: 1.21
go-version: 1.24
- uses: actions/checkout@v4
- name: go test
run: go test -v ./...
Expand All @@ -40,7 +34,7 @@ jobs:
steps:
- uses: actions/setup-go@v5
with:
go-version: 1.21
go-version: 1.24
- uses: actions/checkout@v4
- name: golangci-lint
uses: golangci/golangci-lint-action@v6
Expand Down
3 changes: 2 additions & 1 deletion _examples/application_commands/gateway/example.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,12 @@ import (
"os/signal"
"syscall"

"github.com/disgoorg/snowflake/v2"

"github.com/disgoorg/disgo"
"github.com/disgoorg/disgo/bot"
"github.com/disgoorg/disgo/discord"
"github.com/disgoorg/disgo/events"
"github.com/disgoorg/snowflake/v2"
)

var (
Expand Down
5 changes: 3 additions & 2 deletions _examples/application_commands/http/example.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,14 @@ import (
"os/signal"
"syscall"

"github.com/disgoorg/snowflake/v2"
"github.com/oasisprotocol/curve25519-voi/primitives/ed25519"

"github.com/disgoorg/disgo"
"github.com/disgoorg/disgo/bot"
"github.com/disgoorg/disgo/discord"
"github.com/disgoorg/disgo/events"
"github.com/disgoorg/disgo/httpserver"
"github.com/disgoorg/snowflake/v2"
"github.com/oasisprotocol/curve25519-voi/primitives/ed25519"
)

var (
Expand Down
11 changes: 6 additions & 5 deletions _examples/application_commands/http/go.mod
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
module github.com/disgoorg/disgo/_examples/application_commands/http

go 1.21
go 1.24

replace github.com/disgoorg/disgo => ../../../

require (
github.com/disgoorg/disgo v0.18.14
github.com/disgoorg/disgo v0.18.15
github.com/disgoorg/snowflake/v2 v2.0.3
github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a
)

require (
github.com/disgoorg/json v1.2.0 // indirect
github.com/disgoorg/json/v2 v2.0.0 // indirect
github.com/disgoorg/omit v1.0.0 // indirect
github.com/gorilla/websocket v1.5.3 // indirect
github.com/sasha-s/go-csync v0.0.0-20240107134140-fcbab37b09ad // indirect
golang.org/x/crypto v0.31.0 // indirect
golang.org/x/sys v0.28.0 // indirect
golang.org/x/crypto v0.37.0 // indirect
golang.org/x/sys v0.32.0 // indirect
)
14 changes: 8 additions & 6 deletions _examples/application_commands/http/go.sum
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/disgoorg/json v1.2.0 h1:6e/j4BCfSHIvucG1cd7tJPAOp1RgnnMFSqkvZUtEd1Y=
github.com/disgoorg/json v1.2.0/go.mod h1:BHDwdde0rpQFDVsRLKhma6Y7fTbQKub/zdGO5O9NqqA=
github.com/disgoorg/json/v2 v2.0.0 h1:U16yy/ARK7/aEpzjjqK1b/KaqqGHozUdeVw/DViEzQI=
github.com/disgoorg/json/v2 v2.0.0/go.mod h1:jZTBC0nIE1WeetSEI3/Dka8g+qglb4FPVmp5I5HpEfI=
github.com/disgoorg/omit v1.0.0 h1:y0LkVUOyUHT8ZlnhIAeOZEA22UYykeysK8bLJ0SfT78=
github.com/disgoorg/omit v1.0.0/go.mod h1:RTmSARkf6PWT/UckwI0bV8XgWkWQoPppaT01rYKLcFQ=
github.com/disgoorg/snowflake/v2 v2.0.3 h1:3B+PpFjr7j4ad7oeJu4RlQ+nYOTadsKapJIzgvSI2Ro=
github.com/disgoorg/snowflake/v2 v2.0.3/go.mod h1:W6r7NUA7DwfZLwr00km6G4UnZ0zcoLBRufhkFWgAc4c=
github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg=
Expand All @@ -14,9 +16,9 @@ github.com/sasha-s/go-csync v0.0.0-20240107134140-fcbab37b09ad h1:qIQkSlF5vAUHxE
github.com/sasha-s/go-csync v0.0.0-20240107134140-fcbab37b09ad/go.mod h1:/pA7k3zsXKdjjAiUhB5CjuKib9KJGCaLvZwtxGC8U0s=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE=
golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc=
golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20=
golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
3 changes: 2 additions & 1 deletion _examples/application_commands/localization/example.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,12 @@ import (
"os/signal"
"syscall"

"github.com/disgoorg/snowflake/v2"

"github.com/disgoorg/disgo"
"github.com/disgoorg/disgo/bot"
"github.com/disgoorg/disgo/discord"
"github.com/disgoorg/disgo/events"
"github.com/disgoorg/snowflake/v2"
)

var (
Expand Down
9 changes: 5 additions & 4 deletions _examples/auto_moderation/example.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,14 @@ import (
"syscall"
"time"

"github.com/disgoorg/omit"
"github.com/disgoorg/snowflake/v2"

"github.com/disgoorg/disgo"
"github.com/disgoorg/disgo/bot"
"github.com/disgoorg/disgo/discord"
"github.com/disgoorg/disgo/events"
"github.com/disgoorg/disgo/gateway"
"github.com/disgoorg/json"
"github.com/disgoorg/snowflake/v2"
)

var (
Expand Down Expand Up @@ -83,7 +84,7 @@ func showCaseAutoMod(client bot.Client) {
Type: discord.AutoModerationActionTypeBlockMessage,
},
},
Enabled: json.Ptr(true),
Enabled: omit.Ptr(true),
})
if err != nil {
slog.Error("error while creating rule", slog.Any("err", err))
Expand All @@ -93,7 +94,7 @@ func showCaseAutoMod(client bot.Client) {
time.Sleep(time.Second * 10)

rule, err = client.Rest().UpdateAutoModerationRule(guildID, rule.ID, discord.AutoModerationRuleUpdate{
Name: json.Ptr("test-rule-updated"),
Name: omit.Ptr("test-rule-updated"),
TriggerMetadata: &discord.AutoModerationTriggerMetadata{
KeywordFilter: []string{"*test2*"},
},
Expand Down
108 changes: 108 additions & 0 deletions _examples/componentsv2/example.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
package main

import (
"bytes"
"context"
_ "embed"
"log/slog"
"os"
"os/signal"
"syscall"

"github.com/disgoorg/snowflake/v2"

"github.com/disgoorg/disgo"
"github.com/disgoorg/disgo/bot"
"github.com/disgoorg/disgo/discord"
"github.com/disgoorg/disgo/events"
"github.com/disgoorg/disgo/handler"
)

var (
token = os.Getenv("disgo_token")
guildID = snowflake.GetEnv("disgo_guild_id")

//go:embed thumbnail.jpg
thumbnail []byte

commands = []discord.ApplicationCommandCreate{
discord.SlashCommandCreate{
Name: "test",
Description: "test",
Options: []discord.ApplicationCommandOption{
discord.ApplicationCommandOptionBool{
Name: "ephemeral",
Description: "if the message should be ephemeral",
Required: false,
},
},
},
}
)

func main() {
slog.Info("starting example...")
slog.Info("disgo version", slog.String("version", disgo.Version))
slog.SetLogLoggerLevel(slog.LevelDebug)

client, err := disgo.New(token,
bot.WithDefaultGateway(),
bot.WithEventListenerFunc(onCommand),
)
if err != nil {
slog.Error("error while building bot", slog.Any("err", err))
return
}
defer client.Close(context.TODO())

if err = handler.SyncCommands(client, commands, []snowflake.ID{guildID}); err != nil {
slog.Error("error while syncing commands", slog.Any("err", err))
}

if err = client.OpenGateway(context.TODO()); err != nil {
slog.Error("error while connecting to gateway", slog.Any("err", err))
return
}

slog.Info("example is now running. Press CTRL-C to exit.")
s := make(chan os.Signal, 1)
signal.Notify(s, syscall.SIGINT, syscall.SIGTERM, os.Interrupt)
<-s
}

func onCommand(e *events.ApplicationCommandInteractionCreate) {
switch data := e.Data.(type) {
case discord.SlashCommandInteractionData:
flags := discord.MessageFlagIsComponentsV2
if ephemeral, ok := data.OptBool("ephemeral"); !ok || ephemeral {
flags = flags.Add(discord.MessageFlagEphemeral)
}
if err := e.CreateMessage(discord.MessageCreate{
Flags: flags,
Components: []discord.LayoutComponent{
discord.NewContainer(
discord.NewSection(
discord.NewTextDisplay("**Name: [Seeing Red](https://open.spotify.com/track/65qBr6ToDUjTD1RiE1H4Gl)**"),
discord.NewTextDisplay("**Artist: [Architects](https://open.spotify.com/artist/3ZztVuWxHzNpl0THurTFCv)**"),
discord.NewTextDisplay("**Album: [The Sky, The Earth & All Between](https://open.spotify.com/album/2W82VyyIFAXigJEiLm5TT1)**"),
).WithAccessory(discord.NewThumbnail("attachment://thumbnail.png")),
discord.NewTextDisplay("`0:08`/`3:40`"),
discord.NewTextDisplay("[🔘▬▬▬▬▬▬▬▬▬]"),
discord.NewSmallSeparator(),
discord.NewActionRow(
discord.NewPrimaryButton("", "/player/previous").WithEmoji(discord.ComponentEmoji{Name: "⏮"}),
discord.NewPrimaryButton("", "/player/pause_play").WithEmoji(discord.ComponentEmoji{Name: "⏯"}),
discord.NewPrimaryButton("", "/player/next").WithEmoji(discord.ComponentEmoji{Name: "⏭"}),
discord.NewDangerButton("", "/player/stop").WithEmoji(discord.ComponentEmoji{Name: "⏹"}),
discord.NewPrimaryButton("", "/player/like").WithEmoji(discord.ComponentEmoji{Name: "❤️"}),
),
).WithAccentColor(0x5c5fea),
},
Files: []*discord.File{
discord.NewFile("thumbnail.png", "", bytes.NewReader(thumbnail)),
},
}); err != nil {
slog.Error("error while sending message", slog.Any("err", err))
}
}
}
Binary file added _examples/componentsv2/thumbnail.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 2 additions & 1 deletion _examples/custom_cache/example.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,13 @@ import (
"syscall"
"time"

"github.com/disgoorg/snowflake/v2"

"github.com/disgoorg/disgo"
"github.com/disgoorg/disgo/bot"
"github.com/disgoorg/disgo/cache"
"github.com/disgoorg/disgo/discord"
"github.com/disgoorg/disgo/gateway"
"github.com/disgoorg/snowflake/v2"
)

var (
Expand Down
3 changes: 2 additions & 1 deletion _examples/echo/echo.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,13 @@ import (
"syscall"
"time"

"github.com/disgoorg/snowflake/v2"

"github.com/disgoorg/disgo"
"github.com/disgoorg/disgo/bot"
"github.com/disgoorg/disgo/events"
"github.com/disgoorg/disgo/gateway"
"github.com/disgoorg/disgo/voice"
"github.com/disgoorg/snowflake/v2"
)

var (
Expand Down
9 changes: 5 additions & 4 deletions _examples/handler/example.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,13 @@ import (
"os/signal"
"syscall"

"github.com/disgoorg/snowflake/v2"

"github.com/disgoorg/disgo"
"github.com/disgoorg/disgo/bot"
"github.com/disgoorg/disgo/discord"
"github.com/disgoorg/disgo/handler"
"github.com/disgoorg/disgo/handler/middleware"
"github.com/disgoorg/snowflake/v2"
)

var (
Expand Down Expand Up @@ -124,10 +125,10 @@ func handleVariableContent(event *handler.CommandEvent) error {
func handlePing(event *handler.CommandEvent) error {
return event.CreateMessage(discord.MessageCreate{
Content: "pong",
Components: []discord.ContainerComponent{
discord.ActionRowComponent{
Components: []discord.LayoutComponent{
discord.NewActionRow(
discord.NewPrimaryButton("button1", "/button1/testData"),
},
),
},
})
}
Expand Down
3 changes: 2 additions & 1 deletion _examples/listening_events/example.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,12 @@ import (
"os/signal"
"syscall"

"github.com/disgoorg/snowflake/v2"

"github.com/disgoorg/disgo"
"github.com/disgoorg/disgo/bot"
"github.com/disgoorg/disgo/discord"
"github.com/disgoorg/disgo/events"
"github.com/disgoorg/snowflake/v2"
)

var (
Expand Down
Loading
Loading