From 92fdc41ebcc1d8c84c5b9d6cf5cf90b7956a4935 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Thu, 30 Jul 2015 19:53:22 +0200 Subject: Add easteregg --- roulette.go | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 roulette.go (limited to 'roulette.go') diff --git a/roulette.go b/roulette.go new file mode 100644 index 0000000..6b44409 --- /dev/null +++ b/roulette.go @@ -0,0 +1,47 @@ +package main + +import ( + "math/rand" + "time" + + irc "github.com/fluffle/goirc/client" +) + +type RR struct{ Command } + +const barrel = 6 + +var ( + bullet int + loaded int +) + +func reload() { + loaded = rand.Intn(barrel) + bullet = 0 +} + +func trigger() bool { + bullet++ + bullet %= barrel + return bullet == loaded +} + +func (_ RR) Handle(conn *irc.Conn, line *irc.Line) { + if !line.Public() { + return + } + if trigger() { + conn.Kick(*room, line.Nick, "bang!") + conn.Notice(*room, "reload") + } +} + +func init() { + rand.Seed(time.Now().Unix()) + Register("!", &RR{ + Command{ + Help: "Russian roulette", + }, + }) +} -- cgit v1.2.3