From 41afecb4ffe5bc76c035bd0dd60c46cf3ea20b7e Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Thu, 21 May 2020 13:26:12 -0400 Subject: [PATCH 1/8] removes check karma verb and moves it to karma panel instead --- code/modules/karma/karma.dm | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/code/modules/karma/karma.dm b/code/modules/karma/karma.dm index cccf9977ad6..6d1693d3ec0 100644 --- a/code/modules/karma/karma.dm +++ b/code/modules/karma/karma.dm @@ -153,19 +153,6 @@ GLOBAL_LIST_EMPTY(karma_spenders) sql_report_karma(src, M) -/client/verb/check_karma() - set name = "Check Karma" - set desc = "Reports how much karma you have accrued." - set category = "Special Verbs" - - if(config.disable_karma) - to_chat(src, "Karma is disabled.") - return - - var/currentkarma = verify_karma() - if(!isnull(currentkarma)) - to_chat(usr, {"
You have [currentkarma] available."}) - /client/proc/verify_karma() var/currentkarma = 0 if(!GLOB.dbcon.IsConnected()) @@ -262,6 +249,9 @@ GLOBAL_LIST_EMPTY(karma_spenders) if(!refundable.len) dat += "You do not have any refundable karma purchases.
" + var/currentkarma = verify_karma() + dat += "
You have [currentkarma] available." + dat += "
PLEASE NOTE THAT PEOPLE WHO TRY TO GAME THE KARMA SYSTEM WILL END UP ON THE WALL OF SHAME. THIS INCLUDES BUT IS NOT LIMITED TO TRADES, OOC KARMA BEGGING, CODE EXPLOITS, ETC." dat += "" From 66b6864d8a6a74000247359c2914c4014b5702f4 Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Thu, 21 May 2020 14:37:46 -0400 Subject: [PATCH 2/8] Show in karma menu unlocked jobs and species --- code/modules/karma/karma.dm | 93 ++++++++++++++++++++++++++++++------- 1 file changed, 75 insertions(+), 18 deletions(-) diff --git a/code/modules/karma/karma.dm b/code/modules/karma/karma.dm index 6d1693d3ec0..0caa4ed9b6d 100644 --- a/code/modules/karma/karma.dm +++ b/code/modules/karma/karma.dm @@ -182,6 +182,23 @@ GLOBAL_LIST_EMPTY(karma_spenders) karmashopmenu() /client/proc/karmashopmenu() + var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT * FROM [format_table_name("whitelist")] WHERE ckey='[usr.ckey]'") + query.Execute() + + var/list/joblist + var/list/specieslist + var/dbjob + var/dbspecies + var/dbckey + while(query.NextRow()) + dbckey = query.item[2] + dbjob = query.item[3] + dbspecies = query.item[4] + + if(dbckey) + joblist = splittext(dbjob,",") + specieslist = splittext(dbspecies,",") + var/dat = "
" dat += "Job Unlocks" dat += "Species Unlocks" @@ -191,26 +208,64 @@ GLOBAL_LIST_EMPTY(karma_spenders) switch(karma_tab) if(0) // Job Unlocks - dat += {" - Unlock Barber -- 5KP
- Unlock Brig Physician -- 5KP
- Unlock Nanotrasen Representative -- 30KP
- Unlock Blueshield -- 30KP
- Unlock Security Pod Pilot -- 30KP
- Unlock Mechanic -- 30KP
- Unlock Magistrate -- 45KP
- "} + if(!("Barber" in joblist)) + dat += "Unlock Barber -- 5KP
" + else + dat += "Barber Unlocked
" + if(!("Brig Physican" in joblist)) + dat += "Unlock Brig Physician -- 5KP
" + else + dat += "Brig Physician Unlocked
" + if(!("Nanotrasen Representative" in joblist)) + dat += "Unlock Nanotrasen Representative -- 30KP
" + else + dat += "Nanotrasen Representative Unlocked
" + if(!("Blueshield" in joblist)) + dat += "Unlock Blueshield -- 30KP
" + else + dat += "Blueshield Unlocked
" + if(!("Security Pod Pilot" in joblist)) + dat += "Unlock Security Pod Pilot -- 30KP
" + else + dat += "Security Pod Pilot Unlocked
" + if(!("Mechanic" in joblist)) + dat += "Unlock Mechanic -- 30KP
" + else + dat += "Mechanic Unlocked
" + if(!("Magistrate" in joblist)) + dat += "Unlock Magistrate -- 45KP
" + else + dat+= "Magistrate Unlocked
" if(1) // Species Unlocks - dat += {" - Unlock Machine People -- 15KP
- Unlock Kidan -- 30KP
- Unlock Grey -- 30KP
- Unlock Drask -- 30KP
- Unlock Vox -- 45KP
- Unlock Slime People -- 45KP
- Unlock Plasmaman -- 45KP
- "} + if(!("Machine" in specieslist)) + dat += "Unlock Machine People -- 15KP
" + else + dat += "Machine People Unlocked
" + if(!("Kidan" in specieslist)) + dat += "Unlock Kidan -- 30KP
" + else + dat += "Kidan Unlocked
" + if(!("Grey" in specieslist)) + dat += "Unlock Grey -- 30KP
" + else + dat += "Grey Unlocked
" + if(!("Drask" in specieslist)) + dat += "Unlock Drask -- 30KP
" + else + dat += "Drask Unlocked
" + if(!("Vox" in specieslist)) + dat += "Unlock Vox -- 45KP
" + else + dat += "Vox Unlocked
" + if(!("Slime People" in specieslist)) + dat += "Unlock Slime People -- 45KP
" + else + dat += "Slime People Unlocked
" + if(!("Plasmaman" in specieslist)) + dat += "Unlock Plasmaman -- 45KP
" + else + dat += "Plasmaman Unlocked
" if(2) // Karma Refunds var/list/refundable = list() @@ -273,8 +328,10 @@ GLOBAL_LIST_EMPTY(karma_spenders) name = DBname if(category == "job") DB_job_unlock(name,price) + karmashopmenu() else if(category == "species") DB_species_unlock(name,price) + karmashopmenu() /client/proc/DB_job_unlock(var/job,var/cost) var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT * FROM [format_table_name("whitelist")] WHERE ckey='[usr.ckey]'") From bda4a6053e4d1f8822929ded3c986b797a94dbad Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Thu, 21 May 2020 16:06:38 -0400 Subject: [PATCH 3/8] Add some color to text --- code/modules/karma/karma.dm | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/code/modules/karma/karma.dm b/code/modules/karma/karma.dm index 0caa4ed9b6d..bf35a9b80b6 100644 --- a/code/modules/karma/karma.dm +++ b/code/modules/karma/karma.dm @@ -211,61 +211,61 @@ GLOBAL_LIST_EMPTY(karma_spenders) if(!("Barber" in joblist)) dat += "Unlock Barber -- 5KP
" else - dat += "Barber Unlocked
" + dat += "Barber - Unlocked
" if(!("Brig Physican" in joblist)) dat += "Unlock Brig Physician -- 5KP
" else - dat += "Brig Physician Unlocked
" + dat += "Brig Physician - Unlocked
" if(!("Nanotrasen Representative" in joblist)) dat += "Unlock Nanotrasen Representative -- 30KP
" else - dat += "Nanotrasen Representative Unlocked
" + dat += "Nanotrasen Representative - Unlocked
" if(!("Blueshield" in joblist)) dat += "Unlock Blueshield -- 30KP
" else - dat += "Blueshield Unlocked
" + dat += "Blueshield - Unlocked
" if(!("Security Pod Pilot" in joblist)) dat += "Unlock Security Pod Pilot -- 30KP
" else - dat += "Security Pod Pilot Unlocked
" + dat += "Security Pod Pilot - Unlocked
" if(!("Mechanic" in joblist)) dat += "Unlock Mechanic -- 30KP
" else - dat += "Mechanic Unlocked
" + dat += "Mechanic - Unlocked
" if(!("Magistrate" in joblist)) dat += "Unlock Magistrate -- 45KP
" else - dat+= "Magistrate Unlocked
" + dat+= "Magistrate - Unlocked
" if(1) // Species Unlocks if(!("Machine" in specieslist)) dat += "Unlock Machine People -- 15KP
" else - dat += "Machine People Unlocked
" + dat += "Machine People - Unlocked
" if(!("Kidan" in specieslist)) dat += "Unlock Kidan -- 30KP
" else - dat += "Kidan Unlocked
" + dat += "Kidan - Unlocked
" if(!("Grey" in specieslist)) dat += "Unlock Grey -- 30KP
" else - dat += "Grey Unlocked
" + dat += "Grey - Unlocked
" if(!("Drask" in specieslist)) dat += "Unlock Drask -- 30KP
" else - dat += "Drask Unlocked
" + dat += "Drask - Unlocked
" if(!("Vox" in specieslist)) dat += "Unlock Vox -- 45KP
" else - dat += "Vox Unlocked
" + dat += "Vox - Unlocked
" if(!("Slime People" in specieslist)) dat += "Unlock Slime People -- 45KP
" else - dat += "Slime People Unlocked
" + dat += "Slime People - Unlocked
" if(!("Plasmaman" in specieslist)) dat += "Unlock Plasmaman -- 45KP
" else - dat += "Plasmaman Unlocked
" + dat += "Plasmaman - Unlocked
" if(2) // Karma Refunds var/list/refundable = list() From 6fce4c1452c549c1f2b09280c8ccba00f16c0799 Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Thu, 21 May 2020 16:07:56 -0400 Subject: [PATCH 4/8] Re-add check_karma verb --- code/modules/karma/karma.dm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/code/modules/karma/karma.dm b/code/modules/karma/karma.dm index bf35a9b80b6..3d9d2fa56de 100644 --- a/code/modules/karma/karma.dm +++ b/code/modules/karma/karma.dm @@ -153,6 +153,19 @@ GLOBAL_LIST_EMPTY(karma_spenders) sql_report_karma(src, M) +/client/verb/check_karma() + set name = "Check Karma" + set desc = "Reports how much karma you have accrued." + set category = "Special Verbs" + + if(config.disable_karma) + to_chat(src, "Karma is disabled.") + return + + var/currentkarma = verify_karma() + if(!isnull(currentkarma)) + to_chat(usr, {"
You have [currentkarma] available."}) + /client/proc/verify_karma() var/currentkarma = 0 if(!GLOB.dbcon.IsConnected()) From 1e284a4b43bb08db3cae2d83d09eee00e5c6bd73 Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Thu, 21 May 2020 16:28:05 -0400 Subject: [PATCH 5/8] Sanitation all around --- code/modules/karma/karma.dm | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/code/modules/karma/karma.dm b/code/modules/karma/karma.dm index 3d9d2fa56de..2935cd394be 100644 --- a/code/modules/karma/karma.dm +++ b/code/modules/karma/karma.dm @@ -4,9 +4,9 @@ proc/sql_report_karma(var/mob/spender, var/mob/receiver) var/sqlspendername = sanitizeSQL(spender.name) - var/sqlspenderkey = spender.ckey + var/sqlspenderkey = sanitizeSQL(spender.ckey) var/sqlreceivername = sanitizeSQL(receiver.name) - var/sqlreceiverkey = receiver.ckey + var/sqlreceiverkey = sanitizeSQL(receiver.ckey) var/sqlreceiverrole = "None" var/sqlreceiverspecial = "None" @@ -28,7 +28,7 @@ proc/sql_report_karma(var/mob/spender, var/mob/receiver) log_game("SQL ERROR during karma logging. Error : \[[err]\]\n") - query = GLOB.dbcon.NewQuery("SELECT * FROM [format_table_name("karmatotals")] WHERE byondkey='[receiver.ckey]'") + query = GLOB.dbcon.NewQuery("SELECT * FROM [format_table_name("karmatotals")] WHERE byondkey='[sqlreceiverkey]'") query.Execute() var/karma @@ -38,7 +38,7 @@ proc/sql_report_karma(var/mob/spender, var/mob/receiver) karma = text2num(query.item[3]) if(karma == null) karma = 1 - query = GLOB.dbcon.NewQuery("INSERT INTO [format_table_name("karmatotals")] (byondkey, karma) VALUES ('[receiver.ckey]', [karma])") + query = GLOB.dbcon.NewQuery("INSERT INTO [format_table_name("karmatotals")] (byondkey, karma) VALUES ('[sqlreceiverkey]', [karma])") if(!query.Execute()) var/err = query.ErrorMsg() log_game("SQL ERROR during karmatotal logging (adding new key). Error : \[[err]\]\n") @@ -168,11 +168,12 @@ GLOBAL_LIST_EMPTY(karma_spenders) /client/proc/verify_karma() var/currentkarma = 0 + var/sanitzedkey = sanitizeSQL(src.ckey) if(!GLOB.dbcon.IsConnected()) to_chat(usr, "Unable to connect to karma database. Please try again later.
") return else - var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT karma, karmaspent FROM [format_table_name("karmatotals")] WHERE byondkey='[src.ckey]'") + var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT karma, karmaspent FROM [format_table_name("karmatotals")] WHERE byondkey='[sanitzedkey]'") query.Execute() var/totalkarma @@ -195,7 +196,8 @@ GLOBAL_LIST_EMPTY(karma_spenders) karmashopmenu() /client/proc/karmashopmenu() - var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT * FROM [format_table_name("whitelist")] WHERE ckey='[usr.ckey]'") + var/sanitzedkey = sanitizeSQL(usr.ckey) + var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT * FROM [format_table_name("whitelist")] WHERE ckey='[sanitzedkey]'") query.Execute() var/list/joblist @@ -318,7 +320,7 @@ GLOBAL_LIST_EMPTY(karma_spenders) dat += "You do not have any refundable karma purchases.
" var/currentkarma = verify_karma() - dat += "
You have [currentkarma] available." + dat += "
You have [currentkarma] available.
" dat += "
PLEASE NOTE THAT PEOPLE WHO TRY TO GAME THE KARMA SYSTEM WILL END UP ON THE WALL OF SHAME. THIS INCLUDES BUT IS NOT LIMITED TO TRADES, OOC KARMA BEGGING, CODE EXPLOITS, ETC." dat += "
" @@ -347,7 +349,8 @@ GLOBAL_LIST_EMPTY(karma_spenders) karmashopmenu() /client/proc/DB_job_unlock(var/job,var/cost) - var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT * FROM [format_table_name("whitelist")] WHERE ckey='[usr.ckey]'") + var/sanitzedkey = sanitizeSQL(usr.ckey) + var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT * FROM [format_table_name("whitelist")] WHERE ckey='[sanitzedkey]'") query.Execute() var/dbjob @@ -356,7 +359,7 @@ GLOBAL_LIST_EMPTY(karma_spenders) dbckey = query.item[2] dbjob = query.item[3] if(!dbckey) - query = GLOB.dbcon.NewQuery("INSERT INTO [format_table_name("whitelist")] (ckey, job) VALUES ('[usr.ckey]','[job]')") + query = GLOB.dbcon.NewQuery("INSERT INTO [format_table_name("whitelist")] (ckey, job) VALUES ('[sanitzedkey]','[job]')") if(!query.Execute()) queryErrorLog(query.ErrorMsg(),"adding new key") return @@ -383,7 +386,8 @@ GLOBAL_LIST_EMPTY(karma_spenders) return /client/proc/DB_species_unlock(var/species,var/cost) - var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT * FROM [format_table_name("whitelist")] WHERE ckey='[usr.ckey]'") + var/sanitzedkey = sanitizeSQL(usr.ckey) + var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT * FROM [format_table_name("whitelist")] WHERE ckey='[sanitzedkey]'") query.Execute() var/dbspecies @@ -392,7 +396,7 @@ GLOBAL_LIST_EMPTY(karma_spenders) dbckey = query.item[2] dbspecies = query.item[4] if(!dbckey) - query = GLOB.dbcon.NewQuery("INSERT INTO [format_table_name("whitelist")] (ckey, species) VALUES ('[usr.ckey]','[species]')") + query = GLOB.dbcon.NewQuery("INSERT INTO [format_table_name("whitelist")] (ckey, species) VALUES ('[sanitzedkey]','[species]')") if(!query.Execute()) queryErrorLog(query.ErrorMsg(),"adding new key") return @@ -419,7 +423,8 @@ GLOBAL_LIST_EMPTY(karma_spenders) return /client/proc/karmacharge(var/cost,var/refund = FALSE) - var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT * FROM [format_table_name("karmatotals")] WHERE byondkey='[usr.ckey]'") + var/sanitzedkey = sanitizeSQL(usr.ckey) + var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT * FROM [format_table_name("karmatotals")] WHERE byondkey='[sanitizeSQL]'") query.Execute() while(query.NextRow()) @@ -428,7 +433,7 @@ GLOBAL_LIST_EMPTY(karma_spenders) spent -= cost else spent += cost - query = GLOB.dbcon.NewQuery("UPDATE [format_table_name("karmatotals")] SET karmaspent=[spent] WHERE byondkey='[usr.ckey]'") + query = GLOB.dbcon.NewQuery("UPDATE [format_table_name("karmatotals")] SET karmaspent=[spent] WHERE byondkey='[sanitizeSQL]'") if(!query.Execute()) queryErrorLog(query.ErrorMsg(),"updating existing entry") return @@ -438,6 +443,7 @@ GLOBAL_LIST_EMPTY(karma_spenders) return /client/proc/karmarefund(var/type,var/name,var/cost) + var/sanitzedkey = sanitizeSQL(usr.ckey) switch(name) if("Tajaran Ambassador","Unathi Ambassador","Skrell Ambassador","Diona Ambassador","Kidan Ambassador", "Slime People Ambassador","Grey Ambassador","Vox Ambassador","Customs Officer") @@ -448,7 +454,7 @@ GLOBAL_LIST_EMPTY(karma_spenders) to_chat(usr, "That job is not refundable.") return - var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT * FROM [format_table_name("whitelist")] WHERE ckey='[usr.ckey]'") + var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT * FROM [format_table_name("whitelist")] WHERE ckey='[sanitzedkey]'") query.Execute() var/dbjob @@ -491,7 +497,8 @@ GLOBAL_LIST_EMPTY(karma_spenders) message_admins("SQL ERROR during whitelist logging ([errType]]). Error : \[[err]\]\n") /client/proc/checkpurchased(var/name = null) // If the first parameter is null, return a full list of purchases - var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT * FROM [format_table_name("whitelist")] WHERE ckey='[usr.ckey]'") + var/sanitzedkey = sanitizeSQL(usr.ckey) + var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT * FROM [format_table_name("whitelist")] WHERE ckey='[sanitzedkey]'") query.Execute() var/dbjob From 7b6aa33869835f9c3c03991a9f6c404ba75cdc2b Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Thu, 21 May 2020 16:29:09 -0400 Subject: [PATCH 6/8] Syntaxfix --- code/modules/karma/karma.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/karma/karma.dm b/code/modules/karma/karma.dm index 2935cd394be..134cc25fcd2 100644 --- a/code/modules/karma/karma.dm +++ b/code/modules/karma/karma.dm @@ -424,7 +424,7 @@ GLOBAL_LIST_EMPTY(karma_spenders) /client/proc/karmacharge(var/cost,var/refund = FALSE) var/sanitzedkey = sanitizeSQL(usr.ckey) - var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT * FROM [format_table_name("karmatotals")] WHERE byondkey='[sanitizeSQL]'") + var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT * FROM [format_table_name("karmatotals")] WHERE byondkey='[sanitzedkey]'") query.Execute() while(query.NextRow()) @@ -433,7 +433,7 @@ GLOBAL_LIST_EMPTY(karma_spenders) spent -= cost else spent += cost - query = GLOB.dbcon.NewQuery("UPDATE [format_table_name("karmatotals")] SET karmaspent=[spent] WHERE byondkey='[sanitizeSQL]'") + query = GLOB.dbcon.NewQuery("UPDATE [format_table_name("karmatotals")] SET karmaspent=[spent] WHERE byondkey='[sanitzedkey]'") if(!query.Execute()) queryErrorLog(query.ErrorMsg(),"updating existing entry") return From 37db9d9df1245f5b4a51a3be82eb121dae211cfc Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Thu, 21 May 2020 16:41:09 -0400 Subject: [PATCH 7/8] Moved current karma above unlocks --- code/modules/karma/karma.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/karma/karma.dm b/code/modules/karma/karma.dm index 134cc25fcd2..dd9483d9c87 100644 --- a/code/modules/karma/karma.dm +++ b/code/modules/karma/karma.dm @@ -221,6 +221,9 @@ GLOBAL_LIST_EMPTY(karma_spenders) dat += "" dat += "
" + var/currentkarma = verify_karma() + dat += "
You have [currentkarma] available.

" + switch(karma_tab) if(0) // Job Unlocks if(!("Barber" in joblist)) @@ -319,9 +322,6 @@ GLOBAL_LIST_EMPTY(karma_spenders) if(!refundable.len) dat += "You do not have any refundable karma purchases.
" - var/currentkarma = verify_karma() - dat += "
You have [currentkarma] available.
" - dat += "
PLEASE NOTE THAT PEOPLE WHO TRY TO GAME THE KARMA SYSTEM WILL END UP ON THE WALL OF SHAME. THIS INCLUDES BUT IS NOT LIMITED TO TRADES, OOC KARMA BEGGING, CODE EXPLOITS, ETC." dat += "" From 82c431a1b8bb39779f07629dc1e77772c1e326ee Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Thu, 21 May 2020 16:50:39 -0400 Subject: [PATCH 8/8] Final placement of currentkarma --- code/modules/karma/karma.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/karma/karma.dm b/code/modules/karma/karma.dm index dd9483d9c87..f7d8b12f80c 100644 --- a/code/modules/karma/karma.dm +++ b/code/modules/karma/karma.dm @@ -222,7 +222,7 @@ GLOBAL_LIST_EMPTY(karma_spenders) dat += "
" var/currentkarma = verify_karma() - dat += "
You have [currentkarma] available.

" + dat += "You have [currentkarma] available.

" switch(karma_tab) if(0) // Job Unlocks