diff --git a/src/rider/main/kotlin/HarmonyPluginNotifier/HarmonyPluginNotifier.kt b/src/rider/main/kotlin/HarmonyPluginNotifier/HarmonyPluginNotifier.kt
new file mode 100644
index 0000000..c2d787e
--- /dev/null
+++ b/src/rider/main/kotlin/HarmonyPluginNotifier/HarmonyPluginNotifier.kt
@@ -0,0 +1,69 @@
+package RimworldDev.Rider.HarmonyPluginNotifier
+
+import com.intellij.ide.IdeBundle
+import com.intellij.ide.plugins.PluginManagerCore
+import com.intellij.ide.plugins.advertiser.PluginData
+import com.intellij.openapi.extensions.PluginId
+import com.intellij.openapi.fileEditor.FileEditor
+import com.intellij.openapi.project.Project
+import com.intellij.openapi.startup.StartupActivity
+import com.intellij.openapi.updateSettings.impl.pluginsAdvertisement.FUSEventSource
+import com.intellij.openapi.updateSettings.impl.pluginsAdvertisement.installAndEnable
+import com.intellij.openapi.vfs.VirtualFile
+import com.intellij.ui.EditorNotificationPanel
+import com.intellij.ui.EditorNotificationProvider
+import java.util.function.Function
+import javax.swing.JComponent
+import javax.swing.JLabel
+
+class HarmonyPluginNotifier : EditorNotificationProvider {
+ override fun collectNotificationData(p0: Project, p1: VirtualFile): Function? {
+
+
+ return Function { editor ->
+ val descriptorsById = PluginManagerCore.buildPluginIdMap()
+ val hasPlugin = descriptorsById.containsKey(
+ PluginId.getId("com.zetrith.remodder")
+ )
+
+ apply(editor, p0)
+ }
+ }
+
+ fun apply(editor: FileEditor, project: Project): EditorNotificationPanel? {
+ if (editor.file.extension != "cs") return null
+ if (!editor.file.contentsToByteArray().toString(Charsets.UTF_8).contains(Regex("using\\s+HarmonyLib;"))) return null
+
+ lateinit var label: JLabel
+ val panel = object : EditorNotificationPanel(editor, EditorNotificationPanel.Status.Info) {
+ init {
+ label = myLabel
+ }
+ }
+
+ panel.text = IdeBundle.message("plugins.advertiser.plugins.found", "harmony")
+
+ fun createInstallActionLabel() {
+ val labelText =
+ IdeBundle.message("plugins.advertiser.action.install.plugin.name", "Remodder")
+
+ panel.createActionLabel(labelText) {
+ FUSEventSource.EDITOR.logInstallPlugins(listOf("com.zetrith.remodder"))
+ installAndEnable(project, setOf(PluginId.getId("com.zetrith.remodder")), true) {
+// pluginAdvertiserExtensionsState.addEnabledExtensionOrFileNameAndInvalidateCache(extensionOrFileName)
+// updateAllNotifications(project)
+ }
+ }
+
+ panel.createActionLabel(IdeBundle.message("plugins.advertiser.action.ignore.extension")) {
+// FUSEventSource.EDITOR.logIgnoreExtension(project)
+// pluginAdvertiserExtensionsState.ignoreExtensionOrFileNameAndInvalidateCache(extensionOrFileName)
+// updateAllNotifications(project)
+ }
+ }
+
+ createInstallActionLabel()
+
+ return panel
+ }
+}
\ No newline at end of file
diff --git a/src/rider/main/resources/META-INF/plugin.xml b/src/rider/main/resources/META-INF/plugin.xml
index 7cb9c61..8d303ac 100644
--- a/src/rider/main/resources/META-INF/plugin.xml
+++ b/src/rider/main/resources/META-INF/plugin.xml
@@ -35,6 +35,9 @@ in your mods!
+
+