on *:input:*: {
if ( ( $left($1,1) != / ) || ( $1 == /me ) ) {
;
; Quick Input check, if under 400 characters, don't bother
var %textlen = $len($1-)
;
if (%textlen > 400) {
;
var %pos = 1
var %text = $mid($1-, %pos, 400)
var %firsttime = 1
;
while ( %text != $null ) {
;
; Try to cut at the last word but if the last word is too long
; then just crop in the middle and be done with it.
;
if ( $len($deltok(%text, -1, 32)) < 370 ) {
%text = $left(%text, 370)
inc %pos 370
}
else {
%text = $deltok(%text,-1,32)
inc %pos $len(%text)
inc %pos
}
;
; Store the outgoing text, and figure if this is the last
; batch of text we're sending, to see if we need to end it.
;
var %outtext = %text
%text = $mid($1-, %pos, 400)
;
; If this is the first batch of text, figure on what to do
;
if (%firsttime == 1) {
if ($gettok(%outtext, 1, 32) == /me) {
; This is a me command, treat it as such
%outtext
}
else {
; Regular plain text being sent.
say %outtext
}
;
%firsttime = 0;
}
else {
;
; Not the first, we're in the middle or end now.
;
if (%text != $null) {
; This is only a fragment of a statement.
say %outtext
}
else {
if (%textlen <= 945) {
; If this is is it, mark the end flag
say %outtext
}
else {
; Input is empty, but the user may not be done.
say %outtext
}
}
}
}
;
; Prevent regular output from being sent to the server
;
halt
}
}
}