Coders-IRC


IRC for Coders

Relay-Radio


image
So Eyecu has obtained a new Radio station called Relay-Radio to be placed in Buzzen due to Sizzle radio closing it's door, and will be adding his radio station to Buzzen and working on bringing it to IRC server's such as Koach.com and coders-irc. From the feedback that i've heard most of the sizzle radio crew will be DJ'ing on Relay-Radio https://www.relay-radio.com/Listen Now https://www.relay-radio.com/player.php

Read More

Simple IRC BotNet


image
It doesn't matter if you are a sysadmin or a hacker, if your budget is low and you are looking for a free way, maybe this tutorial will come in handy .In this tutorial I will use Freenode IRC network, as IRC client MIRC and a simple old bot written in C .

Read More

KeepMyNick.mrc


image

****************************************************************
;
; KeepMyNick ver 1.5 by Czuz (https://github.com/Czuz)
; To install just type: /load -rs KeepMyNick.mrc
;
;****************************************************************
;
; Help:
; KEEPNICK
; Syntax: /keepnick [<nick>] [<network>|default]
; Assigns <nick> to <network> (Or current network.) W/o argument
; disables grabbing until reconnection.
;
; LISTNICK
; Syntax: /listnick [-all]
; Displays list of nicks.
;
; DELNICK
; Syntax: /delnick [<network>|default]
; Remove nick associated with <network> (Or current network) from
; list
;
;****************************************************************
; ChangeLog:
; ver 1.5 (08.05.2021)
; - published on GitHub
; ver 1.4 (23.03.2005)
; - better handling of nick collisions on IRCnet
; ver 1.3 (15.03.2005)
; - new download link
; - better handling of ERR_RESTRICTED on IRCnet
; ver 1.2 (28.08.2004)
; - new download link
; ver 1.1 (04.06.2004)
; - spelling checked
; - fixed handling of raw events
; - default nick
; - /keepnick <nick> default, /delnick default
; - some GUI changes
; ver 1.0 (30.05.2004)
; - setup dialog (Commands->KeepMyNick v1.0)
; - minor changes in functions
; - extended syntax of commands
; - configurable timer delay
; ver 1.0-pre3 (13.05.2004)
; - added support for raw events: 
;   ERR_ERRONEUSNICKNAME, ERR_NICKNAMEINUSE, ERR_UNAVAILRESOURCE and ERR_RESTRICTED
; ver 1.0-pre2 (25.12.2003)
; - fixed disappearing timer bug
; - $comchan() instead of $ial()
; - minor bugs fixed
; ver 1.0-pre1 (22.12.2003)
; - keeping different nicks in multi-server mode
; - /keepnick, /listnick and /delnick commands
; - saving settings to file on exit and reading them on first connect
; - three states of nick grabbing:
;   0 - disabled
;   1 - passive (on events only, when we are on the same channel as nickstealer)
;   2 - active  (periodically nick checking with timer)
;
; ver 0.9 (a long time ago)
; - simple on-event nick keeping for a single network
;
;****************************************************************

;--------------------------[ E V E N T S ]--------------------------

on *:LOAD: {
  %KMN.Version = KeepMyNick v1.5
  echo -st [KeepMyNick] Loading %KMN.Version ...
  if ($version < 6.03) {
    echo -st [KeepMyNick] Script NOT installed. Upgrade your mIRC version to 6.03+.
    timer 1 2 unload -rs " $+ $script $+ "
    halt
  }
  if (%KeepMyNickDelay) {
    %KMN.Delay = %KeepMyNickDelay
    unset %KeepMyNickDelay
  }
  else { %KMN.Delay = 10 }
  if ($hget(MyNicks) == $null) { 
    hmake MyNicks 10
    if ($scon(0) > 0 && $isfile(KeepMyNick.dat)) {
      hload -b MyNicks KeepMyNick.dat
    }
  }
  echo -st [KeepMyNick] - DONE! -
  echo -st [KeepMyNick]
  echo -st [KeepMyNick] Available commands:
  echo -st [KeepMyNick] /keepnick [<nick>] [<network>|default]
  echo -st [KeepMyNick] /listnick [-all]
  echo -st [KeepMyNick] /delnick [<network>|default]
  echo -st [KeepMyNick]
  echo -st [KeepMyNick] For graphic setup, go to  Menu->Commands-> $+ %KMN.Version
}

on *:UNLOAD: {
  .timerKeepMyNick off
  if ($hget(MyNicks)) { 
    hsave -ob MyNicks KeepMyNick.dat
    hfree MyNicks 
  }
  unset %KMN.Delay
  unset %KMN.Version
  unset %KMN.Default
  unset %KMN.Options
  echo -st [KeepMyNick] Bye...
}

on *:CONNECT: {
  if ($scon(0) == 1) {
    if ($isfile(KeepMyNick.dat)) { 
      if ($hget(MyNicks) == $null) { hmake MyNicks 10 }
      hload -b MyNicks KeepMyNick.dat
    }
  }
  if ($KMN.MyNick) { KMN.ChangeNickState 2 }
  elseif (%KMN.Options == KMN.AddDef) { hadd -m MyNicks $KMN.FindNetwork 2 %KMN.Default }
  elseif (%KMN.Options == KMN.KeepDef) { hadd -m MyNicks $KMN.FindNetwork 2 %KMN.Default 1 }
  KMN.GetMyNick
}

on *:DISCONNECT: {
  if ($nick == $me && $KMN.NickIsHidden) { hdel MyNicks $KMN.FindNetwork }
}


on *:EXIT: {
  if ($hget(MyNicks)) { 
    hsave -ob MyNicks KeepMyNick.dat
    hfree MyNicks
  }
}

on *:KICK:#: {
  if ($nick == $me || $nick == $KMN.MyNick) {
    if ( $KMN.NickState > 0 ) {
      KMN.ChangeNickState 2
    }
  }
}

on *:PART:#: {
  if ($nick == $me || $nick == $KMN.MyNick) {
    if ( $KMN.NickState > 0 ) {
      KMN.ChangeNickState 2
    }
  }
}

on *:NICK: {
  if ($nick != $me && $nick == $KMN.MyNick) {
    if ( $KMN.NickState > 0 ) {
      tnick $KMN.MyNick
    }
  }
  elseif ($nick == $me && $nick == $KMN.MyNick && $KMN.NickState > 0) {
    echo -at [KeepMyNick] Disabled for network $KMN.FindNetwork
    KMN.ChangeNickState 0
  }
}

on *:QUIT: {
  if ($nick != $me && $nick == $KMN.MyNick) {
    if ( $KMN.NickState > 0 ) {
      tnick $KMN.MyNick
    }
  }
}

;----------------------[ R A W   E V E N T S ]----------------------

; ERR_ERRONEUSNICKNAME
raw 432:*: {
  if ($KMN.MyNick && $2 == $KMN.MyNick) {
    echo -st [KeepMyNick] $2 - Erroneous Nickname
    echo -st [KeepMyNick] Disabling for network $KMN.FindNetwork
    KMN.ChangeNickState 0
    halt
  }
}

; ERR_NICKNAMEINUSE
raw 433:*: {
  if ($KMN.MyNick && $2 == $KMN.MyNick) {
    halt
  }
}

; ERR_UNAVAILRESOURCE
raw 437:*: {
  if ($KMN.MyNick && $2 == $KMN.MyNick) {
    halt
  }
}

; ERR_RESTRICTED
raw 484:*: {
  if ($KMN.FindNetwork != IRCnet || $left($me, 1) !isin 0123456789) {
    if ($KMN.NickState && $KMN.NickState != 0) {
      echo -st [KeepMyNick] Your connection is restricted!
      echo -st [KeepMyNick] Disabling for network $KMN.FindNetwork
      KMN.ChangeNickState 0
      halt
    }
  }
}

