From a60b91fd1bfb2a9ea2e8067f69e260f4509191f4 Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Wed, 17 Jun 2015 10:00:35 +0100 Subject: [PATCH 1/2] Adds a new configuration value, SERVERURL, for the IRC bot to use if set --- code/controllers/configuration.dm | 4 ++++ code/modules/ext_scripts/irc.dm | 2 +- config/example/config.txt | 24 ++++++++++++++---------- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index caed2c734c1..166582a227d 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -86,6 +86,7 @@ var/guests_allowed = 1 var/debugparanoid = 0 + var/serverurl var/server var/banappeals var/wikiurl @@ -365,6 +366,9 @@ if ("hostedby") config.hostedby = value + if ("serverurl") + config.serverurl = value + if ("server") config.server = value diff --git a/code/modules/ext_scripts/irc.dm b/code/modules/ext_scripts/irc.dm index 8006652139e..aa8f9f3a7fc 100644 --- a/code/modules/ext_scripts/irc.dm +++ b/code/modules/ext_scripts/irc.dm @@ -26,6 +26,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 6119ab7cfd1..f38e66f46fd 100644 --- a/config/example/config.txt +++ b/config/example/config.txt @@ -73,12 +73,12 @@ LOG_PDA ## disconnect players who did nothing during 10 minutes # KICK_INACTIVE -## Use Mentors instead of Moderators. Mentors are designed with the idea that -###they help in pushing new people to be better at roleplay. If you uncomment -###this it will reduce the rights that your mods have. -#MENTORS - - +## Use Mentors instead of Moderators. Mentors are designed with the idea that +###they help in pushing new people to be better at roleplay. If you uncomment +###this it will reduce the rights that your mods have. +#MENTORS + + ## probablities for game modes chosen in "secret" and "random" modes ## ## default probablity is 1, increase to make that mode more likely to be picked @@ -100,9 +100,9 @@ TRAITOR_SCALING ## if objectives are disabled #OBJECTIVES_DISABLED -## make ERT's be only called by admins -#ERT_ADMIN_ONLY - +## make ERT's be only called by admins +#ERT_ADMIN_ONLY + ## If security is prohibited from being most antagonists #PROTECT_ROLES_FROM_ANTAGONIST @@ -171,6 +171,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 @@ -265,7 +269,7 @@ REQ_CULT_GHOSTWRITER 6 CHARACTER_SLOTS 10 ## Uncomment to use overmap system for zlevel travel -#USE_OVERMAP +#USE_OVERMAP ## Defines which Z-levels the station exists on. STATION_LEVELS 1 From 8d232e930405760d09cb6ada1f53f67be46f680e Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Thu, 18 Jun 2015 18:34:55 +0100 Subject: [PATCH 2/2] Adds support for bots which use world.Export() for server-to-bot communication --- code/controllers/configuration.dm | 4 ++++ code/modules/ext_scripts/irc.dm | 25 ++++++++++++++----------- config/example/config.txt | 23 +++++++++++++---------- 3 files changed, 31 insertions(+), 21 deletions(-) diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index caed2c734c1..442008d8067 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -153,6 +153,7 @@ 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 @@ -479,6 +480,9 @@ 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..05a3430b7fe 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) diff --git a/config/example/config.txt b/config/example/config.txt index 6119ab7cfd1..d6dc496578a 100644 --- a/config/example/config.txt +++ b/config/example/config.txt @@ -73,12 +73,12 @@ LOG_PDA ## disconnect players who did nothing during 10 minutes # KICK_INACTIVE -## Use Mentors instead of Moderators. Mentors are designed with the idea that -###they help in pushing new people to be better at roleplay. If you uncomment -###this it will reduce the rights that your mods have. -#MENTORS - - +## Use Mentors instead of Moderators. Mentors are designed with the idea that +###they help in pushing new people to be better at roleplay. If you uncomment +###this it will reduce the rights that your mods have. +#MENTORS + + ## probablities for game modes chosen in "secret" and "random" modes ## ## default probablity is 1, increase to make that mode more likely to be picked @@ -100,9 +100,9 @@ TRAITOR_SCALING ## if objectives are disabled #OBJECTIVES_DISABLED -## make ERT's be only called by admins -#ERT_ADMIN_ONLY - +## make ERT's be only called by admins +#ERT_ADMIN_ONLY + ## If security is prohibited from being most antagonists #PROTECT_ROLES_FROM_ANTAGONIST @@ -238,6 +238,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 @@ -265,7 +268,7 @@ REQ_CULT_GHOSTWRITER 6 CHARACTER_SLOTS 10 ## Uncomment to use overmap system for zlevel travel -#USE_OVERMAP +#USE_OVERMAP ## Defines which Z-levels the station exists on. STATION_LEVELS 1