diff --git a/Content.Server/Paper/PaperSystem.cs b/Content.Server/Paper/PaperSystem.cs index 128fbbcacf0..9cec336929b 100644 --- a/Content.Server/Paper/PaperSystem.cs +++ b/Content.Server/Paper/PaperSystem.cs @@ -110,24 +110,31 @@ private void OnExamined(EntityUid uid, PaperComponent paperComp, ExaminedEvent a private void OnInteractUsing(EntityUid uid, PaperComponent paperComp, InteractUsingEvent args) { // If a pen, attempt to use on paper - if (TryComp(args.Used, out var penComp)) + if (_tagSystem.HasTag(args.Used, "Write") && paperComp.StampedBy.Count == 0) { - // If a pen in sign mod, dont try to write. - if (penComp.Pen != PenMode.PenSign) + bool write = true; + + if (TryComp(args.Used, out var penComp)) { - if (_tagSystem.HasTag(args.Used, "Write") && paperComp.StampedBy.Count == 0) + // If a pen in sign mod, dont try to write. + if (penComp.Pen == PenMode.PenSign) { - var writeEvent = new PaperWriteEvent(uid, args.User); - RaiseLocalEvent(args.Used, ref writeEvent); - if (!TryComp(args.User, out var actor)) - return; - - paperComp.Mode = PaperAction.Write; - _uiSystem.TryOpen(uid, PaperUiKey.Key, actor.PlayerSession); - UpdateUserInterface(uid, paperComp, actor.PlayerSession); - return; + write = false; } } + + if (write) + { + var writeEvent = new PaperWriteEvent(uid, args.User); + RaiseLocalEvent(args.Used, ref writeEvent); + if (!TryComp(args.User, out var actor)) + return; + + paperComp.Mode = PaperAction.Write; + _uiSystem.TryOpen(uid, PaperUiKey.Key, actor.PlayerSession); + UpdateUserInterface(uid, paperComp, actor.PlayerSession); + return; + } } // If a stamp, attempt to stamp paper