diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index 7180e59b800..ed1b9be0e0d 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -196,7 +196,7 @@
playsound(E.loc, E.usesound, 50, 1)
to_chat(user, "Teleporting [name]...")
E.teleporting = 1
- if(!do_after(user, 50 * E.toolspeed, target = src))
+ if(!(do_after(user, 50 * E.toolspeed, target = src) && (E.rcell && (E.rcell.charge >= E.chargecost)) && Adjacent(user)))
E.teleporting = 0
return
E.teleporting = 0
@@ -218,7 +218,7 @@
playsound(E.loc, E.usesound, 50, 1)
to_chat(user, "Teleporting [name]...")
E.teleporting = 1
- if(!do_after(user, 50, E.toolspeed, target = src))
+ if(!(do_after(user, 50, E.toolspeed, target = src) && (E.rcell && (E.rcell.charge >= E.chargecost)) && Adjacent(user)))
E.teleporting = 0
return
E.teleporting = 0
@@ -327,7 +327,7 @@
/obj/structure/closet/attack_hand(mob/user)
add_fingerprint(user)
toggle(user)
-
+
/obj/structure/closet/attack_ghost(mob/user)
if(user.can_advanced_admin_interact())
toggle(user)
diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm
index 07a738a8c94..79fd929dedb 100644
--- a/code/game/objects/structures/crates_lockers/crates.dm
+++ b/code/game/objects/structures/crates_lockers/crates.dm
@@ -105,7 +105,7 @@
playsound(E.loc, E.usesound, 50, 1)
to_chat(user, "Teleporting [src.name]...")
E.teleporting = 1
- if(!do_after(user, 50 * E.toolspeed, target = src))
+ if(!(do_after(user, 50 * E.toolspeed, target = src) && (E.rcell && (E.rcell.charge >= E.chargecost)) && Adjacent(user)))
E.teleporting = 0
return
E.teleporting = 0
@@ -123,7 +123,7 @@
playsound(E.loc, E.usesound, 50, 1)
to_chat(user, "Teleporting [src.name]...")
E.teleporting = 1
- if(!do_after(user, 50 * E.toolspeed, target = src))
+ if(!(do_after(user, 50 * E.toolspeed, target = src) && (E.rcell && (E.rcell.charge >= E.chargecost)) && Adjacent(user)))
E.teleporting = 0
return
E.teleporting = 0