From 7c419fb54279acf2617918a32c3219c1666c1b75 Mon Sep 17 00:00:00 2001 From: Phoenix404 <41524861+Phoenix4O4@users.noreply.github.com> Date: Wed, 11 Dec 2024 03:13:45 +0300 Subject: [PATCH] Revert "[PORT] Replace old IPIntel with IPIntel from TG (#1430)" This reverts commit 7b41902441f1048821e6a6a23b34b2bf71ca3e91. --- SQL/bluemoon_schema.sql | 31 -- code/_BLUEMOONCODE/_HELPERS/time.dm | 3 - code/__BLUEMOONCODE/_DEFINES/ipintel.dm | 15 - .../configuration/entries/connections.dm | 2 - code/controllers/subsystem/ipintel.dm | 3 +- code/modules/admin/ipintel.dm | 2 - code/modules/client/client_procs.dm | 7 +- code/modules/client/client_vpn_detect.dm | 2 - config/bluemoon/ipintel.txt | 22 -- config/config.txt | 3 +- .../entries/bluemoon_config_entries.dm | 35 -- .../code/controllers/subsystem/ipintel.dm | 301 ------------------ .../code/modules/client/client_procs.dm | 2 - tgstation.dme | 3 - 14 files changed, 4 insertions(+), 427 deletions(-) delete mode 100644 code/_BLUEMOONCODE/_HELPERS/time.dm delete mode 100644 code/__BLUEMOONCODE/_DEFINES/ipintel.dm delete mode 100644 config/bluemoon/ipintel.txt delete mode 100644 modular_bluemoon/phoenix404/code/controllers/subsystem/ipintel.dm diff --git a/SQL/bluemoon_schema.sql b/SQL/bluemoon_schema.sql index e7433d5855d5..4eb4ac4f68d1 100644 --- a/SQL/bluemoon_schema.sql +++ b/SQL/bluemoon_schema.sql @@ -80,34 +80,3 @@ DELIMITER ; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - - --- --- Table structure for table `ipintel` --- - -DROP TABLE IF EXISTS `ipintel`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `ipintel` ( - `ip` int(10) unsigned NOT NULL, - `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `intel` double NOT NULL DEFAULT '0', - PRIMARY KEY (`ip`), - KEY `idx_ipintel` (`ip`,`intel`,`date`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `ipintel_whitelist` --- - -DROP TABLE IF EXISTS `ipintel_whitelist`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `ipintel_whitelist` ( - `ckey` varchar(32) NOT NULL, - `admin_ckey` varchar(32) NOT NULL, - PRIMARY KEY (`ckey`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; -/*!40101 SET character_set_client = @saved_cs_client */; diff --git a/code/_BLUEMOONCODE/_HELPERS/time.dm b/code/_BLUEMOONCODE/_HELPERS/time.dm deleted file mode 100644 index a32763d3681f..000000000000 --- a/code/_BLUEMOONCODE/_HELPERS/time.dm +++ /dev/null @@ -1,3 +0,0 @@ -//returns timestamp in a sql and a not-quite-compliant ISO 8601 friendly format -/proc/ISOtime(timevar) - return time2text(timevar || world.timeofday, "YYYY-MM-DD hh:mm:ss") diff --git a/code/__BLUEMOONCODE/_DEFINES/ipintel.dm b/code/__BLUEMOONCODE/_DEFINES/ipintel.dm deleted file mode 100644 index 9fbc14ae40db..000000000000 --- a/code/__BLUEMOONCODE/_DEFINES/ipintel.dm +++ /dev/null @@ -1,15 +0,0 @@ -#define IPINTEL_RATE_LIMIT_MINUTE "minute" -#define IPINTEL_RATE_LIMIT_DAY "day" - -/// An internal error occurred and the query cannot be processed -#define IPINTEL_UNKNOWN_INTERNAL_ERROR "unknown_internal_error" -/// An error occurred with the query and the result is unknown -#define IPINTEL_UNKNOWN_QUERY_ERROR "unknown_query_error" -/// Cannot query as we are rate limited for the rest of the day -#define IPINTEL_RATE_LIMITED_DAY "rate_limited_day" -/// Cannot query as we are rate limited for the rest of the minute -#define IPINTEL_RATE_LIMITED_MINUTE "rate_limited_minute" -/// The IP address is a VPN or bad IP -#define IPINTEL_BAD_IP "bad_ip" -/// The IP address is not a VPN or bad IP -#define IPINTEL_GOOD_IP "good_ip" diff --git a/code/controllers/configuration/entries/connections.dm b/code/controllers/configuration/entries/connections.dm index 91d1a6fc97f1..afbe94840ade 100644 --- a/code/controllers/configuration/entries/connections.dm +++ b/code/controllers/configuration/entries/connections.dm @@ -37,7 +37,6 @@ /datum/config_entry/flag/check_randomizer -/* BLUEMOON EDIT:START IPINTEL FROM TG /datum/config_entry/string/ipintel_email /datum/config_entry/string/ipintel_email/ValidateAndSet(str_val) @@ -59,7 +58,6 @@ /datum/config_entry/string/ipintel_domain default = "check.getipintel.net" -*/ // BLUEMOON EDIT:END IPINTEL FROM TG /datum/config_entry/flag/aggressive_changelog diff --git a/code/controllers/subsystem/ipintel.dm b/code/controllers/subsystem/ipintel.dm index 6aa4464fecc8..fb0ddead09a5 100644 --- a/code/controllers/subsystem/ipintel.dm +++ b/code/controllers/subsystem/ipintel.dm @@ -1,4 +1,3 @@ -/* // BLUEMOON EDIT:START IPINTEL FROM TG SUBSYSTEM_DEF(ipintel) name = "XKeyScore" init_order = INIT_ORDER_XKEYSCORE @@ -12,4 +11,4 @@ SUBSYSTEM_DEF(ipintel) /datum/controller/subsystem/ipintel/Initialize(timeofday, zlevel) enabled = TRUE . = ..() -*/ // BLUEMOON EDIT:END IPINTEL FROM TG + diff --git a/code/modules/admin/ipintel.dm b/code/modules/admin/ipintel.dm index ac2d39b98e2a..71c9a11acd53 100644 --- a/code/modules/admin/ipintel.dm +++ b/code/modules/admin/ipintel.dm @@ -1,4 +1,3 @@ -/* // BLUEMOON EDIT:START IPINTEL FROM TG /datum/ipintel var/ip var/intel = 0 @@ -135,4 +134,3 @@ /proc/log_ipintel(text) log_game("IPINTEL: [text]") debug_admins("IPINTEL: [text]") -*/ // BLUEMOON EDIT:END IPINTEL FROM TG diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index ef0edc1a6323..cc3f8b252403 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -607,14 +607,13 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( qdel(query_client_in_db) return - var/client_is_in_db = query_client_in_db.NextRow() // BLUEMOON EDIT: IPINTEL FROM TG //If we aren't an admin, and the flag is set if(CONFIG_GET(flag/panic_bunker) && !holder && !GLOB.deadmins[ckey] && !(ckey in GLOB.bunker_passthrough)) var/living_recs = CONFIG_GET(number/panic_bunker_living) - //var/vpn_living_recs = CONFIG_GET(number/panic_bunker_living_vpn) + var/vpn_living_recs = CONFIG_GET(number/panic_bunker_living_vpn) //Relies on pref existing, but this proc is only called after that occurs, so we're fine. var/minutes = get_exp_living(pure_numeric = TRUE) - if((living_recs == 0 && !client_is_in_db) || living_recs >= minutes) // BLUEMOON EDIT: IPINTEL FROM TG //if((minutes <= living_recs) || (IsVPN() && (minutes < vpn_living_recs))) + if((minutes <= living_recs) || (IsVPN() && (minutes < vpn_living_recs))) var/reject_message = "Failed Login: [key] - Account attempting to connect during panic bunker, but they do not have the required living time [minutes]/[living_recs]" log_access(reject_message) message_admins("[reject_message]") @@ -873,7 +872,6 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( create_message("note", key, system_ckey, message, null, null, 0, 0, null, 0, 0) -/*// BLUEMOON EDIT:START IPINTEL FROM TG /client/proc/check_ip_intel() set waitfor = 0 //we sleep when getting the intel, no need to hold up the client connection while we sleep if (CONFIG_GET(string/ipintel_email)) @@ -881,7 +879,6 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( if (res.intel >= CONFIG_GET(number/ipintel_rating_bad)) message_admins("Proxy Detection: [key_name_admin(src)] IP intel rated [res.intel*100]% likely to be a Proxy/VPN.") ip_intel = res.intel -*/ // BLUEMOON EDIT:END IPINTEL FROM TG /client/Click(atom/object, atom/location, control, params, ignore_spam = FALSE, extra_info) if(last_click > world.time - world.tick_lag) diff --git a/code/modules/client/client_vpn_detect.dm b/code/modules/client/client_vpn_detect.dm index 637110ae7bc0..bd35a65ef274 100644 --- a/code/modules/client/client_vpn_detect.dm +++ b/code/modules/client/client_vpn_detect.dm @@ -1,5 +1,3 @@ -/* BLUEMOON EDIT:START IPINTEL FROM TG /client/proc/IsVPN() var/datum/ipintel/res = get_ip_intel(address) return res.intel >= CONFIG_GET(number/ipintel_rating_bad) -*/ //BLUEMOON EDIT:END IPINTEL FROM TG diff --git a/config/bluemoon/ipintel.txt b/config/bluemoon/ipintel.txt deleted file mode 100644 index 4bd48ad54235..000000000000 --- a/config/bluemoon/ipintel.txt +++ /dev/null @@ -1,22 +0,0 @@ -## IPINTEL: -## This allows you to detect likely proxies by checking ips against getipintel.net -## Rating to warn at: (0.8 is good, 1 is 100% likely to be a spammer/proxy, 0.8 is 80%, etc) anything equal to or higher then this number triggers an admin warning -#IPINTEL_RATING_BAD 0.8 -## Contact email, (required to use the service, leaving blank or default disables IPINTEL) -#IPINTEL_EMAIL ch@nge.me -## Query base, if you pay for more queries this is what you want to change. -#IPINTEL_BASE check.getipintel.net -## Maximum number of queries in a minute -#IPINTEL_MAX_QUERY_MINUTE 15 -## Maximum number of queries in a day -#IPINTEL_MAX_QUERY_DAY 500 -## Whether clients which cannot be checked due to a rate limit will be denied -#IPINTEL_REJECT_RATE_LIMITED -## Whether clients which are flagged as a VPN will be denied -IPINTEL_REJECT_BAD -## Whether clients which cannot be checked due to an error of some form will be denied -#IPINTEL_REJECT_UNKNOWN -## How long to store results in the cache before they must be retrieved again. IN DAYS. -#IPINTEL_CACHE_LENGTH 7 -## How many minutes of living playtime to be automatically exempt from IPIntel. 0 for never. -#IPINTEL_EXEMPT_PLAYTIME_LIVING 0 diff --git a/config/config.txt b/config/config.txt index b6e24eb5079d..f0a4905baccd 100644 --- a/config/config.txt +++ b/config/config.txt @@ -56,6 +56,5 @@ $include splurt/donator.txt $include splurt/autocryo.txt # Bluemoon stuff! -$include entries/bluemoon.txt -$include bluemoon/ipintel.txt +$include bluemoon/bluemoon.txt $include bluemoon/discord.txt diff --git a/modular_bluemoon/phoenix404/code/controllers/configuration/entries/bluemoon_config_entries.dm b/modular_bluemoon/phoenix404/code/controllers/configuration/entries/bluemoon_config_entries.dm index 3894e3cdf788..4f39472d1b55 100644 --- a/modular_bluemoon/phoenix404/code/controllers/configuration/entries/bluemoon_config_entries.dm +++ b/modular_bluemoon/phoenix404/code/controllers/configuration/entries/bluemoon_config_entries.dm @@ -4,38 +4,3 @@ /// Defines whether the server uses the legacy mentor system with mentors.txt or the SQL system. /datum/config_entry/flag/mentor_legacy_system protection = CONFIG_ENTRY_LOCKED - -/datum/config_entry/string/ipintel_base - default = "check.getipintel.net" - -/datum/config_entry/string/ipintel_email - -/datum/config_entry/string/ipintel_email/ValidateAndSet(str_val) - return str_val != "ch@nge.me" && (!length(str_val) || findtext(str_val, "@")) && ..() - -/datum/config_entry/number/ipintel_rating_bad - default = 1 - integer = FALSE - min_val = 0 - max_val = 1 - -/datum/config_entry/flag/ipintel_reject_rate_limited - default = FALSE - -/datum/config_entry/flag/ipintel_reject_bad - default = FALSE - -/datum/config_entry/flag/ipintel_reject_unknown - default = FALSE - -/datum/config_entry/number/ipintel_rate_minute - default = 15 - min_val = 0 - -/datum/config_entry/number/ipintel_cache_length - default = 7 - min_val = 0 - -/datum/config_entry/number/ipintel_exempt_playtime_living - default = 5 - min_val = 0 diff --git a/modular_bluemoon/phoenix404/code/controllers/subsystem/ipintel.dm b/modular_bluemoon/phoenix404/code/controllers/subsystem/ipintel.dm deleted file mode 100644 index 236e781168d0..000000000000 --- a/modular_bluemoon/phoenix404/code/controllers/subsystem/ipintel.dm +++ /dev/null @@ -1,301 +0,0 @@ -SUBSYSTEM_DEF(ipintel) - name = "XKeyScore" - init_order = INIT_ORDER_XKEYSCORE - flags = SS_NO_INIT|SS_NO_FIRE - /// The threshold for probability to be considered a VPN and/or bad IP - var/probability_threshold - - /// Cache for previously queried IP addresses and those stored in the database - var/list/datum/ip_intel/cached_queries = list() - /// The store for rate limiting - var/rate_limit_minute - -/// The ip intel for a given address -/datum/ip_intel - /// If this intel was just queried, the status of the query - var/query_status - var/result - var/address - var/date - -/datum/controller/subsystem/ipintel/OnConfigLoad() - var/list/fail_messages = list() - - var/contact_email = CONFIG_GET(string/ipintel_email) - - if(!length(contact_email)) - fail_messages += "No contact email" - - if(!findtext(contact_email, "@")) - fail_messages += "Invalid contact email" - - if(!length(CONFIG_GET(string/ipintel_base))) - fail_messages += "Invalid query base" - - if (!CONFIG_GET(flag/sql_enabled)) - fail_messages += "The database is not enabled" - - if(length(fail_messages)) - message_admins("IPIntel: Initialization failed check logs!") - WRITE_LOG(GLOB.world_suspicious_login_log, "IPIntel is not enabled because the configs are not valid. [fail_messages]") - -/datum/controller/subsystem/ipintel/stat_entry(msg) - return "[..()] | M: [CONFIG_GET(number/ipintel_rate_minute) - rate_limit_minute]" - - -/datum/controller/subsystem/ipintel/proc/is_enabled() - return length(CONFIG_GET(string/ipintel_email)) && length(CONFIG_GET(string/ipintel_base)) && CONFIG_GET(flag/sql_enabled) - -/datum/controller/subsystem/ipintel/proc/get_address_intel_state(address, probability_override) - if (!is_enabled()) - return IPINTEL_GOOD_IP - var/datum/ip_intel/intel = query_address(address) - if(isnull(intel)) - stack_trace("query_address did not return an ip intel response") - return IPINTEL_UNKNOWN_INTERNAL_ERROR - - if(istext(intel)) - return intel - - if(!(intel.query_status in list("success", "cached"))) - return IPINTEL_UNKNOWN_QUERY_ERROR - var/check_probability = probability_override || CONFIG_GET(number/ipintel_rating_bad) - if(intel.result >= check_probability) - return IPINTEL_BAD_IP - return IPINTEL_GOOD_IP - -/datum/controller/subsystem/ipintel/proc/is_rate_limited() - var/static/minute_key - var/expected_minute_key = floor(REALTIMEOFDAY / 1 MINUTES) - - if(minute_key != expected_minute_key) - minute_key = expected_minute_key - rate_limit_minute = 0 - - if(rate_limit_minute >= CONFIG_GET(number/ipintel_rate_minute)) - return IPINTEL_RATE_LIMITED_MINUTE - return FALSE - -/datum/controller/subsystem/ipintel/proc/query_address(address, allow_cached = TRUE) - if (!is_enabled()) - return - if(allow_cached && fetch_cached_ip_intel(address)) - return cached_queries[address] - var/is_rate_limited = is_rate_limited() - if(is_rate_limited) - return is_rate_limited - rate_limit_minute += 1 - - var/query_base = "https://[CONFIG_GET(string/ipintel_base)]/check.php?ip=" - var/query = "[query_base][address]&contact=[CONFIG_GET(string/ipintel_email)]&flags=b&format=json" - - var/datum/http_request/request = new - request.prepare(RUSTG_HTTP_METHOD_GET, query) - request.execute_blocking() - var/datum/http_response/response = request.into_response() - var/list/data = json_decode(response.body) - // Log the response - WRITE_LOG(GLOB.query_debug_log, "ip check response body [data]") - - var/datum/ip_intel/intel = new - intel.query_status = data["status"] - if(intel.query_status != "success") - return intel - intel.result = data["result"] - if(istext(intel.result)) - intel.result = text2num(intel.result) - intel.date = ISOtime() - intel.address = address - cached_queries[address] = intel - add_intel_to_database(intel) - return intel - -/datum/controller/subsystem/ipintel/proc/add_intel_to_database(datum/ip_intel/intel) - set waitfor = FALSE //no need to make the client connection wait for this step. - if (!SSdbcore.Connect()) - return - var/datum/db_query/query = SSdbcore.NewQuery( - "INSERT INTO [format_table_name("ipintel")] ( \ - ip, \ - intel \ - ) VALUES ( \ - INET_ATON(:address), \ - :result \ - )", list( - "address" = intel.address, - "result" = intel.result, - ) - ) - if(!query.warn_execute()) - qdel(query) - return - qdel(query) - -/datum/controller/subsystem/ipintel/proc/fetch_cached_ip_intel(address) - if (!SSdbcore.Connect()) - return - var/ipintel_cache_length = CONFIG_GET(number/ipintel_cache_length) - var/date_restrictor = "" - var/sql_args = list("address" = address) - if(ipintel_cache_length > 1) - date_restrictor = " AND date > DATE_SUB(NOW(), INTERVAL :ipintel_cache_length DAY)" - sql_args["ipintel_cache_length"] = ipintel_cache_length - var/datum/db_query/query = SSdbcore.NewQuery( - "SELECT * FROM [format_table_name("ipintel")] WHERE ip = INET_ATON(:address)[date_restrictor]", - sql_args - ) - if(!query.warn_execute()) - qdel(query) - return - - - query.NextRow() - var/list/data = query.item - qdel(query) - if(isnull(data)) - return null - - var/datum/ip_intel/intel = new - intel.query_status = "cached" - intel.result = data["intel"] - if(istext(intel.result)) - intel.result = text2num(intel.result) - intel.date = data["date"] - intel.address = address - return TRUE - -/datum/controller/subsystem/ipintel/proc/is_exempt(client/player) - if(player.holder || GLOB.deadmins[player.ckey]) - return TRUE - var/exempt_living_playtime = CONFIG_GET(number/ipintel_exempt_playtime_living) - if(exempt_living_playtime > 0) - var/list/play_records = player.prefs.exp - if (!play_records.len) - player.set_exp_from_db() - play_records = player.prefs.exp - if(length(play_records) && play_records[EXP_TYPE_LIVING] > exempt_living_playtime) - return TRUE - return FALSE - -/datum/controller/subsystem/ipintel/proc/is_whitelisted(ckey) - var/datum/db_query/query = SSdbcore.NewQuery( - "SELECT * FROM [format_table_name("ipintel_whitelist")] WHERE ckey = :ckey", list( - "ckey" = ckey - ) - ) - if(!query.warn_execute()) - qdel(query) - return - query.NextRow() - . = !!query.item // if they have a row, they are whitelisted - qdel(query) - -/client/proc/ipintel_allow(ckey as text) - set category = "Debug" - set name = "Whitelist Player VPN" - set desc = "Allow a player to connect even if they are using a VPN." - - if (!SSipintel.is_enabled()) - to_chat(usr, "The ipintel system is not currently enabled but you can still edit the whitelists") - if(SSipintel.is_whitelisted(ckey)) - to_chat(usr, "Player is already whitelisted.") - return - - var/datum/db_query/query = SSdbcore.NewQuery( - "INSERT INTO [format_table_name("ipintel_whitelist")] ( \ - ckey, \ - admin_ckey \ - ) VALUES ( \ - :ckey, \ - :admin_ckey \ - )", list( - "ckey" = ckey, - "admin_ckey" = usr.ckey, - ) - ) - if(!query.warn_execute()) - qdel(query) - return - - qdel(query) - message_admins("IPINTEL: [key_name_admin(usr)] has whitelisted '[ckey]'") - -/client/proc/ipintel_revoke(ckey as text) - set category = "Debug" - set name = "Revoke Player VPN Whitelist" - set desc = "Revoke a player's VPN whitelist." - - if (!SSipintel.is_enabled()) - to_chat(usr, "The ipintel system is not currently enabled but you can still edit the whitelists") - if(!SSipintel.is_whitelisted(ckey)) - to_chat(usr, "Player is not whitelisted.") - return - var/datum/db_query/query = SSdbcore.NewQuery( - "DELETE FROM [format_table_name("ipintel_whitelist")] WHERE ckey = :ckey", list( - "ckey" = ckey - ) - ) - if(!query.warn_execute()) - qdel(query) - return - - message_admins("IPINTEL: [key_name_admin(usr)] has revoked the VPN whitelist for '[ckey]'") - -/client/proc/check_ip_intel() - if (!SSipintel.is_enabled()) - return - if(SSipintel.is_exempt(src) || SSipintel.is_whitelisted(ckey)) - return - - var/intel_state = SSipintel.get_address_intel_state(address) - var/reject_bad_intel = CONFIG_GET(flag/ipintel_reject_bad) - var/reject_unknown_intel = CONFIG_GET(flag/ipintel_reject_unknown) - var/reject_rate_limited = CONFIG_GET(flag/ipintel_reject_rate_limited) - - var/connection_rejected = FALSE - var/datum/ip_intel/intel = SSipintel.cached_queries[address] - switch(intel_state) - if(IPINTEL_BAD_IP) - log_access("IPINTEL: [ckey] was flagged as a VPN with [intel.result * 100]% likelihood.") - if(reject_bad_intel) - to_chat_immediate(src, span_boldnotice("Your connection has been detected as a VPN.")) - connection_rejected = TRUE - else - message_admins("IPINTEL: [key_name_admin(src)] has been flagged as a VPN with [intel.result * 100]% likelihood.") - - if(IPINTEL_RATE_LIMITED_DAY, IPINTEL_RATE_LIMITED_MINUTE) - log_access("IPINTEL: [ckey] was unable to be checked due to the rate limit.") - if(reject_rate_limited) - to_chat_immediate(src, span_boldnotice("New connections are not being allowed at this time.")) - connection_rejected = TRUE - else - message_admins("IPINTEL: [key_name_admin(src)] was unable to be checked due to rate limiting.") - - if(IPINTEL_UNKNOWN_INTERNAL_ERROR, IPINTEL_UNKNOWN_QUERY_ERROR) - log_access("IPINTEL: [ckey] unable to be checked due to an error.") - if(reject_unknown_intel) - to_chat_immediate(src, span_boldnotice("Your connection cannot be processed at this time.")) - connection_rejected = TRUE - else - message_admins("IPINTEL: [key_name_admin(src)] was unable to be checked due to an error.") - - if(!connection_rejected) - return - - var/list/contact_where = list() - var/forum_url = CONFIG_GET(string/discordurl) - if(forum_url) - contact_where += list("Forums") - var/appeal_url = CONFIG_GET(string/banappeals) - if(appeal_url) - contact_where += list("Ban Appeals") - - var/message_string = "Your connection has been rejected at this time. If you believe this is in error or have any questions please contact an admin" - if(length(contact_where)) - message_string += " at [english_list(contact_where)]" - else - message_string += " somehow." - message_string += "." - - to_chat_immediate(src, span_userdanger(message_string)) - qdel(src) diff --git a/modular_splurt/code/modules/client/client_procs.dm b/modular_splurt/code/modules/client/client_procs.dm index 9966699aaba6..7f82c94449da 100644 --- a/modular_splurt/code/modules/client/client_procs.dm +++ b/modular_splurt/code/modules/client/client_procs.dm @@ -1,4 +1,3 @@ -/* // BLUEMOON EDIT:START IPINTEL FROM TG /client/check_ip_intel() . = ..() if(!(ip_intel != initial(ip_intel) && ip_intel >= CONFIG_GET(number/ipintel_rating_bad))) @@ -21,7 +20,6 @@ log_admin(logg) message_admins(span_adminnotice(logg)) qdel(src) -*/ // BLUEMOON EDIT:END IPINTEL FROM TG /client/proc/toggle_quirk(mob/living/carbon/human/H) if (!istype(H)) diff --git a/tgstation.dme b/tgstation.dme index bfe892538525..965ecc3b13b8 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -23,7 +23,6 @@ #include "code\__BLUEMOONCODE\plug13.dm" #include "code\__BLUEMOONCODE\_DEFINES\bloodsuckers.dm" #include "code\__BLUEMOONCODE\_DEFINES\gamemode.dm" -#include "code\__BLUEMOONCODE\_DEFINES\ipintel.dm" #include "code\__BLUEMOONCODE\_DEFINES\language.dm" #include "code\__BLUEMOONCODE\_DEFINES\mail.dm" #include "code\__BLUEMOONCODE\_DEFINES\melee.dm" @@ -342,7 +341,6 @@ #include "code\__SPLURTCODE\DEFINES\traits.dm" #include "code\__SPLURTCODE\DEFINES\arousal\genitals.dm" #include "code\__SPLURTCODE\DEFINES\dcs\signals.dm" -#include "code\_BLUEMOONCODE\_HELPERS\time.dm" #include "code\_globalvars\admin.dm" #include "code\_globalvars\bitfields.dm" #include "code\_globalvars\configuration.dm" @@ -4547,7 +4545,6 @@ #include "modular_bluemoon\phoenix404\code\_HELPERS\admin.dm" #include "modular_bluemoon\phoenix404\code\_HELPERS\roundend.dm" #include "modular_bluemoon\phoenix404\code\controllers\configuration\entries\bluemoon_config_entries.dm" -#include "modular_bluemoon\phoenix404\code\controllers\subsystem\ipintel.dm" #include "modular_bluemoon\phoenix404\modules\admin\code\player_ranks.dm" #include "modular_bluemoon\phoenix404\modules\mentor\code\mentor.dm" #include "modular_bluemoon\phoenix404\modules\player_ranks\code\player_rank_controller\_player_rank_controller.dm"