diff --git a/code/__HELPERS/_logging.dm b/code/__HELPERS/_logging.dm
index ea6cecfbacd..3c573f644ef 100644
--- a/code/__HELPERS/_logging.dm
+++ b/code/__HELPERS/_logging.dm
@@ -89,6 +89,10 @@
if (config.log_pda)
diary << "\[[time_stamp()]]CHAT: [text]"
+/proc/log_sql(text)
+ if(config.sql_enabled)
+ diary << "\[[time_stamp()]]SQL: [text]"
+
//This replaces world.log so it displays both in DD and the file
/proc/log_world(text)
if(config && config.log_runtimes)
diff --git a/code/__HELPERS/bandetect.dm b/code/__HELPERS/bandetect.dm
index f7887d32615..9a43f303729 100644
--- a/code/__HELPERS/bandetect.dm
+++ b/code/__HELPERS/bandetect.dm
@@ -2,14 +2,13 @@
/client/proc/join_date_check(y,m,d)
- var/DBQuery/query = dbcon.NewQuery("SELECT DATEDIFF(Now(),'[y]-[m]-[d]')")
+ var/DBQuery/query_datediff = dbcon.NewQuery("SELECT DATEDIFF(Now(),'[y]-[m]-[d]')")
- if(!query.Execute())
- log_world("SQL ERROR doing datediff. Error : \[[query.ErrorMsg()]\]\n")
+ if(!query_datediff.Execute())
return FALSE
- if(query.NextRow())
- var/diff = text2num(query.item[1])
+ if(query_datediff.NextRow())
+ var/diff = text2num(query_datediff.item[1])
if(config.use_account_age_for_jobs)
player_age = max(0,diff) //So job code soesn't freak out if they are time traveling.
if(diff < YOUNG)
diff --git a/code/modules/admin/DB_ban/functions.dm b/code/modules/admin/DB_ban/functions.dm
index a5aead43aff..c450ec3d1cc 100644
--- a/code/modules/admin/DB_ban/functions.dm
+++ b/code/modules/admin/DB_ban/functions.dm
@@ -71,10 +71,11 @@
computerid = bancid
ip = banip
- var/DBQuery/query = dbcon.NewQuery("SELECT id FROM [format_table_name("player")] WHERE ckey = '[ckey]'")
- query.Execute()
+ var/DBQuery/query_add_ban_get_id = dbcon.NewQuery("SELECT id FROM [format_table_name("player")] WHERE ckey = '[ckey]'")
+ if(!query_add_ban_get_id.warn_execute())
+ return
var/validckey = 0
- if(query.NextRow())
+ if(query_add_ban_get_id.NextRow())
validckey = 1
if(!validckey)
if(!banned_mob || (banned_mob && !IsGuestKey(banned_mob.key)))
@@ -112,17 +113,19 @@
reason = sanitizeSQL(reason)
if(maxadminbancheck)
- var/DBQuery/adm_query = dbcon.NewQuery("SELECT count(id) AS num FROM [format_table_name("ban")] WHERE (a_ckey = '[a_ckey]') AND (bantype = 'ADMIN_PERMABAN' OR (bantype = 'ADMIN_TEMPBAN' AND expiration_time > Now())) AND isnull(unbanned)")
- adm_query.Execute()
- if(adm_query.NextRow())
- var/adm_bans = text2num(adm_query.item[1])
+ var/DBQuery/query_check_adminban_amt = dbcon.NewQuery("SELECT count(id) AS num FROM [format_table_name("ban")] WHERE (a_ckey = '[a_ckey]') AND (bantype = 'ADMIN_PERMABAN' OR (bantype = 'ADMIN_TEMPBAN' AND expiration_time > Now())) AND isnull(unbanned)")
+ if(!query_check_adminban_amt.warn_execute())
+ return
+ if(query_check_adminban_amt.NextRow())
+ var/adm_bans = text2num(query_check_adminban_amt.item[1])
if(adm_bans >= MAX_ADMIN_BANS_PER_ADMIN)
usr << "You already logged [MAX_ADMIN_BANS_PER_ADMIN] admin ban(s) or more. Do not abuse this function!"
return
var/sql = "INSERT INTO [format_table_name("ban")] (`bantime`,`server_ip`,`server_port`,`bantype`,`reason`,`job`,`duration`,`expiration_time`,`ckey`,`computerid`,`ip`,`a_ckey`,`a_computerid`,`a_ip`,`who`,`adminwho`) VALUES (Now(), INET_ATON('[world.internet_address]'), '[world.port]', '[bantype_str]', '[reason]', '[job]', [(duration)?"[duration]":"0"], Now() + INTERVAL [(duration>0) ? duration : 0] MINUTE, '[ckey]', '[computerid]', INET_ATON('[ip]'), '[a_ckey]', '[a_computerid]', INET_ATON('[a_ip]'), '[who]', '[adminwho]')"
- var/DBQuery/query_insert = dbcon.NewQuery(sql)
- query_insert.Execute()
+ var/DBQuery/query_add_ban = dbcon.NewQuery(sql)
+ if(!query_add_ban.warn_execute())
+ return
usr << "Ban saved to database."
message_admins("[key_name_admin(usr)] has added a [bantype_str] for [ckey] [(job)?"([job])":""] [(duration > 0)?"([duration] minutes)":""] with the reason: \"[reason]\" to the ban database.",1)
@@ -187,10 +190,11 @@
var/ban_id
var/ban_number = 0 //failsafe
- var/DBQuery/query = dbcon.NewQuery(sql)
- query.Execute()
- while(query.NextRow())
- ban_id = query.item[1]
+ var/DBQuery/query_unban_get_id = dbcon.NewQuery(sql)
+ if(!query_unban_get_id.warn_execute())
+ return
+ while(query_unban_get_id.NextRow())
+ ban_id = query_unban_get_id.item[1]
ban_number++;
if(ban_number == 0)
@@ -218,18 +222,19 @@
usr << "Cancelled"
return
- var/DBQuery/query = dbcon.NewQuery("SELECT ckey, duration, reason FROM [format_table_name("ban")] WHERE id = [banid]")
- query.Execute()
+ var/DBQuery/query_edit_ban_get_details = dbcon.NewQuery("SELECT ckey, duration, reason FROM [format_table_name("ban")] WHERE id = [banid]")
+ if(!query_edit_ban_get_details.warn_execute())
+ return
var/eckey = usr.ckey //Editing admin ckey
var/pckey //(banned) Player ckey
var/duration //Old duration
var/reason //Old reason
- if(query.NextRow())
- pckey = query.item[1]
- duration = query.item[2]
- reason = query.item[3]
+ if(query_edit_ban_get_details.NextRow())
+ pckey = query_edit_ban_get_details.item[1]
+ duration = query_edit_ban_get_details.item[2]
+ reason = query_edit_ban_get_details.item[3]
else
usr << "Invalid ban id. Contact the database admin"
return
@@ -246,8 +251,9 @@
usr << "Cancelled"
return
- var/DBQuery/update_query = dbcon.NewQuery("UPDATE [format_table_name("ban")] SET reason = '[value]', edits = CONCAT(edits,'- [eckey] changed ban reason from \\\"[reason]\\\" to \\\"[value]\\\"
') WHERE id = [banid]")
- update_query.Execute()
+ var/DBQuery/query_edit_ban_reason = dbcon.NewQuery("UPDATE [format_table_name("ban")] SET reason = '[value]', edits = CONCAT(edits,'- [eckey] changed ban reason from \\\"[reason]\\\" to \\\"[value]\\\"
') WHERE id = [banid]")
+ if(!query_edit_ban_reason.warn_execute())
+ return
message_admins("[key_name_admin(usr)] has edited a ban for [pckey]'s reason from [reason] to [value]",1)
if("duration")
if(!value)
@@ -256,9 +262,10 @@
usr << "Cancelled"
return
- var/DBQuery/update_query = dbcon.NewQuery("UPDATE [format_table_name("ban")] SET duration = [value], edits = CONCAT(edits,'- [eckey] changed ban duration from [duration] to [value]
'), expiration_time = DATE_ADD(bantime, INTERVAL [value] MINUTE) WHERE id = [banid]")
+ var/DBQuery/query_edit_ban_duration = dbcon.NewQuery("UPDATE [format_table_name("ban")] SET duration = [value], edits = CONCAT(edits,'- [eckey] changed ban duration from [duration] to [value]
'), expiration_time = DATE_ADD(bantime, INTERVAL [value] MINUTE) WHERE id = [banid]")
+ if(!query_edit_ban_duration.warn_execute())
+ return
message_admins("[key_name_admin(usr)] has edited a ban for [pckey]'s duration from [duration] to [value]",1)
- update_query.Execute()
if("unban")
if(alert("Unban [pckey]?", "Unban?", "Yes", "No") == "Yes")
DB_ban_unban_by_id(banid)
@@ -283,10 +290,11 @@
var/ban_number = 0 //failsafe
var/pckey
- var/DBQuery/query = dbcon.NewQuery(sql)
- query.Execute()
- while(query.NextRow())
- pckey = query.item[1]
+ var/DBQuery/query_unban_get_ckey = dbcon.NewQuery(sql)
+ if(!query_unban_get_ckey.warn_execute())
+ return
+ while(query_unban_get_ckey.NextRow())
+ pckey = query_unban_get_ckey.item[1]
ban_number++;
if(ban_number == 0)
@@ -305,12 +313,11 @@
var/unban_ip = src.owner:address
var/sql_update = "UPDATE [format_table_name("ban")] SET unbanned = 1, unbanned_datetime = Now(), unbanned_ckey = '[unban_ckey]', unbanned_computerid = '[unban_computerid]', unbanned_ip = INET_ATON('[unban_ip]') WHERE id = [id]"
+ var/DBQuery/query_unban = dbcon.NewQuery(sql_update)
+ if(!query_unban.warn_execute())
+ return
message_admins("[key_name_admin(usr)] has lifted [pckey]'s ban.",1)
- var/DBQuery/query_update = dbcon.NewQuery(sql_update)
- query_update.Execute()
-
-
/client/proc/DB_ban_panel()
set category = "Admin"
set name = "Banning Panel"
@@ -407,23 +414,24 @@
if(playerckey)
playersearch = "AND ckey = '[playerckey]' "
- var/DBQuery/select_query = dbcon.NewQuery("SELECT id, bantime, bantype, reason, job, duration, expiration_time, ckey, a_ckey, unbanned, unbanned_ckey, unbanned_datetime, edits FROM [format_table_name("ban")] WHERE 1 [playersearch] [adminsearch] ORDER BY bantime DESC")
- select_query.Execute()
+ var/DBQuery/query_search_bans = dbcon.NewQuery("SELECT id, bantime, bantype, reason, job, duration, expiration_time, ckey, a_ckey, unbanned, unbanned_ckey, unbanned_datetime, edits FROM [format_table_name("ban")] WHERE 1 [playersearch] [adminsearch] ORDER BY bantime DESC")
+ if(!query_search_bans.warn_execute())
+ return
- while(select_query.NextRow())
- var/banid = select_query.item[1]
- var/bantime = select_query.item[2]
- var/bantype = select_query.item[3]
- var/reason = select_query.item[4]
- var/job = select_query.item[5]
- var/duration = select_query.item[6]
- var/expiration = select_query.item[7]
- var/ckey = select_query.item[8]
- var/ackey = select_query.item[9]
- var/unbanned = select_query.item[10]
- var/unbanckey = select_query.item[11]
- var/unbantime = select_query.item[12]
- var/edits = select_query.item[13]
+ while(query_search_bans.NextRow())
+ var/banid = query_search_bans.item[1]
+ var/bantime = query_search_bans.item[2]
+ var/bantype = query_search_bans.item[3]
+ var/reason = query_search_bans.item[4]
+ var/job = query_search_bans.item[5]
+ var/duration = query_search_bans.item[6]
+ var/expiration = query_search_bans.item[7]
+ var/ckey = query_search_bans.item[8]
+ var/ackey = query_search_bans.item[9]
+ var/unbanned = query_search_bans.item[10]
+ var/unbanckey = query_search_bans.item[11]
+ var/unbantime = query_search_bans.item[12]
+ var/edits = query_search_bans.item[13]
var/lcolor = blcolor
var/dcolor = bdcolor
diff --git a/code/modules/admin/IsBanned.dm b/code/modules/admin/IsBanned.dm
index b5e6f8f7b53..9e13aa885b9 100644
--- a/code/modules/admin/IsBanned.dm
+++ b/code/modules/admin/IsBanned.dm
@@ -74,18 +74,17 @@
if(computer_id)
cidquery = " OR computerid = '[computer_id]' "
- var/DBQuery/query = dbcon.NewQuery("SELECT ckey, a_ckey, reason, expiration_time, duration, bantime, bantype FROM [format_table_name("ban")] WHERE (ckey = '[ckeytext]' [ipquery] [cidquery]) AND (bantype = 'PERMABAN' OR bantype = 'ADMIN_PERMABAN' OR ((bantype = 'TEMPBAN' OR bantype = 'ADMIN_TEMPBAN') AND expiration_time > Now())) AND isnull(unbanned)")
-
- query.Execute()
-
- while(query.NextRow())
- var/pckey = query.item[1]
- var/ackey = query.item[2]
- var/reason = query.item[3]
- var/expiration = query.item[4]
- var/duration = query.item[5]
- var/bantime = query.item[6]
- var/bantype = query.item[7]
+ var/DBQuery/query_ban_check = dbcon.NewQuery("SELECT ckey, a_ckey, reason, expiration_time, duration, bantime, bantype FROM [format_table_name("ban")] WHERE (ckey = '[ckeytext]' [ipquery] [cidquery]) AND (bantype = 'PERMABAN' OR bantype = 'ADMIN_PERMABAN' OR ((bantype = 'TEMPBAN' OR bantype = 'ADMIN_TEMPBAN') AND expiration_time > Now())) AND isnull(unbanned)")
+ if(!query_ban_check.Execute())
+ return
+ while(query_ban_check.NextRow())
+ var/pckey = query_ban_check.item[1]
+ var/ackey = query_ban_check.item[2]
+ var/reason = query_ban_check.item[3]
+ var/expiration = query_ban_check.item[4]
+ var/duration = query_ban_check.item[5]
+ var/bantime = query_ban_check.item[6]
+ var/bantype = query_ban_check.item[7]
if (bantype == "ADMIN_PERMABAN" || bantype == "ADMIN_TEMPBAN")
//admin bans MUST match on ckey to prevent cid-spoofing attacks
// as well as dynamic ip abuse
diff --git a/code/modules/admin/admin_ranks.dm b/code/modules/admin/admin_ranks.dm
index b4816d87eab..7e76c4ad8e7 100644
--- a/code/modules/admin/admin_ranks.dm
+++ b/code/modules/admin/admin_ranks.dm
@@ -134,11 +134,12 @@ var/list/admin_ranks = list() //list of all admin_rank datums
load_admin_ranks()
return
- var/DBQuery/query = dbcon.NewQuery("SELECT rank, flags FROM [format_table_name("admin_ranks")]")
- query.Execute()
- while(query.NextRow())
- var/rank_name = ckeyEx(query.item[1])
- var/flags = query.item[2]
+ var/DBQuery/query_load_admin_ranks = dbcon.NewQuery("SELECT rank, flags FROM [format_table_name("admin_ranks")]")
+ if(!query_load_admin_ranks.Execute())
+ return
+ while(query_load_admin_ranks.NextRow())
+ var/rank_name = ckeyEx(query_load_admin_ranks.item[1])
+ var/flags = query_load_admin_ranks.item[2]
if(istext(flags))
flags = text2num(flags)
var/datum/admin_rank/R = new(rank_name, flags)
@@ -208,11 +209,12 @@ var/list/admin_ranks = list() //list of all admin_rank datums
load_admins()
return
- var/DBQuery/query = dbcon.NewQuery("SELECT ckey, rank FROM [format_table_name("admin")]")
- query.Execute()
- while(query.NextRow())
- var/ckey = ckey(query.item[1])
- var/rank = ckeyEx(query.item[2])
+ var/DBQuery/query_load_admins = dbcon.NewQuery("SELECT ckey, rank FROM [format_table_name("admin")]")
+ if(!query_load_admins.Execute())
+ return
+ while(query_load_admins.NextRow())
+ var/ckey = ckey(query_load_admins.item[1])
+ var/rank = ckeyEx(query_load_admins.item[2])
if(target && ckey != target)
continue
@@ -378,5 +380,5 @@ var/list/admin_ranks = list() //list of all admin_rank datums
var/sql_ckey = sanitizeSQL(ckey)
var/sql_admin_rank = sanitizeSQL(newrank)
- var/DBQuery/query_update = dbcon.NewQuery("UPDATE [format_table_name("player")] SET lastadminrank = '[sql_admin_rank]' WHERE ckey = '[sql_ckey]'")
- query_update.Execute()
+ var/DBQuery/query_admin_rank_update = dbcon.NewQuery("UPDATE [format_table_name("player")] SET lastadminrank = '[sql_admin_rank]' WHERE ckey = '[sql_ckey]'")
+ query_admin_rank_update.Execute()
diff --git a/code/modules/admin/banjob.dm b/code/modules/admin/banjob.dm
index e824428106a..ea4a657f2d2 100644
--- a/code/modules/admin/banjob.dm
+++ b/code/modules/admin/banjob.dm
@@ -4,12 +4,11 @@
return 0
if(!M.client) //no cache. fallback to a DBQuery
- var/DBQuery/query = dbcon.NewQuery("SELECT reason FROM [format_table_name("ban")] WHERE ckey = '[sanitizeSQL(M.ckey)]' AND (bantype = 'JOB_PERMABAN' OR (bantype = 'JOB_TEMPBAN' AND expiration_time > Now())) AND isnull(unbanned) AND job = '[sanitizeSQL(rank)]'")
- if(!query.Execute())
- log_game("SQL ERROR obtaining jobbans. Error : \[[query.ErrorMsg()]\]\n")
+ var/DBQuery/query_jobban_check_ban = dbcon.NewQuery("SELECT reason FROM [format_table_name("ban")] WHERE ckey = '[sanitizeSQL(M.ckey)]' AND (bantype = 'JOB_PERMABAN' OR (bantype = 'JOB_TEMPBAN' AND expiration_time > Now())) AND isnull(unbanned) AND job = '[sanitizeSQL(rank)]'")
+ if(!query_jobban_check_ban.warn_execute())
return
- if(query.NextRow())
- var/reason = query.item[1]
+ if(query_jobban_check_ban.NextRow())
+ var/reason = query_jobban_check_ban.item[1]
return reason ? reason : 1 //we don't want to return "" if there is no ban reason, as that would evaluate to false
else
return 0
@@ -25,12 +24,11 @@
/proc/jobban_buildcache(client/C)
if(C && istype(C))
C.jobbancache = list()
- var/DBQuery/query = dbcon.NewQuery("SELECT job, reason FROM [format_table_name("ban")] WHERE ckey = '[sanitizeSQL(C.ckey)]' AND (bantype = 'JOB_PERMABAN' OR (bantype = 'JOB_TEMPBAN' AND expiration_time > Now())) AND isnull(unbanned)")
- if(!query.Execute())
- log_game("SQL ERROR obtaining jobbans. Error : \[[query.ErrorMsg()]\]\n")
+ var/DBQuery/query_jobban_build_cache = dbcon.NewQuery("SELECT job, reason FROM [format_table_name("ban")] WHERE ckey = '[sanitizeSQL(C.ckey)]' AND (bantype = 'JOB_PERMABAN' OR (bantype = 'JOB_TEMPBAN' AND expiration_time > Now())) AND isnull(unbanned)")
+ if(!query_jobban_build_cache.warn_execute())
return
- while(query.NextRow())
- C.jobbancache[query.item[1]] = query.item[2]
+ while(query_jobban_build_cache.NextRow())
+ C.jobbancache[query_jobban_build_cache.item[1]] = query_jobban_build_cache.item[2]
/proc/ban_unban_log_save(var/formatted_log)
text2file(formatted_log,"data/ban_unban_log.txt")
diff --git a/code/modules/admin/create_poll.dm b/code/modules/admin/create_poll.dm
index 9c03cc4d57a..336a495acd9 100644
--- a/code/modules/admin/create_poll.dm
+++ b/code/modules/admin/create_poll.dm
@@ -9,15 +9,11 @@
var/returned = create_poll_function()
if(returned)
var/DBQuery/query_check_option = dbcon.NewQuery("SELECT id FROM [format_table_name("poll_option")] WHERE pollid = [returned]")
- if(!query_check_option.Execute())
- var/err = query_check_option.ErrorMsg()
- log_game("SQL ERROR obtaining id from poll_option table. Error : \[[err]\]\n")
+ if(!query_check_option.warn_execute())
return
if(query_check_option.NextRow())
var/DBQuery/query_log_get = dbcon.NewQuery("SELECT polltype, question, adminonly FROM [format_table_name("poll_question")] WHERE id = [returned]")
- if(!query_log_get.Execute())
- var/err = query_log_get.ErrorMsg()
- log_game("SQL ERROR obtaining polltype, question, adminonly from poll_question table. Error : \[[err]\]\n")
+ if(!query_log_get.warn_execute())
return
if(query_log_get.NextRow())
var/polltype = query_log_get.item[1]
@@ -28,9 +24,7 @@
else
src << "Poll question created without any options, poll will be deleted."
var/DBQuery/query_del_poll = dbcon.NewQuery("DELETE FROM [format_table_name("poll_question")] WHERE id = [returned]")
- if(!query_del_poll.Execute())
- var/err = query_del_poll.ErrorMsg()
- log_game("SQL ERROR deleting poll question [returned]. Error : \[[err]\]\n")
+ if(!query_del_poll.warn_execute())
return
/client/proc/create_poll_function()
@@ -58,9 +52,7 @@
return
endtime = sanitizeSQL(endtime)
var/DBQuery/query_validate_time = dbcon.NewQuery("SELECT STR_TO_DATE('[endtime]','%Y-%c-%d %T')")
- if(!query_validate_time.Execute())
- var/err = query_validate_time.ErrorMsg()
- log_game("SQL ERROR validating endtime. Error : \[[err]\]\n")
+ if(!query_validate_time.warn_execute())
return
if(query_validate_time.NextRow())
endtime = query_validate_time.item[1]
@@ -68,9 +60,7 @@
src << "Datetime entered is invalid."
return
var/DBQuery/query_time_later = dbcon.NewQuery("SELECT TIMESTAMP('[endtime]') < NOW()")
- if(!query_time_later.Execute())
- var/err = query_time_later.ErrorMsg()
- log_game("SQL ERROR comparing endtime to NOW(). Error : \[[err]\]\n")
+ if(!query_time_later.warn_execute())
return
if(query_time_later.NextRow())
var/checklate = text2num(query_time_later.item[1])
@@ -99,9 +89,7 @@
return
question = sanitizeSQL(question)
var/DBQuery/query_polladd_question = dbcon.NewQuery("INSERT INTO [format_table_name("poll_question")] (polltype, starttime, endtime, question, adminonly, multiplechoiceoptions, createdby_ckey, createdby_ip, dontshow) VALUES ('[polltype]', '[starttime]', '[endtime]', '[question]', '[adminonly]', '[choice_amount]', '[sql_ckey]', INET_ATON('[address]'), '[dontshow]')")
- if(!query_polladd_question.Execute())
- var/err = query_polladd_question.ErrorMsg()
- log_game("SQL ERROR adding new poll question to table. Error : \[[err]\]\n")
+ if(!query_polladd_question.warn_execute())
return
if(polltype == POLLTYPE_TEXT)
log_admin("[key_name(usr)] has created a new server poll. Poll type: [polltype] - Admin Only: [adminonly ? "Yes" : "No"] - Question: [question]")
@@ -109,9 +97,7 @@
return
var/pollid = 0
var/DBQuery/query_get_id = dbcon.NewQuery("SELECT id FROM [format_table_name("poll_question")] WHERE question = '[question]' AND starttime = '[starttime]' AND endtime = '[endtime]' AND createdby_ckey = '[sql_ckey]' AND createdby_ip = INET_ATON('[address]')")
- if(!query_get_id.Execute())
- var/err = query_get_id.ErrorMsg()
- log_game("SQL ERROR obtaining id from poll_question table. Error : \[[err]\]\n")
+ if(!query_get_id.warn_execute())
return
if(query_get_id.NextRow())
pollid = query_get_id.item[1]
@@ -161,9 +147,7 @@
else if(descmax == null)
return pollid
var/DBQuery/query_polladd_option = dbcon.NewQuery("INSERT INTO [format_table_name("poll_option")] (pollid, text, percentagecalc, minval, maxval, descmin, descmid, descmax) VALUES ('[pollid]', '[option]', '[percentagecalc]', '[minval]', '[maxval]', '[descmin]', '[descmid]', '[descmax]')")
- if(!query_polladd_option.Execute())
- var/err = query_polladd_option.ErrorMsg()
- log_game("SQL ERROR adding new poll option to table. Error : \[[err]\]\n")
+ if(!query_polladd_option.warn_execute())
return pollid
switch(alert(" ",,"Add option","Finish", "Cancel"))
if("Add option")
diff --git a/code/modules/admin/ipintel.dm b/code/modules/admin/ipintel.dm
index d6c02ee1e59..d4e354db09b 100644
--- a/code/modules/admin/ipintel.dm
+++ b/code/modules/admin/ipintel.dm
@@ -34,7 +34,7 @@
return cachedintel
if(dbcon.Connect())
- var/DBQuery/query = dbcon.NewQuery({"
+ var/DBQuery/query_get_ip_intel = dbcon.NewQuery({"
SELECT date, intel, TIMESTAMPDIFF(MINUTE,date,NOW())
FROM [format_table_name("ipintel")]
WHERE
@@ -49,22 +49,22 @@
date + INTERVAL [config.ipintel_save_bad] HOUR > NOW()
))
"})
- query.Execute()
- if (query.NextRow())
+ if(!query_get_ip_intel.Execute())
+ return
+ if (query_get_ip_intel.NextRow())
res.cache = TRUE
- res.cachedate = query.item[1]
- res.intel = text2num(query.item[2])
- res.cacheminutesago = text2num(query.item[3])
- res.cacherealtime = world.realtime - (text2num(query.item[3])*10*60)
+ res.cachedate = query_get_ip_intel.item[1]
+ res.intel = text2num(query_get_ip_intel.item[2])
+ res.cacheminutesago = text2num(query_get_ip_intel.item[3])
+ res.cacherealtime = world.realtime - (text2num(query_get_ip_intel.item[3])*10*60)
SSipintel.cache[ip] = res
return
res.intel = ip_intel_query(ip)
if (updatecache && res.intel >= 0)
SSipintel.cache[ip] = res
if(dbcon.Connect())
- var/DBQuery/query = dbcon.NewQuery("INSERT INTO [format_table_name("ipintel")] (ip, intel) VALUES (INET_ATON('[ip]'), [res.intel]) ON DUPLICATE KEY UPDATE intel = VALUES(intel), date = NOW()")
- query.Execute()
- return
+ var/DBQuery/query_add_ip_intel = dbcon.NewQuery("INSERT INTO [format_table_name("ipintel")] (ip, intel) VALUES (INET_ATON('[ip]'), [res.intel]) ON DUPLICATE KEY UPDATE intel = VALUES(intel), date = NOW()")
+ query_add_ip_intel.Execute()
diff --git a/code/modules/admin/permissionverbs/permissionedit.dm b/code/modules/admin/permissionverbs/permissionedit.dm
index 89a0a5d703e..939fd13f641 100644
--- a/code/modules/admin/permissionverbs/permissionedit.dm
+++ b/code/modules/admin/permissionverbs/permissionedit.dm
@@ -75,27 +75,32 @@
if(!istext(adm_ckey) || !istext(new_rank))
return
- var/DBQuery/select_query = dbcon.NewQuery("SELECT id FROM [format_table_name("admin")] WHERE ckey = '[adm_ckey]'")
- select_query.Execute()
+ var/DBQuery/query_get_admin = dbcon.NewQuery("SELECT id FROM [format_table_name("admin")] WHERE ckey = '[adm_ckey]'")
+ if(!query_get_admin.warn_execute())
+ return
var/new_admin = 1
var/admin_id
- while(select_query.NextRow())
+ while(query_get_admin.NextRow())
new_admin = 0
- admin_id = text2num(select_query.item[1])
+ admin_id = text2num(query_get_admin.item[1])
if(new_admin)
- var/DBQuery/insert_query = dbcon.NewQuery("INSERT INTO `[format_table_name("admin")]` (`id`, `ckey`, `rank`, `level`, `flags`) VALUES (null, '[adm_ckey]', '[new_rank]', -1, 0)")
- insert_query.Execute()
- var/DBQuery/log_query = dbcon.NewQuery("INSERT INTO `[format_table_name("admin_log")]` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Added new admin [adm_ckey] to rank [new_rank]');")
- log_query.Execute()
+ var/DBQuery/query_add_admin = dbcon.NewQuery("INSERT INTO `[format_table_name("admin")]` (`id`, `ckey`, `rank`, `level`, `flags`) VALUES (null, '[adm_ckey]', '[new_rank]', -1, 0)")
+ if(!query_add_admin.warn_execute())
+ return
+ var/DBQuery/query_add_admin_log = dbcon.NewQuery("INSERT INTO `[format_table_name("admin_log")]` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Added new admin [adm_ckey] to rank [new_rank]');")
+ if(!query_add_admin_log.warn_execute())
+ return
usr << "New admin added."
else
if(!isnull(admin_id) && isnum(admin_id))
- var/DBQuery/insert_query = dbcon.NewQuery("UPDATE `[format_table_name("admin")]` SET rank = '[new_rank]' WHERE id = [admin_id]")
- insert_query.Execute()
- var/DBQuery/log_query = dbcon.NewQuery("INSERT INTO `[format_table_name("admin_log")]` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Edited the rank of [adm_ckey] to [new_rank]');")
- log_query.Execute()
+ var/DBQuery/query_change_admin = dbcon.NewQuery("UPDATE `[format_table_name("admin")]` SET rank = '[new_rank]' WHERE id = [admin_id]")
+ if(!query_change_admin.warn_execute())
+ return
+ var/DBQuery/query_change_admin_log = dbcon.NewQuery("INSERT INTO `[format_table_name("admin_log")]` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Edited the rank of [adm_ckey] to [new_rank]');")
+ if(!query_change_admin_log.warn_execute())
+ return
usr << "Admin rank changed."
@@ -114,17 +119,19 @@
if(!adm_ckey || !istext(adm_ckey) || !isnum(new_permission))
return
- var/DBQuery/select_query = dbcon.NewQuery("SELECT id, flags FROM [format_table_name("admin")] WHERE ckey = '[adm_ckey]'")
- select_query.Execute()
+ var/DBQuery/query_get_perms = dbcon.NewQuery("SELECT id, flags FROM [format_table_name("admin")] WHERE ckey = '[adm_ckey]'")
+ if(!query_get_perms.warn_execute())
+ return
var/admin_id
- while(select_query.NextRow())
- admin_id = text2num(select_query.item[1])
+ while(query_get_perms.NextRow())
+ admin_id = text2num(query_get_perms.item[1])
if(!admin_id)
return
- var/DBQuery/insert_query = dbcon.NewQuery("UPDATE `[format_table_name("admin")]` SET flags = [new_permission] WHERE id = [admin_id]")
- insert_query.Execute()
- var/DBQuery/log_query = dbcon.NewQuery("INSERT INTO `[format_table_name("admin_log")]` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Edit permission [rights2text(new_permission)] (flag = [new_permission]) to admin [adm_ckey]');")
- log_query.Execute()
+ var/DBQuery/query_change_perms = dbcon.NewQuery("UPDATE `[format_table_name("admin")]` SET flags = [new_permission] WHERE id = [admin_id]")
+ if(!query_change_perms.warn_execute())
+ return
+ var/DBQuery/query_change_perms_log = dbcon.NewQuery("INSERT INTO `[format_table_name("admin_log")]` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Edit permission [rights2text(new_permission)] (flag = [new_permission]) to admin [adm_ckey]');")
+ query_change_perms_log.warn_execute()
diff --git a/code/modules/admin/sql_message_system.dm b/code/modules/admin/sql_message_system.dm
index 99d082feb41..23139ce67b2 100644
--- a/code/modules/admin/sql_message_system.dm
+++ b/code/modules/admin/sql_message_system.dm
@@ -10,9 +10,7 @@
return
new_ckey = sanitizeSQL(new_ckey)
var/DBQuery/query_find_ckey = dbcon.NewQuery("SELECT ckey FROM [format_table_name("player")] WHERE ckey = '[new_ckey]'")
- if(!query_find_ckey.Execute())
- var/err = query_find_ckey.ErrorMsg()
- log_game("SQL ERROR obtaining ckey from player table. Error : \[[err]\]\n")
+ if(!query_find_ckey.warn_execute())
return
if(!query_find_ckey.NextRow())
if(alert(usr, "[new_ckey] has not been seen before, are you sure you want to create a [type] for them?", "Unknown ckey", "Yes", "No", "Cancel") != "Yes")
@@ -47,9 +45,7 @@
else
return
var/DBQuery/query_create_message = dbcon.NewQuery("INSERT INTO [format_table_name("messages")] (type, targetckey, adminckey, text, timestamp, server, secret) VALUES ('[type]', '[target_ckey]', '[admin_ckey]', '[text]', '[timestamp]', '[server]', '[secret]')")
- if(!query_create_message.Execute())
- var/err = query_create_message.ErrorMsg()
- log_game("SQL ERROR creating new [type] in messages table. Error : \[[err]\]\n")
+ if(!query_create_message.warn_execute())
return
if(logged)
log_admin_private("[key_name(usr)] has created a [type][(type == "note" || type == "message" || type == "watchlist entry") ? " for [target_ckey]" : ""]: [text]")
@@ -70,18 +66,14 @@
var/target_ckey
var/text
var/DBQuery/query_find_del_message = dbcon.NewQuery("SELECT type, targetckey, adminckey, text FROM [format_table_name("messages")] WHERE id = [message_id]")
- if(!query_find_del_message.Execute())
- var/err = query_find_del_message.ErrorMsg()
- log_game("SQL ERROR obtaining type, targetckey, adminckey text from messages table. Error : \[[err]\]\n")
+ if(!query_find_del_message.warn_execute())
return
if(query_find_del_message.NextRow())
type = query_find_del_message.item[1]
target_ckey = query_find_del_message.item[2]
text = query_find_del_message.item[4]
var/DBQuery/query_del_message = dbcon.NewQuery("DELETE FROM [format_table_name("messages")] WHERE id = [message_id]")
- if(!query_del_message.Execute())
- var/err = query_del_message.ErrorMsg()
- log_game("SQL ERROR deleting [type] from messages table. Error : \[[err]\]\n")
+ if(!query_del_message.warn_execute())
return
if(logged)
log_admin_private("[key_name(usr)] has deleted a [type][(type == "note" || type == "message" || type == "watchlist entry") ? " for" : " made by"] [target_ckey]: [text]")
@@ -99,9 +91,7 @@
if(!message_id)
return
var/DBQuery/query_find_edit_message = dbcon.NewQuery("SELECT type, targetckey, adminckey, text FROM [format_table_name("messages")] WHERE id = [message_id]")
- if(!query_find_edit_message.Execute())
- var/err = query_find_edit_message.ErrorMsg()
- log_game("SQL ERROR obtaining type, targetckey, adminckey, text from messages table. Error : \[[err]\]\n")
+ if(!query_find_edit_message.warn_execute())
return
if(query_find_edit_message.NextRow())
var/type = query_find_edit_message.item[1]
@@ -115,9 +105,7 @@
new_text = sanitizeSQL(new_text)
var/edit_text = sanitizeSQL("Edited by [editor_ckey] on [SQLtime()] from
[old_text]
to
[new_text]
| AUTHOR | TITLE | CATEGORY | SS13BN |
| [author] | [title] | [category] | [id] |
Show Player Polls (NEW!)
" diff --git a/code/modules/mob/new_player/poll.dm b/code/modules/mob/new_player/poll.dm index 8d89d64e2cc..52e8346e3fc 100644 --- a/code/modules/mob/new_player/poll.dm +++ b/code/modules/mob/new_player/poll.dm @@ -6,16 +6,14 @@ if(!dbcon.IsConnected()) usr << "Failed to establish database connection." return - var/DBQuery/query_get_poll = dbcon.NewQuery("SELECT id, question FROM [format_table_name("poll_question")] WHERE Now() BETWEEN starttime AND endtime [(client.holder ? "" : "AND adminonly = false")]") - if(!query_get_poll.Execute()) - var/err = query_get_poll.ErrorMsg() - log_game("SQL ERROR obtaining id, question from poll_question table. Error : \[[err]\]\n") + var/DBQuery/query_poll_get = dbcon.NewQuery("SELECT id, question FROM [format_table_name("poll_question")] WHERE Now() BETWEEN starttime AND endtime [(client.holder ? "" : "AND adminonly = false")]") + if(!query_poll_get.warn_execute()) return var/output = "| [pollquestion] |
" @@ -121,18 +111,16 @@ src << browse(null ,"window=playerpolllist") src << browse(output,"window=playerpoll;size=500x500") if(POLLTYPE_RATING) - var/DBQuery/voted_query = dbcon.NewQuery("SELECT o.text, v.rating FROM [format_table_name("poll_option")] o, [format_table_name("poll_vote")] v WHERE o.pollid = [pollid] AND v.ckey = '[ckey]' AND o.id = v.optionid") - if(!voted_query.Execute()) - var/err = voted_query.ErrorMsg() - log_game("SQL ERROR obtaining o.text, v.rating from poll_option and poll_vote tables. Error : \[[err]\]\n") + var/DBQuery/query_rating_get_votes = dbcon.NewQuery("SELECT o.text, v.rating FROM [format_table_name("poll_option")] o, [format_table_name("poll_vote")] v WHERE o.pollid = [pollid] AND v.ckey = '[ckey]' AND o.id = v.optionid") + if(!query_rating_get_votes.warn_execute()) return var/output = "
"
var/rating
- while(voted_query.NextRow())
- var/optiontext = voted_query.item[1]
- rating = voted_query.item[2]
+ while(query_rating_get_votes.NextRow())
+ var/optiontext = query_rating_get_votes.item[1]
+ rating = query_rating_get_votes.item[2]
output += "
[optiontext] - [rating]"
if(!rating)
output += "