Fermeture automatique d'un salon a une heure prédéfinie
#1
Bonjour la communauté :)

Je serais a la recherche d'un tcl ( je sais pas si cela existe déja ou si cela est faisable ) qui mettrais le mode +i a une heure dite et l'enlèverais pareillement.
A cette heure dite le bot mettrais le mode +i, lancerais un message sur le général en prévenant que le salon ferme ses portes et de bien vouloir le quitter.
Et deux minutes plus tard ( par exemple ) il kickerais tout les users n'ayant pas de flags présent sur le salon

Est-ce possible ? ou j'en demande peu être trop ?

En attente de réponse je vous souhaite une bonne journée la communauté.

Cordialement
Répondre Avertir
#2
bonjour,

bah tu peut commencé par utilisé le bind time :

tcl
bind time - "00 20 * * *" heure_fermeture
proc heure_fermeture {min hour day month year } {
   putserv "PRIVMSG $channel :Fermeture du Salon dans Quelque instant .."
}



ça te donne un exemple du comment commencé ton code. :)

(exemple de code montré déjà sur le forum par CrazyCat )
Code NON testé
Répondre Avertir
#3
Si je comprend bien fedora le ''00 20 * * *'' Défini le temps que le salon reste ouvert

Exemple le salon ouvre à 00h et ce referme à 20h ... j'essai simplement de comprende le bind time ^^

Merci
Répondre Avertir
#4
bonjour,

non Babytigrou16 l'exemple donné nous indique que tout les jours à 20:00 la phrase " Fermeture du Salon dans Quelque instant .." sera dite sur le salon.

je pense que comme ça tu va mieux comprendre:

tcl
bind time - "00 20 * * *" heure_fermeture  
proc heure_fermeture {minute heure jours mois année } {
   putserv "PRIVMSG $channel :Fermeture du Salon dans Quelque instant .."
}



tcl
bind time - "00      20    *     *    *" 
 bind time - "minute heure jours mois année" 
 
ce qui donnerais 
 
 bind time - "minute heure jours mois année" heure_fermeture
proc heure_fermeture {minute heure jours mois année } {
   putserv "PRIVMSG $channel :Fermeture du Salon dans Quelque instant .."
}



j'espère de cet manière ça à pus t'aidé à comprendre,j'ai fait au plus simple.Ne connaissant pas les thermes exact,si cela ne t'aide tjrs pas ,je pense qu'un admin ou une personne connaissant beaucoup plus le TCL que moi t'expliquerons .
tu peut toujours consulté sur le wiki l'explication :
Bind Time
Répondre Avertir
#5
Bonjour

Merci pour cette réponse Fedora, j'aimerais savoir comment inclure le salon dedans et pouvoir mettre les mode +im pour ensuite virer tout les users restant sur le salon après 5 minutes.

Heureusement qu'il y a des sites comme celui-ci pour aider les papy-ircéens lol
Bonne journée la communauté

Cordialement
Répondre Avertir
#6
tcl
set salonafermer {
#salon1
#salon2
}
 
bind time - "00 20 * * *" ceciestuntest
proc ceciestuntest{min hour day month year} {
   global salonafermer
   putserv "PRIVMSG $channel : Il est 20h le salon ce ferme .."
   putserv "MODE $salonafermer +im" 
}



ceci n'est qu'un exemple je ne sais pas si il marche mais le principe y est
Répondre
#7
Bonjour

Merci heretoc pour la réponse, j'ai tester le tcl et il me met cela en erreur :
Tcl error: wrong # args: should be "proc name args body"

Bonne journée la communauté

Cordialement
Répondre Avertir
#8
remplace $channel par $salonafermer
Répondre
#9
Re bonjour la communautée

Cela m'affiche pareil

Cordialement
Répondre Avertir
#10
je pense que c'est normal puisque la pour appliquer le changement de mode tu doit passé par une autre proc
Répondre Avertir
#11
ou peut être un truc comme ça :
tcl
set salonafermer "#salon1 #salon2"
 
bind time - "00 20 * * *" ceciestuntest
 
proc ceciestuntest{min hour day month year} {
   global botnick salonafermer 
   if { $::salonafermer != "*" } {
		if {[lsearch -glob [string tolower $::salonafermer ] [string tolower $chan]] == -1 } {
			return 0
		}
        putserv "PRIVMSG $::chan : Il est 20h00 le salon ce ferme .."
		utimer 5
		putserv "MODE $::chan +im"
   }
   }



c'est vraiment du bidouillage !
Répondre Avertir
#12
Re bonjour la communauté

J'ai encore ceci en erreur pl :
Tcl error: wrong # args: should be "proc name args body"

Cordialement[/align]
Répondre Avertir
#13
essaye en mettant directement le salon

tcl
bind time - "00 20 * * *" ceciestuntest
 
proc ceciestuntest{min hour day month year} {
   global botnick
      putserv "PRIVMSG #TONSALON : Il est 20h00 le salon va fermé est mettre les modes +im merci de votre compréhension....."
      utimer 5
      putserv "MODE #TONSALON +im"
   }


Répondre Avertir
#14
ou alors peut etre comme ça:
tcl
bind time - "00 20 * * *" ceciestuntest
 
proc ceciestuntest {nick uhost hand chan arg} { 
foreach chan [channels] { 
  putquick "PRIVMSG $::chan : : Il est 20h00 le salon va fermé est mettre les modes +im merci de votre compréhension....."
      utimer 5
      putserv "MODE $::chan +im"
   }
return 0 
}



je crois mais j'en suis pas sur ont peut mettre la proc comme cela avec le bind time (mais à confirmé )
Répondre Avertir
#15
bonsoir

Pour ton dernier exemple il me met cela en pl :
[19:17] Tcl error [ceciestuntest]: wrong # args: should be "utimer seconds command"
Mais il dit bien la phrase sur le salon
Seul problème il est sur plusieurs salon le bot et il dit la phrase sur un salon et c'est pas le bon

Pour l'avant dernier exemple, même erreur que d'habitude.

Merci de vos réponses rapides :)

Cordialement
Répondre Avertir


Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté