Please disclose if your mod was created primarily using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of AutoPickupIgnorer v1.0.2
AutoPickupIgnorer.dll
Decompiled 2 years agousing System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Reflection.Emit; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Configuration; using HarmonyLib; using HarmonyLib.Tools; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("AutoPickupIgnorer")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("AutoPickupIgnorer")] [assembly: AssemblyCopyright("Copyright © 2023")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("dc3c126d-5fde-49f1-8712-20c5a6d97768")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] namespace AutoPickupIgnorer; [BepInPlugin("PipMod.AutoPickupIgnorer", "Pip's Auto-pickup Ignorer", "1.0.0.1")] [BepInProcess("valheim.exe")] public class AutoPickupIgnorer : BaseUnityPlugin { private enum PickupBehavior { Custom, IgnoreAll, Default } [HarmonyPatch(typeof(Game), "Awake")] private class Game_Awake_Patch { private static void Postfix(ref bool ___isModded) { ___isModded = true; } } [HarmonyPatch(typeof(MessageHud), "Awake")] private class MessageHud_Awake_Patch { [HarmonyPostfix] private static void GetMessageHud(ref MessageHud ___m_instance) { MessageHud = ___m_instance; } } [HarmonyPatch(typeof(Player), "AutoPickup")] [HarmonyDebug] public static class Player_AutoPickup_Patch { [HarmonyTranspiler] private static IEnumerable<CodeInstruction> AutoPickupTranspiler(IEnumerable<CodeInstruction> instructions) { //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Expected O, but got Unknown //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Expected O, but got Unknown //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Expected O, but got Unknown //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Expected O, but got Unknown List<CodeInstruction> list = new List<CodeInstruction>(instructions); for (int i = 0; i < list.Count; i++) { if (list[i].opcode == OpCodes.Stloc_S && list[i].operand.GetType() == typeof(LocalBuilder) && ((LocalBuilder)list[i].operand).LocalIndex == 4) { object operand = list[i - 4].operand; List<CodeInstruction> list2 = new List<CodeInstruction>(); list2.Add(new CodeInstruction(OpCodes.Ldloc_S, (object)4)); list2.Add(new CodeInstruction(OpCodes.Ldfld, (object)AccessTools.Field(typeof(ItemDrop), "m_itemData"))); list2.Add(new CodeInstruction(OpCodes.Callvirt, (object)AccessTools.Method(typeof(AutoPickupIgnorer), "IgnoreItem", new Type[1] { typeof(ItemData) }, (Type[])null))); list2.Add(new CodeInstruction(OpCodes.Brtrue, operand)); List<CodeInstruction> collection = list2; list.InsertRange(i + 5, collection); } } return list.AsEnumerable(); } } private const string modGUID = "PipMod.AutoPickupIgnorer"; private const string modName = "Pip's Auto-pickup Ignorer"; private const string modVersion = "1.0.0.1"; private readonly Harmony harmony = new Harmony("PipMod.AutoPickupIgnorer"); private static ConfigEntry<string> AutoPickupIgnoreList; private static List<string> IgnoreList; private static ConfigEntry<KeyboardShortcut> ToggleBehaviorHotkey; private static PickupBehavior CurrentPickupBehavior; private static MessageHud MessageHud; private const string DefaultItemList = "#Acorn,#Amber,#AmberPearl,#AncientSeed,#ArmorBronzeChest,#ArmorBronzeLegs,#ArmorCarapaceChest,#ArmorCarapaceLegs,#ArmorDress1,#ArmorDress10,#ArmorDress2,#ArmorDress3,#ArmorDress4,#ArmorDress5,#ArmorDress6,#ArmorDress7,#ArmorDress8,#ArmorDress9,#ArmorFenringChest,#ArmorFenringLegs,#ArmorIronChest,#ArmorIronLegs,#ArmorLeatherChest,#ArmorLeatherLegs,#ArmorMageChest,#ArmorMageLegs,#ArmorPaddedCuirass,#ArmorPaddedGreaves,#ArmorRagsChest,#ArmorRagsLegs,#ArmorRootChest,#ArmorRootLegs,#ArmorTrollLeatherChest,#ArmorTrollLeatherLegs,#ArmorTunic1,#ArmorTunic10,#ArmorTunic2,#ArmorTunic3,#ArmorTunic4,#ArmorTunic5,#ArmorTunic6,#ArmorTunic7,#ArmorTunic8,#ArmorTunic9,#ArmorWolfChest,#ArmorWolfLegs,#ArrowBronze,#ArrowCarapace,#ArrowFire,#ArrowFlint,#ArrowFrost,#ArrowIron,#ArrowNeedle,#ArrowObsidian,#ArrowPoison,#ArrowSilver,#ArrowWood,#AtgeirBlackmetal,#AtgeirBronze,#AtgeirHimminAfl,#AtgeirIron,#AxeBlackMetal,#AxeBronze,#AxeFlint,#AxeIron,#AxeJotunBane,#AxeStone,#BarberKit,#Barley,#BarleyFlour,#BarleyWine,#BarleyWineBase,#Battleaxe,#BattleaxeCrystal,#BeechSeeds,#BeltStrength,#Bilebag,#BirchSeeds,#BlackCore,#BlackMarble,#BlackMetal,#BlackMetalScrap,#BlackSoup,#Bloodbag,#BloodPudding,#Blueberries,#BoarJerky,#BoltBlackmetal,#BoltBone,#BoltCarapace,#BoltIron,#BombBile,#BombOoze,#BoneFragments,#Bow,#BowDraugrFang,#BowFineWood,#BowHuntsman,#BowSpineSnap,#Bread,#BreadDough,#Bronze,#BronzeNails,#BronzeScrap,#BugMeat,#CapeDeerHide,#CapeFeather,#CapeLinen,#CapeLox,#CapeOdin,#CapeTrollHide,#CapeWolf,#Carapace,#Carrot,#CarrotSeeds,#CarrotSoup,#Chain,#chest_hildir1,#chest_hildir2,#chest_hildir3,#ChickenEgg,#ChickenMeat,#Chitin,#Cloudberry,#Club,#Coal,#Coins,#CookedBugMeat,#CookedChickenMeat,#CookedDeerMeat,#CookedEgg,#CookedHareMeat,#CookedLoxMeat,#CookedMeat,#CookedWolfMeat,#Copper,#CopperOre,#CopperScrap,#CrossbowArbalest,#CryptKey,#Crystal,#Cultivator,#Dandelion,#DeerHide,#DeerMeat,#DeerStew,#Demister,#DragonEgg,#DragonTear,#DvergerArbalest,#DvergerArbalest_shoot,#DvergrKey,#DvergrKeyFragment,#DvergrNeedle,#Eitr,#ElderBark,#Entrails,#Eyescream,#Feathers,#FineWood,#FirCone,#FireworksRocket_Blue,#FireworksRocket_Cyan,#FireworksRocket_Green,#FireworksRocket_Purple,#FireworksRocket_Red,#FireworksRocket_White,#FireworksRocket_Yellow,#Fish1,#Fish10,#Fish11,#Fish12,#Fish2,#Fish3,#Fish4_cave,#Fish5,#Fish6,#Fish7,#Fish8,#Fish9,#FishAndBread,#FishAndBreadUncooked,#FishAnglerRaw,#FishCooked,#FishingBait,#FishingBaitAshlands,#FishingBaitCave,#FishingBaitDeepNorth,#FishingBaitForest,#FishingBaitMistlands,#FishingBaitOcean,#FishingBaitPlains,#FishingBaitSwamp,#FishingRod,#FishRaw,#FishWraps,#FistFenrirClaw,#Flametal,#FlametalOre,#Flax,#Flint,#FreezeGland,#GiantBloodSack,#GoblinTotem,#GreydwarfEye,#Guck,#Hammer,#HardAntler,#HareMeat,#HelmetBronze,#HelmetCarapace,#HelmetDrake,#HelmetDverger,#HelmetFenring,#HelmetFishingHat,#HelmetHat1,#HelmetHat10,#HelmetHat2,#HelmetHat3,#HelmetHat4,#HelmetHat5,#HelmetHat6,#HelmetHat7,#HelmetHat8,#HelmetHat9,#HelmetIron,#HelmetLeather,#HelmetMage,#HelmetMidsummerCrown,#HelmetOdin,#HelmetPadded,#HelmetRoot,#HelmetTrollLeather,#HelmetYule,#HildirKey_forestcrypt,#HildirKey_mountaincave,#HildirKey_plainsfortress,#Hoe,#Honey,#HoneyGlazedChicken,#HoneyGlazedChickenUncooked,#Iron,#IronNails,#IronOre,#Ironpit,#IronScrap,#JuteBlue,#JuteRed,#KnifeBlackMetal,#KnifeButcher,#KnifeChitin,#KnifeCopper,#KnifeFlint,#KnifeSilver,#KnifeSkollAndHati,#Lantern,#Larva,#LeatherScraps,#LinenThread,#LoxMeat,#LoxPelt,#LoxPie,#LoxPieUncooked,#MaceBronze,#MaceIron,#MaceNeedle,#MaceSilver,#MagicallyStuffedShroom,#MagicallyStuffedShroomUncooked,#Mandible,#MeadBaseEitrMinor,#MeadBaseFrostResist,#MeadBaseHealthMajor,#MeadBaseHealthMedium,#MeadBaseHealthMinor,#MeadBasePoisonResist,#MeadBaseStaminaLingering,#MeadBaseStaminaMedium,#MeadBaseStaminaMinor,#MeadBaseTasty,#MeadEitrMinor,#MeadFrostResist,#MeadHealthMajor,#MeadHealthMedium,#MeadHealthMinor,#MeadPoisonResist,#MeadStaminaLingering,#MeadStaminaMedium,#MeadStaminaMinor,#MeadTasty,#MeatPlatter,#MeatPlatterUncooked,#MechanicalSpring,#MinceMeatSauce,#MisthareSupreme,#MisthareSupremeUncooked,#Mushroom,#MushroomBlue,#MushroomJotunPuffs,#MushroomMagecap,#MushroomOmelette,#MushroomYellow,#NeckTail,#NeckTailGrilled,#Needle,#Obsidian,#Onion,#OnionSeeds,#OnionSoup,#Ooze,#PickaxeAntler,#PickaxeBlackMetal,#PickaxeBronze,#PickaxeIron,#PickaxeStone,#PineCone,#Pukeberries,#QueenBee,#QueenDrop,#QueensJam,#Raspberry,#RawMeat,#Resin,#Root,#RottenMeat,#RoundLog,#RoyalJelly,#Ruby,#SaddleLox,#Salad,#Sap,#Sausages,#ScaleHide,#SeekerAspic,#SerpentMeat,#SerpentMeatCooked,#SerpentScale,#SerpentStew,#SharpeningStone,#ShieldBanded,#ShieldBlackmetal,#ShieldBlackmetalTower,#ShieldBoneTower,#ShieldBronzeBuckler,#ShieldCarapace,#ShieldCarapaceBuckler,#ShieldIronBuckler,#ShieldIronSquare,#ShieldIronTower,#ShieldKnight,#ShieldSerpentscale,#ShieldSilver,#ShieldWood,#ShieldWoodTower,#ShocklateSmoothie,#Silver,#SilverNecklace,#SilverOre,#SledgeDemolisher,#SledgeIron,#SledgeStagbreaker,#Softtissue,#Sparkler,#SpearBronze,#SpearCarapace,#SpearChitin,#SpearElderbark,#SpearFlint,#SpearWolfFang,#StaffFireball,#StaffIceShards,#StaffShield,#StaffSkeleton,#Stone,#SurtlingCore,#SwordBlackmetal,#SwordBronze,#SwordIron,#SwordIronFire,#SwordMistwalker,#SwordSilver,#Tankard,#Tankard_dvergr,#TankardAnniversary,#TankardOdin,#Tar,#Thistle,#THSwordKrom,#Thunderstone,#Tin,#TinOre,#Torch,#TorchMist,#TrollHide,#TrophyAbomination,#TrophyBlob,#TrophyBoar,#TrophyBonemass,#TrophyCultist,#TrophyCultist_Hildir,#TrophyDeathsquito,#TrophyDeer,#TrophyDragonQueen,#TrophyDraugr,#TrophyDraugrElite,#TrophyDraugrFem,#TrophyDvergr,#TrophyEikthyr,#TrophyFenring,#TrophyForestTroll,#TrophyFrostTroll,#TrophyGjall,#TrophyGoblin,#TrophyGoblinBrute,#TrophyGoblinBruteBrosBrute,#TrophyGoblinBruteBrosShaman,#TrophyGoblinKing,#TrophyGoblinShaman,#TrophyGreydwarf,#TrophyGreydwarfBrute,#TrophyGreydwarfShaman,#TrophyGrowth,#TrophyHare,#TrophyHatchling,#TrophyLeech,#TrophyLox,#TrophyNeck,#TrophySeeker,#TrophySeekerBrute,#TrophySeekerQueen,#TrophySerpent,#TrophySGolem,#TrophySkeleton,#TrophySkeletonHildir,#TrophySkeletonPoison,#TrophySurtling,#TrophyTheElder,#TrophyTick,#TrophyUlv,#TrophyWolf,#TrophyWraith,#Turnip,#TurnipSeeds,#TurnipStew,#TurretBolt,#TurretBoltWood,#Wishbone,#Wisp,#WitheredBone,#WolfClaw,#WolfFang,#WolfHairBundle,#WolfJerky,#WolfMeat,#WolfMeatSkewer,#WolfPelt,#Wood,#YagluthDrop,#YggdrasilPorridge,#YggdrasilWood,#YmirRemains"; private void Awake() { //IL_0084: Unknown result type (might be due to invalid IL or missing references) AutoPickupIgnoreList = ((BaseUnityPlugin)this).Config.Bind<string>("General", "AutoPickupIgnoreList", "#Acorn,#Amber,#AmberPearl,#AncientSeed,#ArmorBronzeChest,#ArmorBronzeLegs,#ArmorCarapaceChest,#ArmorCarapaceLegs,#ArmorDress1,#ArmorDress10,#ArmorDress2,#ArmorDress3,#ArmorDress4,#ArmorDress5,#ArmorDress6,#ArmorDress7,#ArmorDress8,#ArmorDress9,#ArmorFenringChest,#ArmorFenringLegs,#ArmorIronChest,#ArmorIronLegs,#ArmorLeatherChest,#ArmorLeatherLegs,#ArmorMageChest,#ArmorMageLegs,#ArmorPaddedCuirass,#ArmorPaddedGreaves,#ArmorRagsChest,#ArmorRagsLegs,#ArmorRootChest,#ArmorRootLegs,#ArmorTrollLeatherChest,#ArmorTrollLeatherLegs,#ArmorTunic1,#ArmorTunic10,#ArmorTunic2,#ArmorTunic3,#ArmorTunic4,#ArmorTunic5,#ArmorTunic6,#ArmorTunic7,#ArmorTunic8,#ArmorTunic9,#ArmorWolfChest,#ArmorWolfLegs,#ArrowBronze,#ArrowCarapace,#ArrowFire,#ArrowFlint,#ArrowFrost,#ArrowIron,#ArrowNeedle,#ArrowObsidian,#ArrowPoison,#ArrowSilver,#ArrowWood,#AtgeirBlackmetal,#AtgeirBronze,#AtgeirHimminAfl,#AtgeirIron,#AxeBlackMetal,#AxeBronze,#AxeFlint,#AxeIron,#AxeJotunBane,#AxeStone,#BarberKit,#Barley,#BarleyFlour,#BarleyWine,#BarleyWineBase,#Battleaxe,#BattleaxeCrystal,#BeechSeeds,#BeltStrength,#Bilebag,#BirchSeeds,#BlackCore,#BlackMarble,#BlackMetal,#BlackMetalScrap,#BlackSoup,#Bloodbag,#BloodPudding,#Blueberries,#BoarJerky,#BoltBlackmetal,#BoltBone,#BoltCarapace,#BoltIron,#BombBile,#BombOoze,#BoneFragments,#Bow,#BowDraugrFang,#BowFineWood,#BowHuntsman,#BowSpineSnap,#Bread,#BreadDough,#Bronze,#BronzeNails,#BronzeScrap,#BugMeat,#CapeDeerHide,#CapeFeather,#CapeLinen,#CapeLox,#CapeOdin,#CapeTrollHide,#CapeWolf,#Carapace,#Carrot,#CarrotSeeds,#CarrotSoup,#Chain,#chest_hildir1,#chest_hildir2,#chest_hildir3,#ChickenEgg,#ChickenMeat,#Chitin,#Cloudberry,#Club,#Coal,#Coins,#CookedBugMeat,#CookedChickenMeat,#CookedDeerMeat,#CookedEgg,#CookedHareMeat,#CookedLoxMeat,#CookedMeat,#CookedWolfMeat,#Copper,#CopperOre,#CopperScrap,#CrossbowArbalest,#CryptKey,#Crystal,#Cultivator,#Dandelion,#DeerHide,#DeerMeat,#DeerStew,#Demister,#DragonEgg,#DragonTear,#DvergerArbalest,#DvergerArbalest_shoot,#DvergrKey,#DvergrKeyFragment,#DvergrNeedle,#Eitr,#ElderBark,#Entrails,#Eyescream,#Feathers,#FineWood,#FirCone,#FireworksRocket_Blue,#FireworksRocket_Cyan,#FireworksRocket_Green,#FireworksRocket_Purple,#FireworksRocket_Red,#FireworksRocket_White,#FireworksRocket_Yellow,#Fish1,#Fish10,#Fish11,#Fish12,#Fish2,#Fish3,#Fish4_cave,#Fish5,#Fish6,#Fish7,#Fish8,#Fish9,#FishAndBread,#FishAndBreadUncooked,#FishAnglerRaw,#FishCooked,#FishingBait,#FishingBaitAshlands,#FishingBaitCave,#FishingBaitDeepNorth,#FishingBaitForest,#FishingBaitMistlands,#FishingBaitOcean,#FishingBaitPlains,#FishingBaitSwamp,#FishingRod,#FishRaw,#FishWraps,#FistFenrirClaw,#Flametal,#FlametalOre,#Flax,#Flint,#FreezeGland,#GiantBloodSack,#GoblinTotem,#GreydwarfEye,#Guck,#Hammer,#HardAntler,#HareMeat,#HelmetBronze,#HelmetCarapace,#HelmetDrake,#HelmetDverger,#HelmetFenring,#HelmetFishingHat,#HelmetHat1,#HelmetHat10,#HelmetHat2,#HelmetHat3,#HelmetHat4,#HelmetHat5,#HelmetHat6,#HelmetHat7,#HelmetHat8,#HelmetHat9,#HelmetIron,#HelmetLeather,#HelmetMage,#HelmetMidsummerCrown,#HelmetOdin,#HelmetPadded,#HelmetRoot,#HelmetTrollLeather,#HelmetYule,#HildirKey_forestcrypt,#HildirKey_mountaincave,#HildirKey_plainsfortress,#Hoe,#Honey,#HoneyGlazedChicken,#HoneyGlazedChickenUncooked,#Iron,#IronNails,#IronOre,#Ironpit,#IronScrap,#JuteBlue,#JuteRed,#KnifeBlackMetal,#KnifeButcher,#KnifeChitin,#KnifeCopper,#KnifeFlint,#KnifeSilver,#KnifeSkollAndHati,#Lantern,#Larva,#LeatherScraps,#LinenThread,#LoxMeat,#LoxPelt,#LoxPie,#LoxPieUncooked,#MaceBronze,#MaceIron,#MaceNeedle,#MaceSilver,#MagicallyStuffedShroom,#MagicallyStuffedShroomUncooked,#Mandible,#MeadBaseEitrMinor,#MeadBaseFrostResist,#MeadBaseHealthMajor,#MeadBaseHealthMedium,#MeadBaseHealthMinor,#MeadBasePoisonResist,#MeadBaseStaminaLingering,#MeadBaseStaminaMedium,#MeadBaseStaminaMinor,#MeadBaseTasty,#MeadEitrMinor,#MeadFrostResist,#MeadHealthMajor,#MeadHealthMedium,#MeadHealthMinor,#MeadPoisonResist,#MeadStaminaLingering,#MeadStaminaMedium,#MeadStaminaMinor,#MeadTasty,#MeatPlatter,#MeatPlatterUncooked,#MechanicalSpring,#MinceMeatSauce,#MisthareSupreme,#MisthareSupremeUncooked,#Mushroom,#MushroomBlue,#MushroomJotunPuffs,#MushroomMagecap,#MushroomOmelette,#MushroomYellow,#NeckTail,#NeckTailGrilled,#Needle,#Obsidian,#Onion,#OnionSeeds,#OnionSoup,#Ooze,#PickaxeAntler,#PickaxeBlackMetal,#PickaxeBronze,#PickaxeIron,#PickaxeStone,#PineCone,#Pukeberries,#QueenBee,#QueenDrop,#QueensJam,#Raspberry,#RawMeat,#Resin,#Root,#RottenMeat,#RoundLog,#RoyalJelly,#Ruby,#SaddleLox,#Salad,#Sap,#Sausages,#ScaleHide,#SeekerAspic,#SerpentMeat,#SerpentMeatCooked,#SerpentScale,#SerpentStew,#SharpeningStone,#ShieldBanded,#ShieldBlackmetal,#ShieldBlackmetalTower,#ShieldBoneTower,#ShieldBronzeBuckler,#ShieldCarapace,#ShieldCarapaceBuckler,#ShieldIronBuckler,#ShieldIronSquare,#ShieldIronTower,#ShieldKnight,#ShieldSerpentscale,#ShieldSilver,#ShieldWood,#ShieldWoodTower,#ShocklateSmoothie,#Silver,#SilverNecklace,#SilverOre,#SledgeDemolisher,#SledgeIron,#SledgeStagbreaker,#Softtissue,#Sparkler,#SpearBronze,#SpearCarapace,#SpearChitin,#SpearElderbark,#SpearFlint,#SpearWolfFang,#StaffFireball,#StaffIceShards,#StaffShield,#StaffSkeleton,#Stone,#SurtlingCore,#SwordBlackmetal,#SwordBronze,#SwordIron,#SwordIronFire,#SwordMistwalker,#SwordSilver,#Tankard,#Tankard_dvergr,#TankardAnniversary,#TankardOdin,#Tar,#Thistle,#THSwordKrom,#Thunderstone,#Tin,#TinOre,#Torch,#TorchMist,#TrollHide,#TrophyAbomination,#TrophyBlob,#TrophyBoar,#TrophyBonemass,#TrophyCultist,#TrophyCultist_Hildir,#TrophyDeathsquito,#TrophyDeer,#TrophyDragonQueen,#TrophyDraugr,#TrophyDraugrElite,#TrophyDraugrFem,#TrophyDvergr,#TrophyEikthyr,#TrophyFenring,#TrophyForestTroll,#TrophyFrostTroll,#TrophyGjall,#TrophyGoblin,#TrophyGoblinBrute,#TrophyGoblinBruteBrosBrute,#TrophyGoblinBruteBrosShaman,#TrophyGoblinKing,#TrophyGoblinShaman,#TrophyGreydwarf,#TrophyGreydwarfBrute,#TrophyGreydwarfShaman,#TrophyGrowth,#TrophyHare,#TrophyHatchling,#TrophyLeech,#TrophyLox,#TrophyNeck,#TrophySeeker,#TrophySeekerBrute,#TrophySeekerQueen,#TrophySerpent,#TrophySGolem,#TrophySkeleton,#TrophySkeletonHildir,#TrophySkeletonPoison,#TrophySurtling,#TrophyTheElder,#TrophyTick,#TrophyUlv,#TrophyWolf,#TrophyWraith,#Turnip,#TurnipSeeds,#TurnipStew,#TurretBolt,#TurretBoltWood,#Wishbone,#Wisp,#WitheredBone,#WolfClaw,#WolfFang,#WolfHairBundle,#WolfJerky,#WolfMeat,#WolfMeatSkewer,#WolfPelt,#Wood,#YagluthDrop,#YggdrasilPorridge,#YggdrasilWood,#YmirRemains", "Comma-separated list of items to ignore auto-pickup. Remove # before item to add to ignore list."); IgnoreList = (from i in AutoPickupIgnoreList.Value.Split(new char[1] { ',' }) where !i.Trim().StartsWith("#") select i).ToList(); ToggleBehaviorHotkey = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>("General", "BehaviorHotkey", new KeyboardShortcut((KeyCode)39, Array.Empty<KeyCode>()), "Hotkey to change pickup behavior between custom ignore, ignore all, and default behavior"); HarmonyFileLog.Enabled = true; harmony.PatchAll(); } private void Update() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) KeyboardShortcut value = ToggleBehaviorHotkey.Value; if (((KeyboardShortcut)(ref value)).IsDown()) { switch (CurrentPickupBehavior) { case PickupBehavior.Custom: CurrentPickupBehavior = PickupBehavior.IgnoreAll; MessageHud.ShowMessage((MessageType)2, "Ignoring all items", 0, (Sprite)null); break; case PickupBehavior.IgnoreAll: CurrentPickupBehavior = PickupBehavior.Default; MessageHud.ShowMessage((MessageType)2, "Default pickup behavior", 0, (Sprite)null); break; case PickupBehavior.Default: CurrentPickupBehavior = PickupBehavior.Custom; MessageHud.ShowMessage((MessageType)2, "Ignoring custom items", 0, (Sprite)null); break; default: CurrentPickupBehavior = PickupBehavior.Custom; MessageHud.ShowMessage((MessageType)2, "Ignoring custom items", 0, (Sprite)null); break; } } } public static bool IgnoreItem(ItemData itemData) { return CurrentPickupBehavior == PickupBehavior.IgnoreAll || (CurrentPickupBehavior == PickupBehavior.Custom && IgnoreList.Contains(((Object)itemData.m_dropPrefab).name)); } } internal class ValheimItem { public string Item { get; set; } public string Token { get; set; } public string Name { get; set; } public string Type { get; set; } }