Link Inspircd Source de TiSma pour le link sur le protocol de Inspircd.
Link Inspircd Source de TiSma pour le link sur le protocol de Inspircd.
Source de TiSma pour le link sur le protocol de Inspircd.
Plus d'info sur http://www.ircz.fr/forum/viewtopic.php?id=1441
#################
# 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" }
}
}
}
Plus d'info sur http://www.ircz.fr/forum/viewtopic.php?id=1441
#################
# 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" }
}
}
}
Sujets similaires
» Link UnrealIRCD en tcl
Explication du link en tcl pour un serveur UnrealIrcd
» Installation InspIRCd Installation du serveur IRC InspIRCd 1.1.18
» Installation InspIRCd Installation du serveur IRC InspIRCd 1.1.18
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|