Console de gestion de salons

Contenu du snippet

Bonjour,

Cet addon est une Console de Gestion de salon qui contient la plupart des commandes Chanserv et Botserv.
Elle permet :
- de gérer les accès sur les salons (quand le mode xop est désactivé)
- d'activer (ou désactiver) votre auto-voice sur les salons que vous choisissez,
- de mettre une limite automatique (mode +l) qui peut ne pas être la même pour tous les salons où vous l'activez.

Si vous avez des suggestions d'amélioration n'hésitez pas.

Source / Exemple :


on *:load: {
  set %overlimit 2
}

menu channel {
  .-
  ZenChanV2: dialog -mied ZenChanV2 ZenChanV2
}

alias ZC dialog -mied ZenChanV2 ZenChanV2

dialog ZenChanV2 {
  title " Z e n C h a n "
  size -1 -1 130 256
  option dbu
  box "U s e r s ", 1, 3 35 85 179
  box "G e s t i o n d e s A c c e s s ", 2, 2 218 116 24
  button "&&", 3, 4 226 13 12
  button "@", 4, 18 226 13 12
  button "%", 5, 32 226 13 12
  button "+", 6, 46 226 13 12
  button "Aucun", 7, 60 226 27 12
  button "Liste", 9, 88 226 27 12
  button "Rafraichir", 10, 91 38 37 12
  button "Whois", 11, 91 51 37 12
  button "Quit", 12, 91 202 37 12, ok
  list 8, 6 43 79 168, sort size extsel hsbar vsbar
  button "Notice", 15, 91 64 37 12
  button "Mass Notice", 16, 91 77 37 12
  button "Limiter", 17, 91 90 37 12
  button "Auto-Voice", 18, 91 103 37 12
  button "Akick", 19, 91 117 37 12
  button "UnAkick", 20, 91 130 37 12
  button "Topic", 21, 91 143 37 12
  button "Xop", 22, 91 156 37 12
  button "Kick", 13, 91 175 37 12
  button "Ban", 14, 91 188 37 12
  text " ", 134, 3 21 124 9
  combo 135, 3 2 84 50, sort size drop
  text " ", 138, 89 17 39 8
  text " ", 137, 89 26 40 8
  menu "Configuration", 29
  menu "Botserv", 35
  item "Botlist", 36, 35
  item "Assign", 37, 35
  menu "Set", 38, 35
  menu "DONTKICKOPS", 46, 38
  item "On", 51, 46
  item "Off", 52, 46
  menu "DONTKICKVOICES", 47, 38
  item "On", 53, 47
  item "Off", 54, 47
  menu "Fantasy", 48, 38
  item "On", 55, 48
  item "Off", 56, 48
  menu "Greet", 49, 38
  item "On", 57, 49
  item "Off", 58, 49
  menu "Symbiosis", 50, 38
  item "On", 59, 50
  item "Off", 60, 50
  menu "Kick", 39, 35
  menu "Bolds", 61, 39
  item "On", 69, 61
  item "Off", 70, 61
  menu "Badwords", 62, 39
  item "On", 71, 62
  item "Off", 72, 62
  menu "Caps", 63, 39
  item "On", 73, 63
  item "Off", 74, 63
  menu "Colors", 64, 39
  item "On", 75, 64
  item "Off", 76, 64
  menu "Flood", 65, 39
  item "On", 77, 65
  item "Off", 78, 65
  menu "Repeat", 66, 39
  item "On", 79, 66
  item "Off", 80, 66
  menu "Reverses", 67, 39
  item "On", 81, 67
  item "Off", 82, 67
  menu "Underlines", 68, 39
  item "On", 83, 68
  item "Off", 84, 68
  menu "Badwords", 41, 35
  item "ADD", 85, 41
  item "DEL", 86, 41
  item "LIST", 87, 41
  item "CLEAR", 88, 41
  item "Act", 42, 35
  item "Info", 43, 35
  item "Say", 44, 35
  item "Unassign", 45, 35
  menu "Chanserv", 89
  menu "SET", 92, 89
  item "FOUNDER", 91, 92
  item "SUCCESSOR", 93, 92
  item "PASSWORD", 94, 92
  item "ENTRYMSG", 98, 92
  menu "BANTYPE", 99, 92
  item "*!user@host", 111, 99
  item "*!*user@host", 112, 99
  item "*!*@host", 113, 99
  item "*!*user@*.domain", 114, 99
  item "MLOCK", 100, 92
  menu "KEEPTOPIC", 101, 92
  item "On", 115, 101
  item "Off", 116, 101
  menu "OPNOTICE", 102, 92
  item "On", 117, 102
  item "Off", 118, 102
  menu "PEACE", 103, 92
  item "On", 119, 103
  item "Off", 120, 103
  menu "PRIVATE", 104, 92
  item "On", 121, 104
  item "Off", 122, 104
  menu "RESTRICTED", 105, 92
  item "On", 123, 105
  item "Off", 124, 105
  menu "SECURE", 106, 92
  item "On", 125, 106
  item "Off", 126, 106
  menu "SECUREOPS", 107, 92
  item "On", 127, 107
  item "Off", 128, 107
  menu "SECUREFOUNDER", 108, 92
  item "On", 129, 108
  item "Off", 130, 108
  menu "SIGNKICK", 109, 92
  item "On", 131, 109
  item "Off", 133, 109
  item "Info", 90, 89
  link " Zen-Attitude", 139, 90 245 34 8

}

