ModernUO/Projects
Kamron Batman 3759971c80
fix: Require BOD combine items to be player-crafted
SmallBOD.EndCombine validates an item's type, material and exceptional
quality, but never checks that it was actually crafted by a player. Any
item matching the request can be turned in, including one bought from an
NPC vendor.

Where a vendor sells a type a BOD can request, this lets a player fill the
deed by buying the items rather than crafting them, and collect the reward
gold for the difference. Tailoring is the clearest case because
SmallTailorBOD.CreateRandomFor guarantees Material=None and
RequireExceptional=false below 70.1 skill, so the rolled deed asks for
plain cloth items that tailor vendors stock directly -- e.g. a qty-20
Bandana BOD filled from vendor stock, against a reward of several times
the purchase cost.

Adds a PlayerConstructed check alongside the existing material and quality
checks, following the pattern already used in Engines/Craft/Core/Resmelt.cs
for distinguishing crafted from store-bought items.

Note on the message: there is no dedicated cliloc for "this item must be
crafted", so 1045169 ("The item is not in the request.") is reused. Happy
to change it if a better one is known -- flagging it rather than inventing
a string.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 20:03:17 -07:00
..
Application fix: Bumps dependencies. (#2531) 2026-07-14 15:17:55 -07:00
BuildTool fix: Require only runtime packages on Linux, and check ICU and tzdata the way the runtime does (#2561) 2026-08-07 15:03:08 -07:00
Logger fix: Bumps dependencies. (#2531) 2026-07-14 15:17:55 -07:00
Server fix: harden idle-sleep scheduling against bad config and misattributed saves (#2567) 2026-08-09 22:05:18 -07:00
Server.Tests perf: Sleep the event loop when idle. Fixes networking micro-stalls. Adds event loop instrumentation. (#2559) 2026-08-09 13:24:59 -07:00
UOContent fix: Require BOD combine items to be player-crafted 2026-08-12 20:03:17 -07:00
UOContent.Tests fix: Stop treasure chest guardian spawn farming via stack splits (#2568) 2026-08-10 09:01:29 -07:00