-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathOrakel.mrc
135 lines (126 loc) · 6.86 KB
/
Orakel.mrc
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
;*************************************************************************************************
;*
;* Orakel Addon v1.2 © by www.eVolutionX-Project.de (eVolutionX-Project Team)
;*
;*************************************************************************************************
;* Beschreibung
;*************************************************************************************************
;*
;* Antwortet auf die gestellten Fragen, die Fragen werden aus einer txt Datei zufällig ausgelesen.
;*
;*************************************************************************************************
;* Befehle
;*************************************************************************************************
;*
;* Mit !orakel <FRAGE> kannst du das Orakel antworten lassen.
;* Mit !orakel info siehst du die Copyright.
;*
;*************************************************************************************************
;* Changes
;*************************************************************************************************
;*
;* v1.2
;* Changed: Code gesäubert und verbessert.
;*
;* v1.1
;* Fixed: Gab probleme wenn leerzeichen im Pfad.
;* Added: Wenn Orakel.txt nicht vorhanden ist, wird es ausm Internet geladen.
;*
;*************************************************************************************************
;* IRC Kontakt
;*************************************************************************************************
;*
;* Server: irc.SpeedSpace-IRC.eu
;* Port: 6667
;* Channel: #eVolutionX
;*
;* Befehl: /server -m irc.SpeedSpace-IRC.eu -j #eVolutionX
;*
;*************************************************************************************************
;* ON EVENTS Start
;*************************************************************************************************
; - Lädt die Orakel.txt beim laden des Addons.
;*************************************************************************************************
on *:LOAD: Mod.Orakel.aLoad
;*************************************************************************************************
; - Entfernt die Orakel.txt beim entladen.
;*************************************************************************************************
on *:UNLOAD:{
if ($isfile($Mod.Orakel.aFile)) {
noop $input(Soll die Datei Orakel.txt gelöscht werden?, yv, Datei Löschen?)
if ($! == $yes) .remove -b $Mod.Orakel.aFile
}
unset %Mod.Orakel.*
.timerMod.Orakel* off
}
;*************************************************************************************************
; - Prüft beim Starten ob die Orakel.txt vorhanden ist, wenn nicht lädt er sie.
;*************************************************************************************************
on *:START: Mod.Orakel.aLoad
;*************************************************************************************************
; - Trigger Befehl des Orakel Addon.
;*************************************************************************************************
on *:TEXT:!orakel*:#:{
if ($2 == info) { .notice $nick 14Orakel Addon v1.2 © by 09www.eVolutionX-Project.de14 (09eVolutionX-Project Team14) | halt }
if (!$timer($+(Mod.Orakel-Flood., #, ., $cid))) {
if ($2-) {
if ($isfile($Mod.Orakel.aFile)) { .timerMod.Orakel-Flood. $+ $+(#, ., $cid) 1 40 halt | .msg # 14Das 09Orakel14 sagt:04 $read($Mod.Orakel.aFile) }
else { .msg # 14Es stehen keine 09Einträge14 in meiner Datenbank. Bitte versuch es später noch einmal. | Mod.Orakel.aLoad }
}
else .notice $nick 14Du hast vergessen deine 09Frage14 zu stellen!
}
else {
if ($timer($+(Mod.Orakel-Flood., #, ., $cid, ., $nick, .3))) halt
var %secs = $timer($+(Mod.Orakel-Flood., #, ., $cid)).secs | .notice $nick 14Flood-Protection: Versuch's in09 $duration(%secs) 14nochmal!
inc $+($chr(37), Mod.Orakel-vFlood., #, ., $cid, ., $nick) | .timerMod.Orakel-Flood. $+ $+(#, ., $cid, ., $nick, *) off
.timerMod.Orakel-Flood. $+ $+(#, ., $cid, ., $nick, ., $eval($+(%, Mod.Orakel-vFlood., #, ., $cid, ., $nick), 2)) 1 %secs unset %Mod.Orakel-vFlood.*
}
}
;*************************************************************************************************
; - Öffnet www.eVolutionX-Project.de
;*************************************************************************************************
on *:SOCKOPEN:Mod.Orakel.sHTTP:{
if ($sockerr > 0) halt
sockwrite -n $sockname GET /dl/Orakel.txt HTTP/1.1
sockwrite -n $sockname Host: www.eVolutionX-Project.de
sockwrite -n $sockname $crlf
}
;*************************************************************************************************
; - Schreibt die Orakel.txt
;*************************************************************************************************
on *:SOCKREAD:Mod.Orakel.sHTTP:{
if ($sockerr > 0) halt
sockread %Mod.Orakel.sRead
while ($sockbr) {
if (%Mod.Orakel.sRead == >-EOF-<) { sockclose Mod.Orakel.sHTTP | unset %Mod.Orakel.* | halt }
if ((%Mod.Orakel.sRead == $null) && ($sockbr > 0)) set %Mod.Orakel.vRead 1
if (%Mod.Orakel.vRead) {
if ((%Mod.Orakel.sRead != $null) && ($sockbr > 0)) {
if (%Mod.Orakel.vRead == 1) { write -cn $Mod.Orakel.aFile %Mod.Orakel.sRead | inc %Mod.Orakel.vRead }
else write -n $Mod.Orakel.aFile $crlf $+ %Mod.Orakel.sRead
}
}
sockread %Mod.Orakel.sRead
}
}
;*************************************************************************************************
;* ON EVENTS Ende
;*************************************************************************************************
;*************************************************************************************************
;* LOCAL ALIASES Start
;*************************************************************************************************
; - Gibt den Pfad der Datei wieder:
; - $Mod.Orakel.aFile
;*************************************************************************************************
alias -l Mod.Orakel.aFile {
if (!$isdir(System)) mkdir System
return $+(", $mircdirSystem/Orakel.txt, ")
}
;*************************************************************************************************
; - Lädt Orakel.txt runter:
; - /Mod.Orakel.aLoad
;*************************************************************************************************
alias -l Mod.Orakel.aLoad { if ((!$isfile($Mod.Orakel.aFile)) && (!$sock(Mod.Orakel.sHTTP))) sockopen Mod.Orakel.sHTTP www.eVolutionX-Project.de 80 }
;*************************************************************************************************
;* LOCAL ALIASES Ende
;*************************************************************************************************