diff --git a/channel.go b/channel.go index 36db287..75fecba 100644 --- a/channel.go +++ b/channel.go @@ -203,7 +203,7 @@ func (c Channel) CreateInvite() (string, error) { // Set channel permissions for a role. // Leave role field empty if you want to edit default permissions -func (c Channel) SetChannelPermissions(role_id string, permissions uint) error { +func (c Channel) SetPermissions(role_id string, permissions uint) error { if role_id == "" { role_id = "default" } diff --git a/server.go b/server.go index 50501bd..29ec26f 100644 --- a/server.go +++ b/server.go @@ -2,6 +2,7 @@ package revoltgo import ( "encoding/json" + "fmt" "time" "github.com/oklog/ulid/v2" @@ -269,6 +270,22 @@ func (s Server) FetchBans() (*FetchedBans, error) { return bans, nil } +// Set server permissions for a role. +// Leave role field empty if you want to edit default permissions +func (s Server) SetPermissions(role_id string, channel_permissions, server_permissions uint) error { + if role_id == "" { + role_id = "default" + } + + _, err := c.Client.Request("PUT", "/servers/"+s.Id+"/permissions/"+role_id, []byte(fmt.Sprintf("{\"permissions\":{\"server\":%d,\"channel\":%d}}", channel_permissions, server_permissions))) + + if err != nil { + return err + } + + return nil +} + // // Fetch all server invites. // func (s Server) FetchInvites() { // data, _ := s.Client.Request("GET", "/servers/"+s.Id+"/invites", []byte{})