فهرست منبع

initial commit of all files...

Paul Klumpp 12 سال پیش
کامیت
07c7a729d7

+ 9 - 0
QDEV,-dev-.log

@@ -0,0 +1,9 @@
+2004-12-23 16:34:25 / QuAd|Haui - #quad.tc : yet another logging test :)
+2004-12-28 00:07:29 / fraki - #quad.aq2 : fortune, doja, nite, gnabit, mclain, zonko, chaosgremlin, eldiablo, kraecker, vex, starbuc, kanarya, tr3mor --> http://quad.netdome.biz/wakka/
+2005-04-19 21:32:48 / QuAd|Haudrauf - #aztest : test
+2005-04-19 21:48:20 / QuAd|Haudrauf - #quad.dev : test
+2005-04-19 21:50:36 / QuAd|Haudrauf - #quad.dev : test
+2005-04-19 21:51:50 / QuAd|Haudrauf - #quad.dev : test
+2005-10-13 19:35:56 / QuAd|Haudrauf - #quad.dev : fupp
+2005-10-13 19:36:36 / QuAd|Haudrauf - #quad.dev : fupp222
+2005-10-13 19:37:37 / QuAd|Haudrauf - #quad.dev : byebye

+ 7 - 0
copy2b4r.sh

@@ -0,0 +1,7 @@
+#!/bin/sh
+
+echo configs now in scripts/mnet_conf.tcl of every bot!
+
+scp mnet_admin.tcl paul@b4r.org:/home/paul/eggdrop-homes/mnet
+
+echo "copied to /home/paul/eggdrop-homes/mnet"

+ 5 - 0
copy2mxr.sh

@@ -0,0 +1,5 @@
+#!/bin/sh
+
+
+
+scp mnet.tcl haui@h210n2fls33o816.telia.com:/home/haui/eggdrop/scripts/mnet

+ 8 - 0
copy2release.sh

@@ -0,0 +1,8 @@
+#!/bin/sh
+
+mkdir tmp
+mv *~ tmp
+scp mnet.* ../mnet_conf.tcl quadaver@b4r.org:/www/quad.netdome.biz/mnet/
+mv tmp/*~ .
+rmdir tmp
+

+ 31 - 0
doc/calis_mnet.txt

@@ -0,0 +1,31 @@
+generell:
+put ist das ne anweisung ?
+muß man die if in [] setzen oder machst nur du das immer so ?
+
+47 #sollten in die liste auch bots von "außen" eingegeben werden können ? oder muß dann das ganze script überall "per hand" erweitert werden ?
+52 #im irc kann man nicht beliebig lang aneinander reihen irgendwann streikt der
+57 #find ich überflüssig, wenn jem drangeht, dann auch alles mitloggen, dann hat man "hinterher" auch was in der hand, nicht nur das er dran war..
+66 #da fehlt aber noch was oder?
+68 #sollte die so aussehen ? oder setzt der die so ? wenn jem kein auth hat geht die mask nicht *!*@*.users.quakenet.org
+79 #ist das nur für aq2 ? sollte man das nicht vielleicht selber festlegen können ? wenn man vllt auch was anderes spielen will ?
+84 #farbe suckt!! bold & underscore sollte man auhc noch ausfiltern (mein geschmack)
+101 # $n variable für die nachricht ? und was du danach machst ... :>
+108 #rec == recongnize ??
+133 #hast aber schön viele extras :) schon user zählen :P
+158 #siehe 57 :>
+242 #geht ein "on *:TEXT:bla" command nicht eh nur wenn die person im gleichen channel wie der bot ist ? :)
+259 #du schreibst auch wirklich alle einzelheiten für alle idioten oder ? :>
+333 #wie soll man den denn erreichen können wenn er gar nicht im chan ist ?
+353 #now the reply should be there.. so analyse mnet(reached) after the timeout
+367 #du willst die leute da gleich bannen ?? im channel ? vielleicht sind die da ebr erwünscht, dachte das die da nur den bot nicht accessen dürfen
+
+
+was muß noch genau gemacht werden
+auch wenn ich den inhalt so halb durchblickt hab, die befehle noch nicht alle, ist mir noch nicht aufgegangen was noch zu tun ist
+der ganze "admin-access" fehlt oder ?
+der teil in dem die msg an die anderen bots geht, hab ich den übersehen ? und der in dem der eine nachricht von anderen kommt auch ?
+tut der überhaupt schon was ? so in chan schreiben (ok 329 i guess) oder hab ich den teil auch übersehen ? (aber ich werde die url die du mir gegeben hast auch noch besuchen ;))
+
+
+ich weiß,  ich nörgel nur, aber das ist das was ich am besten kann hab ich  so den eindruck
+aber kommt bestimmt auch noch mal was konstruktives :>

+ 38 - 0
doc/changes.txt

@@ -0,0 +1,38 @@
+changelog.txt
+
+23.08.2004
+ * fixed bug which prevented people with an \ at their names end to send messages (tcl brace errors)
+
+18.08.2004
+ + added spamprotection. You now can set a "delay"-key to the frequency-tag in your config-file to 
+   define a delay between usages of the prefix. If not defined, the default is "120", which 
+   means 120 seconds. 120 is a fair value. Anyways, it can be quite too short depending on 
+   the situation.
+
+15.08.2004
+ + added command .prefix_history to show the last 10 messages of a frequency of a network
+
+30.07.2004
+ * fixed evaluation of \t \n and stuff in botnetted received messages. (\t won't evaluate anymore)
+ * fix of some config-issues with intervalled re-loading and .rehash and stuff .. so:
+ + added new command .mnet_reload to reload the net-configs...
+
+28.07.2004
+ * fix: using ${botnet-nick} instead of {botnick} to build up variables. :( lol
+ + allowing to load local textfiles as configs (good if you "wget" the config from a website - so
+   you still have a centralized config)
+ + making internal structures better to let it automatically reload config every x minutes (configurable)
+
+26.07.2004
+ + added disabling and enabling of frequency output. just type a command like:
+   .frequencyname_disable or .frequencyname_enable
+
+25.07.2004
+ + Multi-Networking and Multi-Frequencing code added ... needs XML config .. can be downloaded
+   from a HTTP-server.. so it is a "central" point for other bots. You don't need to DL it from
+   a HTTP-server, but it's recommended
+
+24.07.2004
+ + XML parsing thingy
+
+

+ 35 - 0
doc/changes.txt~

@@ -0,0 +1,35 @@
+changelog.txt
+
+18.08.2004
+ + added spamprotection. You now can set a "delay"-key to the frequency-tag in your config-file to 
+   define a delay between usages of the prefix. If not defined, the default is "120", which 
+   means 120 seconds. 120 is a fair value. Anyways, it can be quite too short depending on 
+   the situation.
+
+15.08.2004
+ + added command .prefix_history to show the last 10 messages of a frequency of a network
+
+30.07.2004
+ * fixed evaluation of \t \n and stuff in botnetted received messages. (\t won't evaluate anymore)
+ * fix of some config-issues with intervalled re-loading and .rehash and stuff .. so:
+ + added new command .mnet_reload to reload the net-configs...
+
+28.07.2004
+ * fix: using ${botnet-nick} instead of {botnick} to build up variables. :( lol
+ + allowing to load local textfiles as configs (good if you "wget" the config from a website - so
+   you still have a centralized config)
+ + making internal structures better to let it automatically reload config every x minutes (configurable)
+
+26.07.2004
+ + added disabling and enabling of frequency output. just type a command like:
+   .frequencyname_disable or .frequencyname_enable
+
+25.07.2004
+ + Multi-Networking and Multi-Frequencing code added ... needs XML config .. can be downloaded
+   from a HTTP-server.. so it is a "central" point for other bots. You don't need to DL it from
+   a HTTP-server, but it's recommended
+
+24.07.2004
+ + XML parsing thingy
+
+

+ 61 - 0
doc/faq.txt

@@ -0,0 +1,61 @@
+               _                             
+ ___ _ _ ___ _| |___ _ _ ___ ___             
+| . | | | .'| . | .'| | | -_|  _|            
+|_  |___|__,|___|__,|\_/|___|_|   
+  |_|                           
+
+============================
+FAQ mnet (Messaging Network)
+============================
+
+Q: 	What is mnet?
+A: 	mnet means Messaging Network and its a broadcasting service for irc.
+
+
+Q:	What is the purpose of this bot?
+A:	It's purpose is to have a common messaging service around all the aq2-channels.
+
+
+Q: 	Why should we use this instead of GSBOT?
+A: 	GSBOT is limited. You can only look for or add clanwars. Mnet can be used for other 
+	things like news, announcements, tourneys, important results, leagues.. etc.
+	Mnet is flexible. GSBOT spams the main-channel and only has the originating channel as argument, 
+	so you cant use it in a key protected channel but with Mnet you can let the bot sit in a 
+	key protected channel and say in your message: "You find me at #quadaver" for example.
+
+
+Q:	How do I use the bot?
+A:	Type: ".aq2" in the channel where the bot is. You need operator status. This will give you the
+	following message:
+	"Usage: .aq2 need train-cw at 20:00.   Rules: ONLY -AQ2-related, only english and no answering!"
+
+
+Q:	Is there a command to disable Mnet?
+A:	No, Mnet isnt supposed to be like that. If you dont want the messages to show, simply ban the 
+	bot from your channel.
+	Another way is, set the channelmode to +c (No Colors). This way the bot can't talk.
+
+
+Q:	Why do you use colors?
+A:	Mnet uses colors to distinguish itself from normal chat lines. It isn't excessive, it's only 
+	using one color.
+
+
+Q:	Is there a command so it doesn't send messages to all channels?
+A:	No, there isnt. Mnet is a broadcasting service.
+
+
+Q:	Is there a list command to view the sent messages?
+A	At this moment there isn't, but working on it.
+
+
+Q:	Can I have the source of this bot?
+A:	Yes, you can. Mnet is open-source and its free to use for everyone.
+
+
+Q:	Who made this bot and where can I contact him?
+A:	QuAd|Haui #quadaver @ QuakeNet
+
+
+============================
+www.quadaver.de

+ 73 - 0
doc/pls_make_faq.txt

@@ -0,0 +1,73 @@
+
+
+
+
+<QuAd|Haui> .qw any div3 clan prac? now
+<[servu-4]> dot qw: Since this is the first time you use dot qw, you must understand the three simple rules:
+<[servu-4]> dot qw: Only qw, only english and no answering in dot qw
+<[servu-4]> dot qw: Message sent to 3081 users.
+
+
+
+AQ2 IRC Broadcasting Service
+
+AIBS
+There is a new irc-bot in town. It's main purpose is to 
+
+A new irc-bot in town.
+
+Recently
+
+aq2-bcs
+
+============
+FAQ mnet (Messaging Network)
+<Zak`> is there a command so it doesnt´send to all channels ?
+<QuAd|Haui> zak, nope
+<QuAd|Haui> it's a broadcasting service
+<den`> (12:02:08) (@den`) is there a list cmd ?
+<den`> :D
+<QuAd|Haui> list?
+<den`> yes
+<Zak`> think it´s only .aq2 den`
+<QuAd|Haui> like gsbot? no.. these are normal messages
+<den`> oh
+<QuAd|Haui> it can't "list" 
+<QuAd|Haui> since it's just a broadcaster
+<den`> wouldnt it be nice if ppl could see what msges were send ?
+<den`> like a history
+<QuAd|Haui> it's broadcasting over a botnet
+<QuAd|Haui> it's not really easy to log them.. but i can do :)
+<QuAd|Haui> don't ask me when
+
+<Repsaj^Idle> whats that?
+<QuAd|Haui> a new service i created
+<QuAd|Haui> i had a nightly coding-session
+<QuAd|Haui> :)
+<QuAd|Haui> .aq2
+<AQ2_01> dot-AQ2-: Usage: .aq2 need train-cw at 20:00.   Rules: ONLY -AQ2-related, only english and no answering!
+<Repsaj^Idle> hmm
+<Repsaj^Idle> dont think its gonna work tho :/
+<Repsaj^Idle> everyone has gsbot
+<QuAd|Haui> this one is good for news and stuff too
+<QuAd|Haui> aq2-related
+<QuAd|Haui> like .aq2 aq2-tournament starting now, come and watch: #aq2-tourney
+<QuAd|Haui> it's flexible
+<QuAd|Haui> gsbot spams the main-channel and only has the originating channel as argument
+<QuAd|Haui> so we can't put it in here
+<QuAd|Haui> otherwise responding people would try to join here to get into contact
+<QuAd|Haui> ... with my bot you can just say: find me at #quadaver
+<Repsaj^Idle> oo thats nice :)
+<QuAd|Haui> :)
+<QuAd|Haui> i will make it open-source
+
+
+<NARF|Chris> nix für ungut.. aber der gsbot erfühlt doch das schon alles..
+<QuAd|Haui> nicht alles
+<QuAd|Haui> mit dem bot hier kannste auch messages unabhängig von match-making schreiben
+<QuAd|Haui> z.b. .aq2 aq2-tournament starting in 20 mins, livebot and everything in #aq2.tourney
+<QuAd|Haui> gsbot kann auch keine mix-spiele organisieren wie:
+<QuAd|Haui> z.b. .aq2 One more needed to play 4on4 on 217.x.x.x
+
+If i want your bot, who do i have to contact?
+QuAd|Haui #quadaver @ QuakeNet

+ 640 - 0
irclogs/channels.list

@@ -0,0 +1,640 @@
+#-=Bkf=-
+#-tB-
+#...jasot
+#.the.end.et
+#116th
+#2ez
+#6s
+#:own:
+#ArTroX
+#B13
+#Bastard.et
+#Clan.Nk.ET
+#Darkangels.aq2
+#Fc`
+#GHS
+#Kurko@clan
+#LTN
+#MYM
+#OGz
+#Perusclan
+#TWland
+#Trinkercrew
+#TwistOfFate
+#Tyylimiehet
+#U-Real
+#URangers
+#Yahela's
+#[AkA]
+#[DWR]
+#[FAC]
+#[prkl].et
+#[pulse]
+#]C[
+#a-laget
+#abs
+#action.fi
+#anq
+#appelsiini
+#apprime
+#aq.nurmo
+#arrive.cod
+#athenagt
+#azt
+#azure.priva
+#bkf.cod
+#cd.et
+#ck.aq2
+#clan-bot
+#clan-gd
+#clan-iN
+#clan-k18
+#clan-rotu
+#clan.dp
+#clan.fforce
+#clan.her0
+#clan.s03
+#clan.sisu
+#clan.sup
+#clan.swi
+#clan.viva
+#clan.w
+#clan_jkl
+#clanapc
+#clanquality.ET
+#clanstn
+#clanunited
+#clutch
+#cnn
+#cod-uk
+#cruelty
+#cunt.clan
+#d-skyline
+#darkside
+#de.cod
+#dignitas
+#dildokorvat
+#dipunishment
+#division.wiking
+#dnb.q3
+#don
+#dukes
+#e-star
+#e3-gaming
+#elemental.wolf
+#engine
+#erection.cod
+#et-finland
+#et-porters
+#et.wars
+#evoken
+#excitement.et
+#extacy
+#eye
+#eyeCandy
+#fcv
+#fdnl.et
+#ff.org
+#fightclub
+#fop.cod
+#fury.fi
+#fx.com
+#gangster.org
+#grave
+#gunslingers
+#hanso
+#hfd
+#hihhulit
+#hst
+#hx
+#iLoGik
+#igwt
+#jdf
+#kakkapylly.quad
+#kill.will
+#kondomi
+#lemon.cod
+#lrrp
+#lucky-bitches
+#maddogs.cod
+#match.et
+#mct.it
+#mi
+#mib.IL
+#mif
+#mydynasty.et
+#n8k
+#narf
+#npmclan
+#nr.cod
+#ondrugs
+#only_human
+#pause.gaming
+#pelitutka
+#po&co
+#psy?
+#pure-spite
+#q-aq2
+#q3ut.team-ger
+#quit.reality
+#raccoons.et
+#rbl
+#relaxed
+#reload.et
+#rockclan
+#roistot
+#rotisko
+#rr
+#rtcw.kkp
+#saevus
+#salakala
+#scarlex
+#serske
+#sierra.cod
+#silence.aq
+#sisclan
+#sisu.et
+#specster
+#splashdamage.eu
+#starsclan
+#sth-clan
+#subdue
+#swebrigade
+#sykotic
+#tLP*
+#tak
+#team-amd
+#team-autger
+#team-zenith.com
+#team.ak
+#tgplayers
+#third-level
+#ultimate.et
+#v8
+#vagrants.it
+#valverde.et
+#vfn
+#vision.et
+#vrp
+#w00t
+#warning!
+#we>you
+#wolfenstein.it
+#wt-xyz
+#xr
++#!mYsT.et
++#-=[bzz]=-
++#-[xi]-
++#..et
++#.ISO|||
++#.uL
++#3dfx.et
++#3v.et
++#4-Reasons
++#4frags.squad
++#4fun
++#4history
++#7J
++#7sins.et
++#7squadron
++#=DJR=
++#=[FG]=
++#AAZ
++#AJS
++#Anaemic
++#BFU.cz
++#Blue.eZ
++#CCat
++#CLAN.DARKNESS
++#Clan.FBI
++#Clan_NaM
++#Codenameav
++#CrazyReds
++#DaRegiment
++#Das.et
++#Duraworks
++#ETclan.aE
++#Explosion
++#F.Aftermath
++#F2B-TV
++#FuRiOuS-ET
++#GF.Blue
++#HV
++#K.Town
++#Koff3.et
++#LEX.Clan
++#LQE
++#Liga4Fun
++#LosT-Aim
++#Mercuria.Aq2
++#MoWClan
++#NO4-CLAN
++#Oh-My-God
++#OnePlay
++#Panda.et
++#ROS.pl
++#RQS.ET
++#S-Crew
++#SKIT-EVIL
++#SaT.nl
++#Smoking
++#Stazi
++#Stilth
++#Team-XenoN
++#TheBanished
++#TheMuppets
++#ThePimPs
++#TimeServers
++#Triggerhappy
++#V53
++#Veabuen.S
++#VitaminC-Junkies
++#[=FPS=]
++#[?].dk
++#[BückDich]
++#[GS].clan
++#[LoW]
++#[ROR]
++#[UBK]
++#[gug]
++#^sas^
++#abba
++#ace.aq2
++#action.dac
++#allbad.clan
++#allcz.et
++#alliance.clan
++#altavastaajat
++#aq2-performance
++#azur.et
++#b3-clan
++#bad//boys
++#blitz.cod
++#blitzkrieg.et
++#blunt3d
++#boOness
++#bosclan
++#bsk.h
++#bsv.be
++#c30.et
++#c3p3
++#cemeterysquad
++#cfg.et
++#chaoticexistence
++#clan'sC
++#clan-IGC
++#clan-bio
++#clan-duel
++#clan-nm
++#clan-pb.com
++#clan-raw
++#clan-reload
++#clan-shock
++#clan-sss
++#clan.VnS
++#clan.anl
++#clan.aom
++#clan.bj
++#clan.chu
++#clan.cotd
++#clan.eXist
++#clan.eof
++#clan.ffb
++#clan.fwd
++#clan.hml
++#clan.k
++#clan.k2
++#clan.liha
++#clan.mtp
++#clan.mvk
++#clan.nFate
++#clan.nypd
++#clan.oc
++#clan.omituiset
++#clan.overdoze
++#clan.p
++#clan.pena
++#clan.pr0
++#clan.rukkaset
++#clan.s
++#clan.si
++#clan.sjk
++#clan.smt
++#clan.swarm
++#clan.vhj
++#clanci5
++#clanh8
++#clanholy
++#clanmoa
++#clanr17.it
++#clansB
++#clansvv
++#clantav
++#clanvd
++#clover
++#cod.hu
++#codclan.fat
++#combat13
++#confusion.et
++#cows.et
++#crimson-imperium
++#cso
++#d-team.et
++#d2.ee
++#d2a-uk
++#darklegion.et
++#db.es
++#db@.et
++#dbb+
++#dd.et
++#deadlydozen
++#decay
++#delicta
++#demonic.troopers
++#derbe
++#deus.et
++#devastation.clan
++#dfig
++#dflv
++#dhbclan
++#divine.et
++#dnsclan
++#doa-et
++#dp.it
++#dragon.et
++#drunkstars
++#dsq.sm
++#dust.ee
++#e3.Q3UT
++#eQuation.et
++#earth-clan
++#ecb.et
++#egn
++#ehn
++#ejw
++#elvenking
++#equation.cod
++#espoo.aq2
++#esx.rq3
++#et.world
++#etpl
++#extrallamas
++#fRee.et
++#faked!
++#farmdogs
++#fatalhogs
++#finnit
++#flbk
++#fm.et
++#footfetish
++#for
++#fu.et
++#fusion.wolf
++#ga-clanbase
++#ghettob
++#gijoe
++#glugglugsclan
++#gnfclan
++#godz
++#goodfellaz
++#goq-rtcw
++#gringos.et
++#gsbot
++#gunkatta
++#gzw.pl
++#hangar
++#hash#
++#hateli
++#hh.aq2
++#hunters-group.org
++#hyperion-et
++#iF.cod
++#iL3
++#ic-clan
++#idle.ee
++#ilrclan
++#impact-gaming
++#impala
++#in.cod
++#inQuantum
++#ind
++#insanity-team
++#inspe
++#itcteam
++#justgamers.cod
++#karrama
++#kewlar
++#kingludwigsarmy
++#kise.et
++#kk.clan
++#knights.cod
++#lhs.et
++#lost-souls-rising
++#ltcclan
++#lye
++#m8yP-et
++#mYn
++#mad-squad
++#maddogs.clan
++#maddogs.et
++#makrilli.et
++#massacre
++#mastersofcamping
++#maw.aq2
++#mazz-fun-team
++#mb.aq2
++#mchl
++#mepa
++#metalkings
++#mhz.et
++#mix.et
++#mobsters
++#mr_clan
++#muranguZ.pt
++#muse.et
++#my-demonz
++#nemesis.pt
++#new.era
++#nextepisode
++#ng-et
++#nm!
++#no-clan.et
++#nucleox
++#nucleus
++#nwofamily
++#oChaos
++#old-geeks
++#old.skool
++#onesoldier
++#onix.et
++#online-fighter
++#only.cod
++#p5
++#penapena
++#pfaelzer
++#piefu
++#pith
++#poland.et
++#poohunter
++#prenzlau
++#prolan
++#purans.et
++#pure.gaming
++#purplehaze
++#q3ut-team.nl
++#qipler
++#qipler.hu
++#questionmark
++#qv
++#r3surrection
++#r3volta
++#randtdebielen
++#rcub-et
++#revived.et
++#rip
++#rock.ee
++#rt.et
++#sars.clan
++#schema
++#sg1.et
++#six_feet_Under
++#slof
++#snipers_gaulois
++#soa.clan
++#sol-clan
++#somgorsi
++#somo
++#sonic-esports
++#sonic.et
++#sonitus
++#sos.squad
++#ssc.et
++#stener
++#stoned
++#sublime.clan
++#sumpen
++#supreme-gaming
++#surplus
++#syfh-h4k.hu
++#tUs!
++#tampere.aq2
++#taskforcex
++#tdf2
++#tdt
++#team-bellum
++#team-de
++#team-phoenix.et
++#team_adm
++#teamw
++#teamwdw
++#the-ankat
++#the.freakz
++#thedust
++#thegladiators
++#theimmortals
++#thsclan
++#tigersclaw
++#tiktak.et
++#tkt.et
++#tnt.slo
++#trickyklan
++#try2bust
++#tth
++#unity.et
++#unknown.et
++#urbanpixies
++#urbanpredators
++#usualsuspects
++#utop
++#uvm
++#vTv
++#vadrigar
++#vainio.aq2
++#vanhaliitto
++#veavĺg
++#villähde
++#vvv.clan
++#w!ngs
++#w@co
++#wart.et
++#wdc-clan
++#wolfenstein-extreme
++#wolfstuff
++#xG.UrT
++#xtr.ee
++#yacclan
++#yd
++#zD`
++#|:P|
++#|GanG|
+<#AgonyRealm
+@#.dark.
+@#:Ulterior
+@#=[GKT]=Clan
+@#CNT.ET
+@#Clan-Rot
+@#IBFTeam
+@#K@ozz
+@#KS.aq2
+@#NewRevolution
+@#No!
+@#OvanAllt.aq2
+@#PrimeTeam
+@#Sone2.no
+@#UP*
+@#Xenophobic.aq2
+@#ajkf
+@#aq2suomi
+@#aq2turnaus
+@#bass.et
+@#bkw-clan.cod
+@#bob.et
+@#chad
+@#clan-ct
+@#clan-gmbh
+@#clan-ho
+@#clan-mc
+@#clan.limit
+@#clan.pm
+@#clan.rkc
+@#clan.star
+@#clan.toe
+@#clan[pd].et
+@#clansurvival
+@#craZy`et
+@#cs3r
+@#dogpac
+@#et-friends
+@#et.mix
+@#exanimus
+@#fc.aq2
+@#fos-clan
+@#fragrobbers
+@#frau.aq2
+@#god*
+@#gug.it
+@#keitele
+@#lite
+@#marines.clan
+@#nf.et
+@#online.killers
+@#pdw
+@#peltipossut
+@#point.et
+@#pp.aq2
+@#quadaver
+@#rize
+@#rkbo
+@#sas-team
+@#soe.pl
+@#sonic.cod
+@#steam.et
+@#terrorist_group
+@#themarlboros
+@#thesquad
+@#tnt.et
+@#tpm.et
+@#tt.aq2
+@#ugly-territory
+@#ukeg
+@#zero-state

+ 92 - 0
irclogs/research.log

@@ -0,0 +1,92 @@
+2004-07-27
+21:00...
+<QuAd|Haui> oh, since when is the serve-u homepage "down"? :) and when does the new one come up?
+<]SR[ParadokS> when jezaja becomes motivated enough to put it online
+<]SR[ParadokS> =)
+<[servu-01]> -qw- knast - #ibh - any div3-5 clan prac ? #pumpkins^
+<QuAd|Haui> the old website looked great, are there gonna be big changes? :)
+<[servu-01]> -qw- Genesis-Pyta - #olw - anyone going to qhlan that drives through Nacka and could pick me up? Of course I pay :P
+<]SR[ParadokS> well the site got wiped/deleted
+<]SR[ParadokS> so it's question if and when it will even come up in same condition
+<]SR[ParadokS> :D
+<QuAd|Haui> wtf
+<QuAd|Haui> how did it get deleted?
+<]SR[ParadokS> well there was flaw in coding that allowed you to run commands on server via eggdrop. so some smartass just did rm <whatever you write> to delete everything
+<QuAd|Haui> ah
+<QuAd|Haui> and the website was on the same machine, where the bot ran? ..
+<QuAd|Haui> :/
+<QuAd|Haui> yes, i know the story with the rm command over the backtick characters :)
+<]SR[ParadokS> :p
+<slime> the funny thing is that he made the same misstake three times
+<slime> xD
+<[servu-01]> -qw- [-raket-] - #hgclan - anyone going to qhlan that lives in Nacka and want a ride to qhlan :D?
+<QuAd|Haui> last time it's rakets fault, right?
+<slime> i know of two people that ran rm -rf ~/
+<slime> raket and pulsen
+<slime> then jez recoded the bot but still left a similar hole open
+<slime> btw hi para wzp??
+<QuAd|Haui> :)
+
+
+
+<QuAd|Haui> how many channels does servu serve?
+<]SR[ParadokS> 200 or something =)
+
+
+
+2004-07-27
+21:30...
+<QuAd|Haui> btw.. how did you get a replacement so shortly after you killed jezajas broadcasting bot.. (and the website) ?
+<[-raket-]> what?
+<QuAd|Haui> serv-u was gone
+<QuAd|Haui> later "alice" came back up
+<QuAd|Haui> was it your replacement?
+<QuAd|Haui> i noticed a question over alice from you, where you asked for some more shells to host more alice-bots. :)
+<QuAd|Haui> that's why i ask
+<QuAd|Haui> muh :/
+<[-raket-]> oh alice is my bots
+<QuAd|Haui> and how did this develop? you gave jezaja the code you made and he improved it?
+<[-raket-]> donno
+<[-raket-]> i didnt make it
+<[-raket-]> hugo did
+<QuAd|Haui> hugo?
+<QuAd|Haui> who is that? :)
+<QuAd|Haui> is the code freely available? after all?
+<[-raket-]> why do u wanna know
+<[-raket-]> no it is not
+<[-raket-]> :)
+<QuAd|Haui> is there a bigger reason?
+<[-raket-]> or do you want it?
+<QuAd|Haui> hm, i asked myself, why the code isn't available
+<QuAd|Haui> i don't want it :)
+<[-raket-]> it is
+<[-raket-]> but no one has it
+<QuAd|Haui> but perhaps other guys want to make a network of their own
+<[-raket-]> :)
+<[-raket-]> but i u want it i can dcc
+<[-raket-]> yeah :)
+<[-raket-]> u want to put it online somewhere?
+<[-raket-]> i have a old version
+<[-raket-]> where !qw fp etc dont work
+<[-raket-]> only the msg thing
+<[-raket-]> :>
+<QuAd|Haui> no, wait :)
+<QuAd|Haui> i wanna be honest 
+<QuAd|Haui> jezaja wanted to GPL the code .. as it has been written some time before, when the page still did..
+<QuAd|Haui> for some reason, it didn't went GPL :)
+<QuAd|Haui> so i made my own script
+<[-raket-]> ok
+<QuAd|Haui> it's multi-network and multi-frequency capable
+<QuAd|Haui> :) so, pls don't send the code, or else someone could accuse me of stealing :)
+<[-raket-]> ok :P
+<QuAd|Haui> if it was freely available for the public, i could have a glimpse
+<[-raket-]> whatever i dont 
+<[-raket-]> i wont say to anyone
+<QuAd|Haui> but not like this :)
+<[-raket-]> wtf :)
+<QuAd|Haui> hehe
+<QuAd|Haui> well.. in broadcasting it's far more advanced
+<QuAd|Haui> but does exactly the same, at first sight
+<QuAd|Haui> ok, thx for some infos 
+<QuAd|Haui> l8er
+

+ 89 - 0
irclogs/research.log~

@@ -0,0 +1,89 @@
+2004-07-27
+21:00...
+<QuAd|Haui> oh, since when is the serve-u homepage "down"? :) and when does the new one come up?
+<]SR[ParadokS> when jezaja becomes motivated enough to put it online
+<]SR[ParadokS> =)
+<[servu-01]> -qw- knast - #ibh - any div3-5 clan prac ? #pumpkins^
+<QuAd|Haui> the old website looked great, are there gonna be big changes? :)
+<[servu-01]> -qw- Genesis-Pyta - #olw - anyone going to qhlan that drives through Nacka and could pick me up? Of course I pay :P
+<]SR[ParadokS> well the site got wiped/deleted
+<]SR[ParadokS> so it's question if and when it will even come up in same condition
+<]SR[ParadokS> :D
+<QuAd|Haui> wtf
+<QuAd|Haui> how did it get deleted?
+<]SR[ParadokS> well there was flaw in coding that allowed you to run commands on server via eggdrop. so some smartass just did rm <whatever you write> to delete everything
+<QuAd|Haui> ah
+<QuAd|Haui> and the website was on the same machine, where the bot ran? ..
+<QuAd|Haui> :/
+<QuAd|Haui> yes, i know the story with the rm command over the backtick characters :)
+<]SR[ParadokS> :p
+<slime> the funny thing is that he made the same misstake three times
+<slime> xD
+<[servu-01]> -qw- [-raket-] - #hgclan - anyone going to qhlan that lives in Nacka and want a ride to qhlan :D?
+<QuAd|Haui> last time it's rakets fault, right?
+<slime> i know of two people that ran rm -rf ~/
+<slime> raket and pulsen
+<slime> then jez recoded the bot but still left a similar hole open
+<slime> btw hi para wzp??
+<QuAd|Haui> :)
+
+
+
+
+
+2004-07-27
+21:30...
+<QuAd|Haui> btw.. how did you get a replacement so shortly after you killed jezajas broadcasting bot.. (and the website) ?
+<[-raket-]> what?
+<QuAd|Haui> serv-u was gone
+<QuAd|Haui> later "alice" came back up
+<QuAd|Haui> was it your replacement?
+<QuAd|Haui> i noticed a question over alice from you, where you asked for some more shells to host more alice-bots. :)
+<QuAd|Haui> that's why i ask
+<QuAd|Haui> muh :/
+<[-raket-]> oh alice is my bots
+<QuAd|Haui> and how did this develop? you gave jezaja the code you made and he improved it?
+<[-raket-]> donno
+<[-raket-]> i didnt make it
+<[-raket-]> hugo did
+<QuAd|Haui> hugo?
+<QuAd|Haui> who is that? :)
+<QuAd|Haui> is the code freely available? after all?
+<[-raket-]> why do u wanna know
+<[-raket-]> no it is not
+<[-raket-]> :)
+<QuAd|Haui> is there a bigger reason?
+<[-raket-]> or do you want it?
+<QuAd|Haui> hm, i asked myself, why the code isn't available
+<QuAd|Haui> i don't want it :)
+<[-raket-]> it is
+<[-raket-]> but no one has it
+<QuAd|Haui> but perhaps other guys want to make a network of their own
+<[-raket-]> :)
+<[-raket-]> but i u want it i can dcc
+<[-raket-]> yeah :)
+<[-raket-]> u want to put it online somewhere?
+<[-raket-]> i have a old version
+<[-raket-]> where !qw fp etc dont work
+<[-raket-]> only the msg thing
+<[-raket-]> :>
+<QuAd|Haui> no, wait :)
+<QuAd|Haui> i wanna be honest 
+<QuAd|Haui> jezaja wanted to GPL the code .. as it has been written some time before, when the page still did..
+<QuAd|Haui> for some reason, it didn't went GPL :)
+<QuAd|Haui> so i made my own script
+<[-raket-]> ok
+<QuAd|Haui> it's multi-network and multi-frequency capable
+<QuAd|Haui> :) so, pls don't send the code, or else someone could accuse me of stealing :)
+<[-raket-]> ok :P
+<QuAd|Haui> if it was freely available for the public, i could have a glimpse
+<[-raket-]> whatever i dont 
+<[-raket-]> i wont say to anyone
+<QuAd|Haui> but not like this :)
+<[-raket-]> wtf :)
+<QuAd|Haui> hehe
+<QuAd|Haui> well.. in broadcasting it's far more advanced
+<QuAd|Haui> but does exactly the same, at first sight
+<QuAd|Haui> ok, thx for some infos 
+<QuAd|Haui> l8er
+

+ 32 - 0
mirc/20040726_mnetextrawindow.mrc

@@ -0,0 +1,32 @@
+; --------------------------------------------------------------
+; | additional window script for mnet
+; --------------------------------------------------------------
+; | Author: Calis
+; | Version: 1.0
+; | IRC: #quadaver (Quakenet)
+; | replace the -quad- with the part your bots sends out (1)
+; | replace the nicks of the bots if they differ from those (2)
+; ---------------------------------------------------------------
+
+on ^*:TEXT:*-quad-*:#: { ; <-- here (1)
+  if ((QuaDev == $nick) || (aq2_0? iswm $nick)) { ; <-- and here (2)
+    set %mnetmsg.1 $1-
+    if (%mnetmsg.1 != %mnetmsg.2) {
+      WINDOW -e @mnet
+      ECHO @mnet $timestamp < $+ $nick $+ > $1- 
+      /mnetmsgvar
+      halt
+    }
+    elseif (%mnetmsg.1 == %mnetmsg.2) {
+      halt
+    }
+  }
+}
+
+ALIAS mnetmsgvar {
+  set %mnetmsg.2 %mnetmsg.1
+}
+
+on *:EXIT: {
+  unset %mnetmsg.*
+}

+ 74 - 0
mirc/mnetextrawindow.mrc

@@ -0,0 +1,74 @@
+; --------------------------------------------------------------- ---  --   -
+; | additional window script for mnet
+; --------------------------------------------------------------- ---  --   -
+; | Author: Calis
+; | Version: 0.9
+; | IRC: #quadaver (Quakenet)
+; | replace the -quad- with the part your bots sends out (1)
+; | replace the nicks of the bots if they differ from those (2)
+; --------------------------------------------------------------- ---  --   -
+
+;on ^*:TEXT:*-quad-*:#: { ;# <-- here (1)
+;  if ((QuaDev == $nick) || (AQ2_0? iswm $nick) || (Quadaver == $nick)) { ;# <-- and here (2)
+;    set %mnetmsg.1 $1-
+;    if (%mnetmsg.1 != %mnetmsg.2) {
+;      WINDOW -e @mnet 
+;      ECHO @mnet $timestamp $1- 
+;      /mnetmsgvar
+;      halt
+;    }
+;    elseif (%mnetmsg.1 == %mnetmsg.2) {
+;      halt
+;    }
+;  }
+;}
+
+
+on ^*:TEXT:*:#: {
+  if ((QuaDev == $nick) || (AQ2_0? iswm $nick) || (QUADAVER == $nick)) { ;# <-- here (2)
+    if (-quad- isin $1-) { ;# <-- here (1)
+      set %mnetmsg.1 $1-
+      if (%mnetmsg.1 != %mnetmsg.2) {
+        WINDOW -e @mnet
+        ECHO @mnet $timestamp $1-
+        /mnetmsgvar
+        halt
+      }
+      elseif (%mnetmsg.1 == %mnetmsg.2) {
+        halt
+      }
+    }
+    elseif (-spam- isin $1-) { ;# <-- here (1)
+      set %mnetmsg.1 $1-
+      if (%mnetmsg.1 != %mnetmsg.2) {
+        WINDOW -e @mnet
+        ECHO @mnet $timestamp $1-
+        /mnetmsgvar
+        halt
+      }
+      elseif (%mnetmsg.1 == %mnetmsg.2) {
+        halt
+      }
+    }
+    elseif (-AQ2- isin $1-) { ;# <-- here (1)
+      set %mnetmsg.1 $1-
+      if (%mnetmsg.1 != %mnetmsg.2) {
+        WINDOW -e @mnet
+        ECHO @mnet $timestamp $1-
+        /mnetmsgvar
+        halt
+      }
+      elseif (%mnetmsg.1 == %mnetmsg.2) {
+        halt
+      }
+    }
+  }
+}
+
+ALIAS mnetmsgvar {
+  set %mnetmsg.2 %mnetmsg.1
+}
+
+on *:EXIT: {
+  unset %mnetmsg.*
+}

BIN
mirc/mnetwindow.jpg


BIN
mirc/mnetwindow2.jpg


+ 51 - 0
mnet.dtd

@@ -0,0 +1,51 @@
+<!ELEMENT mnet (information?,bot+,frequency+,color)>
+<!ATTLIST mnet
+    sig (#PCDATA) #REQUIRED
+    desc (#PCDATA) #REQUIRED
+>
+
+<!ELEMENT information (contact+,text)>
+
+<!ELEMENT contact (nick,email,channel)>
+
+<!ELEMENT nick (#PCDATA)>
+<!ELEMENT email (#PCDATA)>
+<!ELEMENT channel (#PCDATA)>
+
+<!ELEMENT text (#PCDATA)>
+
+
+<!ELEMENT bot (ch+)>
+<!ATTLIST bot
+    nick (#PCDATA) #REQUIRED
+    owner (#PCDATA) #REQUIRED
+>
+
+<!ELEMENT ch (#PCDATA)>
+<!ATTLIST ch
+    name (#PCDATA) #REQUIRED
+>
+
+
+<!ELEMENT frequency (ban*)>
+<!ATTLIST frequency
+    name (#PCDATA) #REQUIRED
+    prefix (#PCDATA) #REQUIRED
+    helpmsg (#PCDATA) #REQUIRED
+    desc (#PCDATA) #REQUIRED
+    delay (#PCDATA) #IMPLIED
+>
+
+<!ELEMENT ban (#PCDATA)>
+<!ATTLIST ban
+    hostmask (#PCDATA) #REQUIRED
+    reason (#PCDATA) #REQUIRED
+>
+
+
+
+<!ELEMENT color (#PCDATA)>
+<!ATTLIST color
+    id (#PCDATA) #IMPLIED
+    optional (#PCDATA) #IMPLIED
+>

+ 1640 - 0
mnet.tcl

@@ -0,0 +1,1640 @@
+# MNET (Message Network) - Networked Broadcasting of Messages over IRC for Communities
+# Copyright (C) 2004 Paul-Dieter Klumpp
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+set configs_file "scripts/mnet_conf.tcl"
+
+#your notes:
+# - Requirements: 
+#      -> eggdrop bot  version >= 1.6.17
+#      -> using TCL  version >= 8.3
+#      -> TCLLib  version >= 1.6
+#      -> TCLXML version >= 2.6
+
+#my notes:
+# ?- aliasing of channels!
+# ?- alternative configs! backupconf..
+# ?- xml:dom!
+# ?- better http get implementation!
+# ?- korrekte Statistiken der User usw?
+# ?- wordbanning?
+
+
+# Now, hands away pls :) except you know what you are doing.
+######
+#package prefer stable
+# we need a nice tcl version
+package require Tcl 8.3
+# it's an eggdrop script, right? :)
+package require eggdrop 1.6
+# we need the tclxml package.. at least 2.6 i think
+package require xml
+# tclxml needs uri of tcllib.. at least 1.1 i think
+package require uri
+
+
+
+############ XML CONFIGURATION PARSING FOLLOWS!! WTF! :) #########
+global mnet_networks mnet_bots mnet_channels mnet_freqs mnet_bans \
+  mnet_colors mnet_colors_optional \
+  mnet_reached_users mnet_reached_chans \
+  mnet_http_config mnet_local_config \
+  mnet_histories \
+  mnet_netconfig_timer \
+  currentNetworkDesc currentNetworkSig \
+  startNetworkInstance \
+  currentBot currentOwner \
+  startBotInstance \
+  currentFreqName currentFreqPrefix currentFreqHelpmsg currentFreqDesc \
+  startFrequencyInstance \
+  botnet-nick
+
+# list
+set mnet_local_config ""
+unset mnet_local_config
+
+
+# list
+set mnet_http_config ""
+unset mnet_http_config
+
+set mnet_cfg_reload_interval 0
+# list
+#set mnet_freqs_onoff "lala lala"
+#unset mnet_freqs_onoff
+
+
+proc mnet:clean_netconfig {} {
+	global mnet_bots mnet_channels mnet_freqs mnet_bans mnet_colors mnet_networks
+	
+	# secure deletion of all config-arrays..
+	if {[array exists mnet_bots]} {
+		array unset mnet_bots
+	}
+	if {[array exists mnet_channels]} {
+		array unset mnet_channels
+	}
+	if {[array exists mnet_freqs]} {
+		array unset mnet_freqs
+	}
+	if {[array exists mnet_bans]} {
+		array unset mnet_bans
+	}
+	#if {[array exists mnet_freqs_onoff]} {
+	#	array unset mnet_freqs_onoff
+	#}
+	if {[array exists mnet_colors]} {
+		array unset mnet_colors
+	}
+	if {[array exists mnet_colors_optional]} {
+		array unset mnet_colors_optional
+	}
+	# list
+	set mnet_networks ""
+	unset mnet_networks
+
+	# list
+	set mnet_freqs "lala lala"
+	unset mnet_freqs
+
+	set mnet_bans "lala lala"
+	unset mnet_bans
+
+	# list FIXME (this kills the history upon every .mnet_reload ... :( .. not good)
+	if {[array exists mnet_histories]} {
+		array unset mnet_histories
+	}
+	set mnet_histories ""
+	unset mnet_histories
+}
+
+set p [xml::parser \
+  -elementstartcommand xmlElementStart \
+  -elementendcommand xmlElementEnd \
+  -defaultcommand xmlDefaultCmd \
+  -characterdatacommand xmlCdata \
+]
+#  -errorcommand xmlHandleError
+
+
+
+proc mnet:initvars {} {
+	global currentNetworkDesc currentNetworkSig \
+	  startNetworkInstance \
+	  currentBot currentOwner \
+	  startBotInstance \
+	  startFrequencyInstance \
+	  mnet_networks mnet_freqs mnet_bans mnet_networks_by_prefix \
+	  botnet-nick
+	  
+	  
+	  
+	set currentNetwork ""
+	set currentSig ""
+	set startNetworkInstance ""
+	set currentBot ""
+	set currentOwner ""
+	set startBotInstance ""
+	set startFrequencyInstance ""
+}
+mnet:initvars
+  
+
+
+proc xmlElementStart {tagname attlist args} {
+	global mnet_networks mnet_bots mnet_channels mnet_freqs mnet_bans \
+	  mnet_colors mnet_colors_optional \
+	  mnet_freqs_onoff \
+	  currentNetworkDesc currentNetworkSig \
+	  startNetworkInstance \
+	  currentBot currentOwner \
+	  startBotInstance \
+	  currentFreqName currentFreqPrefix currentFreqHelpmsg currentFreqDesc \
+	  startFrequencyInstance \
+	  botnet-nick
+
+	
+	set proper_botnick [mnet:proper_botnick ${botnet-nick}]
+	  
+#	putlog "mnet: attr: '$attlist' arg: '$args'"
+
+	# getting NETWORK NAME
+	if {"$tagname" == "mnet"} {
+		set currentNetworkDesc ""
+		set currentNetworkSig ""
+		foreach {key value} $attlist {
+			if {"$key" == "sig"} {
+				set currentNetworkSig $value
+			}
+			if {"$key" == "desc"} {
+				set currentNetworkDesc $value
+			}
+			if {"$currentNetworkSig" != ""} {
+				if {"$currentNetworkDesc" != ""} {
+					putlog "yo: $currentNetworkSig $currentNetworkDesc"
+					lappend mnet_networks "$currentNetworkSig" "$currentNetworkDesc"
+					set startNetworkInstance 1
+				}
+			}
+
+		}
+	}
+
+	# getting botinfos...
+	if {"$startNetworkInstance" == "1"} {
+		if {"$tagname" == "bot"} {
+			set currentBot ""
+			set currentOwner ""
+			foreach {key value} $attlist {
+				if {"$key" == "nick"} {
+					set currentBot [mnet:proper_botnick $value]
+				}
+				if {"$key" == "owner"} {
+					set currentOwner $value
+				}
+			}
+			if {"$currentBot" != ""} {
+				if {"$currentOwner" != ""} {
+					# currentbot auf 9 zeichen runter.. lowercase
+					# botnick ebenso
+					
+					lappend mnet_bots($currentNetworkSig) "$currentBot"
+					putlog "mnet: cfg: reached botcfg for: $currentBot - and my name is: $proper_botnick"
+					if {"$currentBot" == "$proper_botnick"} {
+						putlog "mnet: Oh yes, I, ${botnet-nick}, am listed for the network $currentNetworkSig by using '$currentBot'!"
+						set startBotInstance 1
+					}
+				}
+			}
+		} 
+		# end of $tagname == "bot"
+
+		if {"$startBotInstance" == "1"} {
+			if {"$tagname" == "ch"} {
+				foreach {key value} $attlist {
+					if {"$key" == "name"} {
+						putlog "test: ${value}"
+						lappend mnet_channels($currentNetworkSig,$currentBot) [mnet:proper_channelname ${value}]
+						putlog "mnet: cfg: my channels for $currentNetworkSig $mnet_channels($currentNetworkSig,$currentBot)"
+
+					}
+				}
+			}
+			# end of $tagname == "ch"
+		}
+		# end of a bot...
+
+
+		if {"$tagname" == "frequency"} {
+			set currentFreqName ""
+			set currentFreqPrefix ""
+			set currentFreqHelpmsg ""
+			set currentFreqDesc ""
+			set currentDelay "120"
+			foreach {key value} $attlist {
+				if {"$key" == "name"} {
+					set currentFreqName $value
+				}
+				if {"$key" == "prefix"} {
+					set currentFreqPrefix $value
+				}
+
+				if {"$key" == "helpmsg"} {
+					set currentFreqHelpmsg $value
+				}
+				if {"$key" == "desc"} {
+					set currentFreqDesc $value
+				}
+				if {"$key" == "delay"} {
+					set currentDelay $value
+				}
+			}
+			if {"$currentFreqName" != ""} {
+				if {"$currentFreqPrefix" != ""} {
+					if {"$currentFreqHelpmsg" != ""} {
+						if {"$currentFreqDesc" != ""} {
+
+							
+							putlog "mnet: i, ${botnet-nick}, serve the frequency: $currentFreqName ($currentFreqPrefix) of $currentNetworkSig!"
+							set startFrequencyInstance 1
+							lappend mnet_freqs($currentNetworkSig) "$currentNetworkSig" "$currentFreqName" "$currentFreqPrefix" "$currentFreqHelpmsg" "$currentFreqDesc" "$currentDelay"
+						
+
+						}
+					}
+				}
+			}
+			# end of: alle attribs vorhanden fr eine valide frequenz
+
+		}
+		# end of $tagname == "frequency"
+
+		# in element Frequency, there are bans as children.
+		if {"$startFrequencyInstance" == "1"} {
+			if {"$tagname" == "ban"} {
+				set currentBanHostmask ""
+				set currentBanReason ""
+				foreach {key value} $attlist {
+					if {"$key" == "hostmask"} {
+						set currentBanHostmask $value
+					}
+					if {"$key" == "reason"} {
+						set currentBanReason $value
+					}
+				}
+				if {"$currentBanHostmask" != ""} {
+					if {"$currentBanReason" != ""} {
+						putlog "mnet: adding ban to frequency: $currentNetworkSig, $currentFreqPrefix, $currentBanHostmask, reason: $currentBanReason"
+						lappend mnet_bans($currentNetworkSig,$currentFreqPrefix) "$currentBanHostmask" "$currentBanReason"
+					}
+				}
+			}
+		}
+
+
+		if {"$tagname" == "color"} {
+			set currentColor ""
+			set currentColorOptional ""
+			foreach {key value} $attlist {
+				if {"$key" == "id"} {
+					set currentColor $value
+					putlog "mnet: gone into colors! $value"
+				}
+				if {"$key" == "optional"} {
+					set currentColorOptional $value
+					putlog "mnet: color optional? $value"
+				}
+			}
+			
+			if {"$currentColor" != ""} {
+				set mnet_colors($currentNetworkSig) $currentColor
+				putlog "mnet: the color-id for $currentNetworkSig is: $currentColor"
+			} else {
+				# make NO color if no color-id or tag has been given:
+				set mnet_colors($currentNetworkSig) none
+			}
+			if {"$currentColorOptional" != ""} {
+				set mnet_colors_optional($currentNetworkSig) $currentColorOptional
+				putlog "mnet: the color is optional: $currentColorOptional"
+			} else {
+				set mnet_colors_optional($currentNetworkSig) 0
+				putlog "mnet: the color is NOT optional and will be forced." 
+			}
+
+		}
+
+		
+
+	}
+	
+}
+
+proc xmlElementEnd {tagname} {
+	global mnet_networks mnet_bots mnet_channels \
+	  currentNetworkDesc currentNetworkSig \
+	  startNetworkInstance \
+	  startBotInstance \
+	  startFrequencyInstance \
+	  currentBot currentOwner
+	  
+	if {"$tagname" == "mnet"} {
+		set startNetworkInstance 0
+		set currentNetworkDesc ""
+		set currentNetworkSig ""
+	}
+	if {"$tagname" == "bot"} {
+		set startBotInstance 0
+	}
+	if {"$tagname" == "frequency"} {
+		set startFrequencyInstance 0
+	}
+}
+
+
+proc xmlCdata {data} {
+#	putlog "mnet: data found: $data"
+	return 1
+}
+
+proc xmlHandleError {errorcode errormsg} {
+	putlog "mnet: some error occured: errcode $errorcode: $errormsg"
+}
+
+proc xmlDefaultCmd {data} {
+	putlog "mnet: i don't know this element: $data"
+	return 1
+}
+##################################################################
+
+
+## some internal variables for messaging and stuff :) not your business after all.
+set mnet(version) "mnet 1.011escape"
+
+set mnet_max_history 8
+
+set mnet(reached) "0"
+set mnet(reached_channels) "0"
+set mnet_reached_users(dummy) "0"
+set mnet_reached_chans(dummy) "0"
+##
+
+
+
+
+
+proc mnet:get_data {n} {
+	if {[string range $n 0 0] == "\{"} {
+		set n "\\$n"
+	}
+	return $n
+}
+
+proc mnet:proper_botnick {botnick} {
+	
+	set temp [string tolower $botnick]
+	# abfrage ob zu lang, dann fixen
+#	putlog "mnet: $botnick lowercase: $temp"
+	if {[string length $botnick] > 9} {
+		set temp [string range $temp 0 8 ]
+#		putlog "mnet: botnickname $botnick too long: capping to: $temp"
+	}
+	return $temp
+
+}
+
+proc mnet:proper_channelname {channelname} {
+	# channel names ARE NOT and SHOULD NOT BE CASE SENSITIVE!
+	set temp [string tolower $channelname]
+	set temp [mnet:umlauts $temp]
+#	putlog "mnet: $channelname lowercase: $temp"
+
+	return $temp
+}
+
+
+proc mnet:put_local_netmessage {network name chan rec_nickname rec_channel rec_text} {
+	global mnet_colors mnet_colors_optional mnet_colors_onoff
+	
+	# validating incoming vars..
+	set chan [mnet:proper_channelname $chan]
+
+	
+	if {$mnet_colors($network) == "none"} {
+	# if no color id was found...
+		set color_string ""
+	} else {
+	# if there was a color id...
+	
+		if {$mnet_colors_optional($network) == 1} {
+			# check for the channel if activated..
+			if {$mnet_colors_onoff($name,$chan) == 1} {
+				set color_string "\003$mnet_colors($network)"
+				set bold_string "\002"
+				set bold_string_end "\002"
+			} else {
+				set color_string ""
+				set bold_string ""
+				set bold_string_end ""
+			}
+		
+		} else {
+			# if not optional then force colors.. whatever :)
+			set color_string "\003$mnet_colors($network)"
+			set bold_string "\002"
+			set bold_string_end "\002"
+		}
+		
+	}
+
+	putserv "PRIVMSG $chan :${bold_string}${name}${bold_string_end} ${color_string}${rec_nickname} - ${rec_channel} : ${rec_text}"
+	putlog "mnet: + local message from $rec_nickname @ $rec_channel to $chan : $rec_text"
+
+}
+
+
+proc mnet:put_local_msg {chan text} {
+	global mnet_colors mnet_freqs_onoff
+
+	putserv "PRIVMSG $chan :$text"
+	putlog "mnet: + normal message: ${chan} => '$text'"
+
+}
+
+
+proc get_httpfile {host file port} {
+	global botnet-nick
+
+	if {[catch {set sock [socket $host $port] } sockerror]} {
+		putlog "mnet: error: $sockerror"
+		return 0 
+	} else {
+		puts $sock "GET $file HTTP/1.0"
+		puts $sock "User-Agent: Mozilla/5.0 (compatible; ${botnet-nick}; mnet.tcl)"
+		puts $sock "Host: $host"
+		puts $sock "Connection: close"
+		puts $sock ""
+		flush $sock
+		set header_done 0
+		set data ""
+		# get some strings out of the http stream.. better write them in a var.. normally.
+		while {[eof $sock] != 1} {
+			set bl [gets $sock]
+		#	putlog "test: $bl"
+			if {[string match "" $bl]} {
+			  set header_done 1
+			}
+			if {$header_done == 1} {
+				set data "$data\n$bl"
+			}
+		}
+		close $sock
+		return $data
+	}
+}
+proc get_localfile {file} {
+	global botnet-nick
+
+	set data ""
+	if {[file isfile "$file"] == 1} {
+	
+		set fh [open "$file" "r"]
+		while {![eof $fh]} {
+			set line [gets $fh]
+			append data $line
+		}
+		return $data
+		
+	} else {
+		putlog "mnet: Local configfile $file not found. Ignoring."
+	}
+}
+
+
+proc mnet:put_nick {nick msg} { 
+	putserv "NOTICE $nick :$msg" 
+}
+
+
+proc mnet:dummy {} {
+	return 0
+}
+
+#not used..
+proc mnet:kill_delaytimer {prefix chan} {
+	global mnet_delay
+	set mnet_delay($prefix,$chan) 0
+	putlog "Sending in $chan allowed again, since the timer expired"
+}
+
+
+proc mnet:put_bot {botnetnick data} {
+	set testlink [islinked $botnetnick]
+	if {$testlink == 1} {
+		putlog "mnet: put_bot: + a message delivered to $botnetnick."
+		putbot $botnetnick $data
+	} else {
+		putlog "mnet: put_bot: + a message couldn't be delivered. Bot $botnetnick is not linked"
+	}
+}
+
+proc mnet:chanstat_users {chan users} {
+	
+	set ch_users [chanlist $chan]
+	set ch_users_count [llength $ch_users]
+	
+
+	set users [expr $users + $ch_users_count]
+
+	return $users
+}
+
+proc mnet:history_queue {bucket nickname channel rec_text} {
+#mnet:history_queue $network,$name "$timestamp $rec_nickname $rec_channel $rec_text"
+	global mnet_histories mnet_max_history
+	
+	#putlog "mnet: HISTORY $nickname $channel $rec_text"
+
+	set timestamp [clock format [clock seconds] -format "%H:%M:%S"]
+	#putlog "tstamp: $timestamp"
+
+	# no clean:text needed .. already done sometime before.
+	
+	set input_history "$timestamp / $nickname - $channel : $rec_text"
+	
+#	putlog "tst: $timestamp nick: $nickname chan: $channel txt: $rec_text"
+	
+	set list_length 0
+	if {[info exists mnet_histories($bucket)] == 1} {
+		set list_length [llength $mnet_histories($bucket)]
+		putlog "listlength of mnet_histories($bucket) before: $list_length"
+	}
+	if {$list_length >= $mnet_max_history} { 
+		# $mnet_max_history 10 - 9
+		# 5= 1 4
+		#10= 1 9
+		# wenn man von 10 auf 5 wechselt: 6 9
+		set mnet_histories($bucket) [lrange $mnet_histories($bucket) [expr $list_length - $mnet_max_history + 1] [expr $list_length - 1]]
+#		putlog "grosser oder gleich 10: str: $input"
+	}
+	lappend mnet_histories($bucket) $input_history
+	
+	#set list_length [llength $mnet_histories($bucket)]
+	#putlog "listlength of mnet_histories($bucket) now: $list_length"
+
+	# define your own logging
+	if {[info procs mnet:history_logger] == "mnet:history_logger"} {
+		mnet:history_logger $bucket $nickname $channel $rec_text
+	} else {
+		putlog "mnet: procedure mnet:history_logger hasn't been defined. Do it, if you want logging."
+	}
+	
+}
+
+## procs which are executed remotely follow:
+
+proc mnet:receive_message {rec_botnick cmd rec_data} {
+	global mnet mnet_channels mnet_freqs_onoff mnet_bots \
+	  mnet_histories \
+	  botnet-nick
+	
+	#putlog "rec_data string: '$rec_data'"
+
+	# escape it to be a list FIRST.. and for output later, let the list JOIN together to a string again!
+	set rec_data [split $rec_data]
+	#putlog "rec_data list: '$rec_data'"
+	
+	set tmp_network [join [lindex $rec_data 0]]
+	set tmp_name [join [lindex $rec_data 1]]
+	#putlog "tmp_net: '$tmp_network'"
+	#putlog "tmp_nam: '$tmp_name'"
+	
+	set network [mnet:kill_spaces $tmp_network]
+	#putlog  "network: '$network'"
+	
+	set name  [mnet:kill_spaces $tmp_name]
+	#putlog  "name: '$name'"
+	
+	set rec_nickname [mnet:kill_spaces [join [lindex $rec_data 2]]]
+	#set rec_nickname [mnet:kill_spaces clean_txt [join [lrange [split $rec_data] 4 end]]]
+
+	set rec_channel  [mnet:kill_spaces [join [lindex $rec_data 3]]]
+
+	#set rec_text [mnet:clean_txt [join [lrange [split $rec_data] 4 end]]]
+
+	set rec_text [join [lrange $rec_data 4 end]]
+	#putlog "rec_text: '$rec_text'"
+	
+	set allowed [mnet:allowed_netbot $network ${rec_botnick}]
+	if {$allowed == 0} {
+		return 0
+	}
+	# now the bot is declared as a known bot.
+	
+	
+	set proper_botnick [mnet:proper_botnick ${botnet-nick}]
+	
+	putlog "mnet: + Relaying Message from: $rec_nickname @ $rec_botnick @ $rec_channel: $rec_text"
+	
+	set users 0
+	set count_channels 0
+			
+	mnet:history_queue $network,$name $rec_nickname $rec_channel $rec_text
+
+	foreach {chan} $mnet_channels($network,$proper_botnick) {
+	
+
+		if {[mnet:botonchannel $chan] == "1"} {
+
+			# erster disable/enable check
+			if {$mnet_freqs_onoff($name,$chan) == 1} {
+		  
+				incr count_channels
+	
+				set users [mnet:chanstat_users $chan $users]
+				putlog "mnet: * Remote counting $chan users: $users"
+				mnet:put_local_netmessage $network $name $chan $rec_nickname $rec_channel $rec_text
+				
+			} else {
+				putlog "mnet: + $chan has disabled $name output"
+			}
+
+		} else {
+
+			putlog "mnet: + Can't relay a message to '$chan' since I am not there."
+
+		}
+	}
+	
+	# ANSWER! SEND!
+	mnet:put_bot $rec_botnick "mnet_answer $network $name $rec_channel $users $count_channels"
+	return 0
+}
+
+proc mnet:receive_answer {rec_botnick cmd rec_data} {
+	global mnet mnet_reached_users mnet_reached_chans
+
+	# we receive a STRING in rec_data! convert into list!
+	set rec_data [split $rec_data]
+
+	# work with list (lindex, lrange) and put together to a STRING again with JOIN.
+	set network [join [lindex $rec_data 0]]
+	set name    [join [lindex $rec_data 1]]
+        set chan    [join [lindex $rec_data 2]]
+	
+        set rec_usercount [join [lindex $rec_data 3]]
+	set rec_chancount [join [lindex $rec_data 4]]
+#	set rec_text [lrange $rec_data 2 end]
+
+	# get this bots results to our global variable:
+	# FIXME: make simple userstats more accurate by sending nicknames back..
+	# done: userstats should be counted in a correct variablename .. according to network and frequency
+	#        if you don't pay attention to it, a conflict between two broadcasts counting users may appear.
+	#     $mnet_reached_chans($name,$chan) <- $mnet_reached_users($name,$chan)
+	set mnet_reached_users($name,$chan) [expr $mnet_reached_users($name,$chan) + $rec_usercount]
+	set mnet_reached_chans($name,$chan) [expr $mnet_reached_chans($name,$chan) + $rec_chancount]
+	
+	putlog "mnet: * $rec_botnick told me he sent its message to $rec_usercount people in $rec_chancount channels for $network frequency $name!"
+	#putlog "mnet: * Users reached since $name call: $mnet_reached_users($name,$chan) in channels: $mnet_reached_chans($name,$chan)"
+	
+}
+
+proc mnet:clean_braces {text} {
+	regsub -all "{" $text "" text
+	regsub -all "}" $text "" text
+	return $text
+}
+proc mnet:kill_spaces {text} {
+	regsub -all "\\s+" $text "" text 
+	return $text
+}
+proc mnet:clean_txt {text} {
+
+#	putlog "filter_A: ${text}"
+#	regsub -all "\\" $text "\\\\" text
+
+	# fixes many whitespace between words down to one space between words
+	regsub -all "\\s+" $text " " text 
+	
+	# filtering out all colorcodes (works well)
+	regsub -all "\003\[0-9\]\{1,2\},\[0-9\]\{1,2\}" $text "" text
+	regsub -all "\003\[0-9\]\{1,2\}" $text "" text
+	regsub -all "\003" $text "" text
+	
+	# filtering out BOLD text
+	regsub -all "\002" $text "" text
+	
+	# underline gets filtered too. (since +c on quakenet would suppress it ...)
+	regsub -all "\037" $text "" text
+	
+
+	# replacing like !!!!!!!!!!!!! with !!!!! (5 letters)
+	# s/(.?)\1{4,}/\1\1\1\1\1/g;
+	# - max 5 same chars in a row
+	regsub -all -nocase -expanded {(.)\1\1\1\1+} $text {\1\1\1\1\1} text
+#	putlog "test: $text"
+	
+
+	set text [string trim $text]
+#	putlog "filter_B: ${text}"
+	return $text
+
+}
+
+proc mnet:umlauts {text} {
+	# A REAL STRANGE BUG WORKAROUND WITH UMLAUTS
+	regsub -all "Ä" ${text} "Ä" text
+	regsub -all "Ü" ${text} "Ü" text
+	regsub -all "Ö" ${text} "Ö" text
+	
+	regsub -all "ä" ${text} "ä" text
+	regsub -all "ü" ${text} "ü" text
+	regsub -all "ö" ${text} "ö" text
+	
+	return ${text}
+}
+
+proc mnet:botonchannel {chan} { 
+
+	# safe "bot-knows-the-channel-and-is-in-there"-function
+	
+	if {[validchan $chan] == 1 && [botonchan $chan] == 1} {
+		return 1
+	} else {
+		return 0
+	}
+}
+			
+
+# allowcheck for public commands..
+proc mnet:allowed_channel {network name prefix nick mask chan} {
+	global mnet mnet_channels mnet_bots mnet_freqs mnet_networks_by_prefix mnet_colors \
+	  botnick botnet-nick \
+	  lastbind
+
+	# validating incoming vars
+	set chan [mnet:proper_channelname $chan]
+
+	putlog "mnet: = a command for ($prefix) triggered by $nick ($mask) in $chan"
+
+	# the command must be from a channel of "ownchannels"
+	
+	putlog "mnet: = trying if $chan is allowed in network: $network"
+	set found 0
+	set proper_botnick [mnet:proper_botnick ${botnet-nick}]
+	foreach _trigger_chan $mnet_channels($network,$proper_botnick) {
+		#putlog "mnet: = test: $_trigger_chan vs $chan"
+		if {[string compare -nocase $_trigger_chan $chan] == 0} {
+			putlog "mnet: = channel: $_trigger_chan is allowed in network: $network"
+			set found 1
+		} else {
+#			putlog "mnet: = not in list: $chan"
+		}
+	}
+	if {$found == 0} {
+		putlog "mnet: = triggering $prefix of network $network in $chan is not allowed (in my point of view)"
+		return 0
+	}
+	 
+	set snd_nick [mnet:get_data $nick]
+
+	if {![isop $nick $chan]} {
+		putlog "mnet: = allowed in $chan, but $nick is no op"
+		mnet:put_nick $nick "Sorry $nick, you need to be op."
+		return 0
+	}
+	if {$nick == $botnick} {
+		# no recursion :)
+		return 0
+	}
+	
+	
+	# got through all checks .. so it's an OK channel
+	return 1
+}
+
+# checks if the user is allowed, returns 1 if OK.
+# checks against the xml config of the banned ones.
+proc mnet:allowed_user {network name prefix nick mask chan} {
+	global mnet mnet_channels mnet_bots mnet_bans mnet_networks_by_prefix mnet_colors \
+	  botnick botnet-nick \
+	  lastbind
+
+	# validating incoming vars
+	set chan [mnet:proper_channelname $chan]
+
+	# does mnet_bans even exist? it's optional after all.
+	if {[info exists mnet_bans($network,$prefix)] == 1} {
+		putlog "mnet: = a command for ($prefix) triggered by $nick ($mask) in $chan"
+	
+		# the command must be from a channel of "ownchannels"
+		
+		putlog "mnet: = trying if $nick ($mask) banned from frequency: $network,$prefix"
+		set found 0
+		foreach {hostmask reason} $mnet_bans($network,$prefix) {
+			if {[string match [string tolower $hostmask] [string tolower $mask]]} {
+				putlog "mnet: = allowed_user: $nick ($mask) is not allowed in network ($network) by hostmask ($hostmask) for reason: $reason"
+				set found 1
+			} else {
+	#			putlog "mnet: = not in list: $chan"
+			}
+		}
+		if {$found == 1} {
+			# tell the user his ban. :)
+			mnet:put_nick $nick "mnet: Not allowed to send messages. Reason: $reason"
+			return 0
+		}
+	}
+	# got through all checks .. so user is not in banlist
+	return 1
+}
+
+
+
+# allowcheck for bots sending netmessages
+proc mnet:allowed_netbot {network netbot} {
+	global mnet mnet_bots \
+	  botnick botnet-nick \
+	  lastbind
+
+	putlog "mnet: = a netbot $netbot sending message... allowed?"
+
+	# the command must be from a channel of "ownchannels"
+	
+	set found 0
+	set proper_botnick [mnet:proper_botnick ${botnet-nick}]
+	set proper_netbot [mnet:proper_botnick $netbot]
+	
+	foreach {_netbotnick} $mnet_bots($network) {
+		if {$_netbotnick == $proper_netbot} {
+			putlog "mnet: = netbot: $proper_netbot is allowed in network: $network"
+			set found 1
+		} else {
+#			putlog "mnet: = netbot: ...."
+		}
+	}
+	if {$found == 0} {
+		putlog "mnet: = $proper_netbot of network $network sent me something - but it is not allowed in my network: $network"
+		return 0
+	}
+	 
+	if {$netbot == ${botnet-nick}} {
+		# if myself (for some reason) then don't do anything... no recursion :)
+		return 0
+	}
+	
+	
+	# got through all checks .. so it's an OK netbot for a given network
+	return 1
+}
+
+
+
+proc mnet:reply_timeout {name chan} {
+	global mnet mnet_reached_users mnet_reached_chans
+	
+	# clean $name and $chan
+	set name [mnet:kill_spaces $name]
+	set chan [mnet:kill_spaces $chan]
+	
+	# easify variables
+	set users $mnet_reached_users($name,$chan)
+	set chans $mnet_reached_chans($name,$chan)
+
+	#putlog "mnet: HIER $name UND $chan"
+	# inzwischen drfte auch die antwort gekommen sein.. also jetzt mnet_reached_* auswerten nach timeout..
+	
+	# make stats channel-dependent
+	putlog "mnet: * After ALL: Count_Users: $mnet_reached_users($name,$chan) Count_Channels: $mnet_reached_chans($name,$chan)"
+	
+	# Give me some reply.
+	mnet:put_local_msg ${chan} "mnet: Message sent to $users users in $chans channels."
+}
+
+
+### public reachable commands
+proc mnet:history_frequency {nick mask hand chan text} {
+# proc triggered by specified $prefix_history
+	global mnet mnet_channels mnet_bots mnet_networks_by_prefix mnet_colors \
+	  mnet_freqs mnet_freqs_onoff \
+	  mnet_histories mnet_max_history \
+	  botnick lastbind
+
+	set com $lastbind
+
+	# validating incoming vars
+	set chan [mnet:proper_channelname $chan]
+	
+	# cutting .prefix_history down to .prefix
+	set prefix [string range $com 0 [expr [string first _ $com] -1]]
+	#putlog "mnet: the prefix is $prefix"
+
+	set network [join [lindex $mnet_networks_by_prefix($prefix) 0]]
+	set name [join [lindex $mnet_networks_by_prefix($prefix) 1]]
+	set help [join [lindex $mnet_networks_by_prefix($prefix) 2]]
+	set desc [join [lindex $mnet_networks_by_prefix($prefix) 3]]
+
+	putlog "network: $network"
+	set allowed [mnet:allowed_channel $network $name $prefix $nick $mask $chan]
+	if {$allowed == 0} {
+		return 0
+	}
+	# now generally allowed.
+	putlog "mnet_history: $com triggered by $nick in $chan"
+	if {[info exists mnet_histories($network,$name)] == 1} {
+		set list_length [llength $mnet_histories($network,$name)]
+		if {$list_length >= 1} {
+			set msg "mnet: last $mnet_max_history messages of $network $name:"
+			mnet:put_nick $nick $msg
+
+		
+			set x_count 0
+			foreach {msg} $mnet_histories($network,$name) {
+				incr x_count
+				set backwards_x [expr $list_length - $x_count]
+				set msg [lindex $mnet_histories($network,$name) $backwards_x]
+				mnet:put_nick $nick "($x_count/$list_length) $msg"
+		
+			}
+		} 
+	} else {
+		mnet:put_nick $nick "mnet: no accumulated history for $network $name"
+	}
+}
+
+proc mnet:enable_frequency {nick mask hand chan text} {
+# proc triggered by specified $prefix_enable
+	global mnet mnet_channels mnet_bots mnet_networks_by_prefix mnet_colors \
+	  mnet_freqs mnet_freqs_onoff \
+	  botnick lastbind
+
+	set com $lastbind
+	
+	# validating incoming vars
+	set chan [mnet:proper_channelname $chan]
+	
+
+	# cutting .prefix_enable down to .prefix
+	set prefix [string range $com 0 [expr [string first _ $com] -1]]
+	#putlog "mnet: the prefix is $prefix"
+
+	set network [join [lindex $mnet_networks_by_prefix($prefix) 0]]
+	set name [join [lindex $mnet_networks_by_prefix($prefix) 1]]
+	set help [join [lindex $mnet_networks_by_prefix($prefix) 2]]
+	set desc [join [lindex $mnet_networks_by_prefix($prefix) 3]]
+
+	#putlog "network: $network"
+	set allowed [mnet:allowed_channel $network $name $prefix $nick $mask $chan]
+	if {$allowed == 0} {
+		return 0
+	}
+	# now generally allowed.
+	
+	
+	putlog "mnet_freq_status: before $mnet_freqs_onoff($name,$chan)"
+	set mnet_freqs_onoff($name,$chan) 1
+	putlog "mnet_freq_status: now $mnet_freqs_onoff($name,$chan)"
+	
+	mnet:put_local_msg $chan "mnet: $name _output_ enabled for $chan"
+	
+}
+
+proc mnet:disable_frequency {nick mask hand chan text} {
+# proc triggered by specified $prefix_enable
+	global mnet mnet_channels mnet_bots mnet_networks_by_prefix mnet_colors \
+	  mnet_freqs mnet_freqs_onoff \
+	  botnick lastbind
+
+	set com $lastbind
+	
+	# validating incoming vars
+	set chan [mnet:proper_channelname $chan]
+
+	# cutting .prefix_enable down to .prefix
+	set prefix [string range $com 0 [expr [string first _ $com] -1]]
+	putlog "mnet: the prefix is $prefix"
+
+	set network [join [lindex $mnet_networks_by_prefix($prefix) 0]]
+	set name [join [lindex $mnet_networks_by_prefix($prefix) 1]]
+	set help [join [lindex $mnet_networks_by_prefix($prefix) 2]]
+	set desc [join [lindex $mnet_networks_by_prefix($prefix) 3]]
+
+	#putlog "network: $network"
+	set allowed [mnet:allowed_channel $network $name $prefix $nick $mask $chan]
+	if {$allowed == 0} {
+		return 0
+	}
+	# now generally allowed.
+
+	
+	putlog "mnet_freq_status: before $mnet_freqs_onoff($name,$chan)"
+	set mnet_freqs_onoff($name,$chan) 0
+	putlog "mnet_freq_status: now $mnet_freqs_onoff($name,$chan)"
+	
+	mnet:put_local_msg $chan "mnet: $name _output_ disabled for $chan"
+	
+}
+
+proc mnet:toggle_frequency {nick mask hand chan text} {
+# proc triggered by specified $prefix_toggle
+	global mnet mnet_channels mnet_bots mnet_networks_by_prefix \
+	  mnet_colors \
+	  mnet_freqs mnet_freqs_onoff \
+	  botnick lastbind
+	
+	set com $lastbind
+
+	# validating incoming vars
+	set chan [mnet:proper_channelname $chan]
+
+
+	# cutting .prefix_enable down to .prefix
+	set prefix [string range $com 0 [expr [string first _ $com] -1]]
+	# putlog "mnet: the prefix is $prefix"
+
+	set network [join [lindex $mnet_networks_by_prefix($prefix) 0]]
+	set name [join [lindex $mnet_networks_by_prefix($prefix) 1]]
+	set help [join [lindex $mnet_networks_by_prefix($prefix) 2]]
+	set desc [join [lindex $mnet_networks_by_prefix($prefix) 3]]
+
+	# putlog "network: $network"
+	set allowed [mnet:allowed_channel $network $name $prefix $nick $mask $chan]
+	if {$allowed == 0} {
+		return 0
+	}
+	# now generally allowed.
+
+	
+	putlog "mnet_freq_status: toggle $mnet_freqs_onoff($name,$chan)"
+	if {$mnet_freqs_onoff($name,$chan) == 1} {
+		set mnet_freqs_onoff($name,$chan) 0
+		mnet:put_local_msg $chan "mnet: toggling ${name} _output_, now disabled for ${chan}"
+	} else {
+		set mnet_freqs_onoff($name,$chan) 1
+		mnet:put_local_msg $chan "mnet: toggling ${name} _output_, now enabled for ${chan}"
+	}
+	putlog "mnet_freq_status: toggle now $mnet_freqs_onoff($name,$chan)"
+	
+	# frequency toggled .. :)
+	
+}
+
+#mnet:enable_color
+proc mnet:enable_color {nick mask hand chan text} {
+# proc triggered by specified $prefix_enable
+	global mnet mnet_channels mnet_bots mnet_networks_by_prefix \
+	  mnet_colors_optional mnet_colors_onoff \
+	  botnick lastbind
+
+	set com $lastbind
+	
+	# validating incoming vars
+	set chan [mnet:proper_channelname $chan]
+
+	# cutting .prefix_enable down to .prefix
+	set prefix [string range $com 0 [expr [string first _ $com] -1]]
+	#putlog "mnet: the prefix is $prefix"
+
+	set network [join [lindex $mnet_networks_by_prefix($prefix) 0]]
+	set name [join [lindex $mnet_networks_by_prefix($prefix) 1]]
+	set help [join [lindex $mnet_networks_by_prefix($prefix) 2]]
+	set desc [join [lindex $mnet_networks_by_prefix($prefix) 3]]
+
+	#putlog "network: $network"
+	set allowed [mnet:allowed_channel $network $name $prefix $nick $mask $chan]
+	if {$allowed == 0} {
+		return 0
+	}
+	# now generally allowed.
+	if {$mnet_colors_optional($network) != 1} {
+		return 0
+	}
+
+	putlog "mnet_color_status: before $mnet_colors_onoff($name,$chan)"
+	set mnet_colors_onoff($name,$chan) 1
+	putlog "mnet_color_status: now $mnet_colors_onoff($name,$chan)"
+	
+	mnet:put_local_msg $chan "mnet: $name _coloroutput_ enabled for $chan"
+}
+
+#mnet:disable_color
+proc mnet:disable_color {nick mask hand chan text} {
+# proc triggered by specified $prefix_enable
+	global mnet mnet_channels mnet_bots mnet_networks_by_prefix \
+	  mnet_colors_optional mnet_colors_onoff \
+	  botnick lastbind
+
+	set com $lastbind
+
+	# validating incoming vars
+	set chan [mnet:proper_channelname $chan]
+
+	# cutting .prefix_enable down to .prefix
+	set prefix [string range $com 0 [expr [string first _ $com] -1]]
+	#putlog "mnet: the prefix is $prefix"
+
+	set network [join [lindex $mnet_networks_by_prefix($prefix) 0]]
+	set name [join [lindex $mnet_networks_by_prefix($prefix) 1]]
+	set help [join [lindex $mnet_networks_by_prefix($prefix) 2]]
+	set desc [join [lindex $mnet_networks_by_prefix($prefix) 3]]
+
+	#putlog "network: $network"
+	set allowed [mnet:allowed_channel $network $name $prefix $nick $mask $chan]
+	if {$allowed == 0} {
+		return 0
+	}
+	# now generally allowed.
+	if {$mnet_colors_optional($network) != 1} {
+		return 0
+	}
+
+	putlog "mnet_color_status: before $mnet_colors_onoff($name,$chan)"
+	set mnet_colors_onoff($name,$chan) 0
+	putlog "mnet_color_status: now $mnet_colors_onoff($name,$chan)"
+	
+	mnet:put_local_msg $chan "mnet: $name _coloroutput_ disabled for $chan"
+}
+
+
+#mnet:toggle_color
+proc mnet:toggle_color {nick mask hand chan text} {
+# proc triggered by specified $prefix_toggle
+	global mnet mnet_channels mnet_bots mnet_networks_by_prefix \
+	  mnet_colors_optional mnet_colors_onoff \
+	  botnick lastbind
+
+	set com $lastbind
+	
+	# validating incoming vars
+	set chan [mnet:proper_channelname $chan]
+
+
+	# cutting .prefix_enable down to .prefix
+	set prefix [string range $com 0 [expr [string first _ $com] -1]]
+	# putlog "mnet: the prefix is $prefix"
+
+	set network [join [lindex $mnet_networks_by_prefix($prefix) 0]]
+	set name [join [lindex $mnet_networks_by_prefix($prefix) 1]]
+	set help [join [lindex $mnet_networks_by_prefix($prefix) 2]]
+	set desc [join [lindex $mnet_networks_by_prefix($prefix) 3]]
+
+	# putlog "network: $network"
+	set allowed [mnet:allowed_channel $network $name $prefix $nick $mask $chan]
+	if {$allowed == 0} {
+		return 0
+	}
+	# now generally allowed.
+	if {$mnet_colors_optional($network) != 1} {
+		return 0
+	}
+
+	
+	putlog "mnet_color_status: toggle $mnet_colors_onoff($name,$chan)"
+	if {$mnet_colors_onoff($name,$chan) == 1} {
+		set mnet_colors_onoff($name,$chan) 0
+		mnet:put_local_msg $chan "mnet: toggling ${name} _coloroutput_, now disabled for ${chan}"
+	} else {
+		set mnet_colors_onoff($name,$chan) 1
+		mnet:put_local_msg $chan "mnet: toggling ${name} _coloroutput_, now enabled for ${chan}"
+	}
+	putlog "mnet_color_status: toggle now $mnet_colors_onoff($name,$chan)"
+	
+	# color for a channel toggled .. :)
+	
+}
+
+
+#mnet:toggle_color
+proc mnet:status_frequency {nick mask hand chan text} {
+# proc triggered by specified $prefix_toggle
+	global mnet mnet_channels mnet_bots mnet_networks_by_prefix \
+	  mnet_colors_optional mnet_colors_onoff \
+	  mnet_freqs_onoff \
+	  mnet_reached_users mnet_reached_chans \
+	  botnick lastbind
+
+	set com $lastbind
+	
+	# validating incoming vars
+	set chan [mnet:proper_channelname $chan]
+
+	# cutting .prefix_enable down to .prefix
+	set prefix [string range $com 0 [expr [string first _ $com] -1]]
+	# putlog "mnet: the prefix is $prefix"
+
+	set network [join [lindex $mnet_networks_by_prefix($prefix) 0]]
+	set name [join [lindex $mnet_networks_by_prefix($prefix) 1]]
+	set help [join [lindex $mnet_networks_by_prefix($prefix) 2]]
+	set desc [join [lindex $mnet_networks_by_prefix($prefix) 3]]
+
+	# putlog "network: $network"
+	set allowed [mnet:allowed_channel $network $name $prefix $nick $mask $chan]
+	if {$allowed == 0} {
+		return 0
+	}
+	# now generally allowed.
+	
+	## get status for this frequency.
+	set status_message "$chan $name: "
+	
+	if {$mnet_freqs_onoff($name,$chan) == 1} {
+			append status_message "frequency output is on. "
+		
+	} else {
+			append status_message "frequency output is off. "
+	}
+
+	if {$mnet_colors_optional($network) == 1} {
+		if {$mnet_colors_onoff($name,$chan) == 1} {
+			append status_message "colors are turned on. "
+		} else {
+			append status_message "colors are turned off. "
+		}
+		
+	} else {
+		append status_message "message-colors are forced. "
+	}
+	
+	if {[info exists mnet_reached_users($name,$chan)]} {
+		if {[info exists mnet_reached_chans($name,$chan)]} {
+			append status_message "Your last message reached about $mnet_reached_users($name,$chan) users and $mnet_reached_chans($name,$chan) channels. "
+		}
+	}
+
+	
+	mnet:put_local_msg $chan "$status_message"
+
+
+}
+
+
+
+# checks timers of channels ... if not found, then ok with "0" secs left.. if found then return $secsleft
+proc mnet:check_spam_protection {prefix chan} {
+	global mnet_delay
+	
+	# validating incoming vars
+	set chan [mnet:proper_channelname $chan]
+
+	# check for pending timers.. spam-protection
+	set timerlist [utimers]
+	set secondsLeft 0
+	if {![info exists mnet_delay($prefix,$chan)]} {
+		set mnet_delay($prefix,$chan) 0
+	} else {
+		foreach {timerinfo} $timerlist {
+		
+			set secsleft [join [lindex $timerinfo 0]]
+			set timer_id [join [lindex $timerinfo 2]]
+		
+	#		putlog "sec: $secsleft tid: $timer_id"
+	#		putlog "checking timer ($timer_id) against mdelay-id: $mnet_delay($prefix,$chan)"
+			if {$timer_id == $mnet_delay($prefix,$chan)} {
+				return $secsleft
+			}
+		}
+	}
+	return 0
+}		
+
+
+proc mnet:messaging_public {nick mask hand chan text} {
+# proc triggered by specified $prefix and calling the following (internal) one
+	global mnet mnet_channels mnet_bots mnet_networks_by_prefix mnet_colors \
+	  mnet_freqs mnet_freqs_onoff mnet_delay \
+	  mnet_histories \
+	  mnet_reached_users mnet_reached_chans \
+	  botnet-nick lastbind
+	
+	# validating incoming vars
+	set chan [mnet:proper_channelname $chan]
+	
+	set prefix $lastbind
+
+	# $mnet_networks_by_prefix($prefix) is already a list! Don't split it! But work with lindex and lrange on it! later: JOIN it to a string.
+	set my_network_entry $mnet_networks_by_prefix($prefix)
+
+	set network	[join [lindex $my_network_entry 0]]
+	set name	[join [lindex $my_network_entry 1]]
+	set help	[join [lindex $my_network_entry 2]]
+	set desc	[join [lindex $my_network_entry 3]]
+	set delay	[join [lindex $my_network_entry 4]]
+
+	set allowed [mnet:allowed_channel $network $name $prefix $nick $mask $chan]
+	if {$allowed == 0} {
+		return 0
+	}
+	# now generally allowed.
+
+	# is user banned from sending??
+	set user_allowed [mnet:allowed_user $network $name $prefix $nick $mask $chan]
+	if {$user_allowed == 0} {
+		return 0
+	}
+	# user has not been matched against banlist. So he's allowed here.
+
+	
+	
+	# cleaning given strings...
+	set text [mnet:clean_txt $text]
+
+	# check here if we have some text or not.. :)
+	if {$text == "" || $text == "{}"} {
+	
+		# output some help:
+		putlog  "mnet: = gave him some help"
+		mnet:put_local_msg $chan $help
+
+	} else {
+		# ok, now send! (if timer allows it)
+		
+		### spamprotection
+		# returns the seconds that are left for this channel .. or 0 if no seconds left.
+		set secsleft [mnet:check_spam_protection $prefix $chan]
+		if {$secsleft > 0} { 
+			putlog "mnet: The timer of $prefix for $chan is still running. The guy has to wait ($secsleft/$delay) more seconds. I tell him."
+			mnet:put_nick $nick "Sorry $nick, usage of $prefix only every $delay seconds. $secsleft seconds for $chan remaining."
+			# now BREAK "messaging_public".
+			# NO break.. for debug :)) arf
+			return 0
+		}
+		# if we went through the timer check ... so it doesn't exist anymore then we set a new one:
+		# set a timer-id to check for again, if it's allowed or not .. delay
+		set mnet_delay($prefix,$chan) [utimer $delay mnet:dummy]
+		### end spamprotection
+		
+		## HE IS SENDING NOW!
+		
+		set mnet(reached) "0"
+		set mnet(reached_channels) "0"
+
+		# reset stats .. because he is just freshly sending
+		set mnet_reached_users($name,$chan) "0"
+		set mnet_reached_chans($name,$chan) "0"
+
+		mnet:history_queue $network,$name $nick $chan $text
+		
+		# send them first, we await a reply!
+
+		set proper_botnick [mnet:proper_botnick ${botnet-nick}]
+#		putlog "{botnet-nick} huar: $proper_botnick"
+
+		# single sends TO ALL REMOTE BOTS with their remote CHANNELS...
+		# let's see which mode for sending is used...
+		foreach _botnick $mnet_bots($network) {
+			if {$_botnick == $proper_botnick} {
+		
+			} else { # if not myself!
+
+				putlog "mnet: send: + I am about to send a message to $_botnick for $network: $name: $text"
+				# safe put_bot function..
+				mnet:put_bot $_botnick "mnet_receive $network $name $nick $chan $text"
+				
+			}
+		}
+
+		
+		# SEND TO ALL OWN CHANNELS...
+		# send to all own channels, except to the channel the message originating from:
+		foreach _ownchan $mnet_channels($network,$proper_botnick) {
+			if {$_ownchan == $chan} {
+			
+			} else { # if not own channel!
+
+				if {[mnet:botonchannel $_ownchan] == "1"} {
+					
+					putlog "mnet: = i am on $_ownchan"
+
+					# second enable/disable check
+					if {$mnet_freqs_onoff($name,$_ownchan) == 1} {
+					
+						# userstats local
+#						set mnet(reached) [mnet:chanstat_users $_ownchan $mnet(reached)]
+						set mnet_reached_users($name,$chan) [mnet:chanstat_users $_ownchan $mnet_reached_users($name,$chan)]
+						
+						putlog "mnet: * Localcounting up $_ownchan users: $mnet_reached_users($name,$chan)"
+	
+						# channel count local
+						incr mnet_reached_chans($name,$chan)
+	
+						mnet:put_local_netmessage $network $name $_ownchan $nick $chan $text
+					} else {
+						putlog "mnet: + $_ownchan has disabled $name output"
+					}
+
+				} else {
+
+					putlog "mnet: + Can't send a local message to '$_ownchan' since I am not there."
+
+				}
+			}
+		}
+	
+		# wait here some more! (10 seconds with utimer)
+		utimer 5 "mnet:reply_timeout $name $chan"
+
+		# notice: better would be to go into the "reply" when all known bots already answered..
+		# then, if a bot is missing, but it was a known bot, just use a timeout with about 5-10 seconds..
+		# if the bot still didn't answer, then just go into "reply".
+	
+	}
+
+}
+### END public reachable commands
+
+
+
+proc mnet:binds {} {
+	global currentNetworkDesc currentNetworkSig \
+	  startNetworkInstance \
+	  currentBot currentOwner \
+	  startBotInstance \
+	  mnet_networks mnet_freqs mnet_networks_by_prefix mnet_channels \
+	  mnet_freqs_onoff mnet_colors_onoff \
+	  botnet-nick
+
+	
+	set proper_botnick [mnet:proper_botnick ${botnet-nick}]
+	# binding of irc commands ... only works well if a config was loaded..
+	foreach {network desc} $mnet_networks {
+#		putlog "test: network is $network"
+#		putlog "test: networkdesc is $desc"
+		
+		foreach {network name prefix help desc msgdelay} $mnet_freqs($network) {
+		
+			putlog "network: $network"
+			putlog "name: $name"
+			putlog "prefix: $prefix"
+			putlog "help: $help"
+			putlog "desc: $desc"
+			putlog "msgdelay: $msgdelay"
+			
+			set mnet_networks_by_prefix($prefix) "{$network} {$name} {$help} {$desc} {$msgdelay}"
+			
+			# setting variables on init.
+			foreach {channel} $mnet_channels($network,$proper_botnick) {
+				# catch like php isset() - but catch returns 0 if OK!
+				set channel [mnet:proper_channelname $channel]
+				if {[catch {set mnet_freqs_onoff($name,$channel)}] == 1} {
+					set mnet_freqs_onoff($name,$channel) 1
+					putlog "mnet: initially enabling $name for channel: $channel"
+				} else {
+					putlog "mnet: $name for $channel is already on output: $mnet_freqs_onoff($name,$channel)"
+				}
+				
+			
+				# catch like php isset() - but catch returns 0 if OK!
+				if {[catch {set mnet_colors_onoff($name,$channel)}] == 1} {
+					set mnet_colors_onoff($name,$channel) 0
+					putlog "mnet: initially disabling colors for $name for channel (if not forced): $channel"
+				} else {
+					putlog "mnet: coloroutput of $name for $channel is already on (if not forced): $mnet_colors_onoff($name,$channel)"
+				}
+			}
+				
+			
+			bind pub - ${prefix} 		mnet:messaging_public
+			# $network $name $prefix $help $desc
+			bind pub - ${prefix}_enable	mnet:enable_frequency
+			bind pub - ${prefix}_disable	mnet:disable_frequency
+			bind pub - ${prefix}_toggle	mnet:toggle_frequency
+
+			bind pub - ${prefix}_enable_colors	mnet:enable_color
+			bind pub - ${prefix}_disable_colors	mnet:disable_color
+			bind pub - ${prefix}_toggle_colors	mnet:toggle_color
+			# with typos..
+			bind pub - ${prefix}_enable_color	mnet:enable_color
+			bind pub - ${prefix}_disable_color	mnet:disable_color
+			bind pub - ${prefix}_toggle_color	mnet:toggle_color
+			
+			bind pub - ${prefix}_history	mnet:history_frequency
+
+			bind pub - ${prefix}_status	mnet:status_frequency
+			
+			bind pub - .mnet_status		mnet:dummy
+			# FIXME: make some more commands available to have control over the messages
+			# - "_stats"?
+		
+		}
+	
+	
+	}
+}
+bind bot - mnet_receive		mnet:receive_message	
+bind bot - mnet_answer		mnet:receive_answer
+bind dcc m mnet_reload		mnet:dcc_configload
+
+proc mnet:conf_parsing {} {
+	global mnet_config mnet_num_configs p
+	
+	for {set y 1} {$y <= $mnet_num_configs} {incr y} {
+		set configfile $mnet_config($y)
+#		putlog "HRM?: $configfile"
+		$p parse "$configfile"
+	}
+	
+}
+
+proc mnet:dcc_configload {dummy1 dummy2 dummy3} {
+	# wrapper command for mnet:netconfigload
+	putlog "mnet: = reloading configs..."
+	mnet:clean_netconfig
+	mnet:netconfigload
+}
+proc mnet:netconfigload {} {
+	global mnet_http_config mnet_local_config mnet_config mnet_num_configs
+
+	
+
+	# possible methods to load a config are: get_httpfile and get_localfile
+	# get_httpfile 
+	# get_localfile RELATIVE_PATH_AND_FILE
+	set x 0
+	if {[info exists mnet_http_config]} {
+		foreach {host httpfile port} $mnet_http_config {
+			# FIXME config validating.. is the file received correctly? or do
+			# we only have a 404 error message there? ... bad thing still.
+			incr x
+			set mnet_config($x) [get_httpfile $host $httpfile $port]
+		}
+	}
+	
+	if {[info exists mnet_local_config]} {
+		foreach {localfile} $mnet_local_config {
+			# FIXME config validating.. could we open the file?
+			# is the file a correct config?
+			incr x
+			set mnet_config($x) [get_localfile $localfile]
+		}
+	}
+	# $x is now at its highest count.
+	
+	set mnet_num_configs $x
+	
+	if {$x > 0} {
+		utimer 5 mnet:conf_parsing
+		utimer 10 mnet:binds
+	} else {
+		putlog "mnet: no configurations loaded."
+	}
+}
+
+# looping this one
+proc mnet:interval_conf {} {
+	global mnet_cfg_reload_interval mnet_configtimer_set mnet_netconfig_timer
+	
+#	putlog "mnet: interval conf! $mnet_configtimer_set huh?"
+	
+	if {$mnet_configtimer_set == 1} {
+		putlog "mnet: starting intervalled configload ($mnet_cfg_reload_interval minutes)"
+		mnet:clean_netconfig
+		mnet:netconfigload
+		set mnet_netconfig_timer [timer $mnet_cfg_reload_interval mnet:interval_conf]
+	} else {
+		putlog "mnet: was about to make a automatic configload again, but it has been disabled recently."
+	}
+}
+
+############# CONFIG SECTION ##############
+### the real config section is supposed to be here... 
+if {[info exists configs_file]} {
+	if {[file isfile "$configs_file"] == 1} {
+		source $configs_file
+		putlog "mnet: configs file '$configs_file' loaded."
+	}
+} 
+############# CONFIG SHOULD NOW BE LOADED ONTO THE VARIABLES ##############
+
+
+# pls hands away again: starting up just defined configs ...
+putlog "mnet: = Messaging Network ($mnet(version)) loaded"
+putlog "mnet: =  as master, reload current net-configs with .mnet_reload"
+putlog "mnet: =  do .rehash and .mnet_reload if you defined a new net-config."
+if {$mnet_cfg_reload_interval >= 90} {
+	if {![info exists mnet_netconfig_timer]} {
+		set mnet_configtimer_set 1
+		mnet:interval_conf
+		# this one loops
+	}
+} else {
+	if {[info exists mnet_netconfig_timer]} {
+		set mnet_configtimer_set 0
+		killtimer $mnet_netconfig_timer
+		unset mnet_netconfig_timer
+	}
+	set mnet_cfg_reload_interval 0
+	mnet:clean_netconfig
+	mnet:netconfigload
+}

+ 329 - 0
mnet_admin.tcl

@@ -0,0 +1,329 @@
+# MNET (Message Network) - Networked Broadcasting of Messages over IRC for Communities
+# Administration Script
+# Copyright (C) 2004 Paul-Dieter Klumpp
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+set admin_channels {"#messagenet" "#quad.dev" "#qwnet"}
+set mnet_admin_version "Mnet!1.012trylink"
+
+
+# allowcheck for admin commands..
+proc mnet:admin_allowed_channel {nick mask hand chan admin_channels} {
+	global botnick botnet-nick lastbind 
+
+
+	putlog "mnet! = an admin command triggered triggered by $nick ($mask) in $chan"
+
+	# the command must be from a channel of "ownchannels"
+	
+	putlog "mnet! = trying if $chan is an admin-channel"
+	set found 0
+	set proper_botnick [mnet:proper_botnick ${botnet-nick}]
+	foreach _try_chan $admin_channels {
+		if {[string compare -nocase ${chan} ${_try_chan}] == 0} {
+			putlog "mnet! = channel: ${chan} is allowed to administrate mnet on this bot"
+			set found 1
+		} else {
+#			putlog "mnet: = not in list: $chan"
+		}
+	}
+	if {$found == 0} {
+		putlog "mnet! = administration on ${chan} on this bot is not allowed"
+		return 0
+	}
+	 
+	if {![isop ${nick} ${chan}]} {
+		putlog "mnet! = allowed in ${chan}, but $nick is no op"
+		mnet:put_nick ${nick} "Sorry $nick, you are not an administrator here."
+		return 0
+	}
+	if {${nick} == ${botnick}} {
+		# no recursion :)
+		return 0
+	}
+	
+	
+	# got through all checks .. so it's an OK channel
+	return 1
+}
+
+proc mnet:admin_check_addchannel {nick channel} {
+
+	if {[botonchan ${channel}] == 1} {
+		mnet:put_nick ${nick} "Mnet! I added myself to the channel ${channel}"
+		putlog "Mnet! I added myself to the channel ${channel}"
+	} else {
+		mnet:put_nick ${nick} "Mnet! I tried to add myself to the channel ${value} - but failed! Pls check."
+		putlog "Mnet! I tried to add myself to the channel ${value} - but failed! Pls check."
+	}
+}
+
+proc mnet:admin_rehash {nick mask hand chan text} {
+	global admin_channels botnet-nick
+	
+	set proper_botnick [mnet:proper_botnick ${botnet-nick}]
+	
+	set allowed [mnet:admin_allowed_channel $nick $mask $hand $chan $admin_channels]
+	if {$allowed == 0} {
+		return 0
+	}
+	
+	# rehash the bot... be sure the scripts are coded correctly!! or the bot will DIE!
+	rehash
+	mnet:put_nick ${nick} "Mnet! \"${proper_botnick}\" has rehashed and thus reloaded the mnet.tcl"
+
+}
+
+proc mnet:admin_version {nick mask hand chan text} {
+	global admin_channels botnet-nick mnet_admin_version mnet
+	
+	set proper_botnick [mnet:proper_botnick ${botnet-nick}]
+	
+	set allowed [mnet:admin_allowed_channel $nick $mask $hand $chan $admin_channels]
+	if {$allowed == 0} {
+		return 0
+	}
+	
+	# tells version
+	mnet:put_nick ${nick} "Mnet! \"${proper_botnick}\" Admin: $mnet_admin_version and Mnet is: $mnet(version)"
+}
+
+proc mnet:admin_channelinfo {nick mask hand chan text} {
+	global admin_channels botnet-nick
+	
+	set proper_botnick [mnet:proper_botnick ${botnet-nick}]
+
+	set allowed [mnet:admin_allowed_channel $nick $mask $hand $chan $admin_channels]
+	if {$allowed == 0} {
+		return 0
+	}
+	
+	# tell channel infos
+	set chanlist [channels]
+	set chan_count [llength $chanlist]
+
+	set output ""
+	foreach _try_chan ${chanlist} {
+		set userlist [chanlist ${_try_chan}]
+		set usercount [llength ${userlist}]
+		if {${usercount} == 0} {
+			# no users! someone banned us!
+			set output "${output}\00313${_try_chan} ${usercount}\003, "
+		} elseif {${usercount} <= 3} {
+			# toooo few users .. channel dead?
+			set output "${output}\00304${_try_chan} ${usercount}\003, "
+		} elseif {${usercount} <=5} {
+			# puh .. a bit more..
+			set output "${output}\00308${_try_chan} ${usercount}\003, "
+		} else {
+			# a healthy channel .. > 5 users
+			set output "${output}\00303${_try_chan} ${usercount}\003, "
+		}
+ 	}
+	
+	mnet:put_nick ${nick} "Mnet! \"${proper_botnick}\" has  \002${chan_count}\002  channels: ${output}"
+}
+
+proc mnet:admin_have_channelrecord {chan} {
+	
+	set channel_records [channels]
+	foreach _try_chan $channel_records {
+		if {${chan} == ${_try_chan}} {
+			# found the channel in the records, go for it and return 1
+			return 1
+		} else {
+#			putlog "mnet: = not in list: $chan"
+		}
+	}
+	
+	# not found till now? then return 0
+	return 0
+	
+}
+
+proc mnet:admin_trylink {nick mask hand chan text} {
+	global admin_channels botnet-nick mnet_admin_version mnet
+
+	set proper_botnick [mnet:proper_botnick ${botnet-nick}]
+	set botslist [userlist b]
+
+	foreach _try_bot $botslist {
+		if {[islinked ${_try_bot}] == 0} {
+			set _try [link ${_try_bot}]
+			if {$_try == 1} {
+				mnet:put_nick ${nick} "Mnet! \"${proper_botnick}\" tries to link to \"${_try_bot}\""
+				utimer 5 "mnet:admin_trylink_test ${_try_bot} ${nick}"
+			}
+		} else {
+			mnet:put_nick ${nick} "Mnet! \"${proper_botnick}\" \00303already linked\003 to \"${_try_bot}\" - good."
+		}
+	} 
+
+	return 0
+}
+
+proc mnet:admin_trylink_test {_try_bot nick} {
+	global admin_channels botnet-nick mnet_admin_version mnet
+
+	set proper_botnick [mnet:proper_botnick ${botnet-nick}]
+
+	if {[islinked ${_try_bot}] == 1} {
+		mnet:put_nick ${nick} "Mnet! \"${proper_botnick}\" \00309succeeded\003 to link to \"${_try_bot}\"! :)"
+	} else {
+		mnet:put_nick ${nick} "Mnet! \"${proper_botnick}\" \00304FAILED\003 to link to \"${_try_bot}\"! :("
+	}
+}
+
+
+proc mnet:admin_reload {nick mask hand chan text} {
+    global admin_channels botnet-nick
+
+    set proper_botnick [mnet:proper_botnick ${botnet-nick}]
+
+    set allowed [mnet:admin_allowed_channel $nick $mask $hand $chan $admin_channels]
+    if {$allowed == 0} {
+        return 0
+    }
+
+    set cmd "dummy"
+    # reload config... be sure this script works or the bot will DIE!
+    putlog "mnet! = reloading configs by admin"
+    mnet:dcc_configload ${cmd} ${cmd} ${cmd}
+    mnet:put_nick ${nick} "Mnet! \"${proper_botnick}\" Configs reload triggered."
+
+}
+
+proc mnet:admin {nick mask hand chan text} {
+	global admin_channels botnet-nick mnet_admin_version mnet
+	
+	set proper_botnick [mnet:proper_botnick ${botnet-nick}]
+
+	set allowed [mnet:admin_allowed_channel $nick $mask $hand $chan $admin_channels]
+	if {$allowed == 0} {
+		return 0
+	}
+	
+	set tmp_cmd   [lindex ${text} 0]
+	set tmp_value [lindex ${text} 1]
+	
+	
+	set cmd  [string tolower [mnet:kill_spaces ${tmp_cmd}]]
+	set value [string tolower [mnet:kill_spaces ${tmp_value}]]
+	
+	if {${cmd} == "add"} {
+	
+		# check $value ... if there
+		if {${value} != ""} {
+			# get channelrecord: ${value} if we don't have the record already:
+			if {[mnet:admin_have_channelrecord ${value}] == 0} {
+				channel add ${value}
+				# save it
+				savechannels
+				
+				# did it work?
+				utimer 10 "mnet:admin_check_addchannel ${nick} ${value}"
+			} else {
+				mnet:put_nick ${nick} "Mnet! Can't add again - I already have the channel ${value}"
+				putlog "Mnet! Can't add again - I already have the channel ${value}"
+			}
+		} else {
+			mnet:put_nick ${nick} "Mnet! Can't add: no channel given"
+		}
+
+		
+		return 0
+	}
+	
+	if {${cmd} == "remove"} {
+		# check $value ... if there
+		if {${value} != ""} {
+			# remove ${value} from bot, if we have a record for it.
+			if {[mnet:admin_have_channelrecord ${value}] == 1} {
+				channel remove ${value}
+				savechannels
+				
+				mnet:put_nick ${nick} "Mnet! I removed the channelrecord: ${value}"
+				putlog "Mnet! I removed the channelrecord: ${value}"
+			} else {
+				mnet:put_nick ${nick} "Mnet! Can't remove - I don't have that channelrecord: ${value}"
+				putlog "Mnet! Can't remove - I don't have that channelrecord: ${value}"
+			}
+		} else {
+			mnet:put_nick ${nick} "Mnet! Can't remove: no channel given"
+		}
+		
+		return 0
+	}
+
+	if {${cmd} == "reload"} {
+		# reload network configs, pointing to procedure
+		mnet:admin_reload $nick $mask $hand $chan $text
+		return 0
+	}
+
+	if {${cmd} == "channels"} {
+		# tell channel infos, pointing to procedure
+		mnet:admin_channelinfo $nick $mask $hand $chan $text
+		return 0
+	}
+
+	if {${cmd} == "rehash"} {
+		# rehash
+		mnet:admin_rehash $nick $mask $hand $chan $text
+		return 0
+	}
+
+	if {${cmd} == "version"} {
+		# tells version
+		mnet:admin_version $nick $mask $hand $chan $text
+		return 0
+	}
+
+		
+	# none of the above worked .. so we are here:
+	mnet:put_nick ${nick} "mnet! possible commands are: add remove reload channels rehash version"
+	mnet:put_nick ${nick} "mnet! use either \002!mnet_botnetnickname <command>\002 to admin a single bot or just \002!mnet_<command>\002 to admin ALL bots that listen to your words here."
+	mnet:put_nick ${nick} "add #channelname       || bot joins a channel"
+	mnet:put_nick ${nick} "remove #channelname    || bot parts a channel"
+	mnet:put_nick ${nick} "reload                 || reloads the mnet_configs" 
+	mnet:put_nick ${nick} "channels               || tells some channel-infos"
+	mnet:put_nick ${nick} "rehash                 || rehashes the bot, reloads all botscripts"
+	mnet:put_nick ${nick} "version                || tells version"
+	
+
+	
+}
+
+# timer weil $botnet-nick nicht sofort von eggdrop gesetzt wird
+utimer 3 "mnet:admin_bindings"
+
+proc mnet:admin_bindings {} {
+	global botnet-nick
+	set proper_botnick [mnet:proper_botnick ${botnet-nick}]
+	
+	bind pub - !mnet_${proper_botnick} mnet:admin
+	bind pub - !mnet_reload            mnet:admin_reload
+	bind pub - !mnet_channels          mnet:admin_channelinfo
+	bind pub - !mnet_rehash            mnet:admin_rehash
+	bind pub - !mnet_version           mnet:admin_version
+	bind pub - !mnet_trylink           mnet:admin_trylink
+
+}
+
+
+putlog "mnet! = mnet adminscript loaded: $mnet_admin_version"
+

+ 21 - 0
mnet_conf.tcl

@@ -0,0 +1,21 @@
+############# CONFIG SECTION ##############
+### the real config section is here... 
+# for xml parsing you need the tclxml package.. and for the tclxml package you need the tcllib for
+# uri parsing :) 
+
+# BE SURE TO NOT DEFINE TWO NETS OVERLAPPING THEMSELVES (<mnet sig="xxx"> must be unique!)
+# mnet_http_config(x) works like this:
+#			 HOST               DIRECTORY         PORT
+#lappend mnet_http_config "quadaver.mine.nu" "/qw-serveme/qwnet.cfg" "80"
+#lappend mnet_http_config "quad.netdome.biz" "/aq2/aq2net.cfg" "80"
+lappend mnet_http_config "quad.netdome.biz" "/aq2/devnet.cfg" "80"
+#lappend mnet_http_config "quad.netdome.biz" "/aq2/quadnet.cfg" "80"
+
+# mnet_local_config(y) just points to a local file (the basepath is the eggdrop-binary-path)
+#lappend mnet_local_config "./scripts/mnet/anothernet.cfg"
+
+# at which interval should it re-check for a changed config? 300 recommended (5 hours)
+# must be at least 90 or 0 for off.
+set mnet_cfg_reload_interval 300
+########## END OF CONFIG SECTION ##############
+

+ 17 - 0
mnet_logger.tcl

@@ -0,0 +1,17 @@
+# define your own logging.. lets called by mnet:history_queue! You can change the call in mnet.tcl
+# And you can change the things it does with the data here.. Logging is optional
+# and is most likely only done at a central netbot
+putlog "mnet: = Procedure mnet:history_logger loaded"
+proc mnet:history_logger {bucket nickname channel rec_text} {
+	
+	# write all to it
+	set timestamp [clock format [clock seconds] -format "%Y-%m-%d %H:%M:%S"]
+	set input_history "$timestamp / $nickname - $channel : $rec_text"
+	
+	#open handle
+	set fh [open "scripts/mnet/${bucket}.log" "a"]
+	# put to handle
+	puts $fh "$input_history"
+	# close handle
+	close $fh
+}

+ 102 - 0
network_cfgs/QWnetEdit.php

@@ -0,0 +1,102 @@
+<?php 
+
+// filewriter 0.1, NickK, 2004-12-28 
+
+// Provides an Edit Box for text files on server's hdd.
+
+// Original on /home/nick/scripts
+
+error_reporting(E_ALL^E_NOTICE); 
+
+// Files to read/write - absolute path
+$READFILE  = "/home/haui/httpd/quadaver.mine.nu/htdocs/qw-serveme/qwnet.cfg"; 
+$WRITEFILE = "/home/haui/httpd/quadaver.mine.nu/htdocs/qw-serveme/qwnet.cfg"; 
+
+// --------------------------------------------------------------------
+
+// make a textarea size depending on our adminusers :) (and their monitor resolutions)
+$txt_cols = "110";
+$txt_rows = "21";
+
+if ($_REQUEST['user']=="mcbell") {
+	$txt_cols = "140";
+	$txt_rows = "35";
+	$hidden_uservalue = '<input type="hidden" name="user" value="mcbell"/>';
+	$user="mcbell";
+}
+
+
+// template for the standard UI part
+$html = '<html>
+<body style="font-family: sans-serif">
+<h1>Edit-Box&trade; qwnet.cfg</h1>
+<p style="background-color: #e0c0c0; padding:5pt">
+  <strong>Ged&auml;chtnisst&uuml;tze:</strong> !mnet_&lt;BOTNAME&gt;. Geht nur in #messagenet.
+  <br />
+  <span style="font-size:smaller">[02:59:44] (QuAd|Haui) 1. bot joinen lassen
+  [02:59:51] (QuAd|Haui) 2. cfg editieren und cfg beim bot reloaden</span>
+  <br />
+  Konfuzius sagt: <em>Mann der Textfeld neu l&auml;dt bevor er schwer denken, der Weisheit zeigen.</em>
+  <br />
+  Sein Sch&uuml;ler stellt fest: <em>Mann der hinterl&auml;sst Datum und Namen seiniges, der kann haben guten Schlaf.</em>
+</p> 
+<form method="POST" action="#SELF#">
+'.$hidden_uservalue.'
+<textarea cols="'.$txt_cols.'" rows="'.$txt_rows.'" name="contents">
+#CONTENTS#</textarea>
+<br />
+<input type="submit" value="Speichern" />
+</form>
+</body>
+</html>'; 
+
+// --------------------------------------------------------------------
+
+// first check: Can we write at all? 
+if (!is_writable($WRITEFILE)) {
+  print("(1) Sorry. $WRITEFILE ist nicht schreibbar (+w flag missing)."); 
+  exit; 
+}
+
+// "contents" is given via POST. If it's not there, build the 
+// HTML user interface. (See template $html above)
+if (!array_key_exists("contents", $_POST)) {
+
+  // fetch template/old content
+  $contents = file_get_contents ($READFILE); 
+
+  if ($contents == FALSE) {
+    print("(2) Probleme beim Lesen von $READFILE."); 
+    exit; 
+  } 
+
+  // fill template (see $html above)
+  $html = preg_replace("/#CONTENTS#/", $contents, $html); 
+  $html = preg_replace("/#SELF#/", basename(__FILE__), $html); 
+
+  print ($html); 
+}
+else {
+  // the active part of the script goes here. Write stuff. 
+  if (!$file = fopen($WRITEFILE, "w")) {
+    print("(3) Sorry. Kann $WRITEFILE nicht öffnen, d.h. es wurde nichts geschrieben."); 
+    exit; 
+  }
+
+//  echo '<pre>'.$_POST["contents"].'</pre>';
+  
+  // stripslashes needed because of php.ini directive magic quotes = on
+  if (!fwrite($file, stripslashes($_POST["contents"]))) {
+    print("(4) Konnte $WRITEFILE nicht schreiben. Sorry."); 
+    exit; 
+  }
+
+  if (!fclose($file)) {
+    print("(5) Konnte den Filehandler nicht schließen. Das macht aber nicht wirklich was."); 
+  }
+
+  print('Fertig. <a href="' . $_SERVER["SCRIPT_NAME"] . '?user='.$user.'">Nochmal?</a>');
+  
+}
+
+?>

+ 765 - 0
network_cfgs/aq2net.cfg

@@ -0,0 +1,765 @@
+<!-- 
+
+  ==AQ2 Community Message Network==
+
+  Networkconfig Maintainer: 
+
+    QuAd|Haui (haudraufwienix@gmx.de)
+    #quadaver @ QuakeNet
+
+  Please feel free to contact me. Every channel that has a
+  relation to ActionQuake2 is welcome.  
+
+  If you have already set up an eggdrop bot, you can be
+  part of this network too! Just tell me! I'll send
+  you everything you need.
+
+  Last changed:
+    2005-12-01 15:43, mcbell, removed #circle.aq2, AQ2_19, #guys, AQ2_19, #dynasty.aq, AQ2_20 (no ppl)
+    2005-12-01 15:12, mcbell, banned Shemale Jolla (violation)
+    2005-12-01 12:40, mcbell, #afri.team, AQ2_14
+    2005-11-29 22:27, mcbell, #clan.fak, AQ2_14
+    2005-11-29 16:00, mcbell, banned fIGARO and Big^Pimp (violation)
+    2005-11-29 14:10, calis, #clan.alliance, AQ2_21
+    2005-11-27 23:02, calis, #power.aq2, AQ2_21
+    2005-11-27 22:17, mcbell, #[aab], AQ2_16
+    2005-11-27 00:33, mcbell, #clan.rw, AQ2_18
+    2005-11-26 23:26, calis, #aq2.fm, AQ2_16
+    2005-11-26 19:19, mcbell, removed #sx-aq2, AQ2_18 (requested due to inactivity)
+    2005-11-26 00:36, mcbell, removed #[aab], AQ2_16 (requested due to no oping service)
+    2005-11-25 16:34, mcbell, #midk, AQ2_04
+    2005-11-25 16:23, mcbell, removed #hod.aq2, AQ2_01 (no ppl)
+    2005-11-25 16:17, mcbell, #clan-a, AQ2_04
+    2005-11-22 21:50, hau, #kb, AQ2_20
+    2005-11-22 17:23, mcbell, #guage.fi, AQ2_21
+    2005-11-21 18:47, mcbell, removed #clan-kgb, AQ2_16 (abuse)
+    2005-11-21 17:16, mcbell, #cn3, AQ2_21
+    2005-11-20 19:28, mcbell, #clan.tripla, AQ2_21
+    2005-11-19 11:19, mcbell, #fraggersunited, AQ2_19
+    2005-11-16 20:35, hau, #clandickheads, AQ2_19
+    2005-11-13 22:19, mcbell, #viksjo.ex, AQ2_21
+    2005-11-12 21:02, mcbell, #aropuput, AQ2_21
+    2005-11-12 13:42, mcbell, removed #kg.aq2, AQ2_04, #pr1de, AQ2_06, #clan-rip, AQ2_11, #asswhipes, AQ2_11, #reskurated, AQ2_13, #clan.dunder, AQ2_13, #clan.wr, AQ2_14, #pdp.aq2, AQ2_14, #smurfs, AQ2_16, #bah.aq2, AQ2_19, #ehn, AQ2_19, #clan-nm, AQ2_20 (no ppl)
+    2005-11-12 13:33, mcbell, #clan.pirates, AQ2_21
+    2005-11-12 12:15, mcbell, #aq2helsinki, AQ2_21
+    2005-11-11 21:52, mcbell, #nru!, AQ2_21
+    2005-11-09 13:42, calis, #teamc, AQ2_17
+    2005-11-09 13:41, calis, #a5k, AQ2_17
+    2005-11-08 15:20, hau, #fail, AQ2_21
+    2005-11-08 13:20, hau, #aq2.sm, AQ2_21
+    2005-11-07 16:08, hau, #yahela's, AQ2_15
+    2005-11-06 19:18, hau, #psa, AQ2_06
+    2005-11-06 13:04, mcbell, #hhal.aq2, AQ2_12
+    2005-11-06 12:52, mcbell, #clan.ac, AQ2_12
+    2005-11-05 18:48, mcbell, #tak, AQ2_09
+    2005-11-03 22:45, hau, #clan.nokia, AQ2_20
+    2005-11-02 20:15, mcbell, #pd.aq2, AQ2_07
+    2005-11-02 13:15, hau, #korso_4_ubers, AQ2_17
+    2005-11-01 22:45, hau, #mobsters, AQ2_14, #mbd, AQ2_05
+    2005-10-31 21:52, hau, #clan.perfekt, AQ2_16
+    2005-10-30 12:52, calis, #]GOD[, AQ2_14
+    2005-10-28 14:06, mcbell #clan.san, AQ2_17
+    2005-10-27 18:50, mcbell, removed #clan-outlaws, #excellent!, #attention! (violation)
+    2005-10-26 15:47, calis, #elements.aq2 AQ2_05
+    2005-10-26 12:59, hau, #abba, AQ2_07
+    2005-10-25 23:27, mcbell, removed #aq2.klk (dead)
+    2005-10-25 22:46, mcbell, #clan.jaujau, AQ2_06
+    2005-10-25 17:15, mcbell, #ox.aq2, AQ2_08
+    2005-10-25 14:20, hau, #ck.aq2, AQ2_20
+    2005-10-24 22:47, hau, #dark-fire, AQ2_20
+    2005-10-24 15:07, mcbell, #aq2.klk, AQ2_10
+    2005-10-23 18:50, calis, #clan-kgb AQ2_16
+    2005-10-22 02:38, hau, removed #sumpen, #darkside, #-xto, #clan.uber, #kfl, #kondomi, #s3xybrothers, #clan-bandidos, #fraglene, #ts.aq2 (bots were banned) (no ppl)
+    2005-10-21 21:14, mcbell, #sonitus, AQ2_04
+    2005-10-21 19:28, mcbell, removed #nwa-aq2, #eyecandy, #azt, #es.aq2 (bots were banned) (no ppl)
+    2005-10-21 13:22, mcbell, #clan.headquarters, AQ2_03
+    2005-10-20 22:00, mcbell, #sopulistoliitto, AQ2_03
+    2005-10-20 11:40, mcbell, #nitro.aq2, #altavastaajat, AQ2_03
+    2005-10-18 16:10, hau, #fubar, AQ2_10
+    2005-10-18 15:32, hau, #dynasty.aq, AQ2_20
+    2005-10-18 13:08, mcbell, #clanstn, AQ2_03
+    2005-10-17 20:40, hau, removed #mbd, AQ2_05 (abuse)
+    2005-10-17 17:30, hau, #ltn, AQ2_20
+    2005-10-17 14:30, hau, #clan-nm, AQ2_20
+    2005-10-16 03:30, hau, #clan.dhb, AQ2_20
+    2005-10-12 15:30, hau, #clan.nif, AQ2_20
+    2005-10-11 16:25, mcbell, #laban, #hoh.aq2, AQ2_02
+    2005-10-10 21:48, mcbell, #clan-karmøy, AQ2_02
+    2005-10-09 20:42, hau, #iu, AQ2_20
+    2005-10-09 19:02, hau, #^it, AQ2_16
+    2005-10-06 16:41, mcbell, removed #mobsters, AQ2_14 (abuse)
+    2005-10-04 21:25, mcbell, #hod.aq2, AQ2_01
+    2005-10-02 20:53, mcbell, #dnb.aq2, AQ2_01
+    2005-10-02 19:03, mcbell, #tyypiz.aq2, AQ2_01
+    2005-10-02 17:43, calis, add #NVikings, AQ2_03
+    2005-09-30 17:55, mcbell, removed #dogpac, AQ2_10 (abuse)
+    2005-09-28 23:00, mcbell, removed #sipulipiiras, #clan.smt (abuse)
+    2005-09-28 23:00, mcbell, removed #clan.fAk, #clan.ac (abuse)
+    2005-09-27 21:00, mcbell, removed #clan'bc, #tykkitorni (bot was banned)
+    2005-09-27 21:00, mcbell, removed #cassiopeia (no ppl)
+    2005-09-27 21:00, mcbell, removed #illegalquake, #childrens^of^bodom.aq2 (no ppl)
+    2005-09-27 21:00, mcbell, removed #rms.aq2, #gangster.org, #clan-AT (no ppl)
+    2005-09-27 21:00, mcbell, removed #clan-wank, #amo, #dream.aq2, #angels.no (no ppl)
+    2005-09-27 21:00, mcbell, removed #clan-sw, #ovanallt.aq2, #clanwo, #clan-sk (no ppl)
+    2005-09-27 21:00, mcbell, removed #wca, #dynasty.aq2, #sos, #clan-nrtk (no ppl)
+    2005-09-27 21:00, mcbell, removed #fantasy5, #roc.aq2, #sk.aq2, #still (no ppl)
+    2005-09-27 21:00, mcbell, removed #clan-bak, #ntdaq, #wtp.aq2, #ruzh.aq2 (no ppl)
+    2005-09-26 17:50, calis, #clan.ak, AQ2_01 (now life signs detected :))
+    2005-09-25 11:28, mcbell, #clan-outlaws, AQ2_14
+    2005-09-24 23:20, mcbell, removed #csw.aq2, AQ2_09 (abuse)
+    2005-09-24 19:51, mcbell, #sakkolihis, AQ2_05
+    2005-09-24 15:23, mcbell, removed #is.aq2, AQ2_19 (requested)
+    2005-09-22 20:01, mcbell, #clan.seks, AQ2_14
+    2005-09-22 20:00, mcbell, #clan.elama, AQ2_14
+    2005-09-21 12:52, mcbell, #mbd, AQ2_05
+    2005-09-19 20:49, hau, AQ2_16, #clan-scarface moved to #smurfs (requested)
+    2005-09-18 20:50, hau, #bakers, AQ2_20
+    2005-09-18 20:49, hau, AQ2_11, #x3o.aq2 moved to #x3o (requested)
+    2005-09-18 18:14, Calis, #hic.aq2, AQ2_07 (no ppl)
+    2005-09-18 16:16, Calis, #bah.aq2, AQ2_19
+    2005-09-17 13:06, hau, #e-sickness, AQ2_07
+    2005-09-16 20:05, hau, #shitty, AQ2_18
+    2005-09-16 20:05, hau, removed #j, AQ2_18 (requested)
+    2005-09-16 17:45, hau, #excellent!, AQ2_17
+    2005-09-15 23:25, mcbell, #sr.aq2, AQ2_18
+    2005-09-14 21:38, hau, #aq2.power, AQ2_05
+    2005-09-03 12:34, hau, #e-reality, AQ2_15
+    2005-09-02 20:08, hau, #is.aq2, AQ2_19
+    2005-09-02 12:38, hau, #i.4, AQ2_08
+    2005-09-01 17:03, mcbell, removed #i.4, AQ2_08 (requested)
+    2005-09-01 00:07, hau, #clan&lt;3, AQ2_06
+    2005-08-30 14:51, mcbell, #clan-bandidos, AQ2_08
+    2005-08-28 18:29, mcbell, #losthope, AQ2_12
+    2005-08-28 18:12, mcbell, #clan-duel, AQ2_12
+    2005-08-27 22:34, mcbell, removed #clanfrontline, AQ2_06 (abuse)
+    2005-08-26 14:48, mcbell, removed #mobileforce, AQ2_15 (requested)
+    2005-08-25 21:21, cric, #clan-sy, AQ2_18
+    2005-08-24 19:47, mcbell, #clan.dunder, AQ2_13
+    2005-08-24 13:32, hau, #clan.divinity, AQ2_07
+    2005-08-24 09:45, hau, #clan'mc, AQ2_16
+    2005-08-21 18:45, hau, removed #pdw, AQ2_19 (requested)
+    2005-08-21 16:10, mcbell, #clan-fraglene, AQ2_13
+    2005-08-21 13:38, mcbell, #!!!yhm!!!, AQ2_11
+    2005-08-20 13:17, mcbell, #lovemessengers, AQ2_08
+    2005-08-18 22:19, hau, #red.army, AQ2_15
+    2005-08-18 20:50, mcbell, #skvea, AQ2_10
+    2005-08-16 18:02, hau, #clan.uber, AQ2_03 (rejoin after talk)
+    2005-08-16 11:34, mcbell, #clan-rip, AQ2_11
+    2005-08-15 20:37, hau, #clanfrontline, AQ2_06
+    2005-08-15 13:05, hau, #asswhipes, AQ2_11
+    2005-08-14 21:45, hau, #clan.wr, AQ2_14
+    2005-08-13 02:39, calis, #asc.aq2, AQ2_04
+    2005-08-12 18:30, calis, removed #clan.uber AQ2_03 (abuse)
+    2005-08-12 17:16, mcbell, removed #tk.aq2, AQ2_04 (abuse)
+    2005-08-11 19:54, calis, #kg.aq2, AQ2_04
+    2005-08-11 14:00, calis, #n, AQ2_01
+    2005-08-11 00:11, mcbell, #fantasy5, AQ2_12
+    2005-08-09 14:23, mcbell, #x3o.aq2, AQ2_11
+    2005-08-07 16:46, mcbell, removed #laban, AQ2_14 (abuse)
+    2005-08-04 20:24, mcbell, #xx.clan, AQ2_12
+    2005-08-03 10:52, hau, #clan.fak, AQ2_16
+    2005-08-02 03:11, calis, removed #quakeklaani, AQ2_11
+    2005-07-31 23:27, mcbell, #clan.bm, AQ2_17
+    2005-07-31 21:23, mcbell, removed #clan.bm, AQ2_17 (requested)
+    2005-07-29 15:20, hau, add #llama`s, AQ2_14
+    2005-07-28 18:40, mcbell, removed #it.aq2, AQ2_16 (abuse)
+    2005-07-28 18:40, mcbell, removed #clan-duel, AQ2_01 (abuse)
+    2005-07-25 21:08, hau, #cassiopeia, AQ2_01
+    2005-07-25 13:15, calis, #gijoe, AQ2_02
+    2005-07-23 15:38, mcbell, #clan.ar, AQ2_11
+    2005-07-23 00:30, hau, #clan.mgs, AQ2_05
+    2005-07-22 17:47, hau, #clanunited, AQ2_07
+    2005-07-22 16:23, mcbell, #one-legged_super_nigachix, #][.aq2, AQ2_03
+    2005-07-21 22:00, hau, removed AQ2_07 from #qm.aq2 (dead chan, requested)
+    2005-07-21 19:37, mcbell, moved AQ2_13 from #[nin] to #people (requested)
+    2005-07-21 15:13, mcbell, #clanPilipali, #reskurated , AQ2_13
+    2005-07-13 13:40. calis, #clan.vns, #guys, AQ2_13
+    2005-07-12 08:30, mcbell, removed #ic.aq2, AQ2_12
+    2005-07-12 00:14, mcbell, #ic.aq2, AQ2_12
+    2005-07-11 20:26, hau, #ilmiliekit, AQ2_08
+    2005-07-09 19:37, mcbell, #wtp.aq2, AQ2_09
+    2005-07-09 14:40, hau, #laban, AQ2_14
+    2005-07-09 11:00, hau, #clan-sw, AQ2_10
+    2005-07-04 22:12, hau, #space-monkeys, AQ2_11
+    2005-07-04 19:50, hau, #9th, AQ2_16
+    2005-07-04 15:42, mcbell, #ts.aq2, AQ2_09
+    2005-07-04 15:20, mcbell, #csw.aq2, AQ2_09
+    2005-07-04 13:20, calis, #hic.aq2 AQ2_07
+    2005-07-01 02:57(why am i still awake ??), calis, #pr1de AQ2_06
+    2005-06-30 19:34, calis, #clan-sk AQ2_04
+    2005-06-27 12:39, mcbell, #oulunsalo.aq2, AQ2_09
+    2005-06-26 16:22, hau, removed #clan-fearest, AQ2_04
+    2005-06-26 15:55, hau, #es.aq2, AQ2_12
+    2005-06-25 23:20, mcbell, removed #AQ2.pirates, AQ2_09
+    2005-06-25 20:23, hau, #quakeklaani, AQ2_11
+    2005-06-25 18:47, calis, #AQ2.pirates, AQ2_09
+    2005-06-24 21:54, mcbell, #clandb, AQ2_15
+    2005-06-24 12:00, hau, #/--, AQ2_17
+    2005-06-18 21:00, mcbell, #roc.aq2, AQ2_12
+    2005-06-18 00:22, mcbell, #[anbu], AQ2_10
+    2005-06-17 07:30, hau, #ruzh.aq2, AQ2_07
+    2005-06-16 16:10, mcbell, #clan.ow, AQ2_14
+    2005-06-15 12:53, Calis, #iw.aq2, AQ2_09
+    2005-06-14 22:30, hau, #tangen, AQ2_14
+    2005-06-13 14:45, hau, #dinclan, AQ2_18
+    2005-06-10 20:50, hau, #bbs.aq2, AQ2_04
+    2005-06-10 19:45, hau, #clan-se-, AQ2_08 swapped in from #eucom
+    2005-06-09 15:30, mcbell, #mobileforce, AQ2_15
+    2005-06-08 15:00, hau, #no-exit, AQ2_13
+    2005-06-06 23:00, hau, #ehn, AQ2_19
+    2005-06-06 18:23, mcbell, #quadholics, AQ2_13
+    2005-06-05 20:54, mcbell, #infektive, AQ2_13
+    2005-06-05 19:50, mcbell, #clan-bak, AQ2_13
+    2005-06-04 18:39, mcbell, #aq2.maps, AQ2_13
+    2005-06-03 17:30, hau, #schema, AQ2_14
+    2005-06-03 12:48, mcbell, #[nin], #aq2.gutt, AQ2_13
+    2005-06-02 21:40, hau, #bestikset, AQ2_11
+    2005-06-01 23:50, hau, #ta^, AQ2_05
+    2005-06-01 23:10, calis, #clanik, AQ2_09
+    2005-06-01 17:23, calis, #clan-or, AQ2_09
+    2005-05-30 22:26, mcbell, #qurdit removed, AQ2_07 (abuse)
+    2005-05-30 19:57, hau, moved #afh to #afh^, AQ2_04 (requested)
+    2005-05-29 21:52, mcbell, #chf, AQ2_16
+    2005-05-29 12:18, mcbell, #afh, AQ2_04
+    2005-05-29 11:53, mcbell, #incredibles.aq2 removed, AQ2_14 (no ppl)
+    2005-05-28 12:xx, calis, #pk.aq2 AQ2_09
+    2005-05-27 08:23, mcbell, #clan.insane, AQ2_08
+    2005-05-25 15:40, mcbell, #qurdit, AQ2_07
+    2005-05-24 23:14, mcbell, #s3xybrothers, AQ2_07
+    2005-05-24 17:47, mcbell, #clan.com added, AQ2_07
+    2005-05-23 22:24, mcbell, #refugees, #mf.aq2 removed, AQ2_11, AQ2_09 (no ppl)
+    2005-05-23 22:23, mcbell, #element's, #neo', #:wow: removed, AQ2_13, AQ2_12 (no ppl)
+    2005-05-23 22:22, mcbell, #7-2, #dream.aq, #moment22 removed, AQ2_15, AQ2_14 (no ppl)
+    2005-05-23 18:45, hau, #illegalquake, AQ2_11
+    2005-05-23 15:24, mcbell, moved #Scarface.AQ2 to #clan-scarface, AQ2_16 (requested)
+    2005-05-23 14:02, mcbell, #clan-fubar removed, AQ2_07 (no ppl)
+    2005-05-21 11:56, mcbell, #lunars, #armageddon removed, AQ2_16 (bot was banned)
+    2005-05-21 20:10, mcbell, #rullstolsrullarna removed, AQ2_15 (no ppl)
+    2005-05-21 19:55, mcbell, #ff.aq2, #clan-macacos removed, AQ2_14 (no ppl)
+    2005-05-21 19:45, mcbell, #one.point.o, #sw-online removed, AQ2_13 (no ppl)
+    2005-05-21 19:41, mcbell, #2v2.aq2, #fantom.aq, #Liberation removed, AQ2_13 (no ppl)
+    2005-05-21 19:30, mcbell, #Fproject removed, AQ2_12 (bot was banned)
+    2005-05-21 19:13, mcbell, #jaaqc, #Da.aq2, #clanhot removed, AQ2_11 (no ppl)
+    2005-05-21 18:53, mcbell, #clan-ava, #clan-hf, #voodoo.aq removed, AQ2_10 (no ppl)
+    2005-05-21 18:45, mcbell, #nknows, #lil'saints, #stafs removed, AQ2_09 (no ppl)
+    2005-05-21 18:35, mcbell, #clan.ak, #souls.no removed, AQ2_09 (no ppl)
+    2005-05-21 18:33, mcbell, #sstars removed, AQ2_08 (no ppl)
+    2005-05-21 18:28, mcbell, #kyk removed, AQ2_08 (no ppl)
+    2005-05-21 18:25, mcbell, #swat-clan removed, AQ2_07 (no ppl)
+    2005-05-21 18:21, mcbell, #klan-biohazard removed, AQ2_07 (no ppl)
+    2005-05-21 18:13, mcbell, #cm.no removed, AQ2_07 (no ppl)
+    2005-05-21 17:01, mcbell, #clank2 removed, AQ2_05 (requested)
+    2005-05-21 16:42, mcbell, #evil-forest removed, AQ2_06 (bot was banned)
+    2005-05-21 16:17, mcbell, #rec.aq2 removed, AQ2_04 (no ppl)
+    2005-05-21 16:13, mcbell, #clan-elb removed, AQ2_04 (no ppl)
+    2005-05-21 15:30, mcbell, moved #q-aq2 to #aq2.aut, AQ2_01 (requested)
+    2005-05-20 14:00, calis, #tK<3.aq2, AQ2_19
+    2005-05-17 15:55, haui, #pdw, AQ2_19
+    2005-05-16 22:25, mcbell, #ssh.aq2, AQ2_19
+    2005-05-16 19:27, mcbell, #clan-LD, AQ2_19
+    2005-05-15 18:40, cric, #circle.aq2, AQ2_19 
+    2005-05-13 19:05, mcbell, #tykkitorni, AQ2_19
+    2005-05-13 14:11, mcbell, #clan-ua, AQ2_19
+    2005-05-11 20:24, mcbell, #Rock'n'Roll.aq2, AQ2_19
+    2005-05-09 14:05, haui, #rms.aq2, AQ2_05
+    2005-05-09 13:40, haui, #clan-nrtk, AQ2_18
+    2005-05-08 22:00, mcbell, #imnoob, AQ2_18
+    2005-05-06 23:53, mcbell, #wesside, AQ2_18
+    2005-05-06 20:35, cric, #cso, AQ2_18 
+    2005-05-06 20:35, cric, #-tmn-, AQ2_18 
+    2005-05-06 16:59, calis, #pinks removed
+    2005-05-06 16:40, mcbell, #pinks, AQ2_18
+    2005-05-06 13:55, mcbell, #fraglene, AQ2_08
+    2005-05-04 00:18, haui, #pinks, removed AQ2_05
+    2005-05-02 21:00, haui, #sx-aq2, AQ2_18
+    2005-05-01 16:15, mcbell, #SuBu.aq2 AQ2_10
+    2005-05-01 15:59, calis, #nwa-aq2 AQ2_14
+    2005-04-30 13:18, calis, #clan-AT, AQ2_06
+    2005-04-28 16:30, mcbell, #evidance removed AQ2_06
+    2005-04-28 16:20, mcbell, #sos.aq2 removed AQ2_08
+    2005-04-27 17:45, mcbell, #xu2, AQ2_18
+    2005-04-27 13:40, mcbell, #eucom, AQ2_08
+    2005-04-27 13:30, mcbell, #eucom removed AQ2_08
+    2005-04-24 21:30, haui, #sos, aq2_18
+    2005-04-22 19:55, haui, #clanci5, aq2_17
+    2005-04-21 22:50, haui, #c&c, aq2_17
+    2005-04-20 xx:xx, haui, #aZt, aq2_17
+    2005-04-19 00:xx, calis #aZt removed aq2_12
+    2005-04-19 00:06, calis #aZt aq2_17 removed aq2_12 added
+    2005-04-18 18:10, haui, #j, AQ2_18
+    2005-04-16 15:01, haui, #clan.hml, AQ2_17
+    2005-04-15 15:50, mcbell, #aZt, AQ2_17
+    2005-04-14 19:15, haui, #childrens^of^bodom.aq2, AQ2_17
+    2005-04-13 22:14, haui, #clan.bm, AQ2_17
+    2005-04-13 14:02, haui, #clan.c4, AQ2_17
+    2005-04-12 20:05, haui, #clanapc, AQ2_17
+    2005-04-12 19:00, haui, #freemasons, AQ2_17
+    2005-04-12 18:00, haui, #clan'bc, AQ2_17
+    2005-04-06 20:40, cric, #dynasty.aq2, AQ2_16
+    2005-04-03 23:11, haui, #[AaB], AQ2_16
+    2005-04-03 20:21, haui, #aq2w.league, AQ2_16
+    2005-03-31 21:17, haui, #wca, #it.aq2, AQ2_16
+    2005-03-29 23:12, haui, #scarface.aq2, AQ2_16
+    2005-03-29 17:05, cric, #-xTo, AQ2_16
+    2005-03-28 21:34, calis, #still, AQ2_14
+    2005-03-23 23:00, haui, #action.one, AQ2_16
+    2005-03-23 03:10, haui, removed #clan-w-, AQ2_14
+    2005-03-22 22:30, haui, #armageddon, AQ2_16
+    2005-03-22 08:43, haui, #lunars, AQ2_16
+    2005-03-21 00:29, haui, #amo, AQ2_15
+    2005-03-21 00:28, haui, #element's, AQ2_13
+    2005-03-17 21:27, calis, #7-2, AQ2_15
+    2005-03-15 18:22, haui, #evidance, AQ2_06
+    2005-03-12 01:17, haui, #clan-kik, AQ2_06
+    2005-03-11 14:11, calis, #sk.aq2, AQ2_14
+    2005-03-10 20:57, cric, #incredibles.aq2, AQ2_14
+    2005-03-06 17:50, haui, #gangster.org, AQ2_06
+    2005-03-05 19:30, haui, removed #clan.g'c, AQ2_06
+    2005-03-03 04:13, haui, #rec.aq2, AQ2_04
+    2005-02-26 19:03, haui, #sw-online, AQ2_13
+    2005-02-26 15:21, haui, #clank2, AQ2_05
+    2005-02-26 15:20, haui, #clan.ads, AQ2_05
+    2005-02-24 17:35, calis, #Eliten.dk AQ2_13
+    2005-02-25 01:10, haui, #fearn, AQ2_15
+    2005-02-23 23:48, calis, #clanrk AQ2_15
+    2005-02-22 20:23, haui, removed #aq2.rttt, AQ2_04
+    2005-02-21 22:53, haui, #clan-psycho, AQ2_14
+    2005-02-21 19:05, haui, #lite, AQ2_13
+    2005-02-20 00:37, calis, #clan'g AQ2_15
+    2005-02-16 12:26, calis, #clan-macacos, AQ2_14
+    2005-02-13 18:28, calis, #dream.aq, AQ2_15
+    2005-02-13 02:30, haui, #one.point.o, AQ2_13
+    2005-02-09 14:55, cric, #pdp.aq2, AQ2_14
+    2005-02-09 12:45, haui, #liberation, AQ2_13
+    2005-02-07 18:51, calis, #clansurvival, AQ2_13 removed, die hatten schon einen
+    2005-02-07 18:50, calis, #clansurvival, AQ2_13
+    2005-02-06 19:50, calis, #rullstolsrullarna, AQ2_15
+    2005-02-05 22:18, calis, #moment22, AQ2_14
+    2005-02-05 13:00, calis, #fantom.aq, AQ2_13
+    2005-02-04 20:35, calis, #clan.sHo, AQ2_15
+    2005-02-04 13:45, calis, #clan-wank, AQ2_15
+    2005-01-29 20:24, haui, removed #q.clan, AQ2_05
+    2005-01-29 20:22, haui, removed #s0t, AQ2_05
+    2005-01-29 20:21, haui, removed #thenewbreed, AQ2_06
+    2005-01-29 20:20, haui, removed #clan.cp, AQ2_06
+    2005-01-29 20:19, haui, removed #el.aq2, AQ2_06
+    2005-01-29 20:12, haui, removed #piefu, AQ2_06
+    2005-01-29 20:12, haui, removed #explosion, AQ2_06
+    2005-01-29 20:10, haui, removed #enforced, AQ2_05
+    2005-01-29 20:06, haui, #clan-lor, AQ2_05 exchanged with AQ2_12
+    2005-01-29 20:00, haui, #xclan, AQ2_05 exchanged with AQ2_12
+    2005-01-29 19:46, haui, #clanhot, AQ2_05 exchanged with AQ2_11
+    2005-01-29 19:33, haui, #mif, AQ2_03 exchanged with AQ2_11
+    2005-01-29 19:31, haui, #dogpac, AQ2_03 exchanged with AQ2_10
+    2005-01-29 18:10, haui, #clan.star, AQ2_03 exchanged with AQ2_02
+    2005-01-29 18:00, haui, #mobsters, AQ2_01 exchanged with AQ2_14
+    2005-01-29 17:52, haui, #2v2.aq2, AQ2_01 exchanged with AQ2_13
+    2005-01-29 17:43, haui, #peath, AQ2_04 exchanged with AQ2_15
+    2005-01-29 17:42, haui, #clan-w-, AQ2_04 exchanged with AQ2_14
+    2005-01-29 17:03, haui, #ntdaq, AQ2_04 exchanged with AQ2_13
+    2005-01-29 16:00, haui, #clan-sus, AQ2_12
+    2005-01-29 14:46, haui, #refugees, AQ2_11
+    2005-01-28 21:14, haui, #clan.wf, AQ2_11
+    2005-01-27 14:30, haui, removed #clanik and #refugees, AQ2_11, AQ2_02
+    2005-01-24 22:36, haui, #refugees, AQ2_11
+    2005-01-24 19:45, cric, #neo', AQ2_12
+    2005-01-21 15:03, cric, #Furians, AQ2_12
+    2005-01-20 18:50, cric, #clan.helv, AQ2_12
+    2005-01-20 17:00, haui, removed #j, AQ2_02
+    2005-01-16 15:20, haui, #jaaqc, AQ2_11
+    2005-01-16 05:27, haui, #swat-clan, AQ2_07
+    2005-01-16 05:20, haui, moved AQ2_08 #shamble's to #sstars
+    2005-01-15 19:14, haui, #:wow:, AQ2_12
+    2005-01-15 14:10, haui, #clan.illusion, AQ2_09
+    2005-01-13 00:05, haui, #aq2.dk, AQ2_02 exchanged with AQ2_09
+    2005-01-13 00:04, haui, #extacy, AQ2_02 exchanged with AQ2_10
+    2005-01-13 00:02, haui, #clan-raw, AQ2_02 exchanged with AQ2_10
+    2005-01-12 23:16, haui, #globalgangsters, AQ2_02 exchanged with AQ2_10
+    2005-01-12 23:00, haui, #mf.aq2, AQ2_07 exchanged with AQ2_09
+    2005-01-12 22:50, calis, #perusclan, AQ2_09
+    2005-01-12 21:20, haui, #clan-xk, AQ2_02 exchanged with AQ2_09
+    2005-01-12 20:52, haui, #aq2world, AQ2_02 exchanged with AQ2_10
+    2005-01-12 19:45, haui, #nm3, AQ2_10
+    2005-01-11 23:30, haui, #stafs, AQ2_09
+    2005-01-10 21:15, haui, #nf.aq2, AQ2_11
+    2005-01-09 13:40, cric, #voodoo.aq, AQ2_10
+    2005-01-09 03:26, haui, removed #nwo-aq2, AQ2_05
+    2005-01-09 03:23, haui, #035, AQ2_10
+    2005-01-08 23:45, cric, #clan-hf, AQ2_10
+    2005-01-08 13:00, haui, moved #old.skool to #old.skewl
+    2005-01-21 21:53, calis, #clan.ac, AQ2_12
+    2005-01-22 16:15, calis, #clan-ras, AQ2_12
+    2005-01-22 17:49, calis, #Da.aq2, AQ2_11
+    2005-01-27 12:05, calis, #fproject, AQ2_12
+    2005-01-30 22:42, calis, #hohto.aq2, AQ2_13
+    2005-01-30 22:42, calis, #ff.aq2, AQ2_14
+-->
+
+
+
+<!-- sig has to be unique. -->
+<mnet sig="AQ2NET" desc="Action Quake 2 Community Network (AQ2CN)">
+
+
+<!-- which bots are part of this network? -->
+  <bot nick="QUADAVER" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#quad.aq2" />
+    <ch name="#pickup.aq2" />
+  </bot>
+
+  <bot nick="AQ2_01" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#narf" />
+    <ch name="#action.dac" />
+    <ch name="#s&amp;d.aq2" />
+    <ch name="#ace.aq2" />
+    <ch name="#only_human" />
+    <ch name="#aq2.aut" />
+    <ch name="#clan.fwd" />
+    <ch name="#stener" />
+    <ch name="#messagenet" />
+    <ch name="#n" />
+    <ch name="#clan.ak" />
+    <ch name="#tyypiz.aq2" />
+    <ch name="#dnb.aq2" />
+  </bot>
+
+  <bot nick="AQ2_02" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#aq2.cup" />
+    <ch name="#questionmark" />
+    <ch name="#clan.sd" />
+    <ch name="#clan.pr0" />
+    <ch name="#clan-in" />
+    <ch name="#aq2admins" />
+    <ch name="#urangers" />
+    <ch name="#clan.star" />
+    <ch name="#gijoe" />
+    <ch name="#clan-karm&#248;y" />
+    <ch name="#laban" />
+    <ch name="#hoh.aq2" />
+  </bot>
+
+  <bot nick="AQ2_03" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#mi" />
+        <ch name="#:OwN:" />
+        <ch name="#eaql" />
+        <ch name="#clan-rot" />
+        <ch name="#pdis" />
+        <ch name="#][.aq2" />
+        <ch name="#one-legged_super_nigachix" />
+        <ch name="#NVikings" />
+        <ch name="#clanstn" />
+        <ch name="#altavastaajat" />
+        <ch name="#nitro.aq2" />
+        <ch name="#sopulistoliitto" />
+        <ch name="#clan.headquarters" />
+  </bot>
+
+  <bot nick="AQ2_04" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#viagra" />
+        <ch name="#extrallamas" />
+        <ch name="#clutch" />
+        <ch name="#clan.knight" />
+        <ch name="#kk.aq2" />
+        <ch name="#afh^" />
+        <ch name="#bbs.aq2" />
+        <ch name="#asc.aq2" />
+        <ch name="#sonitus" />
+        <ch name="#midk" />
+        <ch name="#clan-a" />
+  </bot>
+
+  <bot nick="AQ2_05" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#me_risut" />
+        <ch name="#koksnutten" />
+        <ch name="#mercuria.aq2" />
+	<ch name="#aq2.power" />
+	<ch name="#silence.aq" />
+	<ch name="#tran" />
+	<ch name="#clan.ads" />
+	<ch name="#ta^" />
+	<ch name="#clan.mgs" />
+	<ch name="#sakkolihis" />
+        <ch name="#elements.aq2" />
+        <ch name="#mbd" />
+  </bot>
+
+  <bot nick="AQ2_06" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#clan.w" />
+	<ch name="#clan.eXist" />
+	<ch name="#stoned" />
+	<ch name="#21" />
+	<ch name="#clan&lt;3" />
+	<ch name="#clan-kik" />
+	<ch name="#dipunishment" />
+        <ch name="#clan.jaujau" />
+        <ch name="#psa" />
+  </bot>
+  
+  <bot nick="AQ2_07" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#clanunited" />
+        <ch name="#clan.si" />
+	<ch name="#v8" />
+	<ch name="#clan.divinity" />
+	<ch name="#newagepimps" />
+	<ch name="#e-sickness" />
+	<ch name="#tyylimiehet" />
+	<ch name="#clansurvival" />
+        <ch name="#clan.com" />
+        <ch name="#abba" />
+        <ch name="#pd.aq2" />
+  </bot>
+  
+  <bot nick="AQ2_08" owner="Haui (haudraufwienix@gmx.de)">
+	<ch name="#tatm" />
+	<ch name="#clan'sc" />
+	<ch name="#ninenine" />
+	<ch name="#cia" />
+        <ch name="#aget.aq2" />
+        <ch name="#clan.insane" />
+        <ch name="#clan-se-" />
+        <ch name="#ilmiliekit" />
+        <ch name="#i.4" />
+        <ch name="#lovemessengers" />
+        <ch name="#ox.aq2" />
+  </bot>
+
+  <bot nick="AQ2_09" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#clan-xk" />
+        <ch name="#perusclan" />
+        <ch name="#aq2.dk" />
+        <ch name="#clan.illusion" />
+        <ch name="#pk.aq2" />
+        <ch name="#clan-or" />
+        <ch name="#clanik" />
+        <ch name="#iw.aq2" />
+        <ch name="#oulunsalo.aq2" />
+        <ch name="#tak" />
+  </bot>
+
+  <bot nick="AQ2_10" owner="Haui (haudraufwienix@gmx.de)">
+	<ch name="#035" />
+	<ch name="#nm3" />
+        <ch name="#aq2world" />
+	<ch name="#globalgangsters" />
+        <ch name="#clan-raw" />
+        <ch name="#fubar" />
+        <ch name="#extacy" />
+        <ch name="#subu.aq2" />
+        <ch name="#[anbu]" />
+        <ch name="#skvea" />
+  </bot>
+
+  <bot nick="AQ2_11" owner="Haui (haudraufwienix@gmx.de)">
+	<ch name="#Navy-Seals" />
+	<ch name="#old.skewl" />
+	<ch name="#nf.aq2" />
+        <ch name="#clan.wf" />
+        <ch name="#mif" />
+        <ch name="#bestikset" />
+        <ch name="#space-monkeys" />
+        <ch name="#clan.ar" />
+        <ch name="#x3o" />
+        <ch name="#!!!yhm!!!" />
+  </bot>
+
+  <bot nick="AQ2_12" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#clan-lor" />
+	<ch name="#clan.helv" />
+	<ch name="#Furians" />
+        <ch name="#clan-ras" />
+        <ch name="#clan-sus" />
+	<ch name="#xclan" />
+	<ch name="#xx.clan" />
+	<ch name="#clan-duel" />
+	<ch name="#losthope" />
+        <ch name="#clan.ac" />
+	<ch name="#hhal.aq2" />
+  </bot>
+
+  <bot nick="AQ2_13" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#hohto.aq2" />
+        <ch name="#lite" />
+        <ch name="#people" />
+        <ch name="#aq2.gutt" />
+        <ch name="#aq2.maps" />
+        <ch name="#infektive" />
+        <ch name="#quadholics" />
+        <ch name="#clanPilipali" />
+        <ch name="#clan-fraglene" />
+  </bot>
+
+  <bot nick="AQ2_14" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#clan-psycho" />
+        <ch name="#schema" />
+        <ch name="#tangen" />
+        <ch name="#clan.ow" />
+        <ch name="#llama`s" />
+        <ch name="#clan.elama" />
+        <ch name="#clan.seks" />
+        <ch name="#]GOD[" />
+        <ch name="#mobsters" />
+        <ch name="#clan.fak" />
+        <ch name="#afri.team" />
+  </bot>
+
+  <bot nick="AQ2_15" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#peath" />
+        <ch name="#clan.sHo" />
+        <ch name="#clan'g" />
+        <ch name="#clanrk" />
+        <ch name="#fearn" />
+        <ch name="#clandb" />
+        <ch name="#fellow" />
+        <ch name="#red.army" />
+        <ch name="#e-reality" />
+        <ch name="#yahela's" />
+  </bot>
+
+  <bot nick="AQ2_16" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#clan'mc" />
+        <ch name="#aq2w.league" />
+        <ch name="#^it" />
+        <ch name="#chf" />
+        <ch name="#9th" />
+        <ch name="#clan.perfekt" />
+        <ch name="#action.one" />
+        <ch name="#aq2.fm" />
+        <ch name="#[aab]" />
+  </bot>
+
+  <bot nick="AQ2_17" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#freemasons" />
+        <ch name="#clanapc" />
+        <ch name="#clan.c4" />
+        <ch name="#clan.hml" />
+        <ch name="#c&c" />
+        <ch name="#clanci5" />
+        <ch name="#/--" />
+        <ch name="#clan.bm" />
+        <ch name="#clan.san" />
+        <ch name="#korso_4_ubers" />
+        <ch name="#teamc" />
+        <ch name="#a5k" />
+  </bot>
+
+  <bot nick="AQ2_18" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#xu2" />
+        <ch name="#-tmn-" />
+        <ch name="#cso" />
+        <ch name="#shitty" />
+        <ch name="#wesside" />
+        <ch name="#imnoob" />
+        <ch name="#dinclan" />
+        <ch name="#clan-sy" />
+        <ch name="#sr.aq2" />
+        <ch name="#clan.rw" />
+</bot>
+
+  <bot nick="AQ2_19" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#Rock'n'Roll.aq2" />
+        <ch name="#clan-ua" />
+        <ch name="#clan-LD" />
+        <ch name="#ssh.aq2" />
+        <ch name="#tK<3.aq2" />
+        <ch name="#clan.vns" />
+        <ch name="#fraggersunited" />
+        <ch name="#clandickheads" />
+  </bot>
+
+  <bot nick="AQ2_20" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#bakers" />
+        <ch name="#iu" />
+        <ch name="#clan.nif" />
+        <ch name="#clan.dhb" />
+        <ch name="#ltn" />
+        <ch name="#dark-fire" />
+        <ch name="#ck.aq2" />
+        <ch name="#clan.nokia" />
+        <ch name="#kb" />
+  </bot>
+
+  <bot nick="AQ2_21" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#aq2.sm" />
+        <ch name="#fail" />
+        <ch name="#guage.fi" />
+        <ch name="#cn3" />
+        <ch name="#clan.tripla" />
+        <ch name="#viksjo.ex" />
+        <ch name="#aropuput" />
+        <ch name="#clan.pirates" />
+        <ch name="#aq2helsinki" />
+        <ch name="#nru!" />
+        <ch name="#power.aq2" />
+        <ch name="#clan.alliance" />
+  </bot>
+
+  <bot nick="AQ2_22" owner="McBell (admin@wtf.se)">
+  </bot>
+
+  <bot nick="AQ2_23" owner="McBell (admin@wtf.se)">
+  </bot>
+
+<!-- the frequencies serve the whole network (all channels) -->
+
+  <frequency name="-aq2-" prefix=".aq2" helpmsg="dot aq2 Usage: '.aq2 <message>'   Rules: ONLY AQ2-related, only english, no replies over the bot! Use query or join their channel! Read http://quadaver.net/Aq2Mnet for more infos." desc="some description is required." delay="540">
+<!-- Clowneh -->
+	<ban hostmask="*@Clowneh.users.quakenet.org" reason="clown:Slacking it off sometimes and being a too funny guy."/>
+	<ban hostmask="*@www.primefarm.co.uk" reason="clown: Slacking it off sometimes and being a too funny guy."/>
+	<ban hostmask="clowneh@*.m00ki.de" reason="clown: Slacking it off sometimes and being a too funny guy."/>
+
+
+<!-- Demoni -->
+	<ban hostmask="*demoni@tarjoo.mulle.olut.gr" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+        <ban hostmask="*@D3M0N1.users.quakenet.org" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+        <ban hostmask="*demoni@on.tiukka.biz" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+        <ban hostmask="*Mun@servut.us" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+
+<!-- Big^Pimp -->
+        <ban hostmask="BGp@*.bb.online.no" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+        <ban hostmask="*@BGp.users.quakenet.org" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+
+<!-- fIGARO -->
+        <ban hostmask="m11ljungma@83.93.42.80" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+        <ban hostmask="*@fIgArOmmm.users.quakenet.org" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+
+<!-- SheMale/Jolla -->
+        <ban hostmask="*vnoes@*.bredband.skanova.com" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+        <ban hostmask="*@Jollaa.users.quakenet.org" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+
+  </frequency>
+
+
+<!--
+  <frequency name="-spam-" prefix=".spam" helpmsg="dot spam Usage: '.spam lallala'  Rules: only english, but everything allowed" />
+-->
+
+<!--
+  none: no color at all.
+  00: bright gray
+  01: black
+  02: blue
+  03: green
+  04: red
+  05: dark red
+  06: purple
+  07: orange
+  08: yellow
+  09: bright green
+  10: cyan
+  11: bright cyan
+  12: bright blue
+  13: bright purple
+  14: dark gray
+  15: gray
+
+  optional="1" 
+       means, the user can decide if he wants the color, or not.
+	   if 'optional' is not given, it defaults to 0 and the color will be forced.
+       if 'optional' is 1, then no color is used and it has to be enabled by the users.
+	   
+  
+-->
+  <color id="03" optional="1" />
+
+
+</mnet>

+ 765 - 0
network_cfgs/aq2net.cfg.1

@@ -0,0 +1,765 @@
+<!-- 
+
+  ==AQ2 Community Message Network==
+
+  Networkconfig Maintainer: 
+
+    QuAd|Haui (haudraufwienix@gmx.de)
+    #quadaver @ QuakeNet
+
+  Please feel free to contact me. Every channel that has a
+  relation to ActionQuake2 is welcome.  
+
+  If you have already set up an eggdrop bot, you can be
+  part of this network too! Just tell me! I'll send
+  you everything you need.
+
+  Last changed:
+    2005-12-01 15:43, mcbell, removed #circle.aq2, AQ2_19, #guys, AQ2_19, #dynasty.aq, AQ2_20 (no ppl)
+    2005-12-01 15:12, mcbell, banned Shemale Jolla (violation)
+    2005-12-01 12:40, mcbell, #afri.team, AQ2_14
+    2005-11-29 22:27, mcbell, #clan.fak, AQ2_14
+    2005-11-29 16:00, mcbell, banned fIGARO and Big^Pimp (violation)
+    2005-11-29 14:10, calis, #clan.alliance, AQ2_21
+    2005-11-27 23:02, calis, #power.aq2, AQ2_21
+    2005-11-27 22:17, mcbell, #[aab], AQ2_16
+    2005-11-27 00:33, mcbell, #clan.rw, AQ2_18
+    2005-11-26 23:26, calis, #aq2.fm, AQ2_16
+    2005-11-26 19:19, mcbell, removed #sx-aq2, AQ2_18 (requested due to inactivity)
+    2005-11-26 00:36, mcbell, removed #[aab], AQ2_16 (requested due to no oping service)
+    2005-11-25 16:34, mcbell, #midk, AQ2_04
+    2005-11-25 16:23, mcbell, removed #hod.aq2, AQ2_01 (no ppl)
+    2005-11-25 16:17, mcbell, #clan-a, AQ2_04
+    2005-11-22 21:50, hau, #kb, AQ2_20
+    2005-11-22 17:23, mcbell, #guage.fi, AQ2_21
+    2005-11-21 18:47, mcbell, removed #clan-kgb, AQ2_16 (abuse)
+    2005-11-21 17:16, mcbell, #cn3, AQ2_21
+    2005-11-20 19:28, mcbell, #clan.tripla, AQ2_21
+    2005-11-19 11:19, mcbell, #fraggersunited, AQ2_19
+    2005-11-16 20:35, hau, #clandickheads, AQ2_19
+    2005-11-13 22:19, mcbell, #viksjo.ex, AQ2_21
+    2005-11-12 21:02, mcbell, #aropuput, AQ2_21
+    2005-11-12 13:42, mcbell, removed #kg.aq2, AQ2_04, #pr1de, AQ2_06, #clan-rip, AQ2_11, #asswhipes, AQ2_11, #reskurated, AQ2_13, #clan.dunder, AQ2_13, #clan.wr, AQ2_14, #pdp.aq2, AQ2_14, #smurfs, AQ2_16, #bah.aq2, AQ2_19, #ehn, AQ2_19, #clan-nm, AQ2_20 (no ppl)
+    2005-11-12 13:33, mcbell, #clan.pirates, AQ2_21
+    2005-11-12 12:15, mcbell, #aq2helsinki, AQ2_21
+    2005-11-11 21:52, mcbell, #nru!, AQ2_21
+    2005-11-09 13:42, calis, #teamc, AQ2_17
+    2005-11-09 13:41, calis, #a5k, AQ2_17
+    2005-11-08 15:20, hau, #fail, AQ2_21
+    2005-11-08 13:20, hau, #aq2.sm, AQ2_21
+    2005-11-07 16:08, hau, #yahela's, AQ2_15
+    2005-11-06 19:18, hau, #psa, AQ2_06
+    2005-11-06 13:04, mcbell, #hhal.aq2, AQ2_12
+    2005-11-06 12:52, mcbell, #clan.ac, AQ2_12
+    2005-11-05 18:48, mcbell, #tak, AQ2_09
+    2005-11-03 22:45, hau, #clan.nokia, AQ2_20
+    2005-11-02 20:15, mcbell, #pd.aq2, AQ2_07
+    2005-11-02 13:15, hau, #korso_4_ubers, AQ2_17
+    2005-11-01 22:45, hau, #mobsters, AQ2_14, #mbd, AQ2_05
+    2005-10-31 21:52, hau, #clan.perfekt, AQ2_16
+    2005-10-30 12:52, calis, #]GOD[, AQ2_14
+    2005-10-28 14:06, mcbell #clan.san, AQ2_17
+    2005-10-27 18:50, mcbell, removed #clan-outlaws, #excellent!, #attention! (violation)
+    2005-10-26 15:47, calis, #elements.aq2 AQ2_05
+    2005-10-26 12:59, hau, #abba, AQ2_07
+    2005-10-25 23:27, mcbell, removed #aq2.klk (dead)
+    2005-10-25 22:46, mcbell, #clan.jaujau, AQ2_06
+    2005-10-25 17:15, mcbell, #ox.aq2, AQ2_08
+    2005-10-25 14:20, hau, #ck.aq2, AQ2_20
+    2005-10-24 22:47, hau, #dark-fire, AQ2_20
+    2005-10-24 15:07, mcbell, #aq2.klk, AQ2_10
+    2005-10-23 18:50, calis, #clan-kgb AQ2_16
+    2005-10-22 02:38, hau, removed #sumpen, #darkside, #-xto, #clan.uber, #kfl, #kondomi, #s3xybrothers, #clan-bandidos, #fraglene, #ts.aq2 (bots were banned) (no ppl)
+    2005-10-21 21:14, mcbell, #sonitus, AQ2_04
+    2005-10-21 19:28, mcbell, removed #nwa-aq2, #eyecandy, #azt, #es.aq2 (bots were banned) (no ppl)
+    2005-10-21 13:22, mcbell, #clan.headquarters, AQ2_03
+    2005-10-20 22:00, mcbell, #sopulistoliitto, AQ2_03
+    2005-10-20 11:40, mcbell, #nitro.aq2, #altavastaajat, AQ2_03
+    2005-10-18 16:10, hau, #fubar, AQ2_10
+    2005-10-18 15:32, hau, #dynasty.aq, AQ2_20
+    2005-10-18 13:08, mcbell, #clanstn, AQ2_03
+    2005-10-17 20:40, hau, removed #mbd, AQ2_05 (abuse)
+    2005-10-17 17:30, hau, #ltn, AQ2_20
+    2005-10-17 14:30, hau, #clan-nm, AQ2_20
+    2005-10-16 03:30, hau, #clan.dhb, AQ2_20
+    2005-10-12 15:30, hau, #clan.nif, AQ2_20
+    2005-10-11 16:25, mcbell, #laban, #hoh.aq2, AQ2_02
+    2005-10-10 21:48, mcbell, #clan-karmøy, AQ2_02
+    2005-10-09 20:42, hau, #iu, AQ2_20
+    2005-10-09 19:02, hau, #^it, AQ2_16
+    2005-10-06 16:41, mcbell, removed #mobsters, AQ2_14 (abuse)
+    2005-10-04 21:25, mcbell, #hod.aq2, AQ2_01
+    2005-10-02 20:53, mcbell, #dnb.aq2, AQ2_01
+    2005-10-02 19:03, mcbell, #tyypiz.aq2, AQ2_01
+    2005-10-02 17:43, calis, add #NVikings, AQ2_03
+    2005-09-30 17:55, mcbell, removed #dogpac, AQ2_10 (abuse)
+    2005-09-28 23:00, mcbell, removed #sipulipiiras, #clan.smt (abuse)
+    2005-09-28 23:00, mcbell, removed #clan.fAk, #clan.ac (abuse)
+    2005-09-27 21:00, mcbell, removed #clan'bc, #tykkitorni (bot was banned)
+    2005-09-27 21:00, mcbell, removed #cassiopeia (no ppl)
+    2005-09-27 21:00, mcbell, removed #illegalquake, #childrens^of^bodom.aq2 (no ppl)
+    2005-09-27 21:00, mcbell, removed #rms.aq2, #gangster.org, #clan-AT (no ppl)
+    2005-09-27 21:00, mcbell, removed #clan-wank, #amo, #dream.aq2, #angels.no (no ppl)
+    2005-09-27 21:00, mcbell, removed #clan-sw, #ovanallt.aq2, #clanwo, #clan-sk (no ppl)
+    2005-09-27 21:00, mcbell, removed #wca, #dynasty.aq2, #sos, #clan-nrtk (no ppl)
+    2005-09-27 21:00, mcbell, removed #fantasy5, #roc.aq2, #sk.aq2, #still (no ppl)
+    2005-09-27 21:00, mcbell, removed #clan-bak, #ntdaq, #wtp.aq2, #ruzh.aq2 (no ppl)
+    2005-09-26 17:50, calis, #clan.ak, AQ2_01 (now life signs detected :))
+    2005-09-25 11:28, mcbell, #clan-outlaws, AQ2_14
+    2005-09-24 23:20, mcbell, removed #csw.aq2, AQ2_09 (abuse)
+    2005-09-24 19:51, mcbell, #sakkolihis, AQ2_05
+    2005-09-24 15:23, mcbell, removed #is.aq2, AQ2_19 (requested)
+    2005-09-22 20:01, mcbell, #clan.seks, AQ2_14
+    2005-09-22 20:00, mcbell, #clan.elama, AQ2_14
+    2005-09-21 12:52, mcbell, #mbd, AQ2_05
+    2005-09-19 20:49, hau, AQ2_16, #clan-scarface moved to #smurfs (requested)
+    2005-09-18 20:50, hau, #bakers, AQ2_20
+    2005-09-18 20:49, hau, AQ2_11, #x3o.aq2 moved to #x3o (requested)
+    2005-09-18 18:14, Calis, #hic.aq2, AQ2_07 (no ppl)
+    2005-09-18 16:16, Calis, #bah.aq2, AQ2_19
+    2005-09-17 13:06, hau, #e-sickness, AQ2_07
+    2005-09-16 20:05, hau, #shitty, AQ2_18
+    2005-09-16 20:05, hau, removed #j, AQ2_18 (requested)
+    2005-09-16 17:45, hau, #excellent!, AQ2_17
+    2005-09-15 23:25, mcbell, #sr.aq2, AQ2_18
+    2005-09-14 21:38, hau, #aq2.power, AQ2_05
+    2005-09-03 12:34, hau, #e-reality, AQ2_15
+    2005-09-02 20:08, hau, #is.aq2, AQ2_19
+    2005-09-02 12:38, hau, #i.4, AQ2_08
+    2005-09-01 17:03, mcbell, removed #i.4, AQ2_08 (requested)
+    2005-09-01 00:07, hau, #clan&lt;3, AQ2_06
+    2005-08-30 14:51, mcbell, #clan-bandidos, AQ2_08
+    2005-08-28 18:29, mcbell, #losthope, AQ2_12
+    2005-08-28 18:12, mcbell, #clan-duel, AQ2_12
+    2005-08-27 22:34, mcbell, removed #clanfrontline, AQ2_06 (abuse)
+    2005-08-26 14:48, mcbell, removed #mobileforce, AQ2_15 (requested)
+    2005-08-25 21:21, cric, #clan-sy, AQ2_18
+    2005-08-24 19:47, mcbell, #clan.dunder, AQ2_13
+    2005-08-24 13:32, hau, #clan.divinity, AQ2_07
+    2005-08-24 09:45, hau, #clan'mc, AQ2_16
+    2005-08-21 18:45, hau, removed #pdw, AQ2_19 (requested)
+    2005-08-21 16:10, mcbell, #clan-fraglene, AQ2_13
+    2005-08-21 13:38, mcbell, #!!!yhm!!!, AQ2_11
+    2005-08-20 13:17, mcbell, #lovemessengers, AQ2_08
+    2005-08-18 22:19, hau, #red.army, AQ2_15
+    2005-08-18 20:50, mcbell, #skvea, AQ2_10
+    2005-08-16 18:02, hau, #clan.uber, AQ2_03 (rejoin after talk)
+    2005-08-16 11:34, mcbell, #clan-rip, AQ2_11
+    2005-08-15 20:37, hau, #clanfrontline, AQ2_06
+    2005-08-15 13:05, hau, #asswhipes, AQ2_11
+    2005-08-14 21:45, hau, #clan.wr, AQ2_14
+    2005-08-13 02:39, calis, #asc.aq2, AQ2_04
+    2005-08-12 18:30, calis, removed #clan.uber AQ2_03 (abuse)
+    2005-08-12 17:16, mcbell, removed #tk.aq2, AQ2_04 (abuse)
+    2005-08-11 19:54, calis, #kg.aq2, AQ2_04
+    2005-08-11 14:00, calis, #n, AQ2_01
+    2005-08-11 00:11, mcbell, #fantasy5, AQ2_12
+    2005-08-09 14:23, mcbell, #x3o.aq2, AQ2_11
+    2005-08-07 16:46, mcbell, removed #laban, AQ2_14 (abuse)
+    2005-08-04 20:24, mcbell, #xx.clan, AQ2_12
+    2005-08-03 10:52, hau, #clan.fak, AQ2_16
+    2005-08-02 03:11, calis, removed #quakeklaani, AQ2_11
+    2005-07-31 23:27, mcbell, #clan.bm, AQ2_17
+    2005-07-31 21:23, mcbell, removed #clan.bm, AQ2_17 (requested)
+    2005-07-29 15:20, hau, add #llama`s, AQ2_14
+    2005-07-28 18:40, mcbell, removed #it.aq2, AQ2_16 (abuse)
+    2005-07-28 18:40, mcbell, removed #clan-duel, AQ2_01 (abuse)
+    2005-07-25 21:08, hau, #cassiopeia, AQ2_01
+    2005-07-25 13:15, calis, #gijoe, AQ2_02
+    2005-07-23 15:38, mcbell, #clan.ar, AQ2_11
+    2005-07-23 00:30, hau, #clan.mgs, AQ2_05
+    2005-07-22 17:47, hau, #clanunited, AQ2_07
+    2005-07-22 16:23, mcbell, #one-legged_super_nigachix, #][.aq2, AQ2_03
+    2005-07-21 22:00, hau, removed AQ2_07 from #qm.aq2 (dead chan, requested)
+    2005-07-21 19:37, mcbell, moved AQ2_13 from #[nin] to #people (requested)
+    2005-07-21 15:13, mcbell, #clanPilipali, #reskurated , AQ2_13
+    2005-07-13 13:40. calis, #clan.vns, #guys, AQ2_13
+    2005-07-12 08:30, mcbell, removed #ic.aq2, AQ2_12
+    2005-07-12 00:14, mcbell, #ic.aq2, AQ2_12
+    2005-07-11 20:26, hau, #ilmiliekit, AQ2_08
+    2005-07-09 19:37, mcbell, #wtp.aq2, AQ2_09
+    2005-07-09 14:40, hau, #laban, AQ2_14
+    2005-07-09 11:00, hau, #clan-sw, AQ2_10
+    2005-07-04 22:12, hau, #space-monkeys, AQ2_11
+    2005-07-04 19:50, hau, #9th, AQ2_16
+    2005-07-04 15:42, mcbell, #ts.aq2, AQ2_09
+    2005-07-04 15:20, mcbell, #csw.aq2, AQ2_09
+    2005-07-04 13:20, calis, #hic.aq2 AQ2_07
+    2005-07-01 02:57(why am i still awake ??), calis, #pr1de AQ2_06
+    2005-06-30 19:34, calis, #clan-sk AQ2_04
+    2005-06-27 12:39, mcbell, #oulunsalo.aq2, AQ2_09
+    2005-06-26 16:22, hau, removed #clan-fearest, AQ2_04
+    2005-06-26 15:55, hau, #es.aq2, AQ2_12
+    2005-06-25 23:20, mcbell, removed #AQ2.pirates, AQ2_09
+    2005-06-25 20:23, hau, #quakeklaani, AQ2_11
+    2005-06-25 18:47, calis, #AQ2.pirates, AQ2_09
+    2005-06-24 21:54, mcbell, #clandb, AQ2_15
+    2005-06-24 12:00, hau, #/--, AQ2_17
+    2005-06-18 21:00, mcbell, #roc.aq2, AQ2_12
+    2005-06-18 00:22, mcbell, #[anbu], AQ2_10
+    2005-06-17 07:30, hau, #ruzh.aq2, AQ2_07
+    2005-06-16 16:10, mcbell, #clan.ow, AQ2_14
+    2005-06-15 12:53, Calis, #iw.aq2, AQ2_09
+    2005-06-14 22:30, hau, #tangen, AQ2_14
+    2005-06-13 14:45, hau, #dinclan, AQ2_18
+    2005-06-10 20:50, hau, #bbs.aq2, AQ2_04
+    2005-06-10 19:45, hau, #clan-se-, AQ2_08 swapped in from #eucom
+    2005-06-09 15:30, mcbell, #mobileforce, AQ2_15
+    2005-06-08 15:00, hau, #no-exit, AQ2_13
+    2005-06-06 23:00, hau, #ehn, AQ2_19
+    2005-06-06 18:23, mcbell, #quadholics, AQ2_13
+    2005-06-05 20:54, mcbell, #infektive, AQ2_13
+    2005-06-05 19:50, mcbell, #clan-bak, AQ2_13
+    2005-06-04 18:39, mcbell, #aq2.maps, AQ2_13
+    2005-06-03 17:30, hau, #schema, AQ2_14
+    2005-06-03 12:48, mcbell, #[nin], #aq2.gutt, AQ2_13
+    2005-06-02 21:40, hau, #bestikset, AQ2_11
+    2005-06-01 23:50, hau, #ta^, AQ2_05
+    2005-06-01 23:10, calis, #clanik, AQ2_09
+    2005-06-01 17:23, calis, #clan-or, AQ2_09
+    2005-05-30 22:26, mcbell, #qurdit removed, AQ2_07 (abuse)
+    2005-05-30 19:57, hau, moved #afh to #afh^, AQ2_04 (requested)
+    2005-05-29 21:52, mcbell, #chf, AQ2_16
+    2005-05-29 12:18, mcbell, #afh, AQ2_04
+    2005-05-29 11:53, mcbell, #incredibles.aq2 removed, AQ2_14 (no ppl)
+    2005-05-28 12:xx, calis, #pk.aq2 AQ2_09
+    2005-05-27 08:23, mcbell, #clan.insane, AQ2_08
+    2005-05-25 15:40, mcbell, #qurdit, AQ2_07
+    2005-05-24 23:14, mcbell, #s3xybrothers, AQ2_07
+    2005-05-24 17:47, mcbell, #clan.com added, AQ2_07
+    2005-05-23 22:24, mcbell, #refugees, #mf.aq2 removed, AQ2_11, AQ2_09 (no ppl)
+    2005-05-23 22:23, mcbell, #element's, #neo', #:wow: removed, AQ2_13, AQ2_12 (no ppl)
+    2005-05-23 22:22, mcbell, #7-2, #dream.aq, #moment22 removed, AQ2_15, AQ2_14 (no ppl)
+    2005-05-23 18:45, hau, #illegalquake, AQ2_11
+    2005-05-23 15:24, mcbell, moved #Scarface.AQ2 to #clan-scarface, AQ2_16 (requested)
+    2005-05-23 14:02, mcbell, #clan-fubar removed, AQ2_07 (no ppl)
+    2005-05-21 11:56, mcbell, #lunars, #armageddon removed, AQ2_16 (bot was banned)
+    2005-05-21 20:10, mcbell, #rullstolsrullarna removed, AQ2_15 (no ppl)
+    2005-05-21 19:55, mcbell, #ff.aq2, #clan-macacos removed, AQ2_14 (no ppl)
+    2005-05-21 19:45, mcbell, #one.point.o, #sw-online removed, AQ2_13 (no ppl)
+    2005-05-21 19:41, mcbell, #2v2.aq2, #fantom.aq, #Liberation removed, AQ2_13 (no ppl)
+    2005-05-21 19:30, mcbell, #Fproject removed, AQ2_12 (bot was banned)
+    2005-05-21 19:13, mcbell, #jaaqc, #Da.aq2, #clanhot removed, AQ2_11 (no ppl)
+    2005-05-21 18:53, mcbell, #clan-ava, #clan-hf, #voodoo.aq removed, AQ2_10 (no ppl)
+    2005-05-21 18:45, mcbell, #nknows, #lil'saints, #stafs removed, AQ2_09 (no ppl)
+    2005-05-21 18:35, mcbell, #clan.ak, #souls.no removed, AQ2_09 (no ppl)
+    2005-05-21 18:33, mcbell, #sstars removed, AQ2_08 (no ppl)
+    2005-05-21 18:28, mcbell, #kyk removed, AQ2_08 (no ppl)
+    2005-05-21 18:25, mcbell, #swat-clan removed, AQ2_07 (no ppl)
+    2005-05-21 18:21, mcbell, #klan-biohazard removed, AQ2_07 (no ppl)
+    2005-05-21 18:13, mcbell, #cm.no removed, AQ2_07 (no ppl)
+    2005-05-21 17:01, mcbell, #clank2 removed, AQ2_05 (requested)
+    2005-05-21 16:42, mcbell, #evil-forest removed, AQ2_06 (bot was banned)
+    2005-05-21 16:17, mcbell, #rec.aq2 removed, AQ2_04 (no ppl)
+    2005-05-21 16:13, mcbell, #clan-elb removed, AQ2_04 (no ppl)
+    2005-05-21 15:30, mcbell, moved #q-aq2 to #aq2.aut, AQ2_01 (requested)
+    2005-05-20 14:00, calis, #tK<3.aq2, AQ2_19
+    2005-05-17 15:55, haui, #pdw, AQ2_19
+    2005-05-16 22:25, mcbell, #ssh.aq2, AQ2_19
+    2005-05-16 19:27, mcbell, #clan-LD, AQ2_19
+    2005-05-15 18:40, cric, #circle.aq2, AQ2_19 
+    2005-05-13 19:05, mcbell, #tykkitorni, AQ2_19
+    2005-05-13 14:11, mcbell, #clan-ua, AQ2_19
+    2005-05-11 20:24, mcbell, #Rock'n'Roll.aq2, AQ2_19
+    2005-05-09 14:05, haui, #rms.aq2, AQ2_05
+    2005-05-09 13:40, haui, #clan-nrtk, AQ2_18
+    2005-05-08 22:00, mcbell, #imnoob, AQ2_18
+    2005-05-06 23:53, mcbell, #wesside, AQ2_18
+    2005-05-06 20:35, cric, #cso, AQ2_18 
+    2005-05-06 20:35, cric, #-tmn-, AQ2_18 
+    2005-05-06 16:59, calis, #pinks removed
+    2005-05-06 16:40, mcbell, #pinks, AQ2_18
+    2005-05-06 13:55, mcbell, #fraglene, AQ2_08
+    2005-05-04 00:18, haui, #pinks, removed AQ2_05
+    2005-05-02 21:00, haui, #sx-aq2, AQ2_18
+    2005-05-01 16:15, mcbell, #SuBu.aq2 AQ2_10
+    2005-05-01 15:59, calis, #nwa-aq2 AQ2_14
+    2005-04-30 13:18, calis, #clan-AT, AQ2_06
+    2005-04-28 16:30, mcbell, #evidance removed AQ2_06
+    2005-04-28 16:20, mcbell, #sos.aq2 removed AQ2_08
+    2005-04-27 17:45, mcbell, #xu2, AQ2_18
+    2005-04-27 13:40, mcbell, #eucom, AQ2_08
+    2005-04-27 13:30, mcbell, #eucom removed AQ2_08
+    2005-04-24 21:30, haui, #sos, aq2_18
+    2005-04-22 19:55, haui, #clanci5, aq2_17
+    2005-04-21 22:50, haui, #c&c, aq2_17
+    2005-04-20 xx:xx, haui, #aZt, aq2_17
+    2005-04-19 00:xx, calis #aZt removed aq2_12
+    2005-04-19 00:06, calis #aZt aq2_17 removed aq2_12 added
+    2005-04-18 18:10, haui, #j, AQ2_18
+    2005-04-16 15:01, haui, #clan.hml, AQ2_17
+    2005-04-15 15:50, mcbell, #aZt, AQ2_17
+    2005-04-14 19:15, haui, #childrens^of^bodom.aq2, AQ2_17
+    2005-04-13 22:14, haui, #clan.bm, AQ2_17
+    2005-04-13 14:02, haui, #clan.c4, AQ2_17
+    2005-04-12 20:05, haui, #clanapc, AQ2_17
+    2005-04-12 19:00, haui, #freemasons, AQ2_17
+    2005-04-12 18:00, haui, #clan'bc, AQ2_17
+    2005-04-06 20:40, cric, #dynasty.aq2, AQ2_16
+    2005-04-03 23:11, haui, #[AaB], AQ2_16
+    2005-04-03 20:21, haui, #aq2w.league, AQ2_16
+    2005-03-31 21:17, haui, #wca, #it.aq2, AQ2_16
+    2005-03-29 23:12, haui, #scarface.aq2, AQ2_16
+    2005-03-29 17:05, cric, #-xTo, AQ2_16
+    2005-03-28 21:34, calis, #still, AQ2_14
+    2005-03-23 23:00, haui, #action.one, AQ2_16
+    2005-03-23 03:10, haui, removed #clan-w-, AQ2_14
+    2005-03-22 22:30, haui, #armageddon, AQ2_16
+    2005-03-22 08:43, haui, #lunars, AQ2_16
+    2005-03-21 00:29, haui, #amo, AQ2_15
+    2005-03-21 00:28, haui, #element's, AQ2_13
+    2005-03-17 21:27, calis, #7-2, AQ2_15
+    2005-03-15 18:22, haui, #evidance, AQ2_06
+    2005-03-12 01:17, haui, #clan-kik, AQ2_06
+    2005-03-11 14:11, calis, #sk.aq2, AQ2_14
+    2005-03-10 20:57, cric, #incredibles.aq2, AQ2_14
+    2005-03-06 17:50, haui, #gangster.org, AQ2_06
+    2005-03-05 19:30, haui, removed #clan.g'c, AQ2_06
+    2005-03-03 04:13, haui, #rec.aq2, AQ2_04
+    2005-02-26 19:03, haui, #sw-online, AQ2_13
+    2005-02-26 15:21, haui, #clank2, AQ2_05
+    2005-02-26 15:20, haui, #clan.ads, AQ2_05
+    2005-02-24 17:35, calis, #Eliten.dk AQ2_13
+    2005-02-25 01:10, haui, #fearn, AQ2_15
+    2005-02-23 23:48, calis, #clanrk AQ2_15
+    2005-02-22 20:23, haui, removed #aq2.rttt, AQ2_04
+    2005-02-21 22:53, haui, #clan-psycho, AQ2_14
+    2005-02-21 19:05, haui, #lite, AQ2_13
+    2005-02-20 00:37, calis, #clan'g AQ2_15
+    2005-02-16 12:26, calis, #clan-macacos, AQ2_14
+    2005-02-13 18:28, calis, #dream.aq, AQ2_15
+    2005-02-13 02:30, haui, #one.point.o, AQ2_13
+    2005-02-09 14:55, cric, #pdp.aq2, AQ2_14
+    2005-02-09 12:45, haui, #liberation, AQ2_13
+    2005-02-07 18:51, calis, #clansurvival, AQ2_13 removed, die hatten schon einen
+    2005-02-07 18:50, calis, #clansurvival, AQ2_13
+    2005-02-06 19:50, calis, #rullstolsrullarna, AQ2_15
+    2005-02-05 22:18, calis, #moment22, AQ2_14
+    2005-02-05 13:00, calis, #fantom.aq, AQ2_13
+    2005-02-04 20:35, calis, #clan.sHo, AQ2_15
+    2005-02-04 13:45, calis, #clan-wank, AQ2_15
+    2005-01-29 20:24, haui, removed #q.clan, AQ2_05
+    2005-01-29 20:22, haui, removed #s0t, AQ2_05
+    2005-01-29 20:21, haui, removed #thenewbreed, AQ2_06
+    2005-01-29 20:20, haui, removed #clan.cp, AQ2_06
+    2005-01-29 20:19, haui, removed #el.aq2, AQ2_06
+    2005-01-29 20:12, haui, removed #piefu, AQ2_06
+    2005-01-29 20:12, haui, removed #explosion, AQ2_06
+    2005-01-29 20:10, haui, removed #enforced, AQ2_05
+    2005-01-29 20:06, haui, #clan-lor, AQ2_05 exchanged with AQ2_12
+    2005-01-29 20:00, haui, #xclan, AQ2_05 exchanged with AQ2_12
+    2005-01-29 19:46, haui, #clanhot, AQ2_05 exchanged with AQ2_11
+    2005-01-29 19:33, haui, #mif, AQ2_03 exchanged with AQ2_11
+    2005-01-29 19:31, haui, #dogpac, AQ2_03 exchanged with AQ2_10
+    2005-01-29 18:10, haui, #clan.star, AQ2_03 exchanged with AQ2_02
+    2005-01-29 18:00, haui, #mobsters, AQ2_01 exchanged with AQ2_14
+    2005-01-29 17:52, haui, #2v2.aq2, AQ2_01 exchanged with AQ2_13
+    2005-01-29 17:43, haui, #peath, AQ2_04 exchanged with AQ2_15
+    2005-01-29 17:42, haui, #clan-w-, AQ2_04 exchanged with AQ2_14
+    2005-01-29 17:03, haui, #ntdaq, AQ2_04 exchanged with AQ2_13
+    2005-01-29 16:00, haui, #clan-sus, AQ2_12
+    2005-01-29 14:46, haui, #refugees, AQ2_11
+    2005-01-28 21:14, haui, #clan.wf, AQ2_11
+    2005-01-27 14:30, haui, removed #clanik and #refugees, AQ2_11, AQ2_02
+    2005-01-24 22:36, haui, #refugees, AQ2_11
+    2005-01-24 19:45, cric, #neo', AQ2_12
+    2005-01-21 15:03, cric, #Furians, AQ2_12
+    2005-01-20 18:50, cric, #clan.helv, AQ2_12
+    2005-01-20 17:00, haui, removed #j, AQ2_02
+    2005-01-16 15:20, haui, #jaaqc, AQ2_11
+    2005-01-16 05:27, haui, #swat-clan, AQ2_07
+    2005-01-16 05:20, haui, moved AQ2_08 #shamble's to #sstars
+    2005-01-15 19:14, haui, #:wow:, AQ2_12
+    2005-01-15 14:10, haui, #clan.illusion, AQ2_09
+    2005-01-13 00:05, haui, #aq2.dk, AQ2_02 exchanged with AQ2_09
+    2005-01-13 00:04, haui, #extacy, AQ2_02 exchanged with AQ2_10
+    2005-01-13 00:02, haui, #clan-raw, AQ2_02 exchanged with AQ2_10
+    2005-01-12 23:16, haui, #globalgangsters, AQ2_02 exchanged with AQ2_10
+    2005-01-12 23:00, haui, #mf.aq2, AQ2_07 exchanged with AQ2_09
+    2005-01-12 22:50, calis, #perusclan, AQ2_09
+    2005-01-12 21:20, haui, #clan-xk, AQ2_02 exchanged with AQ2_09
+    2005-01-12 20:52, haui, #aq2world, AQ2_02 exchanged with AQ2_10
+    2005-01-12 19:45, haui, #nm3, AQ2_10
+    2005-01-11 23:30, haui, #stafs, AQ2_09
+    2005-01-10 21:15, haui, #nf.aq2, AQ2_11
+    2005-01-09 13:40, cric, #voodoo.aq, AQ2_10
+    2005-01-09 03:26, haui, removed #nwo-aq2, AQ2_05
+    2005-01-09 03:23, haui, #035, AQ2_10
+    2005-01-08 23:45, cric, #clan-hf, AQ2_10
+    2005-01-08 13:00, haui, moved #old.skool to #old.skewl
+    2005-01-21 21:53, calis, #clan.ac, AQ2_12
+    2005-01-22 16:15, calis, #clan-ras, AQ2_12
+    2005-01-22 17:49, calis, #Da.aq2, AQ2_11
+    2005-01-27 12:05, calis, #fproject, AQ2_12
+    2005-01-30 22:42, calis, #hohto.aq2, AQ2_13
+    2005-01-30 22:42, calis, #ff.aq2, AQ2_14
+-->
+
+
+
+<!-- sig has to be unique. -->
+<mnet sig="AQ2NET" desc="Action Quake 2 Community Network (AQ2CN)">
+
+
+<!-- which bots are part of this network? -->
+  <bot nick="QUADAVER" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#quad.aq2" />
+    <ch name="#pickup.aq2" />
+  </bot>
+
+  <bot nick="AQ2_01" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#narf" />
+    <ch name="#action.dac" />
+    <ch name="#s&amp;d.aq2" />
+    <ch name="#ace.aq2" />
+    <ch name="#only_human" />
+    <ch name="#aq2.aut" />
+    <ch name="#clan.fwd" />
+    <ch name="#stener" />
+    <ch name="#messagenet" />
+    <ch name="#n" />
+    <ch name="#clan.ak" />
+    <ch name="#tyypiz.aq2" />
+    <ch name="#dnb.aq2" />
+  </bot>
+
+  <bot nick="AQ2_02" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#aq2.cup" />
+    <ch name="#questionmark" />
+    <ch name="#clan.sd" />
+    <ch name="#clan.pr0" />
+    <ch name="#clan-in" />
+    <ch name="#aq2admins" />
+    <ch name="#urangers" />
+    <ch name="#clan.star" />
+    <ch name="#gijoe" />
+    <ch name="#clan-karm&#248;y" />
+    <ch name="#laban" />
+    <ch name="#hoh.aq2" />
+  </bot>
+
+  <bot nick="AQ2_03" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#mi" />
+        <ch name="#:OwN:" />
+        <ch name="#eaql" />
+        <ch name="#clan-rot" />
+        <ch name="#pdis" />
+        <ch name="#][.aq2" />
+        <ch name="#one-legged_super_nigachix" />
+        <ch name="#NVikings" />
+        <ch name="#clanstn" />
+        <ch name="#altavastaajat" />
+        <ch name="#nitro.aq2" />
+        <ch name="#sopulistoliitto" />
+        <ch name="#clan.headquarters" />
+  </bot>
+
+  <bot nick="AQ2_04" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#viagra" />
+        <ch name="#extrallamas" />
+        <ch name="#clutch" />
+        <ch name="#clan.knight" />
+        <ch name="#kk.aq2" />
+        <ch name="#afh^" />
+        <ch name="#bbs.aq2" />
+        <ch name="#asc.aq2" />
+        <ch name="#sonitus" />
+        <ch name="#midk" />
+        <ch name="#clan-a" />
+  </bot>
+
+  <bot nick="AQ2_05" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#me_risut" />
+        <ch name="#koksnutten" />
+        <ch name="#mercuria.aq2" />
+	<ch name="#aq2.power" />
+	<ch name="#silence.aq" />
+	<ch name="#tran" />
+	<ch name="#clan.ads" />
+	<ch name="#ta^" />
+	<ch name="#clan.mgs" />
+	<ch name="#sakkolihis" />
+        <ch name="#elements.aq2" />
+        <ch name="#mbd" />
+  </bot>
+
+  <bot nick="AQ2_06" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#clan.w" />
+	<ch name="#clan.eXist" />
+	<ch name="#stoned" />
+	<ch name="#21" />
+	<ch name="#clan&lt;3" />
+	<ch name="#clan-kik" />
+	<ch name="#dipunishment" />
+        <ch name="#clan.jaujau" />
+        <ch name="#psa" />
+  </bot>
+  
+  <bot nick="AQ2_07" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#clanunited" />
+        <ch name="#clan.si" />
+	<ch name="#v8" />
+	<ch name="#clan.divinity" />
+	<ch name="#newagepimps" />
+	<ch name="#e-sickness" />
+	<ch name="#tyylimiehet" />
+	<ch name="#clansurvival" />
+        <ch name="#clan.com" />
+        <ch name="#abba" />
+        <ch name="#pd.aq2" />
+  </bot>
+  
+  <bot nick="AQ2_08" owner="Haui (haudraufwienix@gmx.de)">
+	<ch name="#tatm" />
+	<ch name="#clan'sc" />
+	<ch name="#ninenine" />
+	<ch name="#cia" />
+        <ch name="#aget.aq2" />
+        <ch name="#clan.insane" />
+        <ch name="#clan-se-" />
+        <ch name="#ilmiliekit" />
+        <ch name="#i.4" />
+        <ch name="#lovemessengers" />
+        <ch name="#ox.aq2" />
+  </bot>
+
+  <bot nick="AQ2_09" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#clan-xk" />
+        <ch name="#perusclan" />
+        <ch name="#aq2.dk" />
+        <ch name="#clan.illusion" />
+        <ch name="#pk.aq2" />
+        <ch name="#clan-or" />
+        <ch name="#clanik" />
+        <ch name="#iw.aq2" />
+        <ch name="#oulunsalo.aq2" />
+        <ch name="#tak" />
+  </bot>
+
+  <bot nick="AQ2_10" owner="Haui (haudraufwienix@gmx.de)">
+	<ch name="#035" />
+	<ch name="#nm3" />
+        <ch name="#aq2world" />
+	<ch name="#globalgangsters" />
+        <ch name="#clan-raw" />
+        <ch name="#fubar" />
+        <ch name="#extacy" />
+        <ch name="#subu.aq2" />
+        <ch name="#[anbu]" />
+        <ch name="#skvea" />
+  </bot>
+
+  <bot nick="AQ2_11" owner="Haui (haudraufwienix@gmx.de)">
+	<ch name="#Navy-Seals" />
+	<ch name="#old.skewl" />
+	<ch name="#nf.aq2" />
+        <ch name="#clan.wf" />
+        <ch name="#mif" />
+        <ch name="#bestikset" />
+        <ch name="#space-monkeys" />
+        <ch name="#clan.ar" />
+        <ch name="#x3o" />
+        <ch name="#!!!yhm!!!" />
+  </bot>
+
+  <bot nick="AQ2_12" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#clan-lor" />
+	<ch name="#clan.helv" />
+	<ch name="#Furians" />
+        <ch name="#clan-ras" />
+        <ch name="#clan-sus" />
+	<ch name="#xclan" />
+	<ch name="#xx.clan" />
+	<ch name="#clan-duel" />
+	<ch name="#losthope" />
+        <ch name="#clan.ac" />
+	<ch name="#hhal.aq2" />
+  </bot>
+
+  <bot nick="AQ2_13" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#hohto.aq2" />
+        <ch name="#lite" />
+        <ch name="#people" />
+        <ch name="#aq2.gutt" />
+        <ch name="#aq2.maps" />
+        <ch name="#infektive" />
+        <ch name="#quadholics" />
+        <ch name="#clanPilipali" />
+        <ch name="#clan-fraglene" />
+  </bot>
+
+  <bot nick="AQ2_14" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#clan-psycho" />
+        <ch name="#schema" />
+        <ch name="#tangen" />
+        <ch name="#clan.ow" />
+        <ch name="#llama`s" />
+        <ch name="#clan.elama" />
+        <ch name="#clan.seks" />
+        <ch name="#]GOD[" />
+        <ch name="#mobsters" />
+        <ch name="#clan.fak" />
+        <ch name="#afri.team" />
+  </bot>
+
+  <bot nick="AQ2_15" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#peath" />
+        <ch name="#clan.sHo" />
+        <ch name="#clan'g" />
+        <ch name="#clanrk" />
+        <ch name="#fearn" />
+        <ch name="#clandb" />
+        <ch name="#fellow" />
+        <ch name="#red.army" />
+        <ch name="#e-reality" />
+        <ch name="#yahela's" />
+  </bot>
+
+  <bot nick="AQ2_16" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#clan'mc" />
+        <ch name="#aq2w.league" />
+        <ch name="#^it" />
+        <ch name="#chf" />
+        <ch name="#9th" />
+        <ch name="#clan.perfekt" />
+        <ch name="#action.one" />
+        <ch name="#aq2.fm" />
+        <ch name="#[aab]" />
+  </bot>
+
+  <bot nick="AQ2_17" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#freemasons" />
+        <ch name="#clanapc" />
+        <ch name="#clan.c4" />
+        <ch name="#clan.hml" />
+        <ch name="#c&c" />
+        <ch name="#clanci5" />
+        <ch name="#/--" />
+        <ch name="#clan.bm" />
+        <ch name="#clan.san" />
+        <ch name="#korso_4_ubers" />
+        <ch name="#teamc" />
+        <ch name="#a5k" />
+  </bot>
+
+  <bot nick="AQ2_18" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#xu2" />
+        <ch name="#-tmn-" />
+        <ch name="#cso" />
+        <ch name="#shitty" />
+        <ch name="#wesside" />
+        <ch name="#imnoob" />
+        <ch name="#dinclan" />
+        <ch name="#clan-sy" />
+        <ch name="#sr.aq2" />
+        <ch name="#clan.rw" />
+</bot>
+
+  <bot nick="AQ2_19" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#Rock'n'Roll.aq2" />
+        <ch name="#clan-ua" />
+        <ch name="#clan-LD" />
+        <ch name="#ssh.aq2" />
+        <ch name="#tK<3.aq2" />
+        <ch name="#clan.vns" />
+        <ch name="#fraggersunited" />
+        <ch name="#clandickheads" />
+  </bot>
+
+  <bot nick="AQ2_20" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#bakers" />
+        <ch name="#iu" />
+        <ch name="#clan.nif" />
+        <ch name="#clan.dhb" />
+        <ch name="#ltn" />
+        <ch name="#dark-fire" />
+        <ch name="#ck.aq2" />
+        <ch name="#clan.nokia" />
+        <ch name="#kb" />
+  </bot>
+
+  <bot nick="AQ2_21" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#aq2.sm" />
+        <ch name="#fail" />
+        <ch name="#guage.fi" />
+        <ch name="#cn3" />
+        <ch name="#clan.tripla" />
+        <ch name="#viksjo.ex" />
+        <ch name="#aropuput" />
+        <ch name="#clan.pirates" />
+        <ch name="#aq2helsinki" />
+        <ch name="#nru!" />
+        <ch name="#power.aq2" />
+        <ch name="#clan.alliance" />
+  </bot>
+
+  <bot nick="AQ2_22" owner="McBell (admin@wtf.se)">
+  </bot>
+
+  <bot nick="AQ2_23" owner="McBell (admin@wtf.se)">
+  </bot>
+
+<!-- the frequencies serve the whole network (all channels) -->
+
+  <frequency name="-aq2-" prefix=".aq2" helpmsg="dot aq2 Usage: '.aq2 <message>'   Rules: ONLY AQ2-related, only english, no replies over the bot! Use query or join their channel! Read http://quadaver.net/Aq2Mnet for more infos." desc="some description is required." delay="540">
+<!-- Clowneh -->
+	<ban hostmask="*@Clowneh.users.quakenet.org" reason="clown:Slacking it off sometimes and being a too funny guy."/>
+	<ban hostmask="*@www.primefarm.co.uk" reason="clown: Slacking it off sometimes and being a too funny guy."/>
+	<ban hostmask="clowneh@*.m00ki.de" reason="clown: Slacking it off sometimes and being a too funny guy."/>
+
+
+<!-- Demoni -->
+	<ban hostmask="*demoni@tarjoo.mulle.olut.gr" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+        <ban hostmask="*@D3M0N1.users.quakenet.org" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+        <ban hostmask="*demoni@on.tiukka.biz" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+        <ban hostmask="*Mun@servut.us" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+
+<!-- Big^Pimp -->
+        <ban hostmask="BGp@*.bb.online.no" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+        <ban hostmask="*@BGp.users.quakenet.org" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+
+<!-- fIGARO -->
+        <ban hostmask="m11ljungma@83.93.42.80" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+        <ban hostmask="*@fIgArOmmm.users.quakenet.org" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+
+<!-- SheMale/Jolla -->
+        <ban hostmask="*vnoes@*.bredband.skanova.com" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+        <ban hostmask="*@Jollaa.users.quakenet.org" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+
+  </frequency>
+
+
+<!--
+  <frequency name="-spam-" prefix=".spam" helpmsg="dot spam Usage: '.spam lallala'  Rules: only english, but everything allowed" />
+-->
+
+<!--
+  none: no color at all.
+  00: bright gray
+  01: black
+  02: blue
+  03: green
+  04: red
+  05: dark red
+  06: purple
+  07: orange
+  08: yellow
+  09: bright green
+  10: cyan
+  11: bright cyan
+  12: bright blue
+  13: bright purple
+  14: dark gray
+  15: gray
+
+  optional="1" 
+       means, the user can decide if he wants the color, or not.
+	   if 'optional' is not given, it defaults to 0 and the color will be forced.
+       if 'optional' is 1, then no color is used and it has to be enabled by the users.
+	   
+  
+-->
+  <color id="03" optional="1" />
+
+
+</mnet>

+ 390 - 0
network_cfgs/aq2net.cfg.2

@@ -0,0 +1,390 @@
+<!-- 
+
+  ==AQ2 Community Message Network==
+
+  Networkconfig Maintainer: 
+
+    QuAd|Haui (haudraufwienix@gmx.de)
+    #quadaver @ QuakeNet
+
+  Please feel free to contact me. Every channel that has a
+  relation to ActionQuake2 is welcome.  
+
+  If you have already set up an eggdrop bot, you can be
+  part of this network too! Just tell me! I'll send
+  you everything you need.
+
+  Last changed:
+    2005-12-01 15:43, mcbell, removed #circle.aq2, AQ2_19, #guys, AQ2_19, #dynasty.aq, AQ2_20 (no ppl)
+    2005-12-01 15:12, mcbell, banned Shemale Jolla (violation)
+    2005-12-01 12:40, mcbell, #afri.team, AQ2_14
+-->
+
+
+
+<!-- sig has to be unique. -->
+<mnet sig="AQ2NET" desc="Action Quake 2 Community Network (AQ2CN)">
+
+
+<!-- which bots are part of this network? -->
+  <bot nick="QUADAVER" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#quad.aq2" />
+    <ch name="#pickup.aq2" />
+  </bot>
+
+  <bot nick="AQ2_01" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#narf" />
+    <ch name="#action.dac" />
+    <ch name="#s&amp;d.aq2" />
+    <ch name="#ace.aq2" />
+    <ch name="#only_human" />
+    <ch name="#aq2.aut" />
+    <ch name="#clan.fwd" />
+    <ch name="#stener" />
+    <ch name="#messagenet" />
+    <ch name="#n" />
+    <ch name="#clan.ak" />
+    <ch name="#tyypiz.aq2" />
+    <ch name="#dnb.aq2" />
+  </bot>
+
+  <bot nick="AQ2_02" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#aq2.cup" />
+    <ch name="#questionmark" />
+    <ch name="#clan.sd" />
+    <ch name="#clan.pr0" />
+    <ch name="#clan-in" />
+    <ch name="#aq2admins" />
+    <ch name="#urangers" />
+    <ch name="#clan.star" />
+    <ch name="#gijoe" />
+    <ch name="#clan-karm&#248;y" />
+    <ch name="#laban" />
+    <ch name="#hoh.aq2" />
+  </bot>
+
+  <bot nick="AQ2_03" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#mi" />
+        <ch name="#:OwN:" />
+        <ch name="#eaql" />
+        <ch name="#clan-rot" />
+        <ch name="#pdis" />
+        <ch name="#][.aq2" />
+        <ch name="#one-legged_super_nigachix" />
+        <ch name="#NVikings" />
+        <ch name="#clanstn" />
+        <ch name="#altavastaajat" />
+        <ch name="#nitro.aq2" />
+        <ch name="#sopulistoliitto" />
+        <ch name="#clan.headquarters" />
+  </bot>
+
+  <bot nick="AQ2_04" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#viagra" />
+        <ch name="#extrallamas" />
+        <ch name="#clutch" />
+        <ch name="#clan.knight" />
+        <ch name="#kk.aq2" />
+        <ch name="#afh^" />
+        <ch name="#bbs.aq2" />
+        <ch name="#asc.aq2" />
+        <ch name="#sonitus" />
+        <ch name="#midk" />
+        <ch name="#clan-a" />
+  </bot>
+
+  <bot nick="AQ2_05" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#me_risut" />
+        <ch name="#koksnutten" />
+        <ch name="#mercuria.aq2" />
+	<ch name="#aq2.power" />
+	<ch name="#silence.aq" />
+	<ch name="#tran" />
+	<ch name="#clan.ads" />
+	<ch name="#ta^" />
+	<ch name="#clan.mgs" />
+	<ch name="#sakkolihis" />
+        <ch name="#elements.aq2" />
+        <ch name="#mbd" />
+  </bot>
+
+  <bot nick="AQ2_06" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#clan.w" />
+	<ch name="#clan.eXist" />
+	<ch name="#stoned" />
+	<ch name="#21" />
+	<ch name="#clan&lt;3" />
+	<ch name="#clan-kik" />
+	<ch name="#dipunishment" />
+        <ch name="#clan.jaujau" />
+        <ch name="#psa" />
+  </bot>
+  
+  <bot nick="AQ2_07" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#clanunited" />
+        <ch name="#clan.si" />
+	<ch name="#v8" />
+	<ch name="#clan.divinity" />
+	<ch name="#newagepimps" />
+	<ch name="#e-sickness" />
+	<ch name="#tyylimiehet" />
+	<ch name="#clansurvival" />
+        <ch name="#clan.com" />
+        <ch name="#abba" />
+        <ch name="#pd.aq2" />
+  </bot>
+  
+  <bot nick="AQ2_08" owner="Haui (haudraufwienix@gmx.de)">
+	<ch name="#tatm" />
+	<ch name="#clan'sc" />
+	<ch name="#ninenine" />
+	<ch name="#cia" />
+        <ch name="#aget.aq2" />
+        <ch name="#clan.insane" />
+        <ch name="#clan-se-" />
+        <ch name="#ilmiliekit" />
+        <ch name="#i.4" />
+        <ch name="#lovemessengers" />
+        <ch name="#ox.aq2" />
+  </bot>
+
+  <bot nick="AQ2_09" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#clan-xk" />
+        <ch name="#perusclan" />
+        <ch name="#aq2.dk" />
+        <ch name="#clan.illusion" />
+        <ch name="#pk.aq2" />
+        <ch name="#clan-or" />
+        <ch name="#clanik" />
+        <ch name="#iw.aq2" />
+        <ch name="#oulunsalo.aq2" />
+        <ch name="#tak" />
+  </bot>
+
+  <bot nick="AQ2_10" owner="Haui (haudraufwienix@gmx.de)">
+	<ch name="#035" />
+	<ch name="#nm3" />
+        <ch name="#aq2world" />
+	<ch name="#globalgangsters" />
+        <ch name="#clan-raw" />
+        <ch name="#fubar" />
+        <ch name="#extacy" />
+        <ch name="#subu.aq2" />
+        <ch name="#[anbu]" />
+        <ch name="#skvea" />
+  </bot>
+
+  <bot nick="AQ2_11" owner="Haui (haudraufwienix@gmx.de)">
+	<ch name="#Navy-Seals" />
+	<ch name="#old.skewl" />
+	<ch name="#nf.aq2" />
+        <ch name="#clan.wf" />
+        <ch name="#mif" />
+        <ch name="#bestikset" />
+        <ch name="#space-monkeys" />
+        <ch name="#clan.ar" />
+        <ch name="#x3o" />
+        <ch name="#!!!yhm!!!" />
+  </bot>
+
+  <bot nick="AQ2_12" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#clan-lor" />
+	<ch name="#clan.helv" />
+	<ch name="#Furians" />
+        <ch name="#clan-ras" />
+        <ch name="#clan-sus" />
+	<ch name="#xclan" />
+	<ch name="#xx.clan" />
+	<ch name="#clan-duel" />
+	<ch name="#losthope" />
+        <ch name="#clan.ac" />
+	<ch name="#hhal.aq2" />
+  </bot>
+
+  <bot nick="AQ2_13" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#hohto.aq2" />
+        <ch name="#lite" />
+        <ch name="#people" />
+        <ch name="#aq2.gutt" />
+        <ch name="#aq2.maps" />
+        <ch name="#infektive" />
+        <ch name="#quadholics" />
+        <ch name="#clanPilipali" />
+        <ch name="#clan-fraglene" />
+  </bot>
+
+  <bot nick="AQ2_14" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#clan-psycho" />
+        <ch name="#schema" />
+        <ch name="#tangen" />
+        <ch name="#clan.ow" />
+        <ch name="#llama`s" />
+        <ch name="#clan.elama" />
+        <ch name="#clan.seks" />
+        <ch name="#]GOD[" />
+        <ch name="#mobsters" />
+        <ch name="#clan.fak" />
+        <ch name="#afri.team" />
+  </bot>
+
+  <bot nick="AQ2_15" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#peath" />
+        <ch name="#clan.sHo" />
+        <ch name="#clan'g" />
+        <ch name="#clanrk" />
+        <ch name="#fearn" />
+        <ch name="#clandb" />
+        <ch name="#fellow" />
+        <ch name="#red.army" />
+        <ch name="#e-reality" />
+        <ch name="#yahela's" />
+  </bot>
+
+  <bot nick="AQ2_16" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#clan'mc" />
+        <ch name="#aq2w.league" />
+        <ch name="#^it" />
+        <ch name="#chf" />
+        <ch name="#9th" />
+        <ch name="#clan.perfekt" />
+        <ch name="#action.one" />
+        <ch name="#aq2.fm" />
+        <ch name="#[aab]" />
+  </bot>
+
+  <bot nick="AQ2_17" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#freemasons" />
+        <ch name="#clanapc" />
+        <ch name="#clan.c4" />
+        <ch name="#clan.hml" />
+        <ch name="#c&amp;c" />
+        <ch name="#clanci5" />
+        <ch name="#/--" />
+        <ch name="#clan.bm" />
+        <ch name="#clan.san" />
+        <ch name="#korso_4_ubers" />
+        <ch name="#teamc" />
+        <ch name="#a5k" />
+  </bot>
+
+  <bot nick="AQ2_18" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#xu2" />
+        <ch name="#-tmn-" />
+        <ch name="#cso" />
+        <ch name="#shitty" />
+        <ch name="#wesside" />
+        <ch name="#imnoob" />
+        <ch name="#dinclan" />
+        <ch name="#clan-sy" />
+        <ch name="#sr.aq2" />
+        <ch name="#clan.rw" />
+</bot>
+
+  <bot nick="AQ2_19" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#Rock'n'Roll.aq2" />
+        <ch name="#clan-ua" />
+        <ch name="#clan-LD" />
+        <ch name="#ssh.aq2" />
+        <ch name="#tK&lt;3.aq2" />
+        <ch name="#clan.vns" />
+        <ch name="#fraggersunited" />
+        <ch name="#clandickheads" />
+  </bot>
+
+  <bot nick="AQ2_20" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#bakers" />
+        <ch name="#iu" />
+        <ch name="#clan.nif" />
+        <ch name="#clan.dhb" />
+        <ch name="#ltn" />
+        <ch name="#dark-fire" />
+        <ch name="#ck.aq2" />
+        <ch name="#clan.nokia" />
+        <ch name="#kb" />
+  </bot>
+
+  <bot nick="AQ2_21" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#aq2.sm" />
+        <ch name="#fail" />
+        <ch name="#guage.fi" />
+        <ch name="#cn3" />
+        <ch name="#clan.tripla" />
+        <ch name="#viksjo.ex" />
+        <ch name="#aropuput" />
+        <ch name="#clan.pirates" />
+        <ch name="#aq2helsinki" />
+        <ch name="#nru!" />
+        <ch name="#power.aq2" />
+        <ch name="#clan.alliance" />
+  </bot>
+
+  <bot nick="AQ2_22" owner="McBell (admin@wtf.se)">
+  </bot>
+
+  <bot nick="AQ2_23" owner="McBell (admin@wtf.se)">
+  </bot>
+
+<!-- the frequencies serve the whole network (all channels) -->
+
+  <frequency name="-aq2-" prefix=".aq2" helpmsg="dot aq2 Usage: '.aq2 <message>'   Rules: ONLY AQ2-related, only english, no replies over the bot! Use query or join their channel! Read http://quadaver.net/Aq2Mnet for more infos." desc="some description is required." delay="540">
+<!-- Clowneh -->
+	<ban hostmask="*@Clowneh.users.quakenet.org" reason="clown:Slacking it off sometimes and being a too funny guy."/>
+	<ban hostmask="*@www.primefarm.co.uk" reason="clown: Slacking it off sometimes and being a too funny guy."/>
+	<ban hostmask="clowneh@*.m00ki.de" reason="clown: Slacking it off sometimes and being a too funny guy."/>
+
+
+<!-- Demoni -->
+	<ban hostmask="*demoni@tarjoo.mulle.olut.gr" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+        <ban hostmask="*@D3M0N1.users.quakenet.org" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+        <ban hostmask="*demoni@on.tiukka.biz" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+        <ban hostmask="*Mun@servut.us" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+
+<!-- Big^Pimp -->
+        <ban hostmask="BGp@*.bb.online.no" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+        <ban hostmask="*@BGp.users.quakenet.org" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+
+<!-- fIGARO -->
+        <ban hostmask="m11ljungma@83.93.42.80" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+        <ban hostmask="*@fIgArOmmm.users.quakenet.org" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+
+<!-- SheMale/Jolla -->
+        <ban hostmask="*vnoes@*.bredband.skanova.com" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+        <ban hostmask="*@Jollaa.users.quakenet.org" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+
+  </frequency>
+
+
+<!--
+  <frequency name="-spam-" prefix=".spam" helpmsg="dot spam Usage: '.spam lallala'  Rules: only english, but everything allowed" />
+-->
+
+<!--
+  none: no color at all.
+  00: bright gray
+  01: black
+  02: blue
+  03: green
+  04: red
+  05: dark red
+  06: purple
+  07: orange
+  08: yellow
+  09: bright green
+  10: cyan
+  11: bright cyan
+  12: bright blue
+  13: bright purple
+  14: dark gray
+  15: gray
+
+  optional="1" 
+       means, the user can decide if he wants the color, or not.
+	   if 'optional' is not given, it defaults to 0 and the color will be forced.
+       if 'optional' is 1, then no color is used and it has to be enabled by the users.
+	   
+  
+-->
+  <color id="03" optional="1" />
+
+
+</mnet>

+ 391 - 0
network_cfgs/aq2net.cfg.3

@@ -0,0 +1,391 @@
+<!-- 
+
+  ==AQ2 Community Message Network==
+
+  Networkconfig Maintainer: 
+
+    QuAd|Haui (haudraufwienix@gmx.de)
+    #quadaver @ QuakeNet
+
+  Please feel free to contact me. Every channel that has a
+  relation to ActionQuake2 is welcome.  
+
+  If you have already set up an eggdrop bot, you can be
+  part of this network too! Just tell me! I'll send
+  you everything you need.
+
+  Last changed:
+    2005-12-01 15:43, mcbell, removed #circle.aq2, AQ2_19, #guys, AQ2_19, #dynasty.aq, AQ2_20 (no ppl)
+    2005-12-01 15:12, mcbell, banned Shemale Jolla (violation)
+    2005-12-01 12:40, mcbell, #afri.team, AQ2_14
+    The changes before are moved to quadaver.net wakka. Once in a while (a year :)) - move them pls.
+-->
+
+
+
+<!-- sig has to be unique. -->
+<mnet sig="AQ2NET" desc="Action Quake 2 Community Network (AQ2CN)">
+
+
+<!-- which bots are part of this network? -->
+  <bot nick="QUADAVER" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#quad.aq2" />
+    <ch name="#pickup.aq2" />
+  </bot>
+
+  <bot nick="AQ2_01" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#narf" />
+    <ch name="#action.dac" />
+    <ch name="#s&amp;d.aq2" />
+    <ch name="#ace.aq2" />
+    <ch name="#only_human" />
+    <ch name="#aq2.aut" />
+    <ch name="#clan.fwd" />
+    <ch name="#stener" />
+    <ch name="#messagenet" />
+    <ch name="#n" />
+    <ch name="#clan.ak" />
+    <ch name="#tyypiz.aq2" />
+    <ch name="#dnb.aq2" />
+  </bot>
+
+  <bot nick="AQ2_02" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#aq2.cup" />
+    <ch name="#questionmark" />
+    <ch name="#clan.sd" />
+    <ch name="#clan.pr0" />
+    <ch name="#clan-in" />
+    <ch name="#aq2admins" />
+    <ch name="#urangers" />
+    <ch name="#clan.star" />
+    <ch name="#gijoe" />
+    <ch name="#clan-karm&#248;y" />
+    <ch name="#laban" />
+    <ch name="#hoh.aq2" />
+  </bot>
+
+  <bot nick="AQ2_03" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#mi" />
+        <ch name="#:OwN:" />
+        <ch name="#eaql" />
+        <ch name="#clan-rot" />
+        <ch name="#pdis" />
+        <ch name="#][.aq2" />
+        <ch name="#one-legged_super_nigachix" />
+        <ch name="#NVikings" />
+        <ch name="#clanstn" />
+        <ch name="#altavastaajat" />
+        <ch name="#nitro.aq2" />
+        <ch name="#sopulistoliitto" />
+        <ch name="#clan.headquarters" />
+  </bot>
+
+  <bot nick="AQ2_04" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#viagra" />
+        <ch name="#extrallamas" />
+        <ch name="#clutch" />
+        <ch name="#clan.knight" />
+        <ch name="#kk.aq2" />
+        <ch name="#afh^" />
+        <ch name="#bbs.aq2" />
+        <ch name="#asc.aq2" />
+        <ch name="#sonitus" />
+        <ch name="#midk" />
+        <ch name="#clan-a" />
+  </bot>
+
+  <bot nick="AQ2_05" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#me_risut" />
+        <ch name="#koksnutten" />
+        <ch name="#mercuria.aq2" />
+	<ch name="#aq2.power" />
+	<ch name="#silence.aq" />
+	<ch name="#tran" />
+	<ch name="#clan.ads" />
+	<ch name="#ta^" />
+	<ch name="#clan.mgs" />
+	<ch name="#sakkolihis" />
+        <ch name="#elements.aq2" />
+        <ch name="#mbd" />
+  </bot>
+
+  <bot nick="AQ2_06" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#clan.w" />
+	<ch name="#clan.eXist" />
+	<ch name="#stoned" />
+	<ch name="#21" />
+	<ch name="#clan&lt;3" />
+	<ch name="#clan-kik" />
+	<ch name="#dipunishment" />
+        <ch name="#clan.jaujau" />
+        <ch name="#psa" />
+  </bot>
+  
+  <bot nick="AQ2_07" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#clanunited" />
+        <ch name="#clan.si" />
+	<ch name="#v8" />
+	<ch name="#clan.divinity" />
+	<ch name="#newagepimps" />
+	<ch name="#e-sickness" />
+	<ch name="#tyylimiehet" />
+	<ch name="#clansurvival" />
+        <ch name="#clan.com" />
+        <ch name="#abba" />
+        <ch name="#pd.aq2" />
+  </bot>
+  
+  <bot nick="AQ2_08" owner="Haui (haudraufwienix@gmx.de)">
+	<ch name="#tatm" />
+	<ch name="#clan'sc" />
+	<ch name="#ninenine" />
+	<ch name="#cia" />
+        <ch name="#aget.aq2" />
+        <ch name="#clan.insane" />
+        <ch name="#clan-se-" />
+        <ch name="#ilmiliekit" />
+        <ch name="#i.4" />
+        <ch name="#lovemessengers" />
+        <ch name="#ox.aq2" />
+  </bot>
+
+  <bot nick="AQ2_09" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#clan-xk" />
+        <ch name="#perusclan" />
+        <ch name="#aq2.dk" />
+        <ch name="#clan.illusion" />
+        <ch name="#pk.aq2" />
+        <ch name="#clan-or" />
+        <ch name="#clanik" />
+        <ch name="#iw.aq2" />
+        <ch name="#oulunsalo.aq2" />
+        <ch name="#tak" />
+  </bot>
+
+  <bot nick="AQ2_10" owner="Haui (haudraufwienix@gmx.de)">
+	<ch name="#035" />
+	<ch name="#nm3" />
+        <ch name="#aq2world" />
+	<ch name="#globalgangsters" />
+        <ch name="#clan-raw" />
+        <ch name="#fubar" />
+        <ch name="#extacy" />
+        <ch name="#subu.aq2" />
+        <ch name="#[anbu]" />
+        <ch name="#skvea" />
+  </bot>
+
+  <bot nick="AQ2_11" owner="Haui (haudraufwienix@gmx.de)">
+	<ch name="#Navy-Seals" />
+	<ch name="#old.skewl" />
+	<ch name="#nf.aq2" />
+        <ch name="#clan.wf" />
+        <ch name="#mif" />
+        <ch name="#bestikset" />
+        <ch name="#space-monkeys" />
+        <ch name="#clan.ar" />
+        <ch name="#x3o" />
+        <ch name="#!!!yhm!!!" />
+  </bot>
+
+  <bot nick="AQ2_12" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#clan-lor" />
+	<ch name="#clan.helv" />
+	<ch name="#Furians" />
+        <ch name="#clan-ras" />
+        <ch name="#clan-sus" />
+	<ch name="#xclan" />
+	<ch name="#xx.clan" />
+	<ch name="#clan-duel" />
+	<ch name="#losthope" />
+        <ch name="#clan.ac" />
+	<ch name="#hhal.aq2" />
+  </bot>
+
+  <bot nick="AQ2_13" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#hohto.aq2" />
+        <ch name="#lite" />
+        <ch name="#people" />
+        <ch name="#aq2.gutt" />
+        <ch name="#aq2.maps" />
+        <ch name="#infektive" />
+        <ch name="#quadholics" />
+        <ch name="#clanPilipali" />
+        <ch name="#clan-fraglene" />
+  </bot>
+
+  <bot nick="AQ2_14" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#clan-psycho" />
+        <ch name="#schema" />
+        <ch name="#tangen" />
+        <ch name="#clan.ow" />
+        <ch name="#llama`s" />
+        <ch name="#clan.elama" />
+        <ch name="#clan.seks" />
+        <ch name="#]GOD[" />
+        <ch name="#mobsters" />
+        <ch name="#clan.fak" />
+        <ch name="#afri.team" />
+  </bot>
+
+  <bot nick="AQ2_15" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#peath" />
+        <ch name="#clan.sHo" />
+        <ch name="#clan'g" />
+        <ch name="#clanrk" />
+        <ch name="#fearn" />
+        <ch name="#clandb" />
+        <ch name="#fellow" />
+        <ch name="#red.army" />
+        <ch name="#e-reality" />
+        <ch name="#yahela's" />
+  </bot>
+
+  <bot nick="AQ2_16" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#clan'mc" />
+        <ch name="#aq2w.league" />
+        <ch name="#^it" />
+        <ch name="#chf" />
+        <ch name="#9th" />
+        <ch name="#clan.perfekt" />
+        <ch name="#action.one" />
+        <ch name="#aq2.fm" />
+        <ch name="#[aab]" />
+  </bot>
+
+  <bot nick="AQ2_17" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#freemasons" />
+        <ch name="#clanapc" />
+        <ch name="#clan.c4" />
+        <ch name="#clan.hml" />
+        <ch name="#c&amp;c" />
+        <ch name="#clanci5" />
+        <ch name="#/--" />
+        <ch name="#clan.bm" />
+        <ch name="#clan.san" />
+        <ch name="#korso_4_ubers" />
+        <ch name="#teamc" />
+        <ch name="#a5k" />
+  </bot>
+
+  <bot nick="AQ2_18" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#xu2" />
+        <ch name="#-tmn-" />
+        <ch name="#cso" />
+        <ch name="#shitty" />
+        <ch name="#wesside" />
+        <ch name="#imnoob" />
+        <ch name="#dinclan" />
+        <ch name="#clan-sy" />
+        <ch name="#sr.aq2" />
+        <ch name="#clan.rw" />
+</bot>
+
+  <bot nick="AQ2_19" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#Rock'n'Roll.aq2" />
+        <ch name="#clan-ua" />
+        <ch name="#clan-LD" />
+        <ch name="#ssh.aq2" />
+        <ch name="#tK&lt;3.aq2" />
+        <ch name="#clan.vns" />
+        <ch name="#fraggersunited" />
+        <ch name="#clandickheads" />
+  </bot>
+
+  <bot nick="AQ2_20" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#bakers" />
+        <ch name="#iu" />
+        <ch name="#clan.nif" />
+        <ch name="#clan.dhb" />
+        <ch name="#ltn" />
+        <ch name="#dark-fire" />
+        <ch name="#ck.aq2" />
+        <ch name="#clan.nokia" />
+        <ch name="#kb" />
+  </bot>
+
+  <bot nick="AQ2_21" owner="Haui (haudraufwienix@gmx.de)">
+        <ch name="#aq2.sm" />
+        <ch name="#fail" />
+        <ch name="#guage.fi" />
+        <ch name="#cn3" />
+        <ch name="#clan.tripla" />
+        <ch name="#viksjo.ex" />
+        <ch name="#aropuput" />
+        <ch name="#clan.pirates" />
+        <ch name="#aq2helsinki" />
+        <ch name="#nru!" />
+        <ch name="#power.aq2" />
+        <ch name="#clan.alliance" />
+  </bot>
+
+  <bot nick="AQ2_22" owner="McBell (admin@wtf.se)">
+  </bot>
+
+  <bot nick="AQ2_23" owner="McBell (admin@wtf.se)">
+  </bot>
+
+<!-- the frequencies serve the whole network (all channels) -->
+
+  <frequency name="-aq2-" prefix=".aq2" helpmsg="dot aq2 Usage: '.aq2 &lt;message&gt;'   Rules: ONLY AQ2-related, only english, no replies over the bot! Use query or join their channel! Read http://quadaver.net/Aq2Mnet for more infos." desc="some description is required." delay="540">
+<!-- Clowneh -->
+	<ban hostmask="*@Clowneh.users.quakenet.org" reason="clown:Slacking it off sometimes and being a too funny guy."/>
+	<ban hostmask="*@www.primefarm.co.uk" reason="clown: Slacking it off sometimes and being a too funny guy."/>
+	<ban hostmask="clowneh@*.m00ki.de" reason="clown: Slacking it off sometimes and being a too funny guy."/>
+
+
+<!-- Demoni -->
+	<ban hostmask="*demoni@tarjoo.mulle.olut.gr" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+        <ban hostmask="*@D3M0N1.users.quakenet.org" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+        <ban hostmask="*demoni@on.tiukka.biz" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+        <ban hostmask="*Mun@servut.us" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+
+<!-- Big^Pimp -->
+        <ban hostmask="BGp@*.bb.online.no" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+        <ban hostmask="*@BGp.users.quakenet.org" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+
+<!-- fIGARO -->
+        <ban hostmask="m11ljungma@83.93.42.80" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+        <ban hostmask="*@fIgArOmmm.users.quakenet.org" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+
+<!-- SheMale/Jolla -->
+        <ban hostmask="*vnoes@*.bredband.skanova.com" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+        <ban hostmask="*@Jollaa.users.quakenet.org" reason="You are banned. For more details see http://quadaver.net/MnetAq2Warnings"/>
+
+  </frequency>
+
+
+<!--
+  <frequency name="-spam-" prefix=".spam" helpmsg="dot spam Usage: '.spam lallala'  Rules: only english, but everything allowed" />
+-->
+
+<!--
+  none: no color at all.
+  00: bright gray
+  01: black
+  02: blue
+  03: green
+  04: red
+  05: dark red
+  06: purple
+  07: orange
+  08: yellow
+  09: bright green
+  10: cyan
+  11: bright cyan
+  12: bright blue
+  13: bright purple
+  14: dark gray
+  15: gray
+
+  optional="1" 
+       means, the user can decide if he wants the color, or not.
+	   if 'optional' is not given, it defaults to 0 and the color will be forced.
+       if 'optional' is 1, then no color is used and it has to be enabled by the users.
+	   
+  
+-->
+  <color id="03" optional="1" />
+
+
+</mnet>

+ 109 - 0
network_cfgs/aq2net.cfg~

@@ -0,0 +1,109 @@
+<!-- 
+
+  ==AQ2 Community Message Network==
+
+  Networkconfig Maintainer: 
+
+    QuAd|Haui (haudraufwienix@gmx.de)
+    #quadaver @ QuakeNet
+
+  Please feel free to contact me. Every channel that has a
+  relation to ActionQuake2 is welcome.  
+
+  If you have already set up an eggdrop bot, you can be
+  part of this network too! Just tell me! I'll send
+  you everything you need.
+  
+-->
+
+
+
+<!-- sig has to be unique. -->
+<mnet sig="AQ2NET" desc="Action Quake 2 Community Network (AQ2CN)">
+
+
+<!-- which bots are part of this network? -->
+  <bot nick="QUADAVER" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#quad.aq2" />
+    <ch name="#pickup.aq2" />
+  </bot>
+
+  <bot nick="AQ2_01" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#narf" />
+    <ch name="#action.dac" />
+    <ch name="#[pulse]" />
+    <ch name="#mobsters" />
+    <ch name="#s&amp;d.aq2" />
+    <ch name="#ace.aq2" />
+    <ch name="#only_human" />
+    <ch name="#q-aq2" />
+    <ch name="#mif" />
+    <ch name="#clan-duel" />
+    <ch name="#s4p" />
+    <ch name="#clan.fwd" />
+    <ch name="#sumpen" />
+    <ch name="#stener" />
+    <ch name="#m-iv" />
+    <ch name="#we&#62;you" />
+    <ch name="#old.skool" />
+    <ch name="#2v2.aq2" />
+    <ch name="clan-wF" />
+    <ch name="#matsia" />
+  </bot>
+
+  <bot nick="AQ2_02" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#extacy" />
+    <ch name="#cold!" />
+    <ch name="#aq2.cup" />
+    <ch name="#summercup.aq2" />
+    <ch name="#aq2world" />
+    <ch name="#clan-raw" />
+    <ch name="#attention!" />
+    <ch name="#rip" />
+    <ch name="#clan-Xk" />
+    <ch name="#ck.aq2" />
+    <ch name="#clan-rotu" />
+    <ch name="#questionmark" />
+    <ch name="#clan.sd" />
+    <ch name="#clan.pr0" />
+    <ch name="#j" />
+    <ch name="#clan-iN" />
+    <ch name="#aq2admins" />
+    <ch name="#urangers" />
+    <ch name="#aq2.dk" />
+    <ch name="#darkside" />
+  </bot>
+
+<!-- the frequencies serve the whole network (all channels) -->
+
+  <frequency name="-aq2-" prefix=".aq2" helpmsg="dot aq2 Usage: '.aq2 need a cw, 4on4 at 20:00cet.'   Rules: ONLY AQ2-related, only english, no replies over the bot! Use query or join their channel!" desc="some description ist required."/>
+  
+<!--
+  <frequency name="-spam-" prefix=".spam" helpmsg="dot spam Usage: '.spam lallala'  Rules: only english, but everything allowed" />
+-->
+
+<!--
+  00: bright gray
+  01: black
+  02: blue
+  03: green
+  04: red
+  05: dark red
+  06: purple
+  07: orange
+  08: yellow
+  09: bright green
+  10: cyan
+  11: bright cyan
+  12: bright blue
+  13: bright purple
+  14: dark gray
+  15: gray
+-->
+  <color id="03" />
+
+
+</mnet>
+
+
+

+ 127 - 0
network_cfgs/aq2net.xml

@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<?xml-stylesheet type="text/xsl" href="aq2net.xsl"?>
+<!DOCTYPE mnet SYSTEM "mnet.dtd">
+
+<test>
+<mnet sig="AQ2NET" desc="Action Quake 2 Community Network (AQ2CN)">
+
+  <information>
+    <contact>
+	  <nick>QuAd|Haui</nick>
+	  <email>haudraufwienix@gmx.de</email>
+	  <channel>#quadaver @ QuakeNet</channel>
+	</contact>
+	<text>Please feel free to contact me. Every channel that has a relation to ActionQuake2 is welcome.If you have already set up an eggdrop bot, you can be part of this network too! Just tell me! I'll send you everything you need.</text>
+  </information>
+
+
+  <bot nick="QUADAVER" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#quad.aq2">aha</ch>
+    <ch name="#pickup.aq2">hmm</ch>
+  </bot>
+ 
+  <bot nick="AQ2_01" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#narf" />
+    <ch name="#action.dac" />
+    <ch name="#[pulse]" />
+    <ch name="#mobsters" />
+    <ch name="#s&amp;d.aq2" />
+    <ch name="#ace.aq2" />
+    <ch name="#only_human" />
+    <ch name="#q-aq2" />
+    <ch name="#bo0z3" />
+    <ch name="#clan-duel" />
+    <ch name="#s4p" />
+    <ch name="#clan.fwd" />
+    <ch name="#sumpen" />
+    <ch name="#stener" />
+    <ch name="#we&#62;you" />
+    <ch name="#old.skool" />
+    <ch name="#2v2.aq2" />
+    <ch name="#clan-wF" />
+    <ch name="#guys" />
+
+  </bot>
+
+  <bot nick="AQ2_02" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#extacy" />
+    <ch name="#cold!" />
+    <ch name="#aq2.cup" />
+    <ch name="#summercup.aq2" />
+    <ch name="#aq2world" />
+    <ch name="#clan-raw" />
+    <ch name="#attention!" />
+    <ch name="#rip" />
+    <ch name="#clan-Xk" />
+    <ch name="#ck.aq2" />
+    <ch name="#questionmark" />
+    <ch name="#clan.sd" />
+    <ch name="#clan.pr0" />
+    <ch name="#j" />
+    <ch name="#clan-iN" />
+    <ch name="#aq2admins" />
+    <ch name="#urangers" />
+    <ch name="#aq2.dk" />
+    <ch name="#darkside" />
+
+  </bot>
+
+  <bot nick="AQ2_03" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#messagenet" />
+    <ch name="#dipunishment" />
+    <ch name="#m-iv" />
+    <ch name="#mi" />
+    <ch name="#dogpac" />
+    <ch name="#:OwN:" />
+    <ch name="#clan.uber" />
+    <ch name="#ovanallt.aq2" />
+    <ch name="#ks.aq2" />
+    <ch name="#clan.smt" />
+    <ch name="#eaql" />
+    <ch name="#n.aq2" />
+    <ch name="#sipulipiiras" />
+    <ch name="#clan-rot" />
+
+
+
+
+
+
+  </bot>
+  
+  <bot nick="z0r-bot" owner="MDVej (migiel@z0r.nl)">
+    <ch name="#sol-clan" />
+  </bot>
+  
+<!-- the frequencies serve the whole network (all channels) -->
+
+  <frequency name="-aq2-" prefix=".aq2" helpmsg="dot aq2 Usage: '.aq2 need a cw, 4on4 at 20:00cet.'   Rules: ONLY AQ2-related, only english, no replies over the bot! Use query or join their channel!" desc="some description ist required." delay="420"/>
+  
+<!--
+  <frequency name="-spam-" prefix=".spam" helpmsg="dot spam Usage: '.spam lallala'  Rules: only english, but everything allowed" />
+-->
+
+<!--
+  00: bright gray
+  01: black
+  02: blue
+  03: green
+  04: red
+  05: dark red
+  06: purple
+  07: orange
+  08: yellow
+  09: bright green
+  10: cyan
+  11: bright cyan
+  12: bright blue
+  13: bright purple
+  14: dark gray
+  15: gray
+-->
+  <color id="03" />
+
+
+</mnet>
+
+</test>

+ 127 - 0
network_cfgs/aq2net.xml_back

@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<?xml-stylesheet type="text/xsl" href="aq2net.xsl"?>
+<!DOCTYPE mnet SYSTEM "mnet.dtd">
+
+<test>
+<mnet sig="AQ2NET" desc="Action Quake 2 Community Network (AQ2CN)">
+
+  <information>
+    <contact>
+	  <nick>QuAd|Haui</nick>
+	  <email>haudraufwienix@gmx.de</email>
+	  <channel>#quadaver @ QuakeNet</channel>
+	</contact>
+	<text>Please feel free to contact me. Every channel that has a relation to ActionQuake2 is welcome.If you have already set up an eggdrop bot, you can be part of this network too! Just tell me! I'll send you everything you need.</text>
+  </information>
+
+
+  <bot nick="QUADAVER" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#quad.aq2">aha</ch>
+    <ch name="#pickup.aq2">hmm</ch>
+  </bot>
+ 
+  <bot nick="AQ2_01" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#narf" />
+    <ch name="#action.dac" />
+    <ch name="#[pulse]" />
+    <ch name="#mobsters" />
+    <ch name="#s&amp;d.aq2" />
+    <ch name="#ace.aq2" />
+    <ch name="#only_human" />
+    <ch name="#q-aq2" />
+    <ch name="#bo0z3" />
+    <ch name="#clan-duel" />
+    <ch name="#s4p" />
+    <ch name="#clan.fwd" />
+    <ch name="#sumpen" />
+    <ch name="#stener" />
+    <ch name="#we&#62;you" />
+    <ch name="#old.skool" />
+    <ch name="#2v2.aq2" />
+    <ch name="#clan-wF" />
+    <ch name="#guys" />
+
+  </bot>
+
+  <bot nick="AQ2_02" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#extacy" />
+    <ch name="#cold!" />
+    <ch name="#aq2.cup" />
+    <ch name="#summercup.aq2" />
+    <ch name="#aq2world" />
+    <ch name="#clan-raw" />
+    <ch name="#attention!" />
+    <ch name="#rip" />
+    <ch name="#clan-Xk" />
+    <ch name="#ck.aq2" />
+    <ch name="#questionmark" />
+    <ch name="#clan.sd" />
+    <ch name="#clan.pr0" />
+    <ch name="#j" />
+    <ch name="#clan-iN" />
+    <ch name="#aq2admins" />
+    <ch name="#urangers" />
+    <ch name="#aq2.dk" />
+    <ch name="#darkside" />
+
+  </bot>
+
+  <bot nick="AQ2_03" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#messagenet" />
+    <ch name="#dipunishment" />
+    <ch name="#m-iv" />
+    <ch name="#mi" />
+    <ch name="#dogpac" />
+    <ch name="#:OwN:" />
+    <ch name="#clan.uber" />
+    <ch name="#ovanallt.aq2" />
+    <ch name="#ks.aq2" />
+    <ch name="#clan.smt" />
+    <ch name="#eaql" />
+    <ch name="#n.aq2" />
+    <ch name="#sipulipiiras" />
+    <ch name="#clan-rot" />
+
+
+
+
+
+
+  </bot>
+  
+  <bot nick="z0r-bot" owner="MDVej (migiel@z0r.nl)">
+    <ch name="#sol-clan" />
+  </bot>
+  
+<!-- the frequencies serve the whole network (all channels) -->
+
+  <frequency name="-aq2-" prefix=".aq2" helpmsg="dot aq2 Usage: '.aq2 need a cw, 4on4 at 20:00cet.'   Rules: ONLY AQ2-related, only english, no replies over the bot! Use query or join their channel!" desc="some description ist required." delay="420"/>
+  
+<!--
+  <frequency name="-spam-" prefix=".spam" helpmsg="dot spam Usage: '.spam lallala'  Rules: only english, but everything allowed" />
+-->
+
+<!--
+  00: bright gray
+  01: black
+  02: blue
+  03: green
+  04: red
+  05: dark red
+  06: purple
+  07: orange
+  08: yellow
+  09: bright green
+  10: cyan
+  11: bright cyan
+  12: bright blue
+  13: bright purple
+  14: dark gray
+  15: gray
+-->
+  <color id="03" />
+
+
+</mnet>
+
+</test>

+ 99 - 0
network_cfgs/aq2net.xml~

@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<?xml-stylesheet type="text/xsl" href="aq2net.xsl"?>
+<!DOCTYPE mnet SYSTEM "mnet.dtd">
+
+
+<mnet sig="AQ2NET" desc="Action Quake 2 Community Network (AQ2CN)">
+
+  <information>
+    <contact>
+	  <nick>QuAd|Haui</nick>
+	  <email>haudraufwienix@gmx.de</email>
+	  <channel>#quadaver @ QuakeNet</channel>
+	</contact>
+	<text>Please feel free to contact me. Every channel that has a relation to ActionQuake2 is welcome.If you have already set up an eggdrop bot, you can be part of this network too! Just tell me! I'll send you everything you need.</text>
+  </information>
+
+
+  <bot nick="QUADAVER" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#quad.aq2">aha</ch>
+    <ch name="#pickup.aq2">hmm</ch>
+  </bot>
+ 
+  <bot nick="AQ2_01" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#narf" />
+    <ch name="#action.dac" />
+    <ch name="#[pulse]" />
+    <ch name="#mobsters" />
+    <ch name="#s&amp;d.aq2" />
+    <ch name="#ace.aq2" />
+    <ch name="#only_human" />
+    <ch name="#q-aq2" />
+    <ch name="#bo0z3" />
+    <ch name="#clan-duel" />
+    <ch name="#s4p" />
+    <ch name="#clan.fwd" />
+    <ch name="#sumpen" />
+    <ch name="#stener" />
+    <ch name="#we&#62;you" />
+    <ch name="#old.skool" />
+    <ch name="#2v2.aq2" />
+    <ch name="#clan-wF" />
+    <ch name="#guys" />
+
+  </bot>
+
+  <bot nick="AQ2_02" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#extacy" />
+    <ch name="#cold!" />
+    <ch name="#aq2.cup" />
+    <ch name="#summercup.aq2" />
+    <ch name="#aq2world" />
+    <ch name="#clan-raw" />
+    <ch name="#attention!" />
+    <ch name="#rip" />
+    <ch name="#clan-Xk" />
+    <ch name="#ck.aq2" />
+    <ch name="#questionmark" />
+    <ch name="#clan.sd" />
+    <ch name="#clan.pr0" />
+    <ch name="#j" />
+    <ch name="#clan-iN" />
+    <ch name="#aq2admins" />
+    <ch name="#urangers" />
+    <ch name="#aq2.dk" />
+    <ch name="#darkside" />
+
+  </bot>
+
+  <bot nick="AQ2_03" owner="Haui (haudraufwienix@gmx.de)">
+    <ch name="#messagenet" />
+    <ch name="#dipunishment" />
+    <ch name="#m-iv" />
+    <ch name="#mi" />
+    <ch name="#dogpac" />
+    <ch name="#:OwN:" />
+    <ch name="#clan.uber" />
+    <ch name="#ovanallt.aq2" />
+    <ch name="#ks.aq2" />
+    <ch name="#clan.smt" />
+    <ch name="#eaql" />
+    <ch name="#n.aq2" />
+    <ch name="#sipulipiiras" />
+    <ch name="#clan-rot" />
+
+
+
+
+
+
+  </bot>
+  
+  <bot nick="z0r-bot" owner="MDVej (migiel@z0r.nl)">
+    <ch name="#sol-clan" />
+  </bot>
+  
+
+
+
+</mnet>

+ 16 - 0
network_cfgs/aq2net.xsl

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<xsl:output encoding="iso-8859-1" indent="yes" method="html"/>
+
+<xsl:template match="/">
+<html>
+  <head>
+    <title>Telefonliste</title>
+  </head>
+  <body bgcolor="#F0F0F0">
+     <xsl:apply-templates select="adressen"/>
+  </body>
+</html>
+</xsl:template>
+
+

+ 47 - 0
network_cfgs/aq2net.xsl_back

@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<xsl:output encoding="iso-8859-1" indent="yes" method="html"/>
+
+
+<xsl:template match="/">
+<html>
+  <head>
+    <title><xsl:value-of select="mnet@desc"/></title>
+  </head>
+  <body>
+    <xsl:apply-templates select="mnet"/>
+  </body>
+</html>
+</xsl:template>
+
+
+<xsl:template match="mnet">
+
+  <table>
+  <tr>
+    <td>
+      <h2><xsl:value-of select="@desc"/></h2>
+	</td>
+  </tr>
+  <xsl:apply-templates select="information"/>
+  
+  <tr>
+    <td>Bots</td>
+  </tr>
+  </table>
+
+  <p><xsl:value-of select="name"/></p>
+</xsl:template>
+
+
+
+<xsl:template match="information">
+  <tr>
+    <td>Contact Information</td>
+  </tr>
+</xsl:template>
+
+
+
+
+</xsl:stylesheet>

+ 5 - 0
network_cfgs/copycfg.sh

@@ -0,0 +1,5 @@
+#!/bin/sh
+scp quadaver@b4r.org:/www/quad.netdome.biz/aq2/aq2net.cfg .
+scp devnet.cfg quadaver@b4r.org:/www/quad.netdome.biz/aq2/
+scp qwnet.cfg quadaver@b4r.org:/www/quad.netdome.biz/aq2/
+

+ 3 - 0
network_cfgs/cpcfg.sh

@@ -0,0 +1,3 @@
+#!/bin/sh
+scp aq2net.cfg quadaver@b4r.org:/www/quad.netdome.biz/aq2/
+

+ 70 - 0
network_cfgs/devnet.cfg

@@ -0,0 +1,70 @@
+<!-- 
+the reader should be able to know what a comment is
+
+mnet.tcl kann mehrere Netzwerke laden.
+-->
+
+
+
+<!-- Hier wird ein Netzwerk definiert. 'sig' muss EINMALIG sein. -->
+<mnet sig="QDEV" desc="Quadaver Dev Broadcasting Service (MBS)" test="lala">
+
+
+<!-- welche bots sind teil dieses message-netzwerkes? -->
+  <bot nick="quadev" owner="Haui (email@email2.com)">
+    <ch name="#quad.SETuP" />
+	<ch name="#quaD.Dev" />
+	<ch name="#aZteSt" />
+    <ch name="#quad.slash\test\" />
+  </bot>
+  <bot nick="Dummesding" owner="Calis (email@email.com">
+    <ch name="#messagEnet" />
+    <ch name="#testthat\doesntexist" />
+  </bot>
+
+  <bot nick="Botdoesntexist" owner="Calis (email@email.com">
+    <ch name="#quad.p\uff" />
+  </bot>
+
+
+
+<!-- channels gelten für alle Frequenzen.. -->
+
+
+<!-- Frequenzen gelten für alle obigen Channels. -->
+  <frequency name="-dev-" prefix=".test" helpmsg="dot quad Usage: '.test message' to send a testmessage to the Quadaver channels" desc="Quadaver claninternal broadcast frequency over the quadnet" delay="15">
+	<ban hostmask="" reason=""/>
+	<ban hostmask="Calis@Calis.users.quakenet.org" reason="testreason"/>
+	<ban hostmask="*au@*auf.users.quakenet.org" reason="testreason2"/>
+  </frequency>
+
+<!--
+  <frequency name="-spam-" prefix=".spam" helpmsg="dot spam Usage: '.spam lallala' to send spammessages to penetrate your mates" desc="Quadaver testfrequency" />
+-->
+
+
+<!--
+  00: bright gray
+  01: black
+  02: blue
+  03: green
+  04: red
+  05: dark red
+  06: purple
+  07: orange
+  08: yellow
+  09: bright green
+  10: cyan
+  11: bright cyan
+  12: bright blue
+  13: bright purple
+  14: dark gray
+  15: gray
+-->
+  <color id="10" optional="1" />
+
+
+</mnet>
+
+
+

+ 70 - 0
network_cfgs/devnet.cfg~

@@ -0,0 +1,70 @@
+<!-- 
+the reader should be able to know what a comment is
+
+mnet.tcl kann mehrere Netzwerke laden.
+-->
+
+
+
+<!-- Hier wird ein Netzwerk definiert. 'sig' muss EINMALIG sein. -->
+<mnet sig="QDEV" desc="Quadaver Dev Broadcasting Service (MBS)" test="lala">
+
+
+<!-- welche bots sind teil dieses message-netzwerkes? -->
+  <bot nick="quadev" owner="Haui (email@email2.com)">
+    <ch name="#quad.SETuP" />
+	<ch name="#quaD.Dev" />
+	<ch name="#aZteSt" />
+    <ch name="#quad.slash\test\" />
+  </bot>
+  <bot nick="Dummesding" owner="Calis (email@email.com">
+    <ch name="#messagEnet" />
+    <ch name="#testthat\doesntexist" />
+  </bot>
+
+  <bot nick="Botdoesntexist" owner="Calis (email@email.com">
+    <ch name="#quad.p\uff" />
+  </bot>
+
+
+
+<!-- channels gelten für alle Frequenzen.. -->
+
+
+<!-- Frequenzen gelten für alle obigen Channels. -->
+  <frequency name="-dev-" prefix=".test" helpmsg="dot quad Usage: '.test message' to send a testmessage to the Quadaver channels" desc="Quadaver claninternal broadcast frequency over the quadnet" delay="15">
+	<ban hostmask="" reason=""/>
+	<ban hostmask="Calis@Calis.users.quakenet.org" reason="testreason"/>
+	<ban hostmask="*au@*auf.users.quakenet.org" reason="testreason2"/>
+  </frequency>
+
+<!--
+  <frequency name="-spam-" prefix=".spam" helpmsg="dot spam Usage: '.spam lallala' to send spammessages to penetrate your mates" desc="Quadaver testfrequency" />
+-->
+
+
+<!--
+  00: bright gray
+  01: black
+  02: blue
+  03: green
+  04: red
+  05: dark red
+  06: purple
+  07: orange
+  08: yellow
+  09: bright green
+  10: cyan
+  11: bright cyan
+  12: bright blue
+  13: bright purple
+  14: dark gray
+  15: gray
+-->
+  <color id="10" optional="1" />
+
+
+</mnet>
+
+
+

+ 51 - 0
network_cfgs/mnet.dtd

@@ -0,0 +1,51 @@
+<!ELEMENT mnet (information?,bot+,frequency+,color)>
+<!ATTLIST mnet
+    sig (#PCDATA) #REQUIRED
+    desc (#PCDATA) #REQUIRED
+>
+
+<!ELEMENT information (contact+,text)>
+
+<!ELEMENT contact (nick,email,channel)>
+
+<!ELEMENT nick (#PCDATA)>
+<!ELEMENT email (#PCDATA)>
+<!ELEMENT channel (#PCDATA)>
+
+<!ELEMENT text (#PCDATA)>
+
+
+<!ELEMENT bot (ch+)>
+<!ATTLIST bot
+    nick (#PCDATA) #REQUIRED
+    owner (#PCDATA) #REQUIRED
+>
+
+<!ELEMENT ch (#PCDATA)>
+<!ATTLIST ch
+    name (#PCDATA) #REQUIRED
+>
+
+
+<!ELEMENT frequency (ban*)>
+<!ATTLIST frequency
+    name (#PCDATA) #REQUIRED
+    prefix (#PCDATA) #REQUIRED
+    helpmsg (#PCDATA) #REQUIRED
+    desc (#PCDATA) #REQUIRED
+    delay (#PCDATA) #IMPLIED
+>
+
+<!ELEMENT ban (#PCDATA)>
+<!ATTLIST ban
+    hostmask (#PCDATA) #REQUIRED
+    reason (#PCDATA) #REQUIRED
+>
+
+
+
+<!ELEMENT color (#PCDATA)>
+<!ATTLIST color
+    id (#PCDATA) #IMPLIED
+    optional (#PCDATA) #IMPLIED
+>

+ 51 - 0
network_cfgs/mnet.dtd~

@@ -0,0 +1,51 @@
+<!ELEMENT mnet (information?,bot+,frequency+,color)>
+<!ATTLIST mnet
+    sig (#PCDATA) #REQUIRED
+    desc (#PCDATA) #REQUIRED
+>
+
+<!ELEMENT information (contact+,text)>
+
+<!ELEMENT contact (nick,email,channel)>
+
+<!ELEMENT nick (#PCDATA)>
+<!ELEMENT email (#PCDATA)>
+<!ELEMENT channel (#PCDATA)>
+
+<!ELEMENT text (#PCDATA)>
+
+
+<!ELEMENT bot (ch+)>
+<!ATTLIST bot
+    nick (#PCDATA) #REQUIRED
+    owner (#PCDATA) #REQUIRED
+>
+
+<!ELEMENT ch (#PCDATA)>
+<!ATTLIST ch
+    name (#PCDATA) #REQUIRED
+>
+
+
+<!ELEMENT frequency (ban*)>
+<!ATTLIST frequency
+    name (#PCDATA) #REQUIRED
+    prefix (#PCDATA) #REQUIRED
+    helpmsg (#PCDATA) #REQUIRED
+    desc (#PCDATA) #REQUIRED
+    delay (#PCDATA) #IMPLIED
+>
+
+<!ELEMENT ban (#PCDATA)>
+<!ATTLIST ban
+    hostmask (#PCDATA) #REQUIRED
+    reason (#PCDATA) #REQUIRED
+>
+
+
+
+<!ELEMENT color (#PCDATA)>
+<!ATTLIST color
+    id (#PCDATA) #IMPLIED
+	optional (#PCDATA) #IMPLIED
+>

+ 70 - 0
network_cfgs/quadnet.cfg

@@ -0,0 +1,70 @@
+<!-- 
+the reader should be able to know what a comment is
+
+mnet.tcl kann mehrere Netzwerke laden.
+-->
+
+
+
+<!-- Hier wird ein Netzwerk definiert. 'sig' muss EINMALIG sein. -->
+<mnet sig="QMBS" desc="Quadaver Message Broadcasting Service (MBS)" test="lala">
+
+
+<!-- welche bots sind teil dieses message-netzwerkes? -->
+  <bot nick="quadaver" owner="Haui (email@email2.com)">
+    <ch name="#quad.setup" />
+    <ch name="#quad.qw" />
+    <ch name="#quad.aq2" />
+    <ch name="#quad.q3" />
+    <ch name="#quad.rtcw" />
+	<ch name="#quad.dev" />
+    <ch name="#geschmeidich" />
+    <ch name="#quad.slash\test\" />
+  </bot>
+  <bot nick="Dummesding" owner="Calis (email@email.com">
+    <ch name="#quad.tc" />
+    <ch name="#testthatdoesntexist" />
+  </bot>
+
+  <bot nick="Botdoesntexist" owner="Calis (email@email.com">
+    <ch name="#quad.puff" />
+  </bot>
+
+
+
+<!-- channels gelten für alle Frequenzen.. -->
+
+
+<!-- Frequenzen gelten für alle obigen Channels. -->
+  <frequency name="-quad-" prefix=".quad" helpmsg="dot quad Usage: '.quad message' to send a message to the Quadaver channels" desc="Quadaver claninternal broadcast frequency over the quadnet" delay="180" />
+
+<!--
+  <frequency name="-spam-" prefix=".spam" helpmsg="dot spam Usage: '.spam lallala' to send spammessages to penetrate your mates" desc="Quadaver testfrequency" />
+-->
+
+
+<!--
+  00: bright gray
+  01: black
+  02: blue
+  03: green
+  04: red
+  05: dark red
+  06: purple
+  07: orange
+  08: yellow
+  09: bright green
+  10: cyan
+  11: bright cyan
+  12: bright blue
+  13: bright purple
+  14: dark gray
+  15: gray
+-->
+  <color id="07" optional="0" />
+
+
+</mnet>
+
+
+

+ 99 - 0
network_cfgs/qwnet.cfg

@@ -0,0 +1,99 @@
+<!-- 
+
+This is the configfile for the messagebots.
+
+If you think the whole system is great, why don't you use such 
+bots for yourself? For example for your own gaming scene?
+
+It's free. It's GPL'ed: http://quadaver.net/DevMnetGPL
+-->
+
+
+
+<!-- Hier wird ein Netzwerk definiert. 'sig' muss EINMALIG sein. -->
+<mnet sig="QWalt" desc="Alternative Quakeworld Message Bot" test="lala">
+
+
+<!-- welche bots sind teil dieses message-netzwerkes? -->
+
+  <bot nick="ServeMe01" owner="Haui (haudraufwienix@gmx.de)">
+	<ch name="#wob.qw" />
+	<ch name="#quad.qw" />
+	<ch name="#qw.ger" />
+	<ch name="#qwc" />
+	<ch name="#sta.qw" />
+	<ch name="#qw.ch" />
+	<ch name="#jrq" />
+	<ch name="#ibh" />
+	<ch name="#sd" />
+	<ch name="#smash" />
+	<ch name="#dybbuk" />
+  </bot>
+  <bot nick="ServeMe02" owner="Haui (haudraufwienix@gmx.de)">
+	<ch name="#qwnet" />
+	<ch name="#geql" />
+	<ch name="#clan-sm" />
+	<ch name="#suddendeath" />
+	<ch name="#eql.qw" />
+	<ch name="#quakeworld" />
+	<ch name="#nqr" />
+	<ch name="#socdamp" />
+	<ch name="#egd-qw" />
+	<ch name="#.bm" />
+  </bot>
+  <bot nick="NoKenya" owner="EB (Elektro Beisler alias D0PESKILLZ)">
+	<ch name="#dm4" />
+	<ch name="#klatch" />
+  </bot>
+
+  <bot nick="ServeMe03" owner="Haui (haudraufwienix@gmx.de)">
+	<ch name="#quakeservers" />
+	<ch name="#ezquake" />
+	<ch name="#chosen" />
+	<ch name="#qw.ru" />
+	<ch name="#rot.org" />
+	<ch name="#/bu/" />
+  </bot>
+
+
+
+
+<!-- channels gelten für alle Frequenzen.. -->
+
+
+<!-- Frequenzen gelten für alle obigen Channels. -->
+  <frequency name="-qw-" prefix=".qw" helpmsg="dot qw Usage: '.qw message' to send a message to some qw channels. This service is using the mnet-software from http://quadaver.net/DevMnetGPL - messaging while everything else fails." desc="alternative QW messaging while everything else fails." delay="180">
+	<ban hostmask="*@gijs.users.quakenet.org" reason="wimpeeh \o/"/>
+  </frequency>
+
+  <frequency name="-spam-" prefix=".spam" helpmsg="dot spam Usage: '.spam lallala' to send spammessages to some qw channels" desc="QW spam" delay="120">
+	<ban hostmask="*@gijs.users.quakenet.org" reason="wimpeeh \o/"/>
+  </frequency>
+
+
+
+<!--
+  00: bright gray
+  01: black
+  02: blue
+  03: green
+  04: red
+  05: dark red
+  06: purple
+  07: orange
+  08: yellow
+  09: bright green
+  10: cyan
+  11: bright cyan
+  12: bright blue
+  13: bright purple
+  14: dark gray
+  15: gray
+-->
+  <color id="10" optional="1" />
+
+
+</mnet>
+
+
+

BIN
network_cfgs/qwnet.zip


+ 97 - 0
network_cfgs/qwnet2.cfg

@@ -0,0 +1,97 @@
+<!-- 
+
+This is the configfile for the messagebots.
+
+If you think the whole system is great, why don't you use such 
+bots for yourself? For example for your own gaming scene?
+
+It's free. It's GPL'ed: http://quadaver.net/DevMnetGPL
+-->
+
+
+
+<!-- Hier wird ein Netzwerk definiert. 'sig' muss EINMALIG sein. -->
+<mnet sig="QWalt" desc="Alternative Quakeworld Message Bot" test="lala">
+
+
+<!-- welche bots sind teil dieses message-netzwerkes? -->
+
+  <bot nick="ServeMe01" owner="Haui (haudraufwienix@gmx.de)">
+	<ch name="#wob.qw" />
+	<ch name="#quad.qw" />
+	<ch name="#qw.ger" />
+	<ch name="#qwc" />
+	<ch name="#sta.qw" />
+	<ch name="#qw.ch" />
+	<ch name="#jrq" />
+	<ch name="#ibh" />
+	<ch name="#sd" />
+	<ch name="#smash" />
+	<ch name="#dybbuk" />
+  </bot>
+  <bot nick="ServeMe02" owner="Haui (haudraufwienix@gmx.de)">
+	<ch name="#qwnet" />
+	<ch name="#geql" />
+	<ch name="#clan-sm" />
+	<ch name="#suddendeath" />
+	<ch name="#eql.qw" />
+	<ch name="#quakeworld" />
+	<ch name="#nqr" />
+	<ch name="#socdamp" />
+	<ch name="#egd-qw" />
+	<ch name="#.bm" />
+  </bot>
+  <bot nick="NoKenya" owner="EB (Elektro Beisler alias D0PESKILLZ)">
+	<ch name="#dm4" />
+	<ch name="#klatch" />
+  </bot>
+
+  <bot nick="ServeMe03" owner="Haui (haudraufwienix@gmx.de)">
+	<ch name="#quakeservers" />
+	<ch name="#ezquake" />
+	<ch name="#chosen" />
+	<ch name="#qw.ru" />
+	<ch name="#rot.org" />
+  </bot>
+
+
+
+
+<!-- channels gelten für alle Frequenzen.. -->
+
+
+<!-- Frequenzen gelten für alle obigen Channels. -->
+  <frequency name="-qw-" prefix=".qw" helpmsg="dot qw Usage: '.qw message' to send a message to some qw channels. This service is using the mnet-software from http://quadaver.net/DevMnetGPL - messaging while everything else fails." desc="alternative QW messaging while everything else fails." delay="180">
+	<ban hostmask="*@gijs.users.quakenet.org" reason="wimpeeh \o/"/>
+  </frequency>
+
+  <frequency name="-spam-" prefix=".spam" helpmsg="dot spam Usage: '.spam lallala' to send spammessages to some qw channels" desc="QW spam" delay="120">
+	<ban hostmask="*@gijs.users.quakenet.org" reason="wimpeeh \o/"/>
+  </frequency>
+
+
+
+<!--
+  00: bright gray
+  01: black
+  02: blue
+  03: green
+  04: red
+  05: dark red
+  06: purple
+  07: orange
+  08: yellow
+  09: bright green
+  10: cyan
+  11: bright cyan
+  12: bright blue
+  13: bright purple
+  14: dark gray
+  15: gray
+-->
+  <color id="10" optional="1" />
+
+
+</mnet>
+
+

+ 382 - 0
nostalgic_old_and_nice/mnet.tcl

@@ -0,0 +1,382 @@
+## Why this?
+# There was some nifty bot on QuakeNet which forwarded messages to other bots.
+# Its main purpose was to simplify match-organisation for 3d-shooter games.
+#
+# When a clan wanted to play a game, they simply had to do something like:
+# .qw let's play 4on4, come to 194.162.154.124:27500
+# so every bot on the botnet received that message and forwarded it to other
+# clanchannels.
+#
+# The technology was first made by someone, but was not released by him. As far 
+# as I can remember, it was a Q3-Urban Terror player.
+# The QuakeWorld-scene was interested in his script, but since the Q3-UT guy didn't 
+# want to opensource his script a QW-player made a re-engineering. But still, 
+# he didn't release the source. The QW-scene still uses the re-engineered script.
+#
+# When I asked the QW-scene guys for it, they didn't want THEIR re-engineered
+# project open sourced or even given to me. So.....
+#
+# ... now, I made a re-engineering from scratch too AND released the source. 
+# Free for all.
+# 
+# Man, you all suck.
+#
+#
+# This script is not yet as complete as their "so super secret technology" is, but
+# I wrote the core of it in about two nightly hours. More to come.
+#
+# 23.05.2004 Haudrauf of Quadaver
+# contact me if you want to contribute code snippets: #quadaver on QuakeNet
+
+
+## CONFIG AND SOMEHOW README-SECTION FOLLOWS
+
+# You just have to connect your bots in a common eggdrop-botnet. Of course, every bot
+# has to have the same script installed.
+# The script uses "putallbots" to send messages to all linked bots on the botnet. Except
+# stated otherwhise here... but default is "0" to send to all bots.
+# A bot which doesn't have the script installed simply ignores the message though.. so, 
+# who cares?
+set mnet(defined_bots) "0"
+
+# So here, you can chose the bots, where to send the messages to, by name.
+# You need to have mnet(defined_bots) "1", if you want to use the botlist below.
+# If you accidently added a bot here, which doesn't exist, it's no problem at all.. a small 
+# errormessage will appear on the partyline.
+# WARNING: Recommendation is to have mnet(defined_bots) "0"!
+set mnet(bots) {"QUADAVER" "AQ2_01" "MyOwnBot"}
+
+
+# Here you set the channels of THIS bot, where you want received messages
+# to post to:
+set mnet(ownchannels) {"#pickup.aq2" "#quad.aq2"}
+#set mnet(ownchannels) {"#narf" "#action.dac" "#duel.aq2" "#we>you" "#[pulse]" "#action-nt.ger" "#mobsters" "#refugees" "#ace.aq2" "#only_human" "#akuh" "#q-aq2" "#mif" "#clan-duel" "#s4p" "#clan.fwd" "#sumpen" "#stener" "#dipunishment"}
+#set mnet(ownchannels) {"#extacy" "#cold!" "#aq2.cup" "#dpl.aq2" "#aq2world" "#clan-raw" "#attention!" "#rip" "#clan-Xk" "#clan-end"}
+
+
+# Set a Loglevel: 1 or 2
+# 1 means: who, where, from
+# 2 means: who, where, from, what(text)
+set mnet(loglevel) "2"
+
+
+###### Now, here are some important settings. Every bot in your network should have the same!
+###### otherwise it sucks..
+
+# banlist of ppl who are not allowed to use this bot.
+# this suxx... need a centralized version of this
+set mnetbans(1) {"*!*@*.quakenet.org" ""}
+
+# When a user wants to send a message, does he have to use .aq2 or .qw or something else? :)
+# Easily specify your public command:
+set mnet(public_cmd) ".aq2"
+
+# Set 1 or 0 here, whether you want to answer a posting request by the number of reached users.
+# nice idea to set to 1, thx. :)
+set mnet(answer) "1"
+
+# Here, you set the message layout. The prefix is how your messages begin with
+set mnet(prefix) "-AQ2-"
+
+# Display a nice helpmessage if someone only typed the public_cmd without arguments.
+set mnet(usage) "dot$mnet(prefix): Usage: '$mnet(public_cmd) need 4on4 at 20:00.'   Rules: ONLY $mnet(prefix)related, only english and no replies over the bot! Use query or join their channel!"
+
+# Set the color.. 02 blue, 03 green, 05, red .. and so on, easy irc-colors.
+set mnet(color) "03"
+
+
+#############################################################################
+# Now, hands away pls :) except you know what you are doing.
+set mnet(version) "mnet 0.666haui"
+
+set mnet(reached) "0"
+set mnet(reached_channels) "0"
+
+bind pub - $mnet(public_cmd) mnet:messaging_public
+
+bind bot - mnet_send	mnet:receive_message
+bind bot - mnet_answer	mnet:receive_answer
+
+
+proc mnet:get_data {n} {
+	if {[string range $n 0 0] == "\{"} {
+		set n "\\$n"
+	}
+	return $n
+}
+
+proc mnet:put_local_message {chan rec_nickname rec_channel rec_text} {
+	global mnet
+
+	puthelp "PRIVMSG $chan :$mnet(prefix) \003$mnet(color)$rec_nickname - $rec_channel : $rec_text"
+	if {$mnet(loglevel) == "1"} {
+		putlog "mnet: + local message from $rec_nickname @ $rec_channel to $chan"
+	} elseif {$mnet(loglevel) == "2"} {
+		putlog "mnet: + local message from $rec_nickname @ $rec_channel to $chan : $rec_text"
+	}
+
+}
+
+proc mnet:put_nick {nick msg} { 
+	putserv "NOTICE $nick :$msg" 
+}
+
+proc mnet:put_bot {botnick data} {
+	set testlink [islinked $botnick]
+	if {$testlink == "1"} {
+		putbot $botnick $data
+	} else {
+		putlog "mnet: + Message couldn't be delivered. Bot $botnick is not linked"
+	}
+}
+
+proc mnet:chanstat_users {chan users} {
+	
+	set ch_users [chanlist $chan]
+	set ch_users_count [llength $ch_users]
+	
+
+	set users [expr $users + $ch_users_count]
+
+	return $users
+}
+
+
+## procs which are executed remotely follow:
+
+proc mnet:receive_message {rec_botnick cmd rec_data} {
+	global mnet
+
+	set rec_nickname [mnet:get_data [lindex $rec_data 0]]
+	set rec_channel  [lindex $rec_data 1]
+	set rec_text [lrange $rec_data 2 end]
+
+
+	set rec_text [mnet:clean_txt $rec_text]
+
+	
+	if {$mnet(loglevel) == "1"} {
+		putlog "mnet: + Relaying Message from: $rec_nickname @ $rec_botnick @ $rec_channel"
+	} elseif {$mnet(loglevel) == "2"} {
+		putlog "mnet: + Relaying Message from: $rec_nickname @ $rec_botnick @ $rec_channel: $rec_text"
+	}
+
+	set users 0
+	set count_channels 0
+
+	foreach chan $mnet(ownchannels) {
+
+		if {[mnet:botonchannel $chan] == "1"} {
+		  
+			incr count_channels
+
+			set users [mnet:chanstat_users $chan $users]
+			putlog "mnet: * Remote counting $chan users: $users"
+			mnet:put_local_message $chan $rec_nickname $rec_channel $rec_text
+
+
+		} else {
+
+			putlog "mnet: + Can't relay a message to '$chan' since I am not there."
+
+		}
+	}
+	
+	# ANSWER! SEND!
+	if {$mnet(answer) == "1"} {
+		mnet:put_bot $rec_botnick "mnet_answer $users $count_channels"
+	}
+	return 0
+}
+
+proc mnet:receive_answer {rec_botnick cmd rec_data} {
+	global mnet
+
+        set rec_usercount [lindex $rec_data 0]
+	set rec_chancount [lindex $rec_data 1]
+#	set rec_text [lrange $rec_data 2 end]
+
+	# get this bots results to our global variable:
+	set mnet(reached) [expr $mnet(reached) + $rec_usercount]
+	set mnet(reached_channels) [expr $mnet(reached_channels) + $rec_chancount]
+
+	putlog "mnet: * $rec_botnick told me he sent its message to $rec_usercount people in $rec_chancount channels!"
+	putlog "mnet: * Users reached since .aq2: $mnet(reached) in channels: $mnet(reached_channels)"
+	
+}
+
+proc mnet:clean_txt {text} {
+
+        regsub "{" $text "" text
+	regsub "}" $text "" text
+
+	regsub -all "\003\[0-9\]\[0-9\]" $text "" text
+	regsub -all "\003\[0-9\]" $text "" text
+	regsub -all "\003" $text "" text
+	regsub -all "\002" $text "" text
+#	putlog "test: $text"
+
+	set text [string trim $text]
+	return $text
+
+}
+
+proc mnet:botonchannel {chan} { 
+
+	# safe "bot-knows-the-channel-and-is-in-there"-function
+	
+	if {[validchan $chan] == "1" && [botonchan $chan] == "1"} {
+		return 1
+	} else {
+		return 0
+	}
+}
+			
+
+proc mnet:messaging_public {nick mask hand chan text} {
+# proc triggered by .aq2 and calling the following (internal) one
+
+	global mnet botnick
+	putlog "mnet: = triggered by $nick ($mask) in $chan"
+
+	# the command must be from a channel of "ownchannels"
+	set found 0
+	foreach _trigger_chan $mnet(ownchannels) {
+#		putlog "mnet: = trying $_trigger_chan"
+		if {$_trigger_chan == $chan} {
+#			putlog "mnet: = found channel: $_trigger_chan"
+			set found 1
+		} else {
+#			putlog "mnet: = not in list: $chan"
+		}
+	}
+	if {$found == 0} {
+		putlog "mnet: = not allowed in: $chan"
+		return invalid_channel
+	}
+	 
+	set snd_nick [mnet:get_data $nick]
+
+	if {![isop $nick $chan] && $nick != $botnick} {
+		putlog "mnet: = allowed in $chan, but $nick is no op"
+		mnet:put_nick $nick "Sorry $nick, you need to be op."
+		return not_an_op
+	}
+					      
+
+	# check here if we have some text or not.. :)
+	# cleaning string...
+	set text [mnet:clean_txt $text]
+
+	if {$text == "" || $text == "{}"} {
+	
+		# output some help:
+		putlog  "mnet: = gave him some help"
+		puthelp "PRIVMSG $chan :$mnet(usage)"
+
+	} else {
+
+		set mnet(reached) "0"
+		set mnet(reached_channels) "0"
+		
+		# send them first, we await a reply!
+
+
+		# single sends TO ALL REMOTE BOTS with their remote CHANNELS...
+		# let's see which mode for sending is used...
+		if {$mnet(defined_bots) == "1"} {
+			foreach _botnick $mnet(bots) {
+				if {$_botnick == $botnick} {
+			
+				} else { # if not myself!
+
+					# safe put_bot function..
+					mnet:put_bot $_botnick "mnet_send $snd_nick $chan $text"
+					if {$mnet(loglevel) == "1"} {
+						putlog "mnet: + Sending a message to $_botnick"
+					} elseif {$mnet(loglevel) == "2"} {
+						putlog "mnet: + Sending a message to $_botnick : $text"
+					}
+				}
+			}
+
+		} else { # if not "defined_bots"
+
+			putallbots "mnet_send $snd_nick $chan $text"
+			if {$mnet(loglevel) == "1"} {
+				putlog "mnet: + Sending a message to all linked bots!"
+			} elseif {$mnet(loglevel) == "2"} {
+				putlog "mnet: + Sending a message to all linked bots: $text"
+			}
+		}
+	
+		# SEND TO ALL OWN CHANNELS...
+		# send to all own channels, except to the channel the message originating from:
+		foreach _ownchan $mnet(ownchannels) {
+			if {$_ownchan == $chan} {
+			
+			} else { # if not own channel!
+
+				if {[mnet:botonchannel $_ownchan] == "1"} {
+					
+					putlog "mnet: = i am on $_ownchan"
+					
+					# userstats local
+					set mnet(reached) [mnet:chanstat_users $_ownchan $mnet(reached)]
+					putlog "mnet: * Localcounting up $_ownchan users: $mnet(reached)"
+
+					# channel count local
+					incr mnet(reached_channels)
+
+					mnet:put_local_message $_ownchan $snd_nick $chan $text
+
+				} else {
+
+					putlog "mnet: + Can't send a local message to '$_ownchan' since I am not there."
+
+				}
+			}
+		}
+	
+		# wait here some more! (10 seconds with utimer)
+		utimer 5 "mnet:reply_timeout {$chan}"
+
+		# notice: better would be to go into the "reply" when all known bots already answered..
+		# then, if a bot is missing, but it was a known bot, just use a timeout with about 5-10 seconds..
+		# if the bot still didn't answer, then just go into "reply".
+	
+	}
+
+}
+
+proc mnet:reply_timeout {chan} {
+	global mnet
+
+	# inzwischen dürfte auch die antwort gekommen sein.. also jetzt mnet(reached) auswerten nach timeout..
+	putlog "mnet: * After all: Count_Users: $mnet(reached) Count_Channels: $mnet(reached_channels)"
+	# Give me some reply.
+	puthelp "PRIVMSG $chan :Message sent to $mnet(reached) users in $mnet(reached_channels) channels."
+
+}
+
+
+proc mnet:check_ban {nick mask} {
+	global mnet(banlist)
+	foreach bmask $banmask {
+		if {[string match [string tolower $bmask] [string tolower $bmask_check]]} {
+			newchanban $chan $bmask_host BanMask "$bmask_reason" $bmask_time
+			sendnote BanMask $bmask_notify "÷ banned $bmask_check on $chan, [ctime [unixtime]] ÷"
+			if {[botisop $chan]} {
+				putserv "MODE $chan -o+b $nick $bmask_host"
+				putserv "KICK $chan $nick :$bmask_reason"
+			}
+			break
+		}
+	} 
+}
+											       
+
+
+
+
+putlog "mnet: = Messaging Network ($mnet(version)) loaded"

+ 38 - 0
test.tcl

@@ -0,0 +1,38 @@
+bind pub - .send test:send
+
+bind bot - test_receive		test:receive
+
+
+proc test:put_chan {chan text} {
+	puthelp "PRIVMSG $chan :$text"
+}
+
+
+proc test:send {nick mask hand chan text} {
+
+	putlog "test send: $text"
+	
+	putallbots "test_receive $chan $text"
+
+}
+
+
+proc test:receive {from_botnick cmd sent_data} {
+        
+	set data1	[lindex $sent_data 0]
+	set data2	[lrange $sent_data 1 end]
+
+
+	putlog "test receive: $sent_data"
+	putlog "test data1: $data1"
+	putlog "test data2: $data2"
+	
+	test:put_chan #quad.tc "from $from_botnick: $sent_data"
+	
+#	mnet:put_local_netmessage $network $name $chan $rec_nickname $rec_channel $rec_text
+
+
+}
+
+
+putlog "tester loaded"