From aa4b92faad547cfb45cc5210d30f9c00f1fc32ac Mon Sep 17 00:00:00 2001 From: oranges Date: Tue, 13 Feb 2018 14:32:58 +1300 Subject: [PATCH] Merge pull request #35598 from ShizCalev/announcement-exploit-fix [s] fixes announcement system exploit --- code/game/machinery/announcement_system.dm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/code/game/machinery/announcement_system.dm b/code/game/machinery/announcement_system.dm index 5226084b96..39b2b2d5be 100644 --- a/code/game/machinery/announcement_system.dm +++ b/code/game/machinery/announcement_system.dm @@ -101,6 +101,8 @@ GLOBAL_LIST_EMPTY(announcement_systems) //config stuff /obj/machinery/announcement_system/interact(mob/user) + if(!user.canUseTopic(src, !issilicon(user))) + return if(stat & BROKEN) visible_message("[src] buzzes.", "You hear a faint buzz.") playsound(src.loc, 'sound/machines/buzz-two.ogg', 50, 1) @@ -115,6 +117,8 @@ GLOBAL_LIST_EMPTY(announcement_systems) popup.open() /obj/machinery/announcement_system/Topic(href, href_list) + if(!usr.canUseTopic(src, !issilicon(usr))) + return if(stat & BROKEN) visible_message("[src] buzzes.", "You hear a faint buzz.") playsound(src.loc, 'sound/machines/buzz-two.ogg', 50, 1) @@ -122,13 +126,13 @@ GLOBAL_LIST_EMPTY(announcement_systems) if(href_list["ArrivalTopic"]) var/NewMessage = stripped_input(usr, "Enter in the arrivals announcement configuration.", "Arrivals Announcement Config", arrival) - if(!in_range(src, usr) && src.loc != usr && (!isAI(usr) && !IsAdminGhost(usr))) + if(!usr.canUseTopic(src, !issilicon(usr))) return if(NewMessage) arrival = NewMessage else if(href_list["NewheadTopic"]) var/NewMessage = stripped_input(usr, "Enter in the departmental head announcement configuration.", "Head Departmental Announcement Config", newhead) - if(!in_range(src, usr) && src.loc != usr && (!isAI(usr) && !IsAdminGhost(usr))) + if(!usr.canUseTopic(src, !issilicon(usr))) return if(NewMessage) newhead = NewMessage @@ -147,7 +151,7 @@ GLOBAL_LIST_EMPTY(announcement_systems) . = attack_ai(user) /obj/machinery/announcement_system/attack_ai(mob/user) - if(!issilicon(user) && !IsAdminGhost(user)) + if(!user.canUseTopic(src, !issilicon(user))) return if(stat & BROKEN) to_chat(user, "[src]'s firmware appears to be malfunctioning!")