summaryrefslogtreecommitdiffstats
path: root/services.tcl
blob: 8adcf02de1143ebf26dfb6b59ecda24507b10924 (plain)
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
###########################################################################################
######                           NickServ & ChanServ Tools                            #####
########################################################################################### 
#
# Autor  : Holger Brähne (Holli)
# E-Mail : hbraehne@web.de
# Version: 1.0
#
# Beschreibung: Das Script Identifiziert den Bot automatisch bei NickServ und lässt den
#               Bot automatisch Op erhalten falls das gewünscht ist und er die benötigten
#               Channelrechte besitzt. Das Script wurde getestet und hat funktioniert.
#               Ich kann allerdings nicht garantieren das es das auf allen IRC Servern
#               tut!
#
###########################################################################################
######                                 KONFIGURATION                                 ######
###########################################################################################

# Der Name den NickServ auf dem IRC Server verwendet auf dem sich der Bot befindet
set nserv(name) "NickServ"

# Der Befehl mit dem man sich bei NickServ identifiziert (normalerweise: IDENTIFY)
set nserv(idnt) "IDENTIFY"

# Der Name den der Bot verwendet. Wichtig falls jemand den Namen geklaut hat und der Bot
# in den GHOST Modus gehen soll um ihn zurück zu erhalten.
set nserv(nick) "Marvin"

# Das Passwort mit dem der Bot bei NickServ registriert ist.
set nserv(pass) "ongbak"

# Die Zeit die der Bot zwischen dem erkennen von NickServ und der Identifizierung warten
# soll. Bei mir haben 10 Sekunden immer gereicht, aber es soll ja auch langsamere Server
# geben ;)
set nserv(time) 10

# Der Name den ChanServ auf dem IRC Server verwendet auf dem sich der Bot befindet
set cserv(name) "ChanServ"

# Soll der Bot sich automatisch Op im unten angegebenen Channel holen?
# 0 = nein / 1 = ja
set cserv(opme) 0

# Der Channel in dem sich der Bot Op holen soll.
set cserv(chan) ""

# Siehe nserv(time). Die Zeit hier sollte aber mindestens 5 Sekunden länger angegeben sein!
set cserv(time) 15


###########################################################################################
######  !!! AB HIER NICHTS MEHR ÄNDERN, AUSSER DU WEISST GENAU WAS DU DA MACHST !!!  ######
###########################################################################################

bind notc - "*msg*IDENTIFY*pass*" nick_ident
bind dcc o nservid nick_ident

proc nick_ident {nick uhost hand args} {

  global botnick nserv cserv
  
  if {$botnick == $nserv(nick)} {
  
    utimer $nserv(time) "putserv \"PRIVMSG $nserv(name) :$nserv(idnt) $nserv(pass)\""
    
    if {$cserv(opme) == 1} {
    
      utimer $cserv(time) "putserv \"PRIVMSG $cserv(name) :owner\""
    
    }
  
  } else {
  
    utimer $nserv(time) "putserv \"PRIVMSG $nserv(name) :GHOST $nserv(nick) $nserv(pass)\""
  
  }

}