Merge branch 'master' of https://code.dnix.de/an/flokatirc
This commit is contained in:
		
						commit
						64e7dc3b92
					
				
					 1 changed files with 60 additions and 0 deletions
				
			
		
							
								
								
									
										60
									
								
								modules/coffee/coffee.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								modules/coffee/coffee.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,60 @@
 | 
			
		|||
// vi:ts=4:sts=4:sw=4:noet:tw=72
 | 
			
		||||
//
 | 
			
		||||
// flokatirc coffee module
 | 
			
		||||
//
 | 
			
		||||
// Copyright (c) 2016 Daniel Aberger <da@ixab.de>
 | 
			
		||||
 | 
			
		||||
package coffee
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"log"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"github.com/sorcix/irc"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	sayCh chan string
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func Init(ch chan string) {
 | 
			
		||||
	log.Println("Initializing coffee module")
 | 
			
		||||
	sayCh = ch
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func HandleMessage(m *irc.Message) {
 | 
			
		||||
	tok := strings.Split(m.Trailing, " ")
 | 
			
		||||
	if len(tok) < 1 {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	switch tok[0] {
 | 
			
		||||
	case "!kaffee":
 | 
			
		||||
		switch len(tok) {
 | 
			
		||||
		case 1:
 | 
			
		||||
			go coffee(nil)
 | 
			
		||||
		default:
 | 
			
		||||
			go coffee(tok[1:])
 | 
			
		||||
		}
 | 
			
		||||
	default:
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
func coffee(rec []string) {
 | 
			
		||||
	sayCh <- "*\nsetzt Kaffee auf."
 | 
			
		||||
	time.Sleep(30 * time.Second)
 | 
			
		||||
	sayCh <- "*\nstellt eine frische Kanne Kaffee in den Raum."
 | 
			
		||||
	if rec != nil {
 | 
			
		||||
		var users string
 | 
			
		||||
		for i, v := range rec {
 | 
			
		||||
			users += v
 | 
			
		||||
			if i < len(rec)-2 {
 | 
			
		||||
				users += ", "
 | 
			
		||||
			} else if i == len(rec)-2 {
 | 
			
		||||
				users += " und "
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		sayCh <- "*\ngibt " + users + " einen frischen, richtig schwarzen, richtig leckeren Kaffee."
 | 
			
		||||
	}
 | 
			
		||||
	time.Sleep(10 * time.Second)
 | 
			
		||||
	sayCh <- "*\nProst! (c)"
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue