merge
This commit is contained in:
commit
f69d3c8182
4
Makefile
4
Makefile
@ -1,8 +1,4 @@
|
|||||||
<<<<<<< HEAD:Makefile
|
|
||||||
include $(GOROOT)/src/Make.inc
|
include $(GOROOT)/src/Make.inc
|
||||||
=======
|
|
||||||
include $(GOROOT)/src/Make.${GOARCH}
|
|
||||||
>>>>>>> 6f3c572eae2c00aaaf57248b767adf74b571ed01:Makefile
|
|
||||||
|
|
||||||
TARG=irc
|
TARG=irc
|
||||||
GOFILES=irc.go irc_struct.go irc_callback.go
|
GOFILES=irc.go irc_struct.go irc_callback.go
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
irc "github.com/thoj/Go-IRC-Client-Library"
|
// irc "github.com/thoj/Go-IRC-Client-Library"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
"irc"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@ -14,6 +15,17 @@ func main() {
|
|||||||
fmt.Printf("%#v\n", irccon)
|
fmt.Printf("%#v\n", irccon)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
irccon.AddCallback("001", func(e *irc.IRCEvent) { irccon.Join("#testgo") })
|
irccon.AddCallback("001", func(e *irc.IRCEvent) { irccon.Join("#testgo1") })
|
||||||
irccon.Loop();
|
irccon.AddCallback("001", func(e *irc.IRCEvent) { irccon.Join("#testgo2") })
|
||||||
|
irccon.AddCallback("001", func(e *irc.IRCEvent) { irccon.Join("#testgo3") })
|
||||||
|
irccon.AddCallback("001", func(e *irc.IRCEvent) { irccon.Join("#testgo4") })
|
||||||
|
irccon.AddCallback("001", func(e *irc.IRCEvent) { irccon.Join("#testgo5") })
|
||||||
|
irccon.AddCallback("001", func(e *irc.IRCEvent) { irccon.Join("#testgo6") })
|
||||||
|
irccon.ReplaceCallback("001", 0, func(e *irc.IRCEvent) { irccon.Join("#testgo01") })
|
||||||
|
irccon.ReplaceCallback("001", 1, func(e *irc.IRCEvent) { irccon.Join("#testgo02") })
|
||||||
|
irccon.ReplaceCallback("001", 2, func(e *irc.IRCEvent) { irccon.Join("#testgo03") })
|
||||||
|
irccon.ReplaceCallback("001", 3, func(e *irc.IRCEvent) { irccon.Join("#testgo04") })
|
||||||
|
irccon.ReplaceCallback("001", 4, func(e *irc.IRCEvent) { irccon.Join("#testgo05") })
|
||||||
|
irccon.ReplaceCallback("001", 6, func(e *irc.IRCEvent) { irccon.Join("#testgo06") })
|
||||||
|
irccon.Loop()
|
||||||
}
|
}
|
||||||
|
@ -7,29 +7,44 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func AppendCallback(slice, data []func(*IRCEvent)) []func(*IRCEvent) {
|
||||||
|
l := len(slice)
|
||||||
|
if l+len(data) > cap(slice) {
|
||||||
|
newSlice := make([]func(*IRCEvent), (l+len(data))*2)
|
||||||
|
copy(newSlice, slice)
|
||||||
|
slice = newSlice
|
||||||
|
}
|
||||||
|
slice = slice[0 : l+len(data)]
|
||||||
|
for i, c := range data {
|
||||||
|
slice[l+i] = c
|
||||||
|
}
|
||||||
|
return slice
|
||||||
|
}
|
||||||
|
|
||||||
func (irc *IRCConnection) AddCallback(eventcode string, callback func(*IRCEvent)) {
|
func (irc *IRCConnection) AddCallback(eventcode string, callback func(*IRCEvent)) {
|
||||||
eventcode = strings.ToUpper(eventcode)
|
eventcode = strings.ToUpper(eventcode)
|
||||||
if event, ok := irc.events[eventcode]; ok {
|
if event, ok := irc.events[eventcode]; ok {
|
||||||
// TODO: Grow this dynamically
|
newevent := make([]func(*IRCEvent), 1)
|
||||||
event = event[0 : len(event)+1]
|
newevent[0] = callback
|
||||||
event[len(event)-1] = callback
|
irc.events[eventcode] = AppendCallback(event, newevent)
|
||||||
} else {
|
} else {
|
||||||
event = make([]func(*IRCEvent), 1, 20)
|
event = make([]func(*IRCEvent), 1)
|
||||||
event[0] = callback
|
event[0] = callback
|
||||||
irc.events[eventcode] = event
|
irc.events[eventcode] = event
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (irc *IRCConnection) ReplaceCallback(eventcode string, i uint8, callback func(*IRCEvent)) {
|
func (irc *IRCConnection) ReplaceCallback(eventcode string, i int, callback func(*IRCEvent)) {
|
||||||
eventcode = strings.ToUpper(eventcode)
|
eventcode = strings.ToUpper(eventcode)
|
||||||
if event, ok := irc.events[eventcode]; ok {
|
if event, ok := irc.events[eventcode]; ok {
|
||||||
|
if i < len(event) {
|
||||||
event[i] = callback
|
event[i] = callback
|
||||||
} else {
|
return
|
||||||
event = make([]func(*IRCEvent), 1, 20)
|
|
||||||
event[0] = callback
|
|
||||||
irc.events[eventcode] = event
|
|
||||||
}
|
}
|
||||||
|
fmt.Printf("Event found, but no callback found at index %d. Use AddCallback\n", i)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
fmt.Printf("Event not found. Use AddCallBack\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (irc *IRCConnection) RunCallbacks(event *IRCEvent) {
|
func (irc *IRCConnection) RunCallbacks(event *IRCEvent) {
|
||||||
@ -92,7 +107,7 @@ func (irc *IRCConnection) setupCallbacks() {
|
|||||||
|
|
||||||
irc.AddCallback("433", func(e *IRCEvent) {
|
irc.AddCallback("433", func(e *IRCEvent) {
|
||||||
if len(irc.nick) > 8 {
|
if len(irc.nick) > 8 {
|
||||||
irc.nick = "_" + irc.nick;
|
irc.nick = "_" + irc.nick
|
||||||
} else {
|
} else {
|
||||||
irc.nick = irc.nick + "_"
|
irc.nick = irc.nick + "_"
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user