private static void After_TryPurchaseItem(bool __result, Item item, int numberToBuy) { // if purchased if (__result) { var obj = item as SObject; // add bundle if (obj?.Category == -425 && item.Name.Contains("Bundle")) { ItemUtils.AddBundle(item.SpecialVariable); Game1.player.craftingRecipes.Remove(obj.name); // don't use .Name, since that includes 'Recipe' } // update achievements if item was purchased if (Config.GiveAchievements) { switch (item.Category) { // recipes cooked case SObject.CookingCategory: Game1.player.cookedRecipe(item.ParentSheetIndex); Game1.stats.checkForCookingAchievements(); break; // fish caught case SObject.FishCategory: Game1.player.caughtFish(item.ParentSheetIndex, 12); break; // minerals found case SObject.GemCategory: case SObject.mineralsCategory: Game1.player.foundMineral(item.ParentSheetIndex); break; // artifacts found case 0 when obj?.Type == "Arch": Game1.player.foundArtifact(item.ParentSheetIndex, numberToBuy); break; } } } }