mirror of
				https://github.com/GayPizzaSpecifications/foundation.git
				synced 2025-11-04 03:39:37 +00:00 
			
		
		
		
	Test plugin dependencies and casting the existing instance.
This commit is contained in:
		@ -1,3 +1,5 @@
 | 
				
			|||||||
dependencies {
 | 
					dependencies {
 | 
				
			||||||
  implementation("net.dv8tion:JDA:5.0.0-alpha.2")
 | 
					  implementation("net.dv8tion:JDA:5.0.0-alpha.2")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  compileOnly(project(":foundation-core"))
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -1,9 +1,13 @@
 | 
				
			|||||||
package cloud.kubelet.foundation.bifrost
 | 
					package cloud.kubelet.foundation.bifrost
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cloud.kubelet.foundation.core.FoundationCorePlugin
 | 
				
			||||||
import org.bukkit.plugin.java.JavaPlugin
 | 
					import org.bukkit.plugin.java.JavaPlugin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class FoundationBifrostPlugin : JavaPlugin() {
 | 
					class FoundationBifrostPlugin : JavaPlugin() {
 | 
				
			||||||
  override fun onEnable() {
 | 
					  override fun onEnable() {
 | 
				
			||||||
    slF4JLogger.info("Enabling!")
 | 
					    slF4JLogger.info("Enabling!")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    val foundation = server.pluginManager.getPlugin("Foundation") as FoundationCorePlugin
 | 
				
			||||||
 | 
					    slF4JLogger.info("Plugin data path: ${foundation.pluginDataPath}")
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -7,14 +7,30 @@ import org.bukkit.command.CommandExecutor
 | 
				
			|||||||
import org.bukkit.event.EventHandler
 | 
					import org.bukkit.event.EventHandler
 | 
				
			||||||
import org.bukkit.event.Listener
 | 
					import org.bukkit.event.Listener
 | 
				
			||||||
import org.bukkit.plugin.java.JavaPlugin
 | 
					import org.bukkit.plugin.java.JavaPlugin
 | 
				
			||||||
 | 
					import java.nio.file.Path
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class FoundationCorePlugin : JavaPlugin(), Listener {
 | 
					class FoundationCorePlugin : JavaPlugin(), Listener {
 | 
				
			||||||
 | 
					  private lateinit var _pluginDataPath: Path
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  var pluginDataPath: Path
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Data path of the core plugin.
 | 
				
			||||||
 | 
					     * Can be used as a sanity check of sorts for dependencies to be sure the plugin is loaded.
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    get() {
 | 
				
			||||||
 | 
					      if (!::_pluginDataPath.isInitialized) {
 | 
				
			||||||
 | 
					        throw Exception("FoundationCore is not loaded!")
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      return _pluginDataPath
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    private set(value) { _pluginDataPath = value }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  override fun onEnable() {
 | 
					  override fun onEnable() {
 | 
				
			||||||
    val dataPath = dataFolder.toPath()
 | 
					    pluginDataPath = dataFolder.toPath()
 | 
				
			||||||
    val backupPath = dataPath.resolve(BACKUPS_DIRECTORY)
 | 
					    val backupPath = pluginDataPath.resolve(BACKUPS_DIRECTORY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Create Foundation plugin directories.
 | 
					    // Create Foundation plugin directories.
 | 
				
			||||||
    dataPath.toFile().mkdir()
 | 
					    pluginDataPath.toFile().mkdir()
 | 
				
			||||||
    backupPath.toFile().mkdir()
 | 
					    backupPath.toFile().mkdir()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Register this as an event listener.
 | 
					    // Register this as an event listener.
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user