Autor Tema: Expulsar usuarios dentro del canal.  (Leído 169 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Hanna

  • Miembro Junior
  • **
  • Mensajes: 60
  • Karma: +11/-4
Expulsar usuarios dentro del canal.
« en: Abril 04, 2020, 04:34:09 pm »
Hola.

Tengo un código para banear los nicks inapropiados, tanto cuando entran como cuando salen, pero de repente... cuando se cambian dentro del canal no los expulsa.

Cuando entran con el nick inapropiado si lo expulsa y no veo donde está el fallo.

Código: [Seleccionar]
ON 99:TEXT:*:?: {
  tokenize 32 $strip($1-)
  if (.addnick == $1) {
    msg $nick Añadido $2 en la lista de nicks prohibidos.
    write nicks.txt $2
  }
  else if (.delnick == $1) {
    msg $nick Borrado $2 de la lista de nicks prohibidos.
    write -ds $+ $2 nicks.txt
  }
  else if (.addex == $1) {
    msg $nick Añadido $2 en la lista de nicks en excepción.
    write nicks-exceptuados.txt $2
  }
  else if (.delex == $1) {
    msg $nick Borrado $2 de la lista de nicks en excepcion.
    write -ds $+ $2 nicks-exceptuados.txt
  }
}

on 1:join:#: {
  $BaneaUsuarios($nick)
}

on *:nick:{
  if ($newnick ison $chan) { $BaneaUsuarios($newnick) }
}

alias BaneaUsuarios {
  var %cuentaNicks = 1
  while (%cuentaNicks <= $lines(nicks.txt)) {
    if ($read(nicks.txt,%cuentaNicks) isin $1) || ($read(nicks.txt,%cuentaNicks) iswm $1) {
      var %cuentaExcepciones = 1
      while (%cuentaExcepciones <= $lines(nicks-exceptuados.txt)) {
        if ($read(nicks-exceptuados.txt,%cuentaExcepciones) isin $1) || ($read(nicks-exceptuados.txt,%cuentaExcepciones) iswm $1) {
          halt
        }
        inc %cuentaExcepciones
      }
      ban -u1800 $chan $1 $+ !*@* | kick # $1 Nick inapropiado. Cambiatelo para entrar. | msg #cogotazos 1[BN %bannick $+ ]  Expulsando 1 $1 ( $address ) por: Nick inapropiado.
      halt
    }
    inc %cuentaNicks
  }
}

¿Alguna solución?

¡Gracias!

PD: Lo quiero que lo ejecute en los canales donde tenga @, pero no lo ejecuta en ningún canal.
« última modificación: Abril 04, 2020, 04:39:31 pm por Hanna »

Desconectado Quetzalcoatl

  • Miembro de pleno derecho
  • ***
  • Mensajes: 141
  • Karma: +203/-2
  • HipercomputoHipermegared
    • elchatirc
Re:Expulsar usuarios dentro del canal.
« Respuesta #1 en: Abril 04, 2020, 07:25:13 pm »
Hola Hanna

En el evento de on *:nick:{ no existe el identificador de $chan es por eso que el if que pones en ese evento jamas se ejecutara, la solución es especificar el canal donde tienes op y/o usar $comchan para ver en cuales canales tienes compatibles y apartir de eso se debe hacer la comparación si eres op en el.
Después modificar el alias BaneaUsuarios para que el $chan sea el $2, ya que requieres enviarlo o usar un $iif para asignarlo en ese alias.
Puedes encontrar toda la información referente de $comchan en el archivo de ayuda.

saludos

pd: si pones
Código: [Seleccionar]
on *:nick:{ echo -st Identificadores de evento on nick NICK= $nick CHAN= $chan NEWNICK $newnick COMCHAN= $comchan($newnick,0) } puedes comprobar lo que digo

Desconectado Hanna

  • Miembro Junior
  • **
  • Mensajes: 60
  • Karma: +11/-4
Re:Expulsar usuarios dentro del canal.
« Respuesta #2 en: Abril 04, 2020, 07:32:08 pm »
Hola Quetzacoatl

Me lo estado leyendo y me ha sonado a chino... y explicándomelo tú sigo igual...

Cuando pongo solo un canal se ejecuta bien, así que... tienes toda la razón

PD: Mejor hago 2 cogido y solo cambio los canales... porque como dices es bastante complicado y no se hacerlo yo

Un saludo

 

anything