Initial bot functionality
* The bot now properly joins the management room * The management room is persisted in the database * Welcome/help messages are sent in the management room
This commit is contained in:
@@ -8,6 +8,10 @@ import (
|
||||
type bridge struct {
|
||||
UsernameTemplate string `yaml:"username_template"`
|
||||
|
||||
ManagementRoomText managementRoomText `yaml:"management_root_text"`
|
||||
|
||||
PortalMessageBuffer int `yaml:"portal_message_buffer"`
|
||||
|
||||
usernameTemplate *template.Template `yaml:"-"`
|
||||
}
|
||||
|
||||
@@ -18,11 +22,19 @@ func (b *bridge) validate() error {
|
||||
b.UsernameTemplate = "Discord_{{.}}"
|
||||
}
|
||||
|
||||
if b.PortalMessageBuffer <= 0 {
|
||||
b.PortalMessageBuffer = 128
|
||||
}
|
||||
|
||||
b.usernameTemplate, err = template.New("username").Parse(b.UsernameTemplate)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := b.ManagementRoomText.validate(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
38
config/managementroomtext.go
Normal file
38
config/managementroomtext.go
Normal file
@@ -0,0 +1,38 @@
|
||||
package config
|
||||
|
||||
type managementRoomText struct {
|
||||
Welcome string `yaml:"welcome"`
|
||||
Connected string `yaml:"welcome_connected"`
|
||||
NotConnected string `yaml:"welcome_unconnected"`
|
||||
AdditionalHelp string `yaml:"additional_help"`
|
||||
}
|
||||
|
||||
func (m *managementRoomText) validate() error {
|
||||
if m.Welcome == "" {
|
||||
m.Welcome = "Greetings, I am a Discord bridge bot!"
|
||||
}
|
||||
|
||||
if m.Connected == "" {
|
||||
m.Connected = "Use `help` to get started."
|
||||
}
|
||||
|
||||
if m.NotConnected == "" {
|
||||
m.NotConnected = "Use `help` to get started, or `login` to login."
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *managementRoomText) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
||||
type rawManagementRoomText managementRoomText
|
||||
|
||||
raw := rawManagementRoomText{}
|
||||
|
||||
if err := unmarshal(&raw); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
*m = managementRoomText(raw)
|
||||
|
||||
return m.validate()
|
||||
}
|
||||
Reference in New Issue
Block a user