IrcBridge
IRC bridge for Spring lobby
What is it and how does it work ?
This Spring IRC bridge is a Perl program that translates IRC commands into Spring lobby commands. It acts like a proxy for your lobby connection, allowing you to use a standard IRC client to connect to Spring lobby server. However, don't expect to mask your IP address and be anonymous this way, as the client IP is still forwarded to Spring lobby server by the IRC bridge as "local" IP in Spring lobby protocol.
How to use it ?
Configure your IRC client as follows:
- server: springrts.game-host.org
- port: 6667
- nickname: login of a valid Spring lobby account (not connected to Spring lobby server currently)
- password: password of the Spring lobby account
Then you can use the bridge like any other IRC server (list channels, join channels, send private messages...).
Is it an official Spring bridge ? Can't this be used to steal passwords ?
This is NOT an official Spring bridge, and indeed with some modifications this bridge COULD be used to steal passwords of users connecting to it. Of course, as IRC bridge developer and administrator, I know this won't happen because I'm not interested at all in stealing Spring passwords or things like that, but I can't prove it. So all I can say is if you don't trust it, don't use it (or create an alternate Spring lobby account just to use the IRC bridge).
How to get the full player list ? How to know who is online ?
Usually, in Spring lobby clients, there is a "local" tab which contains all online players so that you know who is online. You can have the same behaviour with IRC bridge by joining the special "&local" channel. This channel is actually a fake channel which contains all online clients. Also, if you try to send a private message to a client who isn't online, you will be warned by the IRC bridge that noone received your message (like with normal IRC servers).
Can I join battles ?
Yes, the Spring IRC bridge handles battles as special channels. These battle channels are prefixed by '&' instead of '#', and they are named according to their battle ID (numbers used internally by Spring lobby servers and clients).
Here are some ways to join battles easily using IRC bridge:
- you can use the IRC command "LIST" to list all channels. The battles will appear in this list, with various colored information as topic (status, number of players/specs, modname, mapname, description etc.)
- you can use the &<playerName> alias to refer to the battle in which <playerName> is. For example, sending the IRC command "JOIN &bibim" will join the battle in which player "bibim" is currently
- you can use the IRC command "WHOIS" on a player to check in which battle he is
When you join a battle, you will appear as an unsynced spectator. That way, players know you don't want to play and you won't be able to join the game when it starts.
What do IRC user prefixes "!.@%+" mean in Spring world ?
In IRC world, channel user modes are used to indicate characteristics of users in a channel. These user modes are shown as nickname prefixes in user lists. Here are the nickname prefixes used by Spring IRC bridge and the corresponding user modes:
For standard channels:
- ! Admin bot
- @ Operator/admin
- % Bot
- + In-game user
For battles:
- ! Admin bot
- . Host
- @ Operator/admin
- % Bot
- + Player (non-spectator)
What do IRC masks mean in Spring world ?
In IRC world, user masks are used to identify clients. Standard format is "<nick>!<ident>@<host>", where <nick> is the nickname of the client (as seen on screen during chat), <ident> is the username (as provided by the client), and <host> is the actual hostname or IP address of the client.
When using Spring IRC bridge, <ident> is replaced by "<countryCode>_<cpuSpeed>" where <countryCode> is the country code on 2 letters, and <cpuSpeed> is the CPU speed provided by the client. And <host> is replaced by "<accountId>.taspringmaster.clan-sy.com", where <accountId> is the account identifier (which doesn't change when users renames).
That way, IRC client functionnalities which rely on IRC user masks (ignore, highlights etc.) still work reliably.
How to get more Spring-specific information about users ? (ranks, status etc.)
You can use the standard IRC command "WHOIS" to get detailed information about any user. The rank, in-game status, and current battle if any are shown.
How to send raw commands to Spring lobby server ?
If you try to send raw commands directly with your IRC client, the raw command will be interpreted by the IRC bridge itself and won't be forwarded to Spring lobby server. To send raw commands to Spring lobby server through IRC bridge, you have to join the special channel "&local" and simply say the command as a chat message here. The "&local" channel is just a fake channel, and noone will see what is entered here. Messages are simply forwarded to Spring lobby server without any modification.
How to filter annoying user mode changes ?
In standard channels, the +v/-v user mode changes corresponding to in-game/out-of-game Spring status changes can be annoying because there can be a lot of them at the same time, and they may generate messages at client side. Usually you can filter these messages in your IRC client. But you can also choose to filter them at IRC bridge level, by disabling your "s" (STATUS_CHANGES) user flag. To do so you can send the following standard IRC command: "MODE <nickname> -s" (user modes are persistent at IRC bridge level, so you don't have to send it every time you reconnect).
Why do I have french flag when using IRC bridge ?
The Spring lobby server uses the IP address of the clients to guess their country. However, when connecting to Spring lobby server through IRC bridge, the IP address seen by Spring lobby server is the IRC bridge one (even if the IRC bridge forward the real client IP address). The IRC bridge is located in France so that's why all IRC bridge users have french flag.