diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | wat/bot.go | 37 |
2 files changed, 24 insertions, 14 deletions
@@ -1,4 +1,5 @@ # personal reasons (。◕ ‿ ◕。) +*.db *.tgz # ---> Go # Binaries for programs and plugins @@ -38,24 +38,33 @@ func (w *WatBot) HandleIrcMsg(c *irc.Client, m *irc.Message) { } } +func (w *WatBot) Admin(m *irc.Message) bool { + return m.Prefix.Host == "tripsit/operator/hibs" +} + func (w *WatBot) Msg(m *irc.Message) { - if m.Params[0] == w.Nick && m.Prefix.Host == "tripsit/operator/hibs" { - if "join" == m.Params[1] { - w.write("JOIN", "##wat") - } + if !strings.Contains(m.Prefix.Host, "tripsit") || (m.Params[0] != "##wat" && m.Params[0] != "##test" && !w.Admin(m)) { + return } - if strings.Contains(m.Prefix.Host, "tripsit") && m.Params[0] == "##wat" { - args := strings.FieldsFunc(m.Params[1], func(c rune) bool {return c == ' '}) - if len(args) < 1 && args[0] != "wat" && args[0][0] != '#' { - return - } - if args[0][0] == '#' { - args[0] = args[0][1:] + + args := strings.FieldsFunc(m.Params[1], func(c rune) bool {return c == ' '}) + + if w.Admin(m) { + // Do a special admin command and return, or continue + if args[0] == "imp" { + w.write(args[1], args[2:]...) } - user := strings.ToLower(m.Prefix.Name) - player := w.Db.User(user, m.Prefix.Host, true) - w.game.Msg(m, &player, args) } + + if len(args) < 1 && args[0] != "wat" && args[0][0] != '#' { + return + } + if args[0][0] == '#' { + args[0] = args[0][1:] + } + user := strings.ToLower(m.Prefix.Name) + player := w.Db.User(user, m.Prefix.Host, true) + w.game.Msg(m, &player, args) } func (w *WatBot) Run() { |