public static bool ReplacePlugin(BasePlugin oldPlugin, BasePlugin newPlugin, bool saveState = true)
        {
            lock (_plugins)
            {
                string oldName = oldPlugin.Name.ToLower().Trim();

                if (oldPlugin.ReplaceWith(newPlugin, saveState))
                {
                    string newName = newPlugin.Name.ToLower().Trim();

                    if (_plugins.ContainsKey(oldName))
                    {
                        _plugins.Remove(oldName);
                    }

                    _plugins.Add(newName, newPlugin);

                    return(true);
                }
                else if (oldPlugin.IsDisposed)
                {
                    if (_plugins.ContainsKey(oldName))
                    {
                        _plugins.Remove(oldName);
                    }
                }
            }

            return(false);
        }