diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index c7a12321eb4..5c783e47cf6 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -91,6 +91,7 @@ var/list/gamemode_cache = list() var/guests_allowed = 1 var/debugparanoid = 0 + var/serverurl var/server var/banappeals var/wikiurl @@ -163,6 +164,7 @@ var/list/gamemode_cache = list() var/use_irc_bot = 0 var/irc_bot_host = "" + var/irc_bot_export = 0 // whether the IRC bot in use is a Bot32 (or similar) instance; Bot32 uses world.Export() instead of nudge.py/libnudge var/main_irc = "" var/admin_irc = "" var/python_path = "" //Path to the python executable. Defaults to "python" on windows and "/usr/bin/env python2" on unix @@ -384,6 +386,9 @@ var/list/gamemode_cache = list() if ("hostedby") config.hostedby = value + if ("serverurl") + config.serverurl = value + if ("server") config.server = value @@ -499,6 +504,9 @@ var/list/gamemode_cache = list() if("use_irc_bot") use_irc_bot = 1 + if("irc_bot_export") + irc_bot_export = 1 + if("ticklag") Ticklag = text2num(value) diff --git a/code/modules/ext_scripts/irc.dm b/code/modules/ext_scripts/irc.dm index 8006652139e..19df6917578 100644 --- a/code/modules/ext_scripts/irc.dm +++ b/code/modules/ext_scripts/irc.dm @@ -1,17 +1,20 @@ /proc/send2irc(var/channel, var/msg) if(config.use_irc_bot && config.irc_bot_host) - if(config.use_lib_nudge) - var/nudge_lib - if(world.system_type == MS_WINDOWS) - nudge_lib = "lib\\nudge.dll" - else - nudge_lib = "lib/nudge.so" - - spawn(0) - call(nudge_lib, "nudge")("[config.comms_password]","[config.irc_bot_host]","[channel]","[msg]") + if(config.irc_bot_export) + world.Export("http://[config.irc_bot_host]:45678?[list2params(list(pwd=config.comms_password, chan=channel, mesg=msg))]") else - spawn(0) - ext_python("ircbot_message.py", "[config.comms_password] [config.irc_bot_host] [channel] [msg]") + if(config.use_lib_nudge) + var/nudge_lib + if(world.system_type == MS_WINDOWS) + nudge_lib = "lib\\nudge.dll" + else + nudge_lib = "lib/nudge.so" + + spawn(0) + call(nudge_lib, "nudge")("[config.comms_password]","[config.irc_bot_host]","[channel]","[msg]") + else + spawn(0) + ext_python("ircbot_message.py", "[config.comms_password] [config.irc_bot_host] [channel] [msg]") return /proc/send2mainirc(var/msg) @@ -26,6 +29,6 @@ /hook/startup/proc/ircNotify() - send2mainirc("Server starting up on [config.server? "byond://[config.server]" : "byond://[world.address]:[world.port]"]") + send2mainirc("Server starting up on byond://[config.serverurl ? config.serverurl : (config.server ? config.server : "[world.address]:[world.port]")]") return 1 diff --git a/config/example/config.txt b/config/example/config.txt index 7648a51a889..41b70c11934 100644 --- a/config/example/config.txt +++ b/config/example/config.txt @@ -174,6 +174,10 @@ GUEST_BAN ## set a server location for world reboot. Don't include the byond://, just give the address and port. #SERVER server.net:port +## set a server URL for the IRC bot to use; like SERVER, don't include the byond:// +## Unlike SERVER, this one shouldn't break auto-reconnect +#SERVERURL server.net:port + ## forum address # FORUMURL http://example.com @@ -241,6 +245,9 @@ USEALIENWHITELIST ## Uncomment to enable sending data to the IRC bot. #USE_IRC_BOT +## Uncomment if the IRC bot requires using world.Export() instead of nudge.py/libnudge +#IRC_BOT_EXPORT + ## Host where the IRC bot is hosted. Port 45678 needs to be open. #IRC_BOT_HOST localhost