plugins/meme.go (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
package plugins import ( "encoding/base64" "fmt" "math/rand" "strings" "time" "gopkg.in/irc.v3" ) func init() { Register(Meme{}) } type Meme struct{} var n []byte func (Meme) Triggers() []string { n, _ = base64.StdEncoding.DecodeString("bmlnZ2Vy") return []string{ "." + string(n), ".kiss", ".increase", ".decrease", ".sniff", ".hug", } } func (Meme) Execute(m *irc.Message) (string, error) { parts := strings.SplitN(m.Trailing(), " ", 2) trigger := parts[0] rand.Seed(time.Now().Unix()) var target string if len(parts) > 1 { target = parts[1] } else { target = m.Prefix.Name } switch trigger { case "." + string(n): // lol if m.Prefix.Name == "IRSSucks" { target = "IRSSucks" } word := string(n) if rand.Intn(10) == 8 { // Easter egg! Only teh cool h4x0rz will get this. word = "bmlnZ2Vy" } return fmt.Sprintf("%s is a %s", target, word), nil case ".kiss", ".love": kaomoji := []string{ "(●´□`)", "(。・ω・。)ノ", "(。’▽’。)", "(ෆ ͒•∘̬• ͒)◞", "( •ॢ◡-ॢ)-", "⁽⁽ପ( •ु﹃ •ु).⑅*", "(๑ Ỡ ◡͐ Ỡ๑)ノ", "◟(◔ั₀◔ั )◞ ༘", } return fmt.Sprintf( "%s \x02\x034 。。・゜゜・。。・❤️ %s ❤️ \x03\x02", kaomoji[rand.Intn(len(kaomoji))], target, ), nil case ".increase", ".decrease": return fmt.Sprintf( "\x02[QUALITY OF CHANNEL SIGNIFICANTLY %sD]\x02", strings.ToUpper(trigger[1:]), ), nil case ".sniff": return fmt.Sprintf("huffs %s's hair while sat behind them on the bus.", target), nil case ".hug": return fmt.Sprintf("(>^_^)>❤️ %s ❤️<(^o^<)", target), nil } return "", nil } |