本文整理汇总了Golang中github.com/fluffle/goirc/client.Conn.GetChannel方法的典型用法代码示例。如果您正苦于以下问题:Golang Conn.GetChannel方法的具体用法?Golang Conn.GetChannel怎么用?Golang Conn.GetChannel使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/fluffle/goirc/client.Conn
的用法示例。
在下文中一共展示了Conn.GetChannel方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: unban
func unban(conn *irc.Conn, nick *irc.Nick, args, target string) {
channel, args := parseAccess(conn, nick, target, args, "oh")
if channel == "" || args == "" {
return
}
ch := conn.GetChannel(channel)
if ch == nil {
say(conn, target, "%s: Unable to get channel information about %s", nick.Nick, channel)
return
}
bans := strings.TrimSpace(args)
split := strings.Fields(bans)
for i, ban := range split {
if strings.Index(ban, "@") != -1 {
// it's already a host, do nothing
continue
}
if b, ok := ch.Bans[ban]; ok {
// we've seen this nick banned before
split[i] = b
} else if n := conn.GetNick(ban); n != nil {
// the user is in one of our channels, here's our best guess
split[i] = "*!*@" + n.Host
}
}
bans = strings.Join(split, " ")
modestring := "-" + strings.Repeat("b", len(bans)) + " " + bans
conn.Mode(channel, modestring)
}
示例2: highlightOps
func highlightOps(conn *irc.Conn, nick *irc.Nick, args, target string) {
channel, _ := parseChannel(target, args)
if channel == "" {
return
}
c := conn.GetChannel(channel)
if c == nil {
say(conn, target, "Error while getting channel information for %s", channel)
return
}
var highlights string
for onick, privs := range c.Nicks {
if privs.Op && onick.Nick != conn.Me.Nick {
highlights += onick.Nick + ", "
}
}
say(conn, channel, highlights[:len(highlights)-2]+"!")
}
示例3: appendtopic
func appendtopic(conn *irc.Conn, nick *irc.Nick, args, target string) {
channel, args := parseAccess(conn, nick, target, args, "t")
if channel == "" {
return
}
c := conn.GetChannel(channel)
if c == nil {
say(conn, target, "Error while getting channel information for %s", channel)
return
}
section := conn.Network + " " + channel
basetopic, _ := conf.String(section, "basetopic")
if basetopic == "" || !strings.HasPrefix(strings.TrimLeft(c.Topic, " "), basetopic) {
basetopic = c.Topic
say(conn, nick.Nick, "New basetopic: %s", basetopic)
updateConf(section, "basetopic", basetopic)
}
conn.Topic(channel, basetopic+args)
}
示例4: handleJoin
func handleJoin(conn *irc.Conn, line *irc.Line) {
// autovoice users with v flag
if line.Nick == conn.Me.Nick {
return
}
channel := conn.GetChannel(line.Args[0])
if channel == nil || !channel.Modes.Moderated {
return
}
privs := conn.Me.Channels[channel]
if !(privs.Op || privs.Admin || privs.HalfOp || privs.Owner) {
return
}
nick := conn.GetNick(line.Nick)
if nick == nil {
return
}
if hasAccess(conn, nick, line.Nick, "v") {
conn.Mode(line.Args[0], "+v "+line.Nick)
}
}
示例5: tempban
func tempban(conn *irc.Conn, nick *irc.Nick, args, target string) {
channel, args := parseAccess(conn, nick, target, args, "oh")
if channel == "" || args == "" {
return
}
ch := conn.GetChannel(channel)
if ch == nil {
say(conn, target, "%s: Unable to get channel information about %s", nick.Nick, channel)
return
}
args = strings.TrimSpace(args)
split := strings.SplitN(args, " ", 3)
dur, err := strconv.Atoi64(split[1])
if dur < 5 {
dur = 5
split[1] = "5"
}
if err != nil {
say(conn, channel, "Format: !tb <nick> <minutes> <reason>")
return
}
n := conn.GetNick(split[0])
if n == nil || (split[0] != nick.Nick &&
(!hasAccess(conn, nick, channel, "o") && hasAccess(conn, n, channel, "oh"))) {
return
}
conn.Mode(channel, "+b *!*@"+n.Host)
reason := "(" + nick.Nick + ")"
if len(split) == 3 {
reason += " " + split[2]
}
reason += " (" + split[1] + " min.)"
conn.Kick(channel, split[0], reason)
expiry := time.Seconds() + dur*60
banLogAdd("*!*@"+n.Host, split[0], reason, channel, expiry)
}