on *:dialog:ZenChanV2:init:*: { 
  did -a ZenChanV2 29 30 Définir Salon  
  did -a ZenChanV2 29 31 Supprimer Salon
  did -a ZenChanV2 29 136 Limite
  did -a ZenChanV2 8 Aucun salon sélectionné
  RemplirCombo
}

on *:dialog:ZenChanV2:menu:*: {
  if ($did == 30) {
    set %ZenChanV21 $$?="Nom du salon 1 (avec le #)" 
    if ($readini([ %ZenChanV21 $+ .ini ],SALON,caractéristique) == on) { 
      dialog -k ZenChanV2
      timerdialog 1 1 dialog -mied ZenChanV2 ZenChanV2
      timerremplir 1 1 did -r ZenChanV2 8
      timerremplir 1 1 did -a ZenChanV2 8 %ZenChanV21 déjà existant
      halt 
    } 
    if ($readini([ %ZenChanV21 $+ .ini ],SALON,caractéristique) != on) {
      writeini  [ %ZenChanV21 $+ .ini ] SALON caractéristique on
      writeini  [ %ZenChanV21 $+ .ini ] SALON Auto_Voice off
      writeini  [ %ZenChanV21 $+ .ini ] SALON ZenLimite off
      writeini  [ %ZenChanV21 $+ .ini ] SALON Limite 2
      write ZenChanSalon.txt %ZenChanV21
      set %ZenChanV2 %ZenChanV21
      dialog -k ZenChanV2
      timerdialog 1 1 dialog -mied ZenChanV2 ZenChanV2
      timerremplir 1 1 RemplirListe
    }
  }
  elseif ($did == 31) { 
    set %ZenChanV21 $$?="Nom du salon 1 (avec le #)" 
    if ($readini([ %ZenChanV21 $+ .ini ],SALON,caractéristique) == on) {
      remini [ %ZenChanV21 $+ .ini ] SALON
      protectionamj_off 
      mode %ZenChanV21 -l
      write -ds %ZenChanV21 ZenChanSalon.txt 
      RemplirCombo
      unset %ZenChanV21
      unset %ZenChanV2
      dialog -k ZenChanV2
      timerdialog 1 1 dialog -mied ZenChanV2 ZenChanV2
    }
  }
  elseif ($did == 36) { bs botlist }
  elseif ($did == 37) { bs assign %ZenChanV2 $$?="Nom du botserv : ?" }
  elseif ($did == 42) { bs ACT %ZenChanV2 $$?="Message : ?" }
  elseif ($did == 43) { bs INFO %ZenChanV2 }
  elseif ($did == 44) { bs SAY %ZenChanV2 $$?="Message : ?" }
  elseif ($did == 45) { bs UNASSIGN %ZenChanV2 }
  elseif ($did == 51) { bs set %ZenChanV2 DONTKICKOPS on }
  elseif ($did == 52) { bs set %ZenChanV2 DONTKICKOPS off }
  elseif ($did == 53) { bs set %ZenChanV2 DONTKICKVOICES on }
  elseif ($did == 54) { bs set %ZenChanV2 DONTKICKVOICES off }
  elseif ($did == 55) { bs set %ZenChanV2 FANTASY on }
  elseif ($did == 56) { bs set %ZenChanV2 FANTASY off }
  elseif ($did == 57) { bs set %ZenChanV2 GREET on }
  elseif ($did == 58) { bs set %ZenChanV2 GREET off }
  elseif ($did == 59) { bs set %ZenChanV2 SYMBIOSIS on }
  elseif ($did == 60) { bs set %ZenChanV2 SYMBIOSIS off }
  elseif ($did == 69) { bs KICK %ZenChanV2 BOLDS on }
  elseif ($did == 70) { bs KICK %ZenChanV2 BOLDS off }
  elseif ($did == 71) { bs KICK %ZenChanV2 BADWORDS on }
  elseif ($did == 72) { bs KICK %ZenChanV2 BADWORDS off }
  elseif ($did == 73) { bs KICK %ZenChanV2 CAPS on }
  elseif ($did == 74) { bs KICK %ZenChanV2 CAPS off }
  elseif ($did == 75) { bs KICK %ZenChanV2 COLORS on }
  elseif ($did == 76) { bs KICK %ZenChanV2 COLORS off }
  elseif ($did == 77) { bs KICK %ZenChanV2 FLOOD on }
  elseif ($did == 78) { bs KICK %ZenChanV2 FLOOD off }
  elseif ($did == 79) { bs KICK %ZenChanV2 REPEAT on }
  elseif ($did == 80) { bs KICK %ZenChanV2 REPEAT off }
  elseif ($did == 81) { bs KICK %ZenChanV2 REVERSES on }
  elseif ($did == 82) { bs KICK %ZenChanV2 REVERSES off }
  elseif ($did == 83) { bs KICK %ZenChanV2 UNDERLINES on }
  elseif ($did == 84) { bs KICK %ZenChanV2 UNDERLINES off }
  elseif ($did == 85) { bs BADWORDS %ZenChanV2 ADD $$?="Badword à ajouter : ?" }
  elseif ($did == 86) { bs BADWORDS %ZenChanV2 DEL $$?="Badword à supprimer : ?" }
  elseif ($did == 87) { bs BADWORDS %ZenChanV2 LIST }
  elseif ($did == 88) { bs BADWORDS %ZenChanV2 CLEAR }
  elseif ($did == 90) { cs INFO %ZenChanV2 ALL }
  elseif ($did == 91) { cs SET %ZenChanV2 FOUNDER $$?="Pseudo du nouvel owner du salon : ?" }
  elseif ($did == 93) { cs SET %ZenChanV2 SUCCESSOR $$?="Pseudo du repreneur éventuel du salon : ?" }
  elseif ($did == 94) { cs SET %ZenChanV2 PASSWORD $$?="Nouveau mot de passe : ?" }
  elseif ($did == 98) { cs SET %ZenChanV2 ENTRYMSG $$?="Message d'accueil : ?" }
  elseif ($did == 100) { cs SET %ZenChanV2 MLOCK $$?="Mode(s) à maintenir (ex: +p-l) :?" }
  elseif ($did == 111) { cs SET %ZenChanV2 BANTYPE 0 }
  elseif ($did == 112) { cs SET %ZenChanV2 BANTYPE 1 }
  elseif ($did == 113) { cs SET %ZenChanV2 BANTYPE 2 }
  elseif ($did == 114) { cs SET %ZenChanV2 BANTYPE 3 }
  elseif ($did == 115) { cs SET %ZenChanV2 KEEPTOPIC On }
  elseif ($did == 116) { cs SET %ZenChanV2 KEEPTOPIC Off }
  elseif ($did == 117) { cs SET %ZenChanV2 OPNOTICE On }
  elseif ($did == 118) { cs SET %ZenChanV2 OPNOTICE Off }
  elseif ($did == 119) { cs SET %ZenChanV2 PEACE On }
  elseif ($did == 120) { cs SET %ZenChanV2 PEACE Off }
  elseif ($did == 121) { cs SET %ZenChanV2 PRIVATE On }
  elseif ($did == 122) { cs SET %ZenChanV2 PRIVATE Off }
  elseif ($did == 123) { cs SET %ZenChanV2 RESTRICTED On }
  elseif ($did == 124) { cs SET %ZenChanV2 RESTRICTED Off }
  elseif ($did == 125) { cs SET %ZenChanV2 SECURE On }
  elseif ($did == 126) { cs SET %ZenChanV2 SECURE Off }
  elseif ($did == 127) { cs SET %ZenChanV2 SECUREOPS On }
  elseif ($did == 128) { cs SET %ZenChanV2 SECUREOPS Off }
  elseif ($did == 129) { cs SET %ZenChanV2 SECUREFOUNDER On }
  elseif ($did == 130) { cs SET %ZenChanV2 SECUREFOUNDER Off }
  elseif ($did == 131) { cs SET %ZenChanV2 SIGNKICK On }
  elseif ($did == 133) { cs SET %ZenChanV2 SIGNKICK Off }
  elseif ($did == 136) { writeini  [ %ZenChanV2 $+ .ini ] SALON Limite $$?="Quelle limite : ?" | if ($readini([ %ZenChanV2 $+ .ini ],SALON,ZenLimite) == on) { did -a ZenChanV2 137 Limite ON + $readini([ %ZenChanV2 $+ .ini ],SALON,Limite) } }
}

