mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-17 05:12:40 +00:00
In total: - Adds span defines for `reallybig hypnophrase`, `big warning`, `header` - Fixes a missing apostrophe for hypno stare - Makes a special exception for cuddling.dm, which uses an irregular span - Puts the spans file back
113 lines
3.8 KiB
Plaintext
113 lines
3.8 KiB
Plaintext
/client/check_ip_intel()
|
|
. = ..()
|
|
if(!(ip_intel != initial(ip_intel) && ip_intel >= CONFIG_GET(number/ipintel_rating_bad)))
|
|
uses_vpn = FALSE
|
|
return .
|
|
|
|
uses_vpn = TRUE //Puts the vpn flag on the player playtimes
|
|
|
|
//Kicks them automatically if 100% sure and they're not whitelisted
|
|
if(!CONFIG_GET(flag/kick_vpn) || ip_intel < 1)
|
|
return .
|
|
var/list/whitelist = CONFIG_GET(multi_keyed_flag/vpn_bypass)
|
|
if(whitelist.Find(ckey(ckey)))
|
|
log_admin("[key_name(src)] was allowed to join although they're using a vpn")
|
|
return .
|
|
|
|
to_chat(src, span_danger("You have been kicked from the server because your IP has been flagged as a VPN. \
|
|
Please turn it off in order to connect or contact staff in case this is an error."))
|
|
var/logg = "[key_name(src)] kicked for failing the vpn check."
|
|
log_admin(logg)
|
|
message_admins(span_adminnotice(logg))
|
|
qdel(src)
|
|
|
|
/client/proc/toggle_quirk(mob/living/carbon/human/H)
|
|
if (!istype(H))
|
|
to_chat(usr, "This can only be used on /mob/living/carbon/human.")
|
|
return
|
|
|
|
var/list/options = list("Clear"="Clear")
|
|
for(var/x in subtypesof(/datum/quirk))
|
|
var/datum/quirk/T = x
|
|
var/qname = initial(T.name)
|
|
options[H.has_quirk(T) ? "[qname] (Remove)" : "[qname] (Add)"] = T
|
|
|
|
var/result = tgui_input_list(usr, "Choose quirk to add/remove", "Mob Quirks", options) // input(usr, "Choose quirk to add/remove","Quirk Mod") as null|anything in options
|
|
|
|
if(QDELETED(H))
|
|
to_chat(usr, "Mob doesn't exist anymore")
|
|
return
|
|
|
|
if(result)
|
|
if(result == "Clear")
|
|
for(var/datum/quirk/q in H.roundstart_quirks)
|
|
H.remove_quirk(q.type)
|
|
else
|
|
var/T = options[result]
|
|
if(H.has_quirk(T))
|
|
H.remove_quirk(T)
|
|
else
|
|
H.add_quirk(T,TRUE)
|
|
|
|
/client/proc/toggle_spell(mob/M)
|
|
var/list/options = list("Clear"="Clear")
|
|
for(var/x in GLOB.spells)
|
|
var/obj/effect/proc_holder/spell/spell = x
|
|
var/spell_name = initial(spell.name)
|
|
options[M.has_spell(spell) ? "[spell_name] (Remove)" : "[spell_name] (Add)"] = spell
|
|
|
|
var/spell_to_modify = tgui_input_list(usr, "Choose spell to add/remove", "Mob Spells", options) // input(usr, "Choose quirk to add/remove","Quirk Mod") as null|anything in options
|
|
|
|
if(QDELETED(M))
|
|
to_chat(usr, "Mob doesn't exist anymore")
|
|
return
|
|
|
|
if(spell_to_modify)
|
|
if(spell_to_modify == "Clear")
|
|
if (!M.mind)
|
|
return
|
|
for(var/obj/effect/proc_holder/spell/S in M.mind.spell_list)
|
|
M.mind.RemoveSpell(S.type)
|
|
else
|
|
var/T = options[spell_to_modify]
|
|
if(M.has_spell(T))
|
|
M.mind.RemoveSpell(T)
|
|
else
|
|
if (M.mind)
|
|
M.mind.AddSpell(new T)
|
|
else
|
|
M.AddSpell(new T)
|
|
message_admins(span_danger("Spells given to mindless mobs will not be transferred in mindswap or cloning!"))
|
|
|
|
/client/proc/teach_martial_art(mob/living/carbon/C)
|
|
if (!istype(C))
|
|
to_chat(usr, "This can only be used on /mob/living/carbon.")
|
|
return
|
|
|
|
var/list/artpaths = subtypesof(/datum/martial_art)
|
|
var/list/artnames = list()
|
|
for(var/i in artpaths)
|
|
var/datum/martial_art/M = i
|
|
artnames[initial(M.name)] = M
|
|
var/result = tgui_input_list(usr, "Choose the martial art to teach", "JUDO CHOP", artnames) // input(usr, "Choose the martial art to teach","JUDO CHOP") as null|anything in artnames
|
|
|
|
if(QDELETED(C))
|
|
to_chat(usr, "Mob doesn't exist anymore")
|
|
return
|
|
if(result)
|
|
var/chosenart = artnames[result]
|
|
var/datum/martial_art/MA = new chosenart
|
|
MA.teach(C)
|
|
log_admin("[key_name(usr)] has taught [MA] to [key_name(C)].")
|
|
message_admins(span_notice("[key_name_admin(usr)] has taught [MA] to [key_name_admin(C)]."))
|
|
|
|
/client/proc/set_species(mob/living/carbon/human/H)
|
|
if (istype(H))
|
|
var/result = tgui_input_list(usr, "Choose a new species","Species", GLOB.species_list)
|
|
if(QDELETED(H))
|
|
to_chat(usr, "Mob doesn't exist anymore")
|
|
return
|
|
if(result)
|
|
admin_ticket_log("[key_name_admin(usr)] has modified the bodyparts of [H] to [result]")
|
|
H.set_species(GLOB.species_list[result])
|