ouichat/plugins/irc.go
2020-05-13 21:52:06 -05:00

54 lines
964 B
Go

package plugins
import (
"crypto/tls"
"fmt"
"ouichat/core"
"gopkg.in/irc.v3"
)
type IrcPlugin struct {
name string
client *irc.Client
messages chan *irc.Message
man *PluginManager
root *core.BufferNode
}
func NewIrcPlugin(name string) *IrcPlugin {
conn, err := tls.Dial("tcp", "acm.umn.edu:6669", &tls.Config{})
if err != nil {
panic(err)
}
// messages := make(chan *irc.Message)
config := irc.ClientConfig{
Nick: "ouichat",
User: "ouichat",
Name: "ouichat",
Handler: irc.HandlerFunc(func(c *irc.Client, m *irc.Message) {
fmt.Printf("%+v\n", m)
// messages <- m
}),
}
client := irc.NewClient(conn, config)
return &IrcPlugin{
name: name,
client: client,
}
}
func(p*IrcPlugin) Name() string {
return p.name
}
func (p *IrcPlugin) Init(man *PluginManager, root *core.BufferNode) {
p.man = man
p.root = root
go p.client.Run()
}
func (p *IrcPlugin) Buffers() *core.BufferNode {
return p.root
}