mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-12 15:45:25 +01:00
Refactors client data loading
This commit is contained in:
@@ -130,7 +130,7 @@ GLOBAL_VAR_INIT(nologevent, 0)
|
||||
if(GLOB.configuration.url.forum_playerinfo_url)
|
||||
body += "<A href='?_src_=holder;webtools=[M.ckey]'>WebInfo</A> | "
|
||||
if(M.client)
|
||||
if(check_watchlist(M.client.ckey))
|
||||
if(M.client.watchlisted)
|
||||
body += "<A href='?_src_=holder;watchremove=[M.ckey]'>Remove from Watchlist</A> | "
|
||||
body += "<A href='?_src_=holder;watchedit=[M.ckey]'>Edit Watchlist Reason</A> "
|
||||
else
|
||||
|
||||
@@ -95,6 +95,24 @@ you will have to do something like if(client.holder.rights & R_ADMIN) yourself.
|
||||
to_chat(user, "<font color='red'>Error: You are not an admin.</font>")
|
||||
return 0
|
||||
|
||||
// Basically the above proc but checks at a /client level
|
||||
/proc/check_rights_client(rights_required, show_msg = TRUE, client/C)
|
||||
if(C)
|
||||
if(rights_required)
|
||||
if(C.holder)
|
||||
if(rights_required & C.holder.rights)
|
||||
return TRUE
|
||||
else
|
||||
if(show_msg)
|
||||
to_chat(C, "<font color='red'>Error: You do not have sufficient rights to do that. You require one of the following flags:[rights2text(rights_required," ")].</font>")
|
||||
else
|
||||
if(C.holder)
|
||||
return TRUE
|
||||
else
|
||||
if(show_msg)
|
||||
to_chat(C, "<font color='red'>Error: You are not an admin.</font>")
|
||||
return FALSE
|
||||
|
||||
//probably a bit iffy - will hopefully figure out a better solution
|
||||
/proc/check_if_greater_rights_than(client/other)
|
||||
if(usr && usr.client)
|
||||
|
||||
@@ -1363,7 +1363,7 @@
|
||||
to_chat(usr, "<span class='warning'>[M] doesn't seem to have an active client.</span>")
|
||||
return
|
||||
|
||||
if(M.flavor_text == "" && M.client.prefs.flavor_text == "")
|
||||
if(M.flavor_text == "" && M.client.prefs.active_character.flavor_text == "")
|
||||
to_chat(usr, "<span class='warning'>[M] has no flavor text set.</span>")
|
||||
return
|
||||
|
||||
@@ -1377,8 +1377,8 @@
|
||||
M.flavor_text = ""
|
||||
|
||||
// Clear and save the DB character's flavor text
|
||||
M.client.prefs.flavor_text = ""
|
||||
M.client.prefs.save_character(M.client)
|
||||
M.client.prefs.active_character.flavor_text = ""
|
||||
M.client.prefs.active_character.save(M.client)
|
||||
|
||||
else if(href_list["userandomname"])
|
||||
if(!check_rights(R_ADMIN))
|
||||
@@ -1401,12 +1401,12 @@
|
||||
message_admins("[key_name_admin(usr)] has forced [key_name_admin(M)] to use a random name.")
|
||||
|
||||
// Update the mob's name with a random one straight away
|
||||
var/random_name = random_name(M.client.prefs.gender, M.client.prefs.species)
|
||||
var/random_name = random_name(M.client.prefs.active_character.gender, M.client.prefs.active_character.species)
|
||||
M.rename_character(M.real_name, random_name)
|
||||
|
||||
// Save that random name for next rounds
|
||||
M.client.prefs.real_name = random_name
|
||||
M.client.prefs.save_character(M.client)
|
||||
M.client.prefs.active_character.real_name = random_name
|
||||
M.client.prefs.active_character.save(M.client)
|
||||
|
||||
else if(href_list["asays"])
|
||||
if(!check_rights(R_ADMIN))
|
||||
|
||||
@@ -63,9 +63,10 @@
|
||||
for(var/mob/thisplayer in players_to_spawn)
|
||||
var/mob/living/carbon/human/H = new /mob/living/carbon/human(T)
|
||||
H.name = random_name(pick(MALE,FEMALE))
|
||||
var/datum/preferences/A = new() //Randomize appearance
|
||||
A.real_name = H.name
|
||||
A.copy_to(H)
|
||||
var/datum/character_save/S = new() //Randomize appearance
|
||||
S.randomise()
|
||||
S.real_name = H.name
|
||||
S.copy_to(H)
|
||||
H.dna.ready_dna(H)
|
||||
|
||||
H.mind_initialize()
|
||||
|
||||
@@ -124,9 +124,10 @@ GLOBAL_VAR_INIT(sent_syndicate_infiltration_team, 0)
|
||||
|
||||
var/syndicate_infiltrator_name = random_name(pick(MALE,FEMALE))
|
||||
|
||||
var/datum/preferences/A = new() //Randomize appearance
|
||||
A.real_name = syndicate_infiltrator_name
|
||||
A.copy_to(new_syndicate_infiltrator)
|
||||
var/datum/character_save/S = new() //Randomize appearance
|
||||
S.randomise()
|
||||
S.real_name = syndicate_infiltrator_name
|
||||
S.copy_to(new_syndicate_infiltrator)
|
||||
new_syndicate_infiltrator.dna.ready_dna(new_syndicate_infiltrator)
|
||||
|
||||
//Creates mind stuff.
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
if(M.stat || !M.mind || M.mind.special_role || M.mind.offstation_role)
|
||||
return FALSE
|
||||
if(temp)
|
||||
if((M.mind.assigned_role in temp.restricted_jobs) || (M.client.prefs.species in temp.protected_species))
|
||||
if((M.mind.assigned_role in temp.restricted_jobs) || (M.client.prefs.active_character.species in temp.protected_species))
|
||||
return FALSE
|
||||
if(role) // Don't even bother evaluating if there's no role
|
||||
if(player_old_enough_antag(M.client,role) && (role in M.client.prefs.be_special) && !M.client.skip_antag && (!jobban_isbanned(M, role)))
|
||||
@@ -374,8 +374,8 @@
|
||||
//First we spawn a dude.
|
||||
var/mob/living/carbon/human/new_character = new(pick(GLOB.latejoin))//The mob being spawned.
|
||||
|
||||
var/datum/preferences/A = new(G_found.client)
|
||||
A.copy_to(new_character)
|
||||
// Then clone stuff over
|
||||
G_found.client.prefs.active_character.copy_to(new_character)
|
||||
|
||||
new_character.dna.ready_dna(new_character)
|
||||
new_character.key = G_found.key
|
||||
@@ -388,13 +388,14 @@
|
||||
var/syndicate_commando_rank = pick("Corporal", "Sergeant", "Staff Sergeant", "Sergeant 1st Class", "Master Sergeant", "Sergeant Major")
|
||||
var/syndicate_commando_name = pick(GLOB.last_names)
|
||||
|
||||
var/datum/preferences/A = new()//Randomize appearance for the commando.
|
||||
var/datum/character_save/S = new()//Randomize appearance for the commando.
|
||||
S.randomise()
|
||||
if(syndicate_leader_selected)
|
||||
A.real_name = "[syndicate_commando_leader_rank] [syndicate_commando_name]"
|
||||
A.age = rand(35,45)
|
||||
S.real_name = "[syndicate_commando_leader_rank] [syndicate_commando_name]"
|
||||
S.age = rand(35,45)
|
||||
else
|
||||
A.real_name = "[syndicate_commando_rank] [syndicate_commando_name]"
|
||||
A.copy_to(new_syndicate_commando)
|
||||
S.real_name = "[syndicate_commando_rank] [syndicate_commando_name]"
|
||||
S.copy_to(new_syndicate_commando)
|
||||
|
||||
new_syndicate_commando.dna.ready_dna(new_syndicate_commando)//Creates DNA.
|
||||
|
||||
@@ -576,7 +577,8 @@
|
||||
if(candidates.len)
|
||||
var/teamOneMembers = 5
|
||||
var/teamTwoMembers = 5
|
||||
var/datum/preferences/A = new()
|
||||
var/datum/character_save/S = new()
|
||||
S.randomise()
|
||||
for(var/thing in GLOB.landmarks_list)
|
||||
var/obj/effect/landmark/L = thing
|
||||
if(L.name == "tdome1")
|
||||
@@ -585,7 +587,7 @@
|
||||
|
||||
var/mob/living/carbon/human/newMember = new(L.loc)
|
||||
|
||||
A.copy_to(newMember)
|
||||
S.copy_to(newMember)
|
||||
|
||||
newMember.dna.ready_dna(newMember)
|
||||
|
||||
@@ -607,7 +609,7 @@
|
||||
|
||||
var/mob/living/carbon/human/newMember = new(L.loc)
|
||||
|
||||
A.copy_to(newMember)
|
||||
S.copy_to(newMember)
|
||||
|
||||
newMember.dna.ready_dna(newMember)
|
||||
|
||||
|
||||
@@ -11,8 +11,9 @@
|
||||
continue
|
||||
if(is_type_in_list(H.dna.species, incompatible_species))
|
||||
H.set_species(/datum/species/human)
|
||||
var/datum/preferences/A = new() // Randomize appearance
|
||||
A.copy_to(H)
|
||||
var/datum/character_save/S = new() // Randomize appearance
|
||||
S.randomise()
|
||||
S.copy_to(H)
|
||||
|
||||
SSticker.mode.traitors += H.mind
|
||||
H.mind.special_role = SPECIAL_ROLE_TRAITOR
|
||||
|
||||
@@ -12,8 +12,9 @@
|
||||
continue
|
||||
if(is_type_in_list(H.dna.species, incompatible_species))
|
||||
H.set_species(/datum/species/human)
|
||||
var/datum/preferences/A = new() // Randomize appearance
|
||||
A.copy_to(H)
|
||||
var/datum/character_save/S = new() // Randomize appearance
|
||||
S.randomise()
|
||||
S.copy_to(H)
|
||||
|
||||
for(var/obj/item/I in H)
|
||||
if(istype(I, /obj/item/implant))
|
||||
|
||||
@@ -396,10 +396,12 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
new_character.age = record_found.fields["age"]
|
||||
new_character.dna.blood_type = record_found.fields["blood_type"]
|
||||
else
|
||||
// We make a random character
|
||||
new_character.change_gender(pick(MALE,FEMALE))
|
||||
var/datum/preferences/A = new()
|
||||
A.real_name = G_found.real_name
|
||||
A.copy_to(new_character)
|
||||
var/datum/character_save/S = new()
|
||||
S.randomise()
|
||||
S.real_name = G_found.real_name
|
||||
S.copy_to(new_character)
|
||||
|
||||
if(!new_character.real_name)
|
||||
new_character.real_name = random_name(new_character.gender)
|
||||
|
||||
@@ -138,13 +138,14 @@ GLOBAL_VAR_INIT(sent_strike_team, 0)
|
||||
var/commando_leader_rank = pick("Lieutenant", "Captain", "Major")
|
||||
var/commando_name = pick(GLOB.commando_names)
|
||||
|
||||
var/datum/preferences/A = new()//Randomize appearance for the commando.
|
||||
var/datum/character_save/S = new()//Randomize appearance for the commando.
|
||||
S.randomise()
|
||||
if(is_leader)
|
||||
A.age = rand(35,45)
|
||||
A.real_name = "[commando_leader_rank] [commando_name]"
|
||||
S.age = rand(35,45)
|
||||
S.real_name = "[commando_leader_rank] [commando_name]"
|
||||
else
|
||||
A.real_name = "[commando_name]"
|
||||
A.copy_to(new_commando)
|
||||
S.real_name = "[commando_name]"
|
||||
S.copy_to(new_commando)
|
||||
|
||||
|
||||
new_commando.dna.ready_dna(new_commando)//Creates DNA.
|
||||
|
||||
@@ -104,13 +104,14 @@ GLOBAL_VAR_INIT(sent_syndicate_strike_team, 0)
|
||||
var/syndicate_commando_rank = pick("Corporal", "Sergeant", "Staff Sergeant", "Sergeant 1st Class", "Master Sergeant", "Sergeant Major")
|
||||
var/syndicate_commando_name = pick(GLOB.last_names)
|
||||
|
||||
var/datum/preferences/A = new()//Randomize appearance for the commando.
|
||||
var/datum/character_save/S = new()//Randomize appearance for the commando.
|
||||
S.randomise()
|
||||
if(is_leader)
|
||||
A.age = rand(35,45)
|
||||
A.real_name = "[syndicate_commando_leader_rank] [syndicate_commando_name]"
|
||||
S.age = rand(35,45)
|
||||
S.real_name = "[syndicate_commando_leader_rank] [syndicate_commando_name]"
|
||||
else
|
||||
A.real_name = "[syndicate_commando_rank] [syndicate_commando_name]"
|
||||
A.copy_to(new_syndicate_commando)
|
||||
S.real_name = "[syndicate_commando_rank] [syndicate_commando_name]"
|
||||
S.copy_to(new_syndicate_commando)
|
||||
|
||||
new_syndicate_commando.dna.ready_dna(new_syndicate_commando)//Creates DNA.
|
||||
|
||||
|
||||
@@ -17,7 +17,19 @@
|
||||
return
|
||||
else
|
||||
target_ckey = new_ckey
|
||||
if(check_watchlist(target_ckey))
|
||||
|
||||
var/already_watched = FALSE
|
||||
var/datum/db_query/query_watch = SSdbcore.NewQuery("SELECT reason FROM watch WHERE ckey=:target_ckey", list(
|
||||
"target_ckey" = target_ckey
|
||||
))
|
||||
if(!query_watch.warn_execute())
|
||||
qdel(query_watch)
|
||||
return
|
||||
if(query_watch.NextRow())
|
||||
already_watched = TRUE
|
||||
qdel(query_watch)
|
||||
|
||||
if(already_watched)
|
||||
to_chat(usr, "<span class='redtext'>[target_ckey] is already on the watchlist.</span>")
|
||||
return
|
||||
var/reason = input(usr,"Please state the reason","Reason") as message|null
|
||||
@@ -132,18 +144,3 @@
|
||||
output += "<br>[reason]<hr style='background:#000000; border:0; height:1px'>"
|
||||
usr << browse(output, "window=watchwin;size=900x500")
|
||||
qdel(query_watchlist)
|
||||
|
||||
/proc/check_watchlist(target_ckey)
|
||||
var/datum/db_query/query_watch = SSdbcore.NewQuery("SELECT reason FROM watch WHERE ckey=:target_ckey", list(
|
||||
"target_ckey" = target_ckey
|
||||
))
|
||||
if(!query_watch.warn_execute())
|
||||
qdel(query_watch)
|
||||
return
|
||||
if(query_watch.NextRow())
|
||||
var/entry = query_watch.item[1]
|
||||
qdel(query_watch)
|
||||
return entry
|
||||
else
|
||||
qdel(query_watch)
|
||||
return 0
|
||||
|
||||
Reference in New Issue
Block a user