Support changing the nick by clicking it in MessageInput
This commit is contained in:
parent
4a74463ae8
commit
f174d98107
16 changed files with 335 additions and 134 deletions
|
@ -273,35 +273,42 @@ func (i *ircHandler) motdEnd(msg *irc.Message) {
|
|||
i.motdBuffer = MOTD{}
|
||||
}
|
||||
|
||||
func (i *ircHandler) badNick(msg *irc.Message) {
|
||||
i.session.sendJSON("nick_fail", NickFail{
|
||||
Server: i.client.Host,
|
||||
})
|
||||
}
|
||||
|
||||
func (i *ircHandler) initHandlers() {
|
||||
i.handlers = map[string]func(*irc.Message){
|
||||
irc.Nick: i.nick,
|
||||
irc.Join: i.join,
|
||||
irc.Part: i.part,
|
||||
irc.Mode: i.mode,
|
||||
irc.Privmsg: i.message,
|
||||
irc.Notice: i.message,
|
||||
irc.Quit: i.quit,
|
||||
irc.Topic: i.topic,
|
||||
irc.ReplyWelcome: i.info,
|
||||
irc.ReplyYourHost: i.info,
|
||||
irc.ReplyCreated: i.info,
|
||||
irc.ReplyLUserClient: i.info,
|
||||
irc.ReplyLUserOp: i.info,
|
||||
irc.ReplyLUserUnknown: i.info,
|
||||
irc.ReplyLUserChannels: i.info,
|
||||
irc.ReplyLUserMe: i.info,
|
||||
irc.ReplyWhoisUser: i.whoisUser,
|
||||
irc.ReplyWhoisServer: i.whoisServer,
|
||||
irc.ReplyWhoisChannels: i.whoisChannels,
|
||||
irc.ReplyEndOfWhois: i.whoisEnd,
|
||||
irc.ReplyNoTopic: i.noTopic,
|
||||
irc.ReplyTopic: i.topic,
|
||||
irc.ReplyNamReply: i.names,
|
||||
irc.ReplyEndOfNames: i.namesEnd,
|
||||
irc.ReplyMotdStart: i.motdStart,
|
||||
irc.ReplyMotd: i.motd,
|
||||
irc.ReplyEndOfMotd: i.motdEnd,
|
||||
irc.Nick: i.nick,
|
||||
irc.Join: i.join,
|
||||
irc.Part: i.part,
|
||||
irc.Mode: i.mode,
|
||||
irc.Privmsg: i.message,
|
||||
irc.Notice: i.message,
|
||||
irc.Quit: i.quit,
|
||||
irc.Topic: i.topic,
|
||||
irc.ReplyWelcome: i.info,
|
||||
irc.ReplyYourHost: i.info,
|
||||
irc.ReplyCreated: i.info,
|
||||
irc.ReplyLUserClient: i.info,
|
||||
irc.ReplyLUserOp: i.info,
|
||||
irc.ReplyLUserUnknown: i.info,
|
||||
irc.ReplyLUserChannels: i.info,
|
||||
irc.ReplyLUserMe: i.info,
|
||||
irc.ReplyWhoisUser: i.whoisUser,
|
||||
irc.ReplyWhoisServer: i.whoisServer,
|
||||
irc.ReplyWhoisChannels: i.whoisChannels,
|
||||
irc.ReplyEndOfWhois: i.whoisEnd,
|
||||
irc.ReplyNoTopic: i.noTopic,
|
||||
irc.ReplyTopic: i.topic,
|
||||
irc.ReplyNamReply: i.names,
|
||||
irc.ReplyEndOfNames: i.namesEnd,
|
||||
irc.ReplyMotdStart: i.motdStart,
|
||||
irc.ReplyMotd: i.motd,
|
||||
irc.ReplyEndOfMotd: i.motdEnd,
|
||||
irc.ErrErroneousNickname: i.badNick,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -304,3 +304,21 @@ func TestHandleIRCMotd(t *testing.T) {
|
|||
Content: []string{"line 1", "line 2"},
|
||||
}, <-s.broadcast)
|
||||
}
|
||||
|
||||
func TestHandleIRCBadNick(t *testing.T) {
|
||||
c := irc.NewClient("nick", "user")
|
||||
c.Host = "host.com"
|
||||
s := NewSession(nil)
|
||||
i := newIRCHandler(c, s)
|
||||
|
||||
i.dispatchMessage(&irc.Message{
|
||||
Command: irc.ErrErroneousNickname,
|
||||
})
|
||||
|
||||
// It should print the error message first
|
||||
<-s.broadcast
|
||||
|
||||
checkResponse(t, "nick_fail", NickFail{
|
||||
Server: "host.com",
|
||||
}, <-s.broadcast)
|
||||
}
|
||||
|
|
|
@ -28,8 +28,12 @@ type Connect struct {
|
|||
|
||||
type Nick struct {
|
||||
Server string `json:"server"`
|
||||
Old string `json:"old"`
|
||||
New string `json:"new"`
|
||||
Old string `json:"oldNick"`
|
||||
New string `json:"newNick"`
|
||||
}
|
||||
|
||||
type NickFail struct {
|
||||
Server string `json:"server"`
|
||||
}
|
||||
|
||||
type Join struct {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue