This is the new home of the egghelp.org community forum.
All data has been migrated (including user logins/passwords) to a new phpBB version.


For more information, see this announcement post. Click the X in the top right-corner of this box to dismiss this message.

check mass connect

Help for those learning Tcl or writing their own scripts.
G
Gulio
Halfop
Posts: 74
Joined: Sun Nov 01, 2020 11:53 am

check mass connect

Post by Gulio »

I am trying to check mass connect flood here so bot can say msg !gline on chanel and when say !gline on , after 10 min to say msg chan !gline off to disable

any idea how to fix get work properly, thx in advance

1 error in PartyLine

Code: Select all


Tcl error [massconnectflood]: expected integer but got "10:30"

Script:

Code: Select all


# Mass Connect flood, Match on repeats:seconds #
set mhrp(flood) 10:30

set commChan "#services"

bind raw - NOTICE massconnectflood
proc massconnectflood {from key text} {
	global mhrp
	if {[string match *!*@* $from] || ![string match -nocase "*client connecting*" $text]} { return }
	regexp {:\ ([^ ]+)\s\(([^@]+)@([^\)])+\)\s\[([^\]]+)} $text - nick ident host ip
	set target [split $mhrp(flood) :]
	set nick [lindex $mhrp(flood) 0]
	set seconds [lindex $mhrp(flood) 1]
	if {![info exists mhrp(flood)]} {
		set mhrp(flood) 1
	} else {
		incr mhrp(flood)
	}
	if {$mhrp(flood) >= $nick} {
		set mhrp(flood) 0
		puthelp "PRIVMSG $::commChan :!gline on"
		return 1
		timer 10 [list putserv "PRIVMSG $::commChan : !gline off" ]
		return 0
	}
}

Online
User avatar
CrazyCat
Revered One
Posts: 1304
Joined: Sun Jan 13, 2002 8:00 pm
Location: France
Contact:

Post by CrazyCat »

You use the same variable name (mhrp(flood)) as setting and counter.
Change the name of one of them.
G
Gulio
Halfop
Posts: 74
Joined: Sun Nov 01, 2020 11:53 am

hi

Post by Gulio »

Here is triger in every conenction and this is bad need 1 time to riger when is match 10:30

Code: Select all


[20:53:00] Tcl error [massconnectflood]: expected integer but got "10 30"
[20:53:00] -NOTICE- *** Client connecting: Robinette (robinette@72.221.164.34) [72.221.164.34] [class: clients] [reputation: 1412] 
[20:53:00] Tcl error [massconnectflood]: expected integer but got "10 30"
[20:53:00] -NOTICE- *** Client connecting: Robin (robin@192.111.139.165) [192.111.139.165] [class: clients] [reputation: 1392] 
[20:53:00] Tcl error [massconnectflood]: expected integer but got "10 30"
[20:53:00] -NOTICE- *** Client connecting: Katerina (katerina@70.166.167.36) [70.166.167.36] [class: clients] [reputation: 1726] 
[20:53:01] Tcl error [massconnectflood]: expected integer but got "10 30"
[20:53:01] -NOTICE- *** Client connecting: Sosanna (sosanna@184.181.217.204) [184.181.217.204] [class: clients] [reputation: 1629] 
[20:53:01] Tcl error [massconnectflood]: expected integer but got "10 30"
[20:53:01] -NOTICE- *** Client connecting: Faydra (faydra@174.75.211.222) [174.75.211.222] [class: clients] [reputation: 896] 
[20:53:01] Tcl error [massconnectflood]: expected integer but got "10 30"
[20:53:01] -NOTICE- *** Client connecting: Ibby (ibby@98.188.47.150) [98.188.47.150] [class: clients] [reputation: 764] 
[20:53:01] Tcl error [massconnectflood]: expected integer but got "10 30"
[20:53:01] -NOTICE- *** Client connecting: Henrie (henrie@72.221.196.145) [72.221.196.145] [class: clients] [reputation: 1322] 
[20:53:02] Tcl error [massconnectflood]: expected integer but got "10 30"
[20:53:02] -NOTICE- *** Client connecting: Aggie (aggie@192.111.137.35) [192.111.137.35] [class: clients] [reputation: 763] 
[20:53:02] Tcl error [massconnectflood]: expected integer but got "10 30"
[20:53:02] -NOTICE- *** Client connecting: Audrye (audrye@ip72-212-63-101.ph.ph.cox.net) [72.212.63.101] [class: clients] [reputation: 1575] 
[20:53:02] Tcl error [massconnectflood]: expected integer but got "10 30"
[20:53:02] -NOTICE- *** Client connecting: Faina (faina@98.185.94.76) [98.185.94.76] [class: clients] [reputation: 710] 

Code: Select all


# Mass Connect flood, Match on repeats:seconds #
set mhrp(flood) 10:30

set commChan "#services"

bind raw - NOTICE massconnectflood
proc massconnectflood {frm key text} {
	global mhrp
	if {[string match *!*@* $frm] || ![string match -nocase "*client connecting*" $text]} { return }
	regexp {:\ ([^ ]+)\s\(([^@]+)@([^\)])+\)\s\[([^\]]+)} $text - unick ident host ip
	set target [split $mhrp(flood) :]
	set nick [lindex $target 0]
	set seconds [lindex $target 1]
	if {![info exists mhrp(flood)]} {
		set mhrp(flood) 1
	} else {
		incr target
	}
	if {$mhrp(flood) >= $nick} {
		set mhrp(flood) 0
		return 1
	} else {
		puthelp "PRIVMSG $::commChan :!gline on"
		timer 10 [list putserv "PRIVMSG $::commChan : !gline off" ]
	}
	return 0
}

Last edited by Gulio on Sun Jul 11, 2021 3:35 pm, edited 2 times in total.
Online
User avatar
CrazyCat
Revered One
Posts: 1304
Joined: Sun Jan 13, 2002 8:00 pm
Location: France
Contact:

Post by CrazyCat »

First, read my answer.

Second, your script can't work, it looks like an assembly of pieces of script.
With your regexp, you set nick, ok.
Two liens after, you set nick again, with the first part of mhrp(flood), which is a string "10:30", so nick become "10:30". seconds will alway be empty as you do a lindex on "10:30".

You make a list called target and never use it.

After that, you compare mhrp(flood) (10:30) with nick (10:30 too, as seen before)...

Do you know you have Conn throttle setting on UnrealIrcd which will probably work better than any eggdrop script ?
G
Gulio
Halfop
Posts: 74
Joined: Sun Nov 01, 2020 11:53 am

hi

Post by Gulio »

i want to enable other bot with this
G
Gulio
Halfop
Posts: 74
Joined: Sun Nov 01, 2020 11:53 am

hi

Post by Gulio »

Now dont have errors but is not send msg to channel

Code: Select all


# Mass Connect flood, Match on repeats:seconds #
set mhrp(flood) 10:30

set commChan "#services"

bind raw - NOTICE massconnectflood
proc massconnectflood {frm key text} {
	global mhrp
	if {[string match *!*@* $frm] || ![string match -nocase "*client connecting*" $text]} { return }
	regexp {:\ ([^ ]+)\s\(([^@]+)@([^\)])+\)\s\[([^\]]+)} $text - nick ident host ip
	set target [split $mhrp(flood) :]
	set max [lindex $target 0]
	set nicklist [lassign $mhrp(flood) cnt]
	set seconds [lindex $target 1]
	if {$cnt < $target} {
		if {![info exists mhrp(flood)]} {
			set mhrp(flood) 1
		} else {
			incr cnt
		}
		if {$cnt >= $target} {
			set mhrp(flood) 0
			return 1
		} else {
			puthelp "PRIVMSG $::commChan :!gline on"
			timer 10 [list putserv "PRIVMSG $::commChan : !gline off" ]
		}
		return 0
	}
}

Online
User avatar
CrazyCat
Revered One
Posts: 1304
Joined: Sun Jan 13, 2002 8:00 pm
Location: France
Contact:

Post by CrazyCat »

It's because your script can't work.

Let me explain what it does (comments in the script):

Code: Select all

set mhrp(flood) 10:30
# $mhrp(flood) is a string "10:30"

set commChan "#services"

bind raw - NOTICE massconnectflood
proc massconnectflood {frm key text} {
	global mhrp
	if {[string match *!*@* $frm] || ![string match -nocase "*client connecting*" $text]} { return }
	regexp {:\ ([^ ]+)\s\(([^@]+)@([^\)])+\)\s\[([^\]]+)} $text - nick ident host ip
	set target [split $mhrp(flood) :]
	# $target is a list {"10" "30"}
	set max [lindex $target 0]
	# $max is "10"
	set nicklist [lassign $mhrp(flood) cnt]
	# $nicklist is an empty string, $cnt is "10:30"
	set seconds [lindex $target 1]
	# $seconds is "30"
	if {$cnt < $target} {
		# you check if "10:30" is lesser than "30" ?
		# You will never come in this part
		if {![info exists mhrp(flood)]} {
			# $mhrp(flood) alway exists as you set it as global setting
			# You will never come in this condition
			set mhrp(flood) 1
			# never setted to 1
		} else {
			incr cnt
			# even if you come in, you can't inc "10:30"
		}
		if {$cnt >= $target} {
			# you compare "10:30" with "10" ? Won't work
			set mhrp(flood) 0
			# $mhrp(flood) is now 0, you have loose your initial setting
			return 1
		} else {
			# so you send your message when $cnt (your counter ?) is less than your max ?
			# inverted functionment, you gline unless you're flooded
			puthelp "PRIVMSG $::commChan :!gline on"
			timer 10 [list putserv "PRIVMSG $::commChan : !gline off" ]
		}
		return 0
	}
}
I think you really don't know what you try to do, and don't try to understand the script you write.
Online
User avatar
CrazyCat
Revered One
Posts: 1304
Joined: Sun Jan 13, 2002 8:00 pm
Location: France
Contact:

Post by CrazyCat »

Here is a small try (not tested) to explain you how it must work:

Code: Select all

set mhrp(flood) 10:30
set mhrp(nicks) {}

set commChan "#services"

bind raw - NOTICE massconnectflood
proc massconnectflood {frm key text} {
	if {[string match *!*@* $frm] || ![string match -nocase "*client connecting*" $text]} { return }
	regexp {:\ ([^ ]+)\s\(([^@]+)@([^\)])+\)\s\[([^\]]+)} $text - nick ident host ip
	set target [split $::mhrp(flood) :]
	set max [lindex $target 0]
	set seconds [lindex $target 1]
	lappend ::mhrp(nicks) $nick
	# we append $mhrp(nicks) with the new connection
	utimer $seconds [list lreplace ::mhrp(nicks) [lsearch ::mhrp(nicks) $nick] [lsearch ::mhrp(nicks) $nick]]
	# we will remove this entry in $seconds (30)
	if {[llength $::mhrp(nicks)] >= $target} {
		# comparing size of mhrp(nicks) and target
		puthelp "PRIVMSG $::commChan :!gline on"
		timer 10 [list putserv "PRIVMSG $::commChan : !gline off" ]
	}
}
As you see, I introduce mhrp(nicks): a list which will contains nicks connected in the "$seconds" last seconds. When the size of this list is greater than $target, the gline is launched.
An utimer remove the nick from the list after $seconds seconds.

Now, you have all the elements to do your own and/or correct this.
G
Gulio
Halfop
Posts: 74
Joined: Sun Nov 01, 2020 11:53 am

hi

Post by Gulio »

Is work is send msg a channel but is send for each connection need to send 1 time only when is match 10 connection and more in 30 second same and for !gline off

!gline on

Code: Select all


[12:17:35] <@InfoServ> USERS: Tildie!tildie@72.221.164.34 (715394D6.28271C50.C0D4321D.IP) (Tildie) connected to the network 
[12:17:35] <@InfoServ> USERS: Sherill!sherill@192.111.139.165 (32F07FFA.6BCFB625.C64C234B.IP) (Sherill) connected to the network 
[12:17:35] <~X> !gline on
[12:17:35] <@InfoServ> USERS: Chrystal!chrystal@70.166.167.36 (69A377EE.4D4B93C6.9A1EF8E8.IP) (Chrystal) connected to the network 
[12:17:35] <~X> !gline on
[12:17:35] <@InfoServ> USERS: Isobel!isobel@174.75.211.222 (13CFE653.EE5CFFC7.B83C2445.IP) (Isobel) connected to the network 
[12:17:35] <~X> !gline on
[12:17:35] <@InfoServ> USERS: Kassi!kassi@184.181.217.204 (3CB0D412.B908AD8E.61D77C1C.IP) (Kassi) connected to the network 
[12:17:35] <~X> !gline on
[12:17:35] <~X> !gline on
[12:17:35] <@InfoServ> USERS: Olivie!olivie@98.188.47.150 (BE059E5C.6EC7BCE1.4EDF4AE9.IP) (Olivie) connected to the network 
[12:17:36] <@InfoServ> USERS: Carleen!carleen@72.221.196.145 (5A95481C.1159A157.C0D4321D.IP) (Carleen) connected to the network 
[12:17:36] <~X> !gline on
[12:17:37] <@InfoServ> USERS: Charlot!charlot@98.185.94.76 (EE5C3F4.A9D4D4FB.3EDCEB4C.IP) (Charlot) connected to the network 
[12:17:37] <~X> !gline on
[12:17:37] <@InfoServ> USERS: Norene!norene@192.111.137.35 (E020523E.ACDA578F.C64C234B.IP) (Norene) connected to the network 
[12:17:37] <~X> !gline on
[12:17:37] <@InfoServ> USERS: Sherline!sherline@ip72-212-63-101.ph.ph.cox.net (Test-DCB94153.ph.ph.cox.net) (Sherline) [72.212.63.101] connected to the network 
[12:17:37] <~X> !gline on
[12:17:56] <@InfoServ> USERS: Juliet!juliet@23.129.64.161 (44374157.F590B041.546B3AD4.IP) (Juliet) connected to the network 
[12:17:56] <~X> !gline on

!gline off

Code: Select all

[12:27:00] <~X>  !gline off
[12:27:00] <~X>  !gline off
[12:27:00] <~X>  !gline off
[12:27:00] <~X>  !gline off
[12:27:00] <~X>  !gline off
[12:27:00] <~X>  !gline off
[12:27:00] <~X>  !gline off
[12:27:00] <~X>  !gline off
[12:27:00] <~X>  !gline off
[12:27:00] <~X>  !gline off
Online
User avatar
CrazyCat
Revered One
Posts: 1304
Joined: Sun Jan 13, 2002 8:00 pm
Location: France
Contact:

Post by CrazyCat »

Simply add a state memory:

Code: Select all

set mhrp(flood) 10:30
set mhrp(nicks) {}
set mhrp(on) 0

set commChan "#services"

bind raw - NOTICE massconnectflood
proc massconnectflood {frm key text} {
   if { $::mhrp(on) == 1 } { return }
   if {[string match *!*@* $frm] || ![string match -nocase "*client connecting*" $text]} { return }
   regexp {:\ ([^ ]+)\s\(([^@]+)@([^\)])+\)\s\[([^\]]+)} $text - nick ident host ip
   set target [split $::mhrp(flood) :]
   set max [lindex $target 0]
   set seconds [lindex $target 1]
   lappend ::mhrp(nicks) $nick
   # we append $mhrp(nicks) with the new connection
   utimer $seconds [list lreplace ::mhrp(nicks) [lsearch ::mhrp(nicks) $nick] [lsearch ::mhrp(nicks) $nick]]
   # we will remove this entry in $seconds (30)
   if {[llength $::mhrp(nicks)] >= $target} {
      # comparing size of mhrp(nicks) and target
      puthelp "PRIVMSG $::commChan :!gline on"
      set ::mhrp(on) 1
      timer 10 [list massconnectunflood]
   }
}

proc massconnectunflood{} {
      putserv "PRIVMSG $::commChan : !gline off"
      set ::mhrp(on) 0
}
G
Gulio
Halfop
Posts: 74
Joined: Sun Nov 01, 2020 11:53 am

hi

Post by Gulio »

1 error on restart

Code: Select all

Error loading script 'scripts/gline-on.tcl': wrong # args: should be "proc name args body"
need

Code: Select all

proc massconnectunflood {} {
G
Gulio
Halfop
Posts: 74
Joined: Sun Nov 01, 2020 11:53 am

hi

Post by Gulio »

is a problem this notice ?

Line 17: NOTICE: Found constant "::mhrp(nicks)" which is also a variable.

Code: Select all

utimer $seconds [list lreplace ::mhrp(nicks) [lsearch ::mhrp(nicks) $nick] [lsearch ::mhrp(nicks) $nick]]
G
Gulio
Halfop
Posts: 74
Joined: Sun Nov 01, 2020 11:53 am

hi

Post by Gulio »

The Result here

is possible to send after the 10 nick connection !gline on
to not enable for innocent users on connect cozz here is send msg channel on 2 connection

Code: Select all


[13:01:22] <@InfoServ> USERS: Domeniga!domeniga@192.111.139.165 (32F07FFA.6BCFB625.C64C234B.IP) (Domeniga) connected to the network
[13:01:23] <@InfoServ> USERS: Pearl!pearl@72.221.164.34 (715394D6.28271C50.C0D4321D.IP) (Pearl) connected to the network
[13:01:23] <~X> !gline on
[13:01:23] <@InfoServ> USERS: Ola!ola@70.166.167.36 (69A377EE.4D4B93C6.9A1EF8E8.IP) (Ola) connected to the network
[13:01:24] <@InfoServ> USERS: Goldi!goldi@184.181.217.204 (3CB0D412.B908AD8E.61D77C1C.IP) (Goldi) connected to the network
[13:01:24] <@InfoServ> USERS: Jewelle!jewelle@98.188.47.150 (BE059E5C.6EC7BCE1.4EDF4AE9.IP) (Jewelle) connected to the network
[13:01:24] <@InfoServ> USERS: Merridie!merridie@174.75.211.222 (13CFE653.EE5CFFC7.B83C2445.IP) (Merridie) connected to the network
[13:01:24] <@InfoServ> USERS: Anthea!anthea@192.111.137.35 (E020523E.ACDA578F.C64C234B.IP) (Anthea) connected to the network
[13:01:24] <@InfoServ> USERS: Jeannette!jeannette@72.221.196.145 (5A95481C.1159A157.C0D4321D.IP) (Jeannette) connected to the network
[13:01:24] <@InfoServ> USERS: Ethel!ethel@98.185.94.76 (EE5C3F4.A9D4D4FB.3EDCEB4C.IP) (Ethel) connected to the network 
[13:01:25] <@InfoServ> USERS: Dorrie!dorrie@ip72-212-63-101.ph.ph.cox.net (Test-DCB94153.ph.ph.cox.net) (Dorrie) [72.212.63.101] connected to the network 
[13:01:26] <@InfoServ> USERS: Bianca!bianca@194.9.173.107 (B8E4F618.1A90EC3.2BEE926.IP) (Bianca) connected to the network 
[13:11:00] <~X>  !gline off

1 problem here is send msg and for 3 connection from my client i just tested
need after the 10 nick connect to send that msg

Code: Select all

[13:28:54] <~X> !gline on
[13:28:54] <@InfoServ> USERS: test1!aLi@48-89-46.adsl.cyta.gr (Test-7A63CC42.adsl.cyta.gr) (hello) [48.103.89.46] connected to the network 
[13:28:55] <@InfoServ> USERS: test2!aLi@48-89-46.adsl.cyta.gr (Test-7A63CC42.adsl.cyta.gr) (hello) [48.103.89.46] connected to the network 
[13:28:58] <@InfoServ> USERS: test3!aLi@48-89-46.adsl.cyta.gr (Test-7A63CC42.adsl.cyta.gr) (hello) [48.103.89.46] connected to the network 
Online
User avatar
CrazyCat
Revered One
Posts: 1304
Joined: Sun Jan 13, 2002 8:00 pm
Location: France
Contact:

Re: hi

Post by CrazyCat »

Gulio wrote:is a problem this notice ?

Line 17: NOTICE: Found constant "::mhrp(nicks)" which is also a variable.

Code: Select all

utimer $seconds [list lreplace ::mhrp(nicks) [lsearch ::mhrp(nicks) $nick] [lsearch ::mhrp(nicks) $nick]]
As said, I didn't test and made code on the fly.
Without tcl error:

Code: Select all

set mhrp(flood) 10:30
set mhrp(nicks) {}
set mhrp(on) 0

set commChan "#services"

bind raw - NOTICE massconnectflood
proc massconnectflood {frm key text} {
	if { $::mhrp(on) == 1 } { return }
	if {[string match *!*@* $frm] || ![string match -nocase "*client connecting*" $text]} { return }
	regexp {:\ ([^ ]+)\s\(([^@]+)@([^\)])+\)\s\[([^\]]+)} $text - nick ident host ip
	set target [split $::mhrp(flood) :]
	set max [lindex $target 0]
	set seconds [lindex $target 1]
	lappend ::mhrp(nicks) $nick
	# we append $mhrp(nicks) with the new connection
	utimer $seconds [list lreplace $::mhrp(nicks) [lsearch $::mhrp(nicks) $nick] [lsearch $::mhrp(nicks) $nick]]
	# we will remove this entry in $seconds (30)
	if {[llength $::mhrp(nicks)] >= $max} {
		# comparing size of mhrp(nicks) and max
		puthelp "PRIVMSG $::commChan :!gline on"
		set ::mhrp(on) 1
		timer 10 [list massconnectunflood]
	}
}

proc massconnectunflood {} {
	putserv "PRIVMSG $::commChan : !gline off"
	set ::mhrp(on) 0
}
I corrected the check, I used $target when it needs $max
G
Gulio
Halfop
Posts: 74
Joined: Sun Nov 01, 2020 11:53 am

hi

Post by Gulio »

Now the problem is now bot send msg !gline on when is match 2 - 4 connection not 10
is posisble to send msg !gline on after when is count 10 conn inside ?? second if can count properly the 10 conn during ?? seconds

Code: Select all


set mhrp(flood) 10:5
set mhrp(nicks) {}
set mhrp(on) 0

set commChan "#services"

bind raw - NOTICE massconnectflood
proc massconnectflood {frm key text} {
	if { $::mhrp(on) == 1 } { return }
	if {[string match *!*@* $frm] || ![string match -nocase "*client connecting*" $text]} { return }
	regexp {:\ ([^ ]+)\s\(([^@]+)@([^\)])+\)\s\[([^\]]+)} $text - nick ident host ip
	set target [split $::mhrp(flood) :]
	set max [lindex $target 0]
	set seconds [lindex $target 1]
	lappend ::mhrp(nicks) $nick
	# we append $mhrp(nicks) with the new connection
	utimer $seconds [list lreplace $::mhrp(nicks) [lsearch $::mhrp(nicks) $nick] [lsearch $::mhrp(nicks) $nick]]
	# we will remove this entry in $seconds (5)
	if {[llength $::mhrp(nicks)] >= $target} {
		# comparing size of mhrp(nicks) and target
		puthelp "PRIVMSG $::commChan :!gline on"
		set ::mhrp(on) 1
		timer 10 [list massconnectunflood]
	}
}

proc massconnectunflood {} {
	putserv "PRIVMSG $::commChan : !gline off"
	set ::mhrp(on) 0
}

Like this way to send msg

Code: Select all


[15:19:26] <@InfoServ> USERS: Tim!tim@192.111.139.165 (32F07FFA.6BCFB625.C64C234B.IP) (Tim) connected to the network 
[15:19:27] <@InfoServ> USERS: Daphene!daphene@72.221.164.34 (715394D6.28271C50.C0D4321D.IP) (Daphene) connected to the network 
[15:19:27] <@InfoServ> USERS: Anny!anny@98.188.47.150 (BE059E5C.6EC7BCE1.4EDF4AE9.IP) (Anny) connected to the network 
[15:19:27] <@InfoServ> USERS: Nonnah!nonnah@174.75.211.222 (13CFE653.EE5CFFC7.B83C2445.IP) (Nonnah) connected to the network
[15:19:27] <@InfoServ> USERS: Terrie!terrie@184.181.217.204 (3CB0D412.B908AD8E.61D77C1C.IP) (Terrie) connected to the network
[15:19:28] <@InfoServ> USERS: Aurel!aurel@72.221.196.145 (5A95481C.1159A157.C0D4321D.IP) (Aurel) connected to the network
[15:19:28] <@InfoServ> USERS: Lorelle!lorelle@70.166.167.36 (69A377EE.4D4B93C6.9A1EF8E8.IP) (Lorelle) connected to the network
[15:19:28] <@InfoServ> USERS: Karlyn!karlyn@192.111.137.35 (E020523E.ACDA578F.C64C234B.IP) (Karlyn) connected to the network
[15:19:28] <@InfoServ> USERS: Julianne!julianne@98.185.94.76 (EE5C3F4.A9D4D4FB.3EDCEB4C.IP) (Julianne) connected to the network
[15:19:29] <@InfoServ> USERS: Ellissa!ellissa@174.64.199.82 (565AA083.D59F746E.98C1054.IP) (Ellissa) connected to the network
[15:19:29] <~X> !gline on

Post Reply