private void PluginOnPluginDisabled(object sender, EventArgs e) { Plugin.PluginDisabled -= PluginOnPluginDisabled; if (IsInStore) { DataBindingModifierTypeStore.Remove(this); } }
private void Initialize() { DataBindingModifierTypeStore.DataBindingModifierAdded += DataBindingModifierTypeStoreOnDataBindingModifierAdded; DataBindingModifierTypeStore.DataBindingModifierRemoved += DataBindingModifierTypeStoreOnDataBindingModifierRemoved; // Modifier type if (Entity.ModifierTypePluginGuid != null && ModifierType == null) { BaseDataBindingModifierType?modifierType = DataBindingModifierTypeStore.Get(Entity.ModifierTypePluginGuid.Value, Entity.ModifierType)?.DataBindingModifierType; if (modifierType != null) { UpdateModifierType(modifierType); } } // Dynamic parameter if (ParameterType == ProfileRightSideType.Dynamic && Entity.ParameterPath != null) { ParameterPath = new DataModelPath(null, Entity.ParameterPath); } // Static parameter else if (ParameterType == ProfileRightSideType.Static && Entity.ParameterStaticValue != null) { // Use the target type so JSON.NET has a better idea what to do Type? parameterType = ModifierType?.ParameterType ?? DirectDataBinding.DataBinding.GetTargetType(); object?staticValue = null; try { staticValue = parameterType != null ? CoreJson.DeserializeObject(Entity.ParameterStaticValue, parameterType) : CoreJson.DeserializeObject(Entity.ParameterStaticValue); } // If deserialization fails, use the type's default catch (JsonSerializationException e) { DeserializationLogger.LogModifierDeserializationFailure(GetType().Name, e); if (parameterType != null) { staticValue = Activator.CreateInstance(parameterType); } } UpdateParameterStatic(staticValue); } }