diff --git a/events.go b/events.go index bd275f0..dcb828d 100644 --- a/events.go +++ b/events.go @@ -3,6 +3,7 @@ package main func ptrStr(s string) *string { return &s } var ( + eventTypeJoin = ptrStr("join") eventTypeHost = ptrStr("host") eventTypePermit = ptrStr("permit") eventTypeRaid = ptrStr("raid") diff --git a/irc.go b/irc.go index da42c6c..b688c57 100644 --- a/irc.go +++ b/irc.go @@ -79,6 +79,12 @@ func (i ircHandler) Handle(c *irc.Client, m *irc.Message) { }) i.ExecuteJoins(config.Channels) + case "JOIN": + // JOIN (Default IRC Command) + // User enters the channel, might be triggered multiple times + // should not be used to greet users + i.handleJoin(m) + case "NOTICE": // NOTICE (Twitch Commands) // General notices from the server. @@ -110,6 +116,10 @@ func (i ircHandler) Handle(c *irc.Client, m *irc.Message) { func (i ircHandler) Run() error { return errors.Wrap(i.c.Run(), "running IRC client") } +func (i ircHandler) handleJoin(m *irc.Message) { + go handleMessage(i.c, m, eventTypeJoin) +} + func (i ircHandler) handlePermit(m *irc.Message) { badges := i.ParseBadgeLevels(m) if !badges.Has(badgeBroadcaster) && (!config.PermitAllowModerator || !badges.Has(badgeModerator)) {