diff --git a/code/modules/karma/karma.dm b/code/modules/karma/karma.dm index cccf9977ad6..f7d8b12f80c 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,6 +196,24 @@ GLOBAL_LIST_EMPTY(karma_spenders) karmashopmenu() /client/proc/karmashopmenu() + 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 + 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" @@ -202,28 +221,69 @@ GLOBAL_LIST_EMPTY(karma_spenders) dat += "
" dat += "
" + var/currentkarma = verify_karma() + dat += "You have [currentkarma] available.

" + 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() @@ -283,11 +343,14 @@ 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]'") + var/sanitzedkey = sanitizeSQL(usr.ckey) + var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT * FROM [format_table_name("whitelist")] WHERE ckey='[sanitzedkey]'") query.Execute() var/dbjob @@ -296,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 @@ -323,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 @@ -332,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 @@ -359,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='[sanitzedkey]'") query.Execute() while(query.NextRow()) @@ -368,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='[sanitzedkey]'") if(!query.Execute()) queryErrorLog(query.ErrorMsg(),"updating existing entry") return @@ -378,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") @@ -388,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 @@ -431,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