As most of you have probably noticed by now, there's an annoying bug in MTA's remote admin protocol that prevents the whole map list from being sent to MTA:mA, resulting in so-called 'lost maps'. This is mainly because MTA uses the UDP protocol and packets are getting lost, but I found out that with a lot of maps (more than 500 or so), MTA just stops sending mapnames at one point, even on a local connection, so it wouldn't surprise me that this is a bug in the MTA server.
I got so annoyed by this that I decided to make a workaround, completely unrelated to the remote admin protocol, that doesn't use any map ID's, but is only based on using the mapnames themselves. This workaround turned out to be 2 scripts. The first one is a Ruby script that is made to run alongside the main MTA server. This script will start its own TCP server and will watch the server's logfile for new map started-messages. When it sees such a new line has been added to the logfile, it will notify all clients connected to the TCP server of the mapchange. I chose Ruby because it's a very simple yet powerful scripting language and because it's cross-platform.
The 2nd script is a mIRC script and acts as an add-on for MTA:mA. It will connect to the TCP server started by the Ruby script when MTA:mA has connected to the main MTA server. It will also fire a new mIRC event when a map has been started and allows an identifier to be used for getting the current mapname. You can use this event and/or identifier in other MTA:mA scripts to prevent getting any more lost (unknown) maps. More information about the new events and identifiers can be found in the supplied readme file.
I had to give this workaround a name, so I called it MTAServer+ (I know, not very original ). It's a very effective method for completely eliminating the lost maps-problem, especially on servers with a lot of maps. It's been running for almost 2 months now on littlewhitey's MTA server without any problems. Feel free to give it a try. Any comments/suggestions are welcome.
Download MTAServer+ 1.0
Greets Cygnus