on *:dialog:ZenChanV2:sclick:*: {
  if ($did == 3) { cs access %ZenChanV2 add $did(08).seltext 10 | mode %ZenChanV2 +ao $did(08).seltext $did(08).seltext }
  elseif ($did == 4) { cs access %ZenChanV2 add $did(08).seltext 5 | mode %ZenChanV2 +o-a $did(08).seltext $did(08).seltext }
  elseif ($did == 5) { cs access %ZenChanV2 add $did(08).seltext 4 | mode %ZenChanV2 +h-ao $did(08).seltext $did(08).seltext $did(08).seltext }
  elseif ($did == 6) { cs access %ZenChanV2 add $did(08).seltext 3 | mode %ZenChanV2 +v-aoh $did(08).seltext $did(08).seltext $did(08).seltext $did(08).seltext }
  elseif ($did == 7) { cs access %ZenChanV2 del $did(08).seltext | mode %ZenChanV2 -vaoh $did(08).seltext $did(08).seltext $did(08).seltext $did(08).seltext }
  elseif ($did == 9) { cs access %ZenChanV2 list }
  elseif ($did == 10) { RemplirListe }
  elseif ($did == 11) { whois $did(08).seltext }
  elseif ($did == 13) { cs kick %ZenChanV2 $did(08).seltext Oust }
  elseif ($did == 14) { ban %ZenChanV2 %ZenChanV2Ban $+(*,$did(08).seltext,*!*@!)  | ban %ZenChanV2 $+(*!*,$did(08).seltext,*@*) | ban %ZenChanV2 $did(08).seltext 2  | kick %ZenChanV2 $did(08).seltext Du balai !! }
  elseif ($did == 15) { notice $did(08).seltext $$?="Message à envoyer : ?" }
  elseif ($did == 16) { notice %ZenChanV2 $$?="Message à envoyer : ?" }
  elseif ($did == 17) { 
    if ($readini([ %ZenChanV2 $+ .ini ],SALON,caractéristique) == on) {
      if ($readini([ %ZenChanV2 $+ .ini ],SALON,ZenLimite) == off) { 
        writeini  [ %ZenChanV2 $+ .ini ] SALON ZenLimite on | did -a ZenChanV2 137 Limite ON + $readini([ $1 $+ .ini ],SALON,Limite) | echo -a 4 Limite activée sur %ZenChanV2 | protectionamj_on %ZenChanV2 | halt 
      } 
      if ($readini([ %ZenChanV2 $+ .ini ],SALON,ZenLimite) == on) { 
        writeini  [ %ZenChanV2 $+ .ini ] SALON ZenLimite off | did -a ZenChanV2 137 Limite OFF | echo -a 4 Limite désactivée sur %ZenChanV2 | protectionamj_off | mode %ZenChanV2 -l | halt 
      } 
    }  
  }
  elseif ($did == 18) { 
    if ($readini([ %ZenChanV2 $+ .ini ],SALON,caractéristique) == on) {
      if ($readini([ %ZenChanV2 $+ .ini ],SALON,Auto_Voice) == off) { 
        writeini  [ %ZenChanV2 $+ .ini ] SALON Auto_Voice on | did -a ZenChanV2 138 Auto-voice ON | echo -a 4 Auto-Voice activé sur %ZenChanV2 | halt 
      } 
      if ($readini([ %ZenChanV2 $+ .ini ],SALON,Auto_Voice) == on) { 
        writeini  [ %ZenChanV2 $+ .ini ] SALON Auto_Voice off | did -a ZenChanV2 138 Auto-voice OFF | echo -a 4 Auto-Voice désactivé sur %ZenChanV2 | halt 
      } 
    } 
  }

  elseif ($did == 19) { cs akick %ZenChanV2 add $did(08).seltext }
  elseif ($did == 20) { cs akick %ZenChanV2 list | echo -a 2,0Pour enlever le "akick" tape la commande suivante: 4/msg ChanServ AKICK %ZenChanV2 DEL "N° du akick" }
  elseif ($did == 21) { cs topic %ZenChanV2 $$?="Message du Topic : ?" }
  elseif ($did == 22) { cs set %ZenChanV2 xop $$?="XOP = On ou Off ?" }
  elseif ($did == 23) { cs akick %ZenChanV2 list }
  elseif ($did == 135) { set %ZenChanV2 $did(135).seltext | RemplirListe }
  elseif ($did == 139) { server -m irc.Double-Zen.com }
}

