Vous n'êtes pas identifié(e).

Top posteurs

Statistiques

Partenaires

  • eXolia Hosting
  • Eggdrop.fr

#1 10/06/2011 18:09:33

TiSmA
Administrateur
Lieu : Saint Martin (87)
Inscription : 18/08/2004
Messages : 43
Site Web

[TCL] Link InspIRCd 1.1.x

Bonjour,

Voici un petit snippet qui vous permettra de réaliser vos propres services TCL sous le serveur IRC InspIRCd 1.1.x. Vous pouvez trouver de l'aide sur le protocole de InspIRCd ainsi que toute la documentation sur celui ci à l'adresse suivante : http://www.inspircd.org/wiki/Main_Page

Code: TCL
#################
# Configuration #
#################
 
# Adresse du link
set ::insp(link) "Link.IRCz.fr"
 
# IP du link
set ::insp(ip) "100.100.100.100"
 
# Port du link
set ::insp(port) "7000"
 
# Mot de passe du link
set ::insp(pass) "mot-de-passe"
 
# Infos du link
set ::insp(info) "Link IRCz"
 
# Salon du service
set ::insp(salon) "#salon"
 
# Chanmode du service
set ::insp(smode) "ntsO"
 
# Raison lors d'un restart
set ::insp(raison) "Maintenance Technique"
 
# Pseudo du service
set ::insp(pseudo) "IRCz-Bot"
 
# Ident du service
set ::insp(ident) "Link"
 
# Host du service
set ::insp(host) "IRCz.fr"
 
# Realname de service
set ::insp(real) "Link IRCz-Bot"
 
# Mode Salon du service
set ::insp(cmode) "o"
 
# Version du service
set ::insp(version) "Link IRCz 1.0"
 
#############
# Connexion #
#############
 
proc insp:connexion {} {
	if {![catch "connect $::insp(ip) $::insp(port)" ::insp(idx)]} {
		utimer 15 insp:autoconnect
		putdcc $::insp(idx) "SERVER $::insp(link) $::insp(pass) 0 :$::insp(info)\r"
		putdcc $::insp(idx) "BURST [unixtime]\r"
		putdcc $::insp(idx) ":$::insp(link) VERSION :$::insp(version)\r"
		putdcc $::insp(idx) ":$::insp(link) ADDLINE Q $::insp(pseudo) $::insp(link) [unixtime] 0 :Service\r"
		putdcc $::insp(idx) ":$::insp(link) NICK [unixtime] $::insp(pseudo) $::insp(host) $::insp(host) $::insp(ident) +Ios 0.0.0.0 :$::insp(real)\r"
		putdcc $::insp(idx) ":$::insp(pseudo) OPERTYPE Service\r"
		putdcc $::insp(idx) ":$::insp(pseudo) JOIN $::insp(salon)\r"
		putdcc $::insp(idx) ":$::insp(pseudo) MODE $::insp(salon) +$::insp(smode)\r"
		putdcc $::insp(idx) ":$::insp(pseudo) MODE $::insp(salon) +$::insp(cmode) $::insp(pseudo)\r"
		putdcc $::insp(idx) "ENDBURST\r"
		control $::insp(idx) insp:link
	} elseif {[info exists ::insp(idx)]} { unset ::insp(idx) }
}
 
###############
# Autoconnect #
###############
 
proc insp:autoconnect {} {
	if {[valididx $::insp(idx)]} { utimer 15 insp:autoconnect } else { insp:connexion }
}
 
#############
# Démarrage #
#############
 
if {![info exists ::insp(idx)]} { insp:connexion }
 
#############
# Commandes #
#############
 
proc insp:commandes {arg} {
	set arg [split $arg]
	set cmd [lindex $arg 0]
	set user [lindex $arg 1]
	set mot1 [lindex $arg 2]
	set fraz1 [join [lrange $arg 2 end]]
	set mot2 [lindex $arg 3]
	set fraz2 [join [lrange $arg 3 end]]
	switch -exact $cmd {
		"ping" { 
			# Réponse CTCP PING
			putdcc $::insp(idx) ":$::insp(pseudo) NOTICE $user :\001PING [clock seconds]\001\r"
		}
		"version" {
			# Réponse CTCP VERSION
			putdcc $::insp(idx) ":$::insp(pseudo) NOTICE $user :$::insp(version)\r"
		}
		"help" {
			# Réponse Commande help
			putdcc $::insp(idx) ":$::insp(pseudo) NOTICE $user :Tu as besoin d'aide $user ???\r"
		}
		default { 
			# Commande inexistante
			putdcc $::insp(idx) ":$::insp(pseudo) NOTICE $user :Commande Inconnue\r"
		}
	}
}
 
########
# Link #
########
 
proc insp:link {idx arg} {
	set arg [split $arg]
	# Debugage des Evenements
	#putlog "\[Debug\] [join [lrange $arg 0 end]]"
	switch -exact [lindex $arg 1] {		
		"PING" { 
			# Réponse aux PING
			putdcc $::insp(idx) ":$::insp(link) PONG [lindex $arg 0]\r"
		}
		"PRIVMSG" {
			# Réponse aux PRIVMSG
			set user [string trim [lindex $arg 0] :]
			set cible [lindex $arg 2]
			set cmds [string tolower [string trim [lindex $arg 3] :]]
			set data [join [lrange $arg 4 end]]
			if {[string equal -nocase $cible $::insp(pseudo)]} { insp:commandes "$cmds $user $data" }				
		}
	}
}

Bon courage a ceux qui s'y mettront tongue


Discussion forum IRCz : 29/09/2007


Inutile d'avoir un Tigre dans son ordi, s'il y'a un âne derrière l'écran...  big_smile

Hors ligne

#2 02/11/2011 01:54:05

Diogene
IRCzien
Lieu : Le Mans
Inscription : 09/07/2011
Messages : 179

Re : [TCL] Link InspIRCd 1.1.x

Je posterai une source équivalente compatible protocole TS6 (InspIRCd 1.2.x/2.0.x) d'ici quelques jours sur ce sujet si ceci ne dérange pas smile
Une source pour Tcl Eggdrop un simple remodelage du snippet ci-dessus.

Dernière modification par Diogene (02/11/2011 01:56:18)


Mieux vaut mourir incompris que passer sa vie à s'expliquer. [William Shakespeare]

Bon, c'est Diogene, mais c'est un humain malgré tout [CrazyCat]

Hors ligne

Pied de page des forums

436382 visites ( 151 aujourd'hui ) 3 visiteurs en ligne
Copyright © 2004 - 2013 IRCz