diff --git a/Content.Shared/Tools/Systems/ToolRefinableSystem.cs b/Content.Shared/Tools/Systems/ToolRefinableSystem.cs
index 5758685ab2..edc3470ad7 100644
--- a/Content.Shared/Tools/Systems/ToolRefinableSystem.cs
+++ b/Content.Shared/Tools/Systems/ToolRefinableSystem.cs
@@ -47,7 +47,7 @@ public sealed partial class ToolRefinablSystem : EntitySystem
/// Normal interactions.
private void OnInteractUsing(Entity ent, ref InteractUsingEvent args)
{
- if (args.Handled)
+ if (args.Handled || !_toolSystem.HasQuality(args.Used, ent.Comp.QualityNeeded))
return;
var component = ent.Comp;
@@ -86,14 +86,17 @@ public sealed partial class ToolRefinablSystem : EntitySystem
? null
: Loc.GetString(ent.Comp.ToolMissingQualityTooltip, ("target", ent.Owner));
}
- // make an attempt to ensure refinement is not blocked.
- var attemptEvent = new AttemptToolRefineEvent(tool);
- RaiseLocalEvent(args.Target, ref attemptEvent);
-
- if (attemptEvent.IsCancelled)
+ else
{
- verbDisabled = true;
- verbMessage = attemptEvent.BlockCause;
+ // We have the necessary tool, make an attempt to ensure refinement is not blocked.
+ var attemptEvent = new AttemptToolRefineEvent(tool);
+ RaiseLocalEvent(args.Target, ref attemptEvent);
+
+ if (attemptEvent.IsCancelled)
+ {
+ verbDisabled = true;
+ verbMessage = attemptEvent.BlockCause;
+ }
}
verbMessage ??= component.VerbDefaultTooltip == null