Update:
I noticed that I was still getting blank lines (despite a gagging trigger for the pattern "^$").
Most often, the blank line appears just before a message that would be accompanied by a Comm.Channel.Text GMCP message.
Example of output with the issue:
Quote:
5500h,4000m,24600e,18000w,exkdb=,nonea,Ii,Gv,00:18:31.21s,t,T,0R,531x-
Truax says in a soft-spoken voice, "Back to ELeusis we go!"
5500h,4000m,24600e,18000w,exkdb=,nonea,Ii,Gv,00:18:31.66s,t,T,0R,531x-
Example of output without the issue:
Quote:
5500h,4000m,24600e,18000w,exkdb=,nonea,Oi,Gv,00:26:25.71s,t,T,0R,531x-
Aidun says in a baritone voice, "I'll go."
5500h,4000m,24600e,18000w,exkdb=,nonea,Oi,Gv,00:26:25.77s,t,T,0R,531x-
Debugging the issue by deleting triggers and removing plugins, I traced the problem back to this plugin, specifically to Execute() again.
Observations:
- The Execute() call is inside OnPluginLineReceived()
- The actual content of the Execute doesn't seem to matter. Execute("gag "), where the alias it corresponds to is:
<aliases>
<alias
match="^gag (.*)$"
enabled="y"
regexp="y"
send_to="12"
omit_from_output="y"
keep_evaluating="y"
sequence="100"
>
<send>gagged = "%0"</send>
</alias>
</aliases>
makes the blank line show up reliably as much as anything else.
- The blank line does not show up if the Execute() call is commented out altogether
- Comm.Channel.Text is unusual in that it is received before the line it corresponds to, and in that it contains ANSI control sequences, e.g.
"Comm.Channel.Text={ "channel": "says", "talker": "Truax", "text": "\u001b[0;1;36mTruax smiles and says in a soft-spoken voice, \"Come gather inside a bit further. We can sit and talk a spell.\"\u001b[0;37m" }"
- Adding a wait of 0 seconds before firing Execute removes the blank line
As far as I can tell, calling an Execute after a line has been completely received (but before it has a chance to be processed by the World) is causing this issue. Is it intended behaviour? |