SpringIrcBridge
September 19, 2025 ยท View on GitHub
Multithreaded TCP bridge server which translates IRC commands into SpringRTS lobby commands. It acts like a proxy for lobby connections, making it possible to use a standard IRC client to connect to the lobby server.
Components
- SpringIrcBridge.pm: Perl module implementing the protocol translation between an IRC client and the SpringRTS lobby server.
- springIrcBridgeDaemon.pl: SpringRTS IRC bridge daemon. This daemon ensures a process is listening on TCP port 6667, and (re)starts the IRC bridge server if needed.
- springIrcBridgeServer.pl: SpringRTS IRC bridge server. This server listens to IRC connections on ports 6667 and 16667, and spawns IRC bridge threads on new connections.
Dependencies
The SpringIrcBridge application depends on following projects:
Installation
- Copy the dependencies listed above (SimpleLog.pm, SpringLobbyInterface.pm and SpringLobbyProtocol.pm) into same location as SpringIrcBridge files
- If the IRC bridge must point to a custom lobby server (i.e. not "lobby.springrts.com"), edit file "SpringIrcBridge.pm" and adjust the "$springHost" variable declaration accordingly (line 33).
- Run "springIrcBridgeServer.pl", it will listen to IRC connections on ports 6667 and 16667
Administration
The springIrcBridgeServer process handles following POSIX signals:
- SIGTERM: closes server socket, wait for clients to disconnect and then exit
- SIGUSR1: closes server socket, start a new bridge server process and wait for clients connected to current process to disconnect before exiting
The SIGUSR1 signal can be used to reload code without impacting connected users.
If a file named "BROADCAST.txt" is created or modified in current working directory, its content is instantly broadcasted to connected users as IRC notice message(s).
Logs are available in the "log" subdirectory (created automatically if needed)
Usage
Configure your IRC client as follows:
- server: irc.springrts.com (or the address of your own bridge)
- port: 6667 (or 16667)
- 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...).
See the SpringIrcBridge wiki for more information.
Licensing
Please see the file called LICENSE.
Author
Yann Riou yaribzh@gmail.com