mirror of
https://github.com/KabKebab/GS13.git
synced 2026-07-15 09:57:49 +01:00
Merge branch 'master' into plant-adding
This commit is contained in:
@@ -473,12 +473,27 @@
|
||||
for(var/obj/item/organ/genital/G in internal_organs)
|
||||
if(G.can_masturbate_with) //filter out what you can't masturbate with
|
||||
if(G.is_exposed(worn_stuff)) //Nude or through_clothing
|
||||
genitals_list += G
|
||||
if(!G.dontlist)
|
||||
genitals_list += G
|
||||
if(genitals_list.len)
|
||||
ret_organ = input(src, "with what?", "Masturbate", null) as null|obj in genitals_list
|
||||
return ret_organ
|
||||
return null //error stuff
|
||||
|
||||
/mob/living/carbon/human/proc/target_genitals(mob/living/carbon/human/T) //used for targeting others
|
||||
var/obj/item/organ/genital/ret_organ
|
||||
var/list/genitals_list = list()
|
||||
var/list/worn_stuff = get_equipped_items()
|
||||
|
||||
for(var/obj/item/organ/genital/G in T.internal_organs)
|
||||
if(G.can_climax) //filter out what you can't masturbate with
|
||||
if(G.is_exposed(worn_stuff)) //Nude or through_clothing
|
||||
if(!G.dontlist)
|
||||
genitals_list += G
|
||||
if(genitals_list.len)
|
||||
ret_organ = input(src, "", "Gentials", null) as null|obj in genitals_list
|
||||
return ret_organ
|
||||
return null //error stuff
|
||||
|
||||
/mob/living/carbon/human/proc/pick_climax_genitals()
|
||||
var/obj/item/organ/genital/ret_organ
|
||||
@@ -488,7 +503,8 @@
|
||||
for(var/obj/item/organ/genital/G in internal_organs)
|
||||
if(G.can_climax) //filter out what you can't masturbate with
|
||||
if(G.is_exposed(worn_stuff)) //Nude or through_clothing
|
||||
genitals_list += G
|
||||
if(!G.dontlist)
|
||||
genitals_list += G
|
||||
if(genitals_list.len)
|
||||
ret_organ = input(src, "with what?", "Climax", null) as null|obj in genitals_list
|
||||
return ret_organ
|
||||
|
||||
@@ -1,21 +1,19 @@
|
||||
/obj/item/organ/genital/belly //I know, I know a belly aint a genital. but it is in the sake of code.
|
||||
name = "belly"
|
||||
desc = "a belly."
|
||||
desc = "You see a belly on their midsection."
|
||||
icon_state = "belly"
|
||||
icon = 'modular_citadel/icons/obj/genitals/breasts.dmi'
|
||||
zone = "chest"
|
||||
slot = "belly"
|
||||
w_class = 3
|
||||
size = 1
|
||||
var/breast_values = list ("a" = 1, "b" = 2, "c" = 3, "d" = 4, "e" = 5, "f" = 6, "g" = 7, "h" = 8, "i" = 9, "j" = 10, "k" = 11, "l" = 12, "m" = 13, "n" = 14, "o" = 15, "huge" = 16, "massive" = 17, "giga" = 25, "impossible" = 30, "flat" = 0) // Note: Do not forget to define new sizes.
|
||||
var/statuscheck = FALSE
|
||||
shape = "Pair"
|
||||
can_masturbate_with = TRUE
|
||||
masturbation_verb = "massage"
|
||||
can_climax = TRUE
|
||||
fluid_transfer_factor = 0.5
|
||||
can_climax = FALSE
|
||||
var/sent_full_message = TRUE //defaults to 1 since they're full to start
|
||||
|
||||
|
||||
/obj/item/organ/genital/belly/on_life()
|
||||
if(QDELETED(src))
|
||||
return
|
||||
@@ -26,7 +24,7 @@
|
||||
var/string
|
||||
if(owner)
|
||||
if(owner.dna.species.use_skintones && owner.dna.features["genitals_use_skintone"])
|
||||
if(ishuman(owner)) .
|
||||
if(ishuman(owner))
|
||||
var/mob/living/carbon/human/H = owner
|
||||
color = "#[skintone2hex(H.skin_tone)]"
|
||||
else
|
||||
|
||||
@@ -12,3 +12,4 @@
|
||||
var/cum_rate = CUM_RATE
|
||||
var/cum_efficiency = CUM_EFFICIENCY
|
||||
var/obj/item/organ/ovipositor/linked_ovi
|
||||
dontlist = TRUE
|
||||
@@ -23,6 +23,8 @@
|
||||
var/hidden = FALSE
|
||||
var/colourtint = ""
|
||||
var/mode = "clothes"
|
||||
var/obj/item/equipment //for fun stuff that goes on the gentials/maybe rings down the line
|
||||
var/dontlist = FALSE
|
||||
|
||||
/obj/item/organ/genital/Initialize()
|
||||
. = ..()
|
||||
@@ -229,6 +231,11 @@
|
||||
B.color = "#[dna.features["belly_color"]]"
|
||||
B.update()
|
||||
|
||||
if(dna.features["hide_belly"]) //autohide bellies if they have the option ticked.
|
||||
B.toggle_visibility("Always hidden")
|
||||
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/give_breasts()
|
||||
if(!dna)
|
||||
return FALSE
|
||||
@@ -422,9 +429,9 @@
|
||||
genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size]_[aroused_state]_[layertext]"
|
||||
colourcode = S.color_src
|
||||
|
||||
if(G.slot == "belly")
|
||||
if(G.slot == "belly") //we have a different size system to the rest of the genitals
|
||||
genital_overlay.icon = 'hyperstation/icons/obj/genitals/belly.dmi'
|
||||
genital_overlay.icon_state = "belly"
|
||||
genital_overlay.icon_state = "belly_[size]"
|
||||
colourcode = "belly_color"
|
||||
|
||||
|
||||
@@ -433,7 +440,6 @@
|
||||
|
||||
if(use_skintones && H.dna.features["genitals_use_skintone"])
|
||||
genital_overlay.color = "#[skintone2hex(H.skin_tone)]"
|
||||
// genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size]-s_[aroused_state]_[layertext]"
|
||||
if (colourtint)
|
||||
genital_overlay.color = "#[colourtint]"
|
||||
else
|
||||
|
||||
@@ -14,3 +14,4 @@
|
||||
var/knot_girth_ratio = KNOT_GIRTH_RATIO_DEF
|
||||
var/list/oviflags = list()
|
||||
var/obj/item/organ/eggsack/linked_eggsack
|
||||
dontlist = TRUE
|
||||
@@ -44,21 +44,26 @@
|
||||
size = 2
|
||||
if(owner.has_status_effect(/datum/status_effect/chem/penis_enlarger))
|
||||
o.remove_status_effect(/datum/status_effect/chem/penis_enlarger)
|
||||
if(11 to 20) //If massive
|
||||
if(11 to 18) //If massive
|
||||
length = cached_length
|
||||
size = 3
|
||||
if(owner.has_status_effect(/datum/status_effect/chem/penis_enlarger))
|
||||
o.remove_status_effect(/datum/status_effect/chem/penis_enlarger)
|
||||
if(21 to 28) //If massive and due for large effects
|
||||
if(18 to 26) //If massive and due for large effects
|
||||
length = cached_length
|
||||
size = 3
|
||||
if(!owner.has_status_effect(/datum/status_effect/chem/penis_enlarger))
|
||||
o.apply_status_effect(/datum/status_effect/chem/penis_enlarger)
|
||||
if(28 to INFINITY) //If comical
|
||||
if(26 to 34) //If hyper
|
||||
length = cached_length
|
||||
size = 4 //no new sprites for anything larger yet
|
||||
if(!owner.has_status_effect(/datum/status_effect/chem/penis_enlarger))
|
||||
o.apply_status_effect(/datum/status_effect/chem/penis_enlarger)
|
||||
if(34 to INFINITY) //If extreme-hyper
|
||||
length = cached_length
|
||||
size = 5 //no new sprites for anything larger yet
|
||||
if(!owner.has_status_effect(/datum/status_effect/chem/penis_enlarger))
|
||||
o.apply_status_effect(/datum/status_effect/chem/penis_enlarger)
|
||||
|
||||
if (round(length) > round(prev_length))
|
||||
to_chat(o, "<span class='warning'>Your [pick(GLOB.gentlemans_organ_names)] [pick("swells up to", "flourishes into", "expands into", "bursts forth into", "grows eagerly into", "amplifys into")] a [uppertext(round(length))] inch penis.</b></span>")
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
var/sent_full_message = TRUE //defaults to 1 since they're full to start
|
||||
|
||||
|
||||
|
||||
/obj/item/organ/genital/testicles/on_life()
|
||||
if(QDELETED(src))
|
||||
return
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
fluid_id = /datum/reagent/consumable/femcum
|
||||
producing = TRUE
|
||||
var/pregnant = FALSE //this is for pregnancy code
|
||||
dontlist = TRUE
|
||||
|
||||
|
||||
/obj/item/organ/genital/womb/on_life()
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
path = /obj/item/storage/pill_bottle/heat
|
||||
ckeywhitelist = list("natak")
|
||||
|
||||
/datum/gear/natak
|
||||
/datum/gear/crystalshard
|
||||
name = "Crystalline Shards"
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/clothing/head/crystalline
|
||||
@@ -105,3 +105,28 @@
|
||||
path = /obj/item/toy/plush/mammal/lyricalpaws
|
||||
ckeywhitelist = list("lyricalpaws")
|
||||
|
||||
/datum/gear/cherostavikmask
|
||||
name = "Keaton Mask"
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/clothing/mask/keaton
|
||||
ckeywhitelist = list("cherostavik")
|
||||
|
||||
//if this works then ckey has to be all lowercase.
|
||||
//Second change maybe it has to do with underscore's (_) as well. Also fuck you it doesn't want to appear in suit/uniform it's going in backpack
|
||||
/datum/gear/enzo_leonplushie
|
||||
name = "Enzo Leon Plushie"
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/toy/plush/mammal/enzo_leon
|
||||
ckeywhitelist = list("enzoleon")
|
||||
|
||||
/datum/gear/enzo_leonshirt
|
||||
name = "Altevain Standard-Issue Uniform"
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/clothing/under/enzoshirt
|
||||
ckeywhitelist = list("enzoleon")
|
||||
|
||||
/datum/gear/enzo_leonjacket
|
||||
name = "Altevain Colony-Ship Command Jacket"
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/clothing/suit/toggle/enzojacket
|
||||
ckeywhitelist = list("enzoleon")
|
||||
|
||||
@@ -1,41 +1,41 @@
|
||||
/datum/gear/navyblueuniformhos
|
||||
name = "Head of Security navyblue uniform"
|
||||
name = "Head of Security's navyblue uniform"
|
||||
category = SLOT_W_UNIFORM
|
||||
path = /obj/item/clothing/under/rank/head_of_security/navyblue
|
||||
restricted_roles = list("Head of Security")
|
||||
|
||||
/datum/gear/navybluehosberet
|
||||
name = "Head of security's Naviblue beret"
|
||||
name = "Head of Security's navyblue beret"
|
||||
category = SLOT_HEAD
|
||||
path = /obj/item/clothing/head/beret/sec/navyhos
|
||||
restricted_roles = list("Head of Security")
|
||||
|
||||
/datum/gear/navybluejackethos
|
||||
name = "head of security's navyblue jacket"
|
||||
name = "Head of Security's navyblue jacket"
|
||||
category = SLOT_WEAR_SUIT
|
||||
path = /obj/item/clothing/suit/security/hos
|
||||
restricted_roles = list("Head of Security")
|
||||
|
||||
/datum/gear/navybluejacketofficer
|
||||
name = "security officer's navyblue jacket"
|
||||
name = "Security Officer's navyblue jacket"
|
||||
category = SLOT_WEAR_SUIT
|
||||
path = /obj/item/clothing/suit/security/officer
|
||||
restricted_roles = list("Security Officer")
|
||||
|
||||
/datum/gear/navyblueofficerberet
|
||||
name = "Security officer's Navyblue beret"
|
||||
name = "Security Officer's navyblue beret"
|
||||
category = SLOT_HEAD
|
||||
path = /obj/item/clothing/head/beret/sec/navyofficer
|
||||
restricted_roles = list("Security Officer")
|
||||
|
||||
/datum/gear/navyblueuniformofficer
|
||||
name = "Security officer navyblue uniform"
|
||||
name = "Security Officer's navyblue uniform"
|
||||
category = SLOT_W_UNIFORM
|
||||
path = /obj/item/clothing/under/rank/security/navyblue
|
||||
restricted_roles = list("Security Officer")
|
||||
|
||||
/datum/gear/navybluejacketwarden
|
||||
name = "warden navyblue jacket"
|
||||
name = "Warden's navyblue jacket"
|
||||
category = SLOT_WEAR_SUIT
|
||||
path = /obj/item/clothing/suit/security/warden
|
||||
restricted_roles = list("Warden")
|
||||
@@ -47,7 +47,7 @@
|
||||
restricted_roles = list("Warden")
|
||||
|
||||
/datum/gear/navyblueuniformwarden
|
||||
name = "Warden navyblue uniform"
|
||||
name = "Warden's navyblue uniform"
|
||||
category = SLOT_W_UNIFORM
|
||||
path = /obj/item/clothing/under/rank/warden/navyblue
|
||||
restricted_roles = list("Warden")
|
||||
@@ -59,13 +59,13 @@
|
||||
restricted_roles = list("Security Officer", "Warden", "Head of Security")
|
||||
|
||||
/datum/gear/hosskirt
|
||||
name = "Head of security's skirt"
|
||||
name = "Head of Security's skirt"
|
||||
category = SLOT_W_UNIFORM
|
||||
path = /obj/item/clothing/under/rank/head_of_security/skirt
|
||||
restricted_roles = list("Head of Security")
|
||||
|
||||
/datum/gear/sechud
|
||||
name = "Security Hud"
|
||||
name = "Security HUD"
|
||||
category = SLOT_GLASSES
|
||||
path = /obj/item/clothing/glasses/hud/security
|
||||
restricted_roles = list("Security Officer", "Warden", "Head of Security")
|
||||
|
||||
@@ -213,3 +213,8 @@
|
||||
name = "Black Suit Jacket"
|
||||
category = SLOT_WEAR_SUIT
|
||||
path = /obj/item/clothing/suit/toggle/lawyer/black
|
||||
|
||||
/datum/gear/nemes
|
||||
name = "Pharoah tunic"
|
||||
category = SLOT_WEAR_SUIT
|
||||
path = /obj/item/clothing/suit/nemes
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
path = /obj/item/clothing/under/lawyer/galaxy_blue
|
||||
cost = 3
|
||||
|
||||
|
||||
/datum/gear/galaxy_r
|
||||
name = "Pulsar Gonne"
|
||||
category = SLOT_W_UNIFORM
|
||||
@@ -193,7 +194,7 @@
|
||||
// Pantsless Sweaters
|
||||
|
||||
/datum/gear/turtleneck
|
||||
name = "Tactitool Turtleneck"
|
||||
name = "Tactifool Turtleneck"
|
||||
category = SLOT_W_UNIFORM
|
||||
path = /obj/item/clothing/under/syndicate/cosmetic
|
||||
|
||||
|
||||
@@ -89,6 +89,7 @@
|
||||
//belly
|
||||
WRITE_FILE(S["feature_has_belly"], features["has_belly"])
|
||||
WRITE_FILE(S["feature_belly_color"], features["belly_color"])
|
||||
WRITE_FILE(S["feature_hide_belly"], features["hide_belly"])
|
||||
|
||||
//gear loadout
|
||||
if(islist(chosen_gear))
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
new /obj/item/clothing/under/rank/chief_medical_officer/turtleneck(src)
|
||||
|
||||
/obj/item/clothing/under/syndicate/cosmetic
|
||||
name = "tactitool turtleneck"
|
||||
name = "tactifool turtleneck"
|
||||
desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-."
|
||||
icon_state = "tactifool"
|
||||
item_state = "bl_suit"
|
||||
@@ -32,9 +32,6 @@
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
|
||||
|
||||
/obj/item/clothing/under/syndicate/tacticool
|
||||
has_sensor = TRUE
|
||||
|
||||
// Sweaters are good enough for this category too.
|
||||
|
||||
/obj/item/clothing/under/bb_sweater
|
||||
|
||||
@@ -876,6 +876,10 @@ datum/sprite_accessory/ears/human/gret
|
||||
name = "Otie"
|
||||
icon_state = "otie"
|
||||
|
||||
/datum/sprite_accessory/mam_snouts/orca
|
||||
name = "Orca"
|
||||
icon_state = "orca"
|
||||
|
||||
/datum/sprite_accessory/mam_snouts/pede
|
||||
name = "Scolipede"
|
||||
icon_state = "pede"
|
||||
@@ -984,6 +988,36 @@ datum/sprite_accessory/ears/human/gret
|
||||
name = "Synthetic Lizard Barless Alt - Snout Tertiary Under"
|
||||
icon_state = "synthlizbarlessalt_tertunder"
|
||||
|
||||
/datum/sprite_accessory/mam_snouts/synthliz/synthlizaxon
|
||||
color_src = MATRIXED
|
||||
name = "Synthetic Lizard - AXON"
|
||||
icon_state = "synthlizaxon"
|
||||
|
||||
/datum/sprite_accessory/mam_snouts/synthliz/synthlizaxon_alt
|
||||
color_src = MATRIXED
|
||||
name = "Synthetic Lizard - AXON Alt"
|
||||
icon_state = "synthlizaxon_alt"
|
||||
|
||||
/datum/sprite_accessory/mam_snouts/synthliz/synthlizaxon_tert
|
||||
color_src = MATRIXED
|
||||
name = "Synthetic Lizard - AXON Tertiary"
|
||||
icon_state = "synthlizaxon_tert"
|
||||
|
||||
/datum/sprite_accessory/mam_snouts/synthliz/synthlizproto1
|
||||
color_src = MATRIXED
|
||||
name = "Synthetic Lizard - Prototype Visor 1"
|
||||
icon_state = "synthlizproto1"
|
||||
|
||||
/datum/sprite_accessory/mam_snouts/synthliz/synthlizproto2
|
||||
color_src = MATRIXED
|
||||
name = "Synthetic Lizard - Prototype Visor 2"
|
||||
icon_state = "synthlizproto2"
|
||||
|
||||
/datum/sprite_accessory/mam_snouts/synthliz/synthlizspectre
|
||||
color_src = MATRIXED
|
||||
name = "Synthetic Lizard - Spectre"
|
||||
icon_state = "synthlizspectre"
|
||||
|
||||
/******************************************
|
||||
**************** Snouts *******************
|
||||
*************but higher up*****************/
|
||||
@@ -1166,7 +1200,6 @@ datum/sprite_accessory/ears/human/gret
|
||||
icon_state = "gret"
|
||||
color_src = MUTCOLORS3
|
||||
|
||||
|
||||
/datum/sprite_accessory/mam_ears/elephant
|
||||
name = "Elephant"
|
||||
icon_state = "elephant"
|
||||
@@ -1183,6 +1216,10 @@ datum/sprite_accessory/ears/human/gret
|
||||
name = "Fox"
|
||||
icon_state = "fox"
|
||||
|
||||
/datum/sprite_accessory/mam_ears/goathorns
|
||||
name = "Goat Horns"
|
||||
icon_state = "goathorns"
|
||||
|
||||
/datum/sprite_accessory/mam_ears/husky
|
||||
name = "Husky"
|
||||
icon_state = "wolf"
|
||||
@@ -1537,6 +1574,18 @@ datum/sprite_accessory/mam_tails/insect
|
||||
name = "Redpanda"
|
||||
icon_state = "redpanda"
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/abs
|
||||
name = "Abdominals"
|
||||
icon_state = "abs"
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/abstwo
|
||||
name = "Abdominals Two-Tones"
|
||||
icon_state = "absbelly"
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/absthree
|
||||
name = "Abdominals Three-Tones"
|
||||
icon_state = "absarms"
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/bee
|
||||
name = "Bee"
|
||||
icon_state = "bee"
|
||||
@@ -2148,6 +2197,21 @@ datum/sprite_accessory/mam_tails/insect
|
||||
name = "Synthetic Lizard - Antennae Plate"
|
||||
icon_state = "synth_antennaeover"
|
||||
|
||||
/datum/sprite_accessory/antenna/synthliz/synthliz_integrator
|
||||
color_src = MATRIXED
|
||||
name = "Synthetic Lizard - Integrator Horns"
|
||||
icon_state = "synth_integrator"
|
||||
|
||||
/datum/sprite_accessory/antenna/synthliz/synthliz_antennaquad
|
||||
color_src = MATRIXED
|
||||
name = "Synthetic Lizard - Quad Antennae"
|
||||
icon_state = "synth_antennaquad"
|
||||
|
||||
/datum/sprite_accessory/antenna/synthliz/synthliz_cobrahood
|
||||
color_src = MATRIXED
|
||||
name = "Synthetic Lizard - Cobra Hood"
|
||||
icon_state = "synth_cobrahood"
|
||||
|
||||
// *** Snooooow flaaaaake ***
|
||||
|
||||
/datum/sprite_accessory/horns/guilmon
|
||||
|
||||
@@ -201,7 +201,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
|
||||
. = ..()
|
||||
if(purity < 0.5)//DO NOT SPLIT INTO DIFFERENT CHEM: This relies on DoNotSplit - has to be done this way.
|
||||
if(volume < 0.5)//You don't get to escape that easily
|
||||
FallInLove(pick(GLOB.player_list), M)
|
||||
//FallInLove(pick(GLOB.player_list), M) //goodbye
|
||||
M.reagents.remove_reagent(type, volume)
|
||||
|
||||
if (M.ckey == creatorID && creatorName == M.real_name)//If the creator drinks it, they fall in love randomly. If someone else drinks it, the creator falls in love with them.
|
||||
|
||||
@@ -286,6 +286,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
|
||||
M.adjustCloneLoss(-2, 0)
|
||||
M.setOrganLoss(ORGAN_SLOT_BRAIN, -1)
|
||||
M.nutrition += 10
|
||||
M.thirst += 10
|
||||
..()
|
||||
|
||||
//Unobtainable, used if SDGF is impure but not too impure
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
glass_icon_state = "semen"
|
||||
glass_name = "chalice of semen"
|
||||
glass_desc = "In the Sumerian mythology, Enki - the God of water, was believed to have created the Tigris and Euphrates rivers by masturbating and ejaculating into their empty riverbeds."
|
||||
hydration = 2 * REAGENTS_METABOLISM //thats one way to stay hydrated...
|
||||
|
||||
/datum/reagent/consumable/semen/reaction_turf(turf/T, reac_volume)
|
||||
if(!istype(T))
|
||||
@@ -55,6 +56,7 @@
|
||||
color = "#AAAAAA77"
|
||||
can_synth = FALSE
|
||||
nutriment_factor = 0.5 * REAGENTS_METABOLISM
|
||||
hydration = 1 * REAGENTS_METABOLISM //thats one way to stay hydrated...
|
||||
|
||||
/obj/effect/decal/cleanable/femcum
|
||||
name = "female ejaculate"
|
||||
|
||||
Reference in New Issue
Block a user