From 7aa1fe32dee09ff0e75aee3d23b61fc07a630bf9 Mon Sep 17 00:00:00 2001 From: ManlyMarco Date: Sun, 27 Oct 2019 00:32:40 +0200 Subject: [PATCH] Add better error message for missing BepInPlugin attribute instead of a nullref --- BepInEx/Contract/BaseUnityPlugin.cs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/BepInEx/Contract/BaseUnityPlugin.cs b/BepInEx/Contract/BaseUnityPlugin.cs index 0ecd8a5..83dca63 100644 --- a/BepInEx/Contract/BaseUnityPlugin.cs +++ b/BepInEx/Contract/BaseUnityPlugin.cs @@ -1,4 +1,5 @@ -using BepInEx.Bootstrap; +using System; +using BepInEx.Bootstrap; using BepInEx.Configuration; using BepInEx.Logging; using UnityEngine; @@ -25,12 +26,15 @@ namespace BepInEx /// public ConfigFile Config { get; } - /// - /// Create a new instance of a plugin and all of its tied in objects. - /// - protected BaseUnityPlugin() + /// + /// Create a new instance of a plugin and all of its tied in objects. + /// + /// BepInPlugin attribute is missing. + protected BaseUnityPlugin() { var metadata = MetadataHelper.GetMetadata(this); + if(metadata == null) + throw new InvalidOperationException("Can't create an instance of " + GetType().FullName + " because it inherits from BaseUnityPlugin and the BepInPlugin attribute is missing."); if (Chainloader.PluginInfos.TryGetValue(metadata.GUID, out var info)) Info = info;