;---------------------[From OmenServe 1.42-b08]---------------------
; This should compensate for NewNet's lack of $network issues
alias KMN.FindNetwork {
  if ( $network != $null ) { return $network }
  if ( $server == irc.aohell.org ) { return NewNet }
  if ( $server == irc.d0t.net ) { return NewNet }
  if ( $server == irc.dividedspace.com ) { return NewNet }
  if ( $server == irc.dragonskeep.com ) { return NewNet }
  if ( $server == irc.eskimo.com ) { return NewNet }
  if ( $server == irc.feartomorrow.com ) { return NewNet }
  if ( $server == irc.firex.org ) { return NewNet }
  if ( $server == irc.josephbarnhart.net ) { return NewNet }
  if ( $server == irc.linux-friendly-56k.com ) { return NewNet }
  if ( $server == irc.phantomshitter.net ) { return NewNet }
  if ( $server == irc.sweatnet.net ) { return NewNet }
  if ( $server == irc.moo.me.uk ) { return NewNet }
  if ( $server == olympic.olympos-net.gr ) { return NewNet }
  if ( $server != $null ) { return $server }
  return Offline
}
;------------------------------[END]--------------------------------
;-----------------------[ F U N C T I O N S ]-----------------------
alias KMN.MyNick {
  if ($1) {
    return $gettok($hget(MyNicks, $1), 2, 32)
  }
  else {
    return $gettok($hget(MyNicks, $KMN.FindNetwork), 2, 32)
  }
}

alias KMN.NickState {
  if ($1) {
    return $gettok($hget(MyNicks, $1), 1, 32)
  }
  else {
    return $gettok($hget(MyNicks, $KMN.FindNetwork), 1, 32)
  }
}

alias KMN.NickIsHidden {
  if ($1) {
    return $gettok($hget(MyNicks, $1), 3, 32)
  }
  else {
    return $gettok($hget(MyNicks, $KMN.FindNetwork), 3, 32)
  }
}

alias KMN.ChangeNickState {
  hadd -m MyNicks $KMN.FindNetwork $1 $mid($hget(MyNicks, $KMN.FindNetwork), 3)
}

alias KMN.GetMyNick {
  var %currentserver = $cid
  var %i = 1
  while ($scon(%i)) {
    scid $scon(%i)
    if ( $server != $null && $me != $KMN.MyNick && $KMN.NickState > 1 ) {
      if ($comchan($KMN.MyNick,0) != 0) {
        KMN.ChangeNickState 1
      }
      else {
        tnick $KMN.MyNick
      }
    }
    inc %i
  }
  scid %currentserver
  .timerKeepMyNick -i 1 %KMN.Delay KMN.GetMyNick
}

alias KMN.GetNetworkFromLine {
  return $gettok($did(KMN.Setup, 11).seltext, 2, $asc(@))
}

alias KMN.CheckDelay {
  if ($1 !isnum) { return 10 }
  elseif ($1 < 5 ) { return 5 }
  elseif ($1 > 600) { return 600 }
  else { return $1 }
}

alias KMN.UpdateNicks {
  var %currentserver = $cid
  var %i = 1
  while ($scon(%i)) {
    scid $scon(%i)
    if ((!$KMN.MyNick || $KMN.NickIsHidden) && %KMN.Options == KMN.AddDef) { 
      hadd -m MyNicks $KMN.FindNetwork 2 %KMN.Default
    }
    elseif ((!$KMN.MyNick || $KMN.NickIsHidden) && %KMN.Options == KMN.KeepDef) {
      hadd -m MyNicks $KMN.FindNetwork 2 %KMN.Default 1
    }
    elseif ($KMN.NickIsHidden && %KMN.Options != KMN.KeepDef) {
      hdel MyNicks $KMN.FindNetwork
    }
    inc %i
  }
  scid %currentserver
  KMN.GetMyNick
}

alias KMN.DialogDelNick {
  if ($1) {
    hdel MyNicks $1
    did -d KMN.Setup 11 $did(KMN.Setup, 11, 1).sel
  }
}

alias KMN.DialogAddNick {
  if ($1) { hdel MyNicks $1 }
  hadd -m MyNicks $did(KMN.AddEdit,101) 2 $did(KMN.AddEdit,102)
  if ($1) { did -o KMN.Setup 11 $did(KMN.Setup, 11, 1).sel $did(KMN.AddEdit,102) $+ @ $+ $did(KMN.AddEdit,101) }
  else { did -a KMN.Setup 11 $did(KMN.AddEdit,102) $+ @ $+ $did(KMN.AddEdit,101) }
  KMN.GetMyNick
}

alias KMN.DialogCheckBox {
  if ($1 == 23) { var %i = 24 }
  else { var %i = 23 }
  if ($did(KMN.setup, $1).state == 0) { 
    if ($1 == 23) { var %i = 24 }
    else { var %i = 23 }
    %KMN.Options = $null
    did -e KMN.setup %i
  }
  else {
    if ($1 == 23) { 
      var %i = 24
      %KMN.Options = KMN.AddDef
    }
    else {
      var %i = 23
      %KMN.Options = KMN.KeepDef
    }
    did -b KMN.setup %i
  }
}
;------------------------[ C O M M A N D S ]------------------------
alias keepnick {
  if ($2 == $null && $server == $null) {
    echo -st [KeepMyNick] Connect to a server first.
    halt
  }
  if ($1) { 
    if ($2 && $2 != default) { hadd -m MyNicks $2 2 $1 }
    elseif ($2 && $2 == default) { %KMN.Default = $1 | %KMN.Options = KMN.KeepDef }
    else { hadd -m MyNicks $KMN.FindNetwork 2 $1 }
    KMN.GetMyNick
  }
  else { 
    echo -st [KeepMyNick] Disabled for network $KMN.FindNetwork
    KMN.ChangeNickState 0
  }
}

alias listnick {
  echo -at [KeepMyNick] List of nicks:
  var %i = 1
  if ($1 == -all) {
    var %max.servers = $hget(MyNicks,0).item
    while (%i <= %max.servers) {
      var %tmpserver = $hget(MyNicks,%i).item
      if (!$KMN.NickIsHidden(%tmpserver)) {
        echo -at [KeepMyNick] $KMN.MyNick(%tmpserver) $+ @ $+ %tmpserver
      }
      inc %i
    }
  }
  else {
    var %currentserver = $cid
    while ($scon(%i)) {
      scid $scon(%i)
      if ($server && $KMN.MyNick && !$KMN.NickIsHidden) {
        echo -at [KeepMyNick] $KMN.MyNick $+ @ $+ $KMN.FindNetwork $iif(($KMN.NickState == 0),(disabled),(enabled))
      }
      inc %i
    }
    scid %currentserver
  }
}

alias delnick {
  if ($1 && $1 == default && %KMN.Options = KMN.KeepDef) {
    echo -st [KeepMyNick] Default nick disabled.
    %KMN.Options = $null
    KMN.UpdateNicks
  }
  elseif ($1 && $KMN.MyNick($1)) {
    echo -st [KeepMyNick] Nick for $1 deleted.
    hdel MyNicks $1
  }
  elseif ($1 == $null && $KMN.MyNick) {
    echo -st [KeepMyNick] Nick for $KMN.FindNetwork deleted.
    hdel MyNicks $KMN.FindNetwork
  }
  else { echo -st [KeepMyNick] No nick for that network. }
}