alias RemplirListe {
  did -r ZenChanV2 8
  set %total.nick $nick(%ZenChanV2,0)
  set %x 1
  while (%x <= %total.nick) {
    did -a ZenChanV2 8 $nick(%ZenChanV2,%x)
    inc %x 1
  }
  did -a ZenChanV2 134 %ZenChanV2 - %total.nick users
  if ($readini([ %ZenChanV2 $+ .ini ],SALON,Auto_Voice) == on) { 
    did -a ZenChanV2 138 Auto-voice ON
  }
  if ($readini([ %ZenChanV2 $+ .ini ],SALON,Auto_Voice) == off) { 
    did -a ZenChanV2 138 Auto-voice OFF
  }
  if ($readini([ %ZenChanV2 $+ .ini ],SALON,ZenLimite) == on) { 
    did -a ZenChanV2 137 Limite ON + $readini([ %ZenChanV2 $+ .ini ],SALON,Limite)
  }
  if ($readini([ %ZenChanV2 $+ .ini ],SALON,ZenLimite) == off) { 
    did -a ZenChanV2 137 Limite OFF
  }
}

alias RemplirCombo {
  loadbuf -ro ZenChanV2 135 ZenChanSalon.txt
}

on *:join:#:{
  if ($readini([ $chan $+ .ini ],SALON,caractéristique) == on) {
    if ($readini([ $chan $+ .ini ],SALON,Auto_Voice) == on) { 
      if ((($me isop $chan) || ($me ishop $chan) && ($nick != $me))) {
        mode $chan +v $nick
      }
    }
  }
  if ($nick == $me) {
    if ($readini([ $chan $+ .ini ],SALON,caractéristique) == on) {
      if ($readini([ $chan $+ .ini ],SALON,ZenLimite) == on) { 
        protectionamj_on $chan
      }
    }
  }
}

alias protectionamj_on { 
  /timerprotect [ $+ [ $1 ] ] 0 7 .pramj $1 
} 

alias pramj { 
  if ($readini([ $1 $+ .ini ],SALON,caractéristique) == on) {
    if ($readini([ $1 $+ .ini ],SALON,ZenLimite) == on) { 
      set %overlimit $readini([ $1 $+ .ini ],SALON,Limite) 
      mode $1 +l $calc($nick($1,0) + %overlimit) 
    }
  }
} 

alias protectionamj_off { 
  /timerprotect [ $+ [ $1 ] ] off 
}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.