I've had this problem pop up before, but I could never link it to anything in particular. The problem is that world.Send commands seem to sometimes "breed", meaning that a single call to world.Send in a script results in more than one call seemingly happening - everything gets sent twice in a row. Now I suspect that it has something to do with an error that I seem to get every time before that starts happening.
I connect, send some commands from OnWorldConnect routine, some of them go through, and then the connection is dropped with a "Cannont decompress distance code from MUD" error message. I re-connect, the same thing happens. Finally, I realize that it must be due to one of my plugins, uninstall the plugin, and connect again. But now, after a portion of the commands in my OnWorldConnect function go through normally, the remaining two commands are repeated three times each. My suspicion is that 3 = 2 failed connections + the last successful one.
The cause of the connection error, I think, was this function in one of my plugins:
And more exactly the world.Tell, I believe.
I connect, send some commands from OnWorldConnect routine, some of them go through, and then the connection is dropped with a "Cannont decompress distance code from MUD" error message. I re-connect, the same thing happens. Finally, I realize that it must be due to one of my plugins, uninstall the plugin, and connect again. But now, after a portion of the commands in my OnWorldConnect function go through normally, the remaining two commands are repeated three times each. My suspicion is that 3 = 2 failed connections + the last successful one.
The cause of the connection error, I think, was this function in one of my plugins:
def OnPluginSend(strText):
world.Tell(strText)
if freeze:
if strText.lower() in ['nw','ne','n','north','se','sw','s','south',
'e','w','east','west','u','p','up','down',
'i','o','in','out']:
return False
else:
return True
else:
return True
And more exactly the world.Tell, I believe.