diff --git a/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/Assets.kt b/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/Assets.kt
index 97d452c..9868596 100644
--- a/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/Assets.kt
+++ b/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/Assets.kt
@@ -10,6 +10,8 @@ object Assets {
private const val assetFolder = "/assets"
- val KotlinBukkitAPIIcon =
- load("$assetFolder/icons/kotlinbukkitapi-icon.svg")
+ val KotlinBukkitAPIIcon = load("$assetFolder/icons/kotlinbukkitapi-icon.svg")
+ val FolderScript = load("$assetFolder/icons/folderScript.svg")
+ val FolderPlugins = load("$assetFolder/icons/folderPlugins.svg")
+ val FolderBukkript = load("$assetFolder/icons/folderBukkript.svg")
}
\ No newline at end of file
diff --git a/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/bukkript/BukkriptIconProvider.kt b/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/bukkript/BukkriptIconProvider.kt
index 8d23781..f005961 100644
--- a/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/bukkript/BukkriptIconProvider.kt
+++ b/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/bukkript/BukkriptIconProvider.kt
@@ -1,5 +1,6 @@
package br.com.devsrsouza.kotlinbukkitapi.tooling.bukkript
+import br.com.devsrsouza.kotlinbukkitapi.tooling.Assets
import com.intellij.ide.IconProvider
import com.intellij.openapi.project.DumbAware
import com.intellij.psi.PsiElement
@@ -8,8 +9,15 @@ import javax.swing.Icon
class BukkriptIconProvider : IconProvider(), DumbAware {
override fun getIcon(element: PsiElement, flags: Int): Icon? {
- if(element is PsiFile && element.name.isBukkriptScript()) {
- return BukkriptFileType.INSTANCE.icon
+ if(element is PsiFile) {
+ val file = element.virtualFile
+ return when {
+ file.isBukkriptScript() -> BukkriptFileType.INSTANCE.icon
+ file.isScriptFolder() -> Assets.FolderScript
+ file.isPluginsFolder() -> Assets.FolderPlugins
+ file.isBukkriptFolder() -> Assets.FolderBukkript
+ else -> null
+ }
} else {
return null
}
diff --git a/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/bukkript/BukkriptViewNodeDecorator.kt b/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/bukkript/BukkriptViewNodeDecorator.kt
new file mode 100644
index 0000000..10a2215
--- /dev/null
+++ b/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/bukkript/BukkriptViewNodeDecorator.kt
@@ -0,0 +1,34 @@
+package br.com.devsrsouza.kotlinbukkitapi.tooling.bukkript
+
+import br.com.devsrsouza.kotlinbukkitapi.tooling.Assets
+import com.intellij.ide.projectView.PresentationData
+import com.intellij.ide.projectView.ProjectViewNode
+import com.intellij.ide.projectView.ProjectViewNodeDecorator
+import com.intellij.packageDependencies.ui.PackageDependenciesNode
+import com.intellij.ui.ColoredTreeCellRenderer
+
+class BukkriptViewNodeDecorator : ProjectViewNodeDecorator {
+ override fun decorate(node: ProjectViewNode<*>, data: PresentationData) {
+ val file = node.virtualFile ?: return
+
+ println(file.name)
+
+ val icon = when {
+ file.isScriptFolder() -> Assets.FolderScript
+ file.isPluginsFolder() -> Assets.FolderPlugins
+ file.isBukkriptFolder() -> Assets.FolderBukkript
+ else -> null
+ }
+
+ println(icon)
+
+ if(icon != null) {
+ node.icon = icon
+ data.setIcon(icon)
+ }
+ }
+
+ override fun decorate(node: PackageDependenciesNode, cellRenderer: ColoredTreeCellRenderer) {
+
+ }
+}
\ No newline at end of file
diff --git a/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/bukkript/Utils.kt b/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/bukkript/Utils.kt
index ab79972..b5d1b6c 100644
--- a/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/bukkript/Utils.kt
+++ b/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/bukkript/Utils.kt
@@ -1,3 +1,32 @@
package br.com.devsrsouza.kotlinbukkitapi.tooling.bukkript
-fun String.isBukkriptScript() = endsWith(".$BUKKRIPT_EXTENSION", true)
\ No newline at end of file
+import com.intellij.openapi.vfs.VirtualFile
+import java.io.File
+
+fun String.isBukkriptScript() = endsWith(".$BUKKRIPT_EXTENSION", true)
+
+fun VirtualFile.isBukkriptScript() = name.isBukkriptScript()
+
+fun VirtualFile.isScriptFolder(): Boolean {
+ if(name != "scripts") return false
+
+ val bukkriptFodler = parent ?: return false
+
+ return bukkriptFodler.isBukkriptFolder()
+}
+
+fun VirtualFile.isPluginsFolder(): Boolean {
+ if(name != "plugins") return false
+
+ val rootServerFolder = parent ?: return false
+
+ return rootServerFolder.children?.find { it.name == "server.properties" } != null
+}
+
+fun VirtualFile.isBukkriptFolder(): Boolean {
+ if(name != "Bukkript") return false
+
+ val pluginsFolder = parent ?: return false
+
+ return pluginsFolder.name == "plugins"
+}
\ No newline at end of file
diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml
index 942efc2..fa66e02 100644
--- a/src/main/resources/META-INF/plugin.xml
+++ b/src/main/resources/META-INF/plugin.xml
@@ -20,6 +20,8 @@
+
+
diff --git a/src/main/resources/assets/icons/folderBukkript.svg b/src/main/resources/assets/icons/folderBukkript.svg
new file mode 100644
index 0000000..4c627ce
--- /dev/null
+++ b/src/main/resources/assets/icons/folderBukkript.svg
@@ -0,0 +1,190 @@
+
+
diff --git a/src/main/resources/assets/icons/folderPlugins.svg b/src/main/resources/assets/icons/folderPlugins.svg
new file mode 100644
index 0000000..d2b665d
--- /dev/null
+++ b/src/main/resources/assets/icons/folderPlugins.svg
@@ -0,0 +1,58 @@
+
+
diff --git a/src/main/resources/assets/icons/folderScript.svg b/src/main/resources/assets/icons/folderScript.svg
new file mode 100644
index 0000000..b94cc04
--- /dev/null
+++ b/src/main/resources/assets/icons/folderScript.svg
@@ -0,0 +1,3 @@
+