From 8d232e930405760d09cb6ada1f53f67be46f680e Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Thu, 18 Jun 2015 18:34:55 +0100 Subject: [PATCH] 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 caed2c734c..442008d806 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 8006652139..05a3430b7f 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 6119ab7cfd..d6dc496578 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