private void OfferQuestByThisItem(IEnumerable <QuestOffer <ItemOfferAttributes> > offers, Item item) { foreach (var offer in offers) { if (!ItemHelper.CheckItemContextTags(item, offer.OfferDetails.ItemContextTags)) { continue; } int id = this._questManager.ResolveGameQuestId(offer.QuestName); if (id == -1 || Game1.player.hasQuest(id) || this.WasItemPicked(item)) { continue; } this._questManager.AcceptQuest(offer.QuestName); this.ShowItemUp(item, Game1.player, offer.OfferDetails.FoundMessage); this._monitor.Log($"Offered quest `{offer.QuestName}` by item object {item.Name}"); } }