mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-09 07:46:20 +00:00
## About The Pull Request So A) Modifying traits pretty self explanatory was a missing check B) imo given the type of data that can be seen in vv this shouldnt be exposed to literally anyone with an admin datum especially considering actually showing it to someone else and editing it is R_admin and r_varedit the giant diff is just indentation change Showing vv to other players is unaffected by this ## Changelog 🆑 fix: fixed some vv issues /🆑 --------- Co-authored-by: TiviPlus <572233640+TiviPlus@users.noreply.com> Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
64 lines
2.4 KiB
Plaintext
64 lines
2.4 KiB
Plaintext
/datum/proc/CanProcCall(procname)
|
|
return TRUE
|
|
|
|
/datum/proc/can_vv_get(var_name)
|
|
if(var_name == NAMEOF(src, vars))
|
|
return FALSE
|
|
return TRUE
|
|
|
|
/// Called when a var is edited with the new value to change to
|
|
/datum/proc/vv_edit_var(var_name, var_value)
|
|
if(var_name == NAMEOF(src, vars))
|
|
return FALSE
|
|
vars[var_name] = var_value
|
|
datum_flags |= DF_VAR_EDITED
|
|
return TRUE
|
|
|
|
/datum/proc/vv_get_var(var_name)
|
|
switch(var_name)
|
|
if (NAMEOF(src, vars))
|
|
return debug_variable(var_name, list(), 0, src)
|
|
return debug_variable(var_name, vars[var_name], 0, src)
|
|
|
|
/datum/proc/can_vv_mark()
|
|
return TRUE
|
|
|
|
/**
|
|
* Gets all the dropdown options in the vv menu.
|
|
* When overriding, make sure to call . = ..() first and append to the result, that way parent items are always at the top and child items are further down.
|
|
* Add separators by doing VV_DROPDOWN_OPTION("", "---")
|
|
*/
|
|
/datum/proc/vv_get_dropdown()
|
|
SHOULD_CALL_PARENT(TRUE)
|
|
|
|
. = list()
|
|
VV_DROPDOWN_OPTION("", "---")
|
|
VV_DROPDOWN_OPTION(VV_HK_CALLPROC, "Call Proc")
|
|
VV_DROPDOWN_OPTION(VV_HK_MARK, "Mark Object")
|
|
VV_DROPDOWN_OPTION(VV_HK_TAG, "Tag Datum")
|
|
VV_DROPDOWN_OPTION(VV_HK_DELETE, "Delete")
|
|
VV_DROPDOWN_OPTION(VV_HK_EXPOSE, "Show VV To Player")
|
|
VV_DROPDOWN_OPTION(VV_HK_ADDCOMPONENT, "Add Component/Element")
|
|
VV_DROPDOWN_OPTION(VV_HK_REMOVECOMPONENT, "Remove Component/Element")
|
|
VV_DROPDOWN_OPTION(VV_HK_MASS_REMOVECOMPONENT, "Mass Remove Component/Element")
|
|
VV_DROPDOWN_OPTION(VV_HK_MODIFY_TRAITS, "Modify Traits")
|
|
|
|
/**
|
|
* This proc is only called if everything topic-wise is verified. The only verifications that should happen here is things like permission checks!
|
|
* href_list is a reference, modifying it in these procs WILL change the rest of the proc in topic.dm of admin/view_variables!
|
|
* This proc is for "high level" actions like admin heal/set species/etc/etc. The low level debugging things should go in admin/view_variables/topic_basic.dm in case this runtimes.
|
|
*/
|
|
/datum/proc/vv_do_topic(list/href_list)
|
|
if(!usr || !usr.client || !usr.client.holder || !check_rights(R_VAREDIT))
|
|
return FALSE //This is VV, not to be called by anything else.
|
|
if(SEND_SIGNAL(src, COMSIG_VV_TOPIC, usr, href_list) & COMPONENT_VV_HANDLED)
|
|
return FALSE
|
|
if(href_list[VV_HK_MODIFY_TRAITS])
|
|
usr.client.holder.modify_traits(src)
|
|
return TRUE
|
|
|
|
/datum/proc/vv_get_header()
|
|
. = list()
|
|
if(("name" in vars) && !isatom(src))
|
|
. += "<b>[vars["name"]]</b><br>"
|