;----------------------------[ M E N U ]----------------------------
menu menubar {
  %KMN.Version { dialog -m KMN.setup KMN.SetupDialog }
}
;-------------------------[ D I A L O G S ]-------------------------
dialog -l KMN.SetupDialog {
  title %KMN.Version
  size -1 -1 210 155
  option dbu

  box "Setup", 10, 2 2 206 130
  list 11, 30 19 165 65, size, sort, vsbar
  button "Add", 12, 6 19 20 15
  button "Edit", 13, 6 36 20 15
  button "Del", 14, 6 53 20 15
  text "Nicks:", 15, 31 10 25 8
  text %KMN.Version by Czuz, 16, 125 90 80 8
  link "Latest version", 17, 125 98 80 8

  text "Timer delay:", 18, 30 87 30 8
  edit %KMN.Delay, 19, 63 86 35 10, right, limit 4
  text "sec.", 20, 100 87 10 8
  text "Default nick:", 21, 30 99 30 8
  edit %KMN.Default, 22, 63 98 35 10, right
  check "Add default nick to undefined networks", 23, 30 111 200 8
  check "Keep default nick on undefined networks", 24, 30 121 200 8

  button "Done", 99, 85 135 40 15, ok
}

dialog -l KMN.AddEditDialog {
  title "KeepMyNick - Add/Edit"
  size -1 -1 145 60
  option dbu

  combo 101, 15 15 60 10, edit, vsbar, drop
  edit "", 102, 90 15 40 10
  text "Network:", 103, 17 5 58 8
  text "Nick:", 104, 92 5 38 8

  button "Ok", 109, 30 35 30 15, ok
  button "Cancel", 110, 85 35 30 15, cancel
}

on *:dialog:KMN.setup:init:0 {
  var %max.servers = $hget(MyNicks,0).item
  var %i = 1
  while (%i <= %max.servers) {
    var %tmpserver = $hget(MyNicks,%i).item
    if (!$KMN.NickIsHidden(%tmpserver)) {
      did -a KMN.setup 11 $KMN.MyNick(%tmpserver) $+ @ $+ %tmpserver
    }
    inc %i
  }
  if (%KMN.Options == KMN.AddDef) { did -c KMN.setup 23 | did -b KMN.setup 24 }
  elseif (%KMN.Options == KMN.KeepDef) { did -c KMN.setup 24 | did -b KMN.setup 23 }
}

on *:dialog:KMN.setup:sclick:12 { 
  did -u KMN.Setup 11 $did(KMN.Setup, 11, 1).sel
  $dialog(KMN.AddEdit, KMN.AddEditDialog, -4)
}

on *:dialog:KMN.setup:sclick:13 { $dialog(KMN.AddEdit, KMN.AddEditDialog, -4) }
on *:dialog:KMN.setup:sclick:14 { $KMN.DialogDelNick($KMN.GetNetworkFromLine) }
on *:dialog:KMN.setup:sclick:17 { run https://github.com/Czuz/KeepMyNick }
on *:dialog:KMN.setup:edit:19 { %KMN.Delay = $KMN.CheckDelay($did(KMN.setup,19)) }
on *:dialog:KMN.setup:edit:22 { %KMN.Default = $did(KMN.setup, 22)) }
on *:dialog:KMN.setup:sclick:23,24 { $KMN.DialogCheckBox($did) }
on *:dialog:KMN.setup:sclick:99 { $KMN.UpdateNicks }

on *:dialog:KMN.AddEdit:init:0 {
  var %sel.network = $KMN.GetNetworkFromLine
  if (%sel.network) { did -a KMN.AddEdit 101 %sel.network }

  var %currentserver = $cid
  var %i = 1
  while ($scon(%i)) {
    scid $scon(%i)
    if ($server != $null && $network != $did(KMN.AddEdit,101,1)) {
      did -a KMN.AddEdit 101 $KMN.FindNetwork
    }
    inc %i
  }
  scid %currentserver

  did -c KMN.AddEdit 101 1
  did -i KMN.AddEdit 102 1 $KMN.MyNick($did(KMN.AddEdit,101,1))
}

on *:dialog:KMN.AddEdit:sclick:109 { $KMN.DialogAddNick($KMN.GetNetworkFromLine) }
;----------------------------[ E N D ]------------------------------



Expand


Read More