mirror of
https://github.com/plexusorg/plugin-yml.git
synced 2024-12-22 16:25:06 +00:00
973756cc6b
Closes #11
324 lines
9 KiB
Markdown
324 lines
9 KiB
Markdown
# plugin-yml
|
|
[plugin-yml] is a simple Gradle plugin that generates the `plugin.yml` plugin description file for Bukkit plugins,
|
|
`bungee.yml` for Bungee plugins or `nukkit.yml` for Nukkit plugins based on the Gradle project. Various properties
|
|
are set automatically (e.g. project name, version or description) and additional properties can be added using a
|
|
simple DSL.
|
|
|
|
## Usage
|
|
[plugin-yml] requires at least **Gradle 5.0**. Using the latest version of Gradle is recommended.
|
|
|
|
### Default values
|
|
|
|
| Property | Value |
|
|
| ------------- | ------------- |
|
|
| Plugin name | Project name |
|
|
| Plugin version | Project version |
|
|
| Plugin description | Project description |
|
|
| Plugin URL (Bukkit only) | `url` project property |
|
|
| Plugin author | `author` project property |
|
|
|
|
### Bukkit
|
|
|
|
<details>
|
|
<summary><strong>Groovy</strong></summary>
|
|
|
|
```groovy
|
|
plugins {
|
|
id 'net.minecrell.plugin-yml.bukkit' version '0.4.0'
|
|
}
|
|
|
|
dependencies {
|
|
// Downloaded from Maven Central when the plugin is loaded
|
|
library 'com.google.code.gson:gson:2.8.7' // All platforms
|
|
bukkitLibrary 'com.google.code.gson:gson:2.8.7' // Bukkit only
|
|
}
|
|
|
|
bukkit {
|
|
// Default values can be overridden if needed
|
|
// name = 'TestPlugin'
|
|
// version = '1.0'
|
|
// description = 'This is a test plugin'
|
|
// website = 'https://example.com'
|
|
// author = 'Notch'
|
|
|
|
// Plugin main class (required)
|
|
main = 'com.example.testplugin.TestPlugin'
|
|
|
|
// API version (should be set for 1.13+)
|
|
apiVersion = '1.13'
|
|
|
|
// Other possible properties from plugin.yml (optional)
|
|
load = 'STARTUP' // or 'POSTWORLD'
|
|
authors = ['Notch', 'Notch2']
|
|
depend = ['WorldEdit']
|
|
softDepend = ['Essentials']
|
|
loadBefore = ['BrokenPlugin']
|
|
prefix = 'TEST'
|
|
defaultPermission = 'OP' // 'TRUE', 'FALSE', 'OP' or 'NOT_OP'
|
|
provides = ['TestPluginOldName', 'TestPlug']
|
|
|
|
commands {
|
|
test {
|
|
description = 'This is a test command!'
|
|
aliases = ['t']
|
|
permission = 'testplugin.test'
|
|
usage = 'Just run the command!'
|
|
// permissionMessage = 'You may not test this command!'
|
|
}
|
|
// ...
|
|
}
|
|
|
|
permissions {
|
|
'testplugin.*' {
|
|
children = ['testplugin.test'] // Defaults permissions to true
|
|
// You can also specify the values of the permissions
|
|
childrenMap = ['testplugin.test': false]
|
|
}
|
|
'testplugin.test' {
|
|
description = 'Allows you to run the test command'
|
|
setDefault('OP') // 'TRUE', 'FALSE', 'OP' or 'NOT_OP'
|
|
}
|
|
}
|
|
}
|
|
```
|
|
</details>
|
|
|
|
<details>
|
|
<summary><strong>kotlin-dsl</strong></summary>
|
|
|
|
```kotlin
|
|
plugins {
|
|
id("net.minecrell.plugin-yml.bukkit") version "0.4.0"
|
|
}
|
|
|
|
dependencies {
|
|
// Downloaded from Maven Central when the plugin is loaded
|
|
library(kotlin("stdlib")) // All platforms
|
|
library("com.google.code.gson", "gson", "2.8.7") // All platforms
|
|
bukkitLibrary("com.google.code.gson", "gson", "2.8.7") // Bukkit only
|
|
}
|
|
|
|
bukkit {
|
|
// Default values can be overridden if needed
|
|
// name = "TestPlugin"
|
|
// version = "1.0"
|
|
// description = "This is a test plugin"
|
|
// website = "https://example.com"
|
|
// author = "Notch"
|
|
|
|
// Plugin main class (required)
|
|
main = "com.example.testplugin.TestPlugin"
|
|
|
|
// API version (should be set for 1.13+)
|
|
apiVersion = "1.13"
|
|
|
|
// Other possible properties from plugin.yml (optional)
|
|
load = BukkitPluginDescription.PluginLoadOrder.STARTUP // or POSTWORLD
|
|
authors = listOf("Notch", "Notch2")
|
|
depend = listOf("WorldEdit")
|
|
softDepend = listOf("Essentials")
|
|
loadBefore = listOf("BrokenPlugin")
|
|
prefix = "TEST"
|
|
defaultPermission = BukkitPluginDescription.Permission.Default.OP // TRUE, FALSE, OP or NOT_OP
|
|
provides = listOf("TestPluginOldName", "TestPlug")
|
|
|
|
commands {
|
|
register("test") {
|
|
description = "This is a test command!"
|
|
aliases = listOf("t")
|
|
permission = "testplugin.test"
|
|
usage = "Just run the command!"
|
|
// permissionMessage = "You may not test this command!"
|
|
}
|
|
// ...
|
|
}
|
|
|
|
permissions {
|
|
register("testplugin.*") {
|
|
children = listOf("testplugin.test") // Defaults permissions to true
|
|
// You can also specify the values of the permissions
|
|
childrenMap = mapOf("testplugin.test" to true)
|
|
}
|
|
register("testplugin.test") {
|
|
description = "Allows you to run the test command"
|
|
default = BukkitPluginDescription.Permission.Default.OP // TRUE, FALSE, OP or NOT_OP
|
|
}
|
|
}
|
|
}
|
|
```
|
|
</details>
|
|
|
|
### BungeeCord
|
|
|
|
<details>
|
|
<summary><strong>Groovy</strong></summary>
|
|
|
|
```groovy
|
|
plugins {
|
|
id 'net.minecrell.plugin-yml.bungee' version '0.4.0'
|
|
}
|
|
|
|
dependencies {
|
|
// Downloaded from Maven Central when the plugin is loaded
|
|
library 'com.google.code.gson:gson:2.8.7' // All platforms
|
|
bungeeLibrary 'com.google.code.gson:gson:2.8.7' // Bungee only
|
|
}
|
|
|
|
bungee {
|
|
// Default values can be overridden if needed
|
|
// name = 'TestPlugin'
|
|
// version = '1.0'
|
|
// description = 'This is a test plugin'
|
|
|
|
// Plugin main class (required)
|
|
main = 'com.example.testplugin.TestPlugin'
|
|
|
|
// Other possible properties from bungee.yml
|
|
author = 'Notch'
|
|
depends = ['Yamler']
|
|
softDepends = ['ServerListPlus']
|
|
}
|
|
```
|
|
</details>
|
|
|
|
<details>
|
|
<summary><strong>kotlin-dsl</strong></summary>
|
|
|
|
```kotlin
|
|
plugins {
|
|
id("net.minecrell.plugin-yml.bungee") version "0.4.0"
|
|
}
|
|
|
|
dependencies {
|
|
// Downloaded from Maven Central when the plugin is loaded
|
|
library(kotlin("stdlib")) // All platforms
|
|
library("com.google.code.gson", "gson", "2.8.7") // All platforms
|
|
bungeeLibrary("com.google.code.gson", "gson", "2.8.7") // Bungee only
|
|
}
|
|
|
|
bungee {
|
|
// Default values can be overridden if needed
|
|
// name = "TestPlugin"
|
|
// version = "1.0"
|
|
// description = "This is a test plugin"
|
|
|
|
// Plugin main class (required)
|
|
main = "com.example.testplugin.TestPlugin"
|
|
|
|
// Other possible properties from bungee.yml
|
|
author = "Notch"
|
|
depends = setOf("Yamler")
|
|
softDepends = setOf("ServerListPlus")
|
|
}
|
|
```
|
|
</details>
|
|
|
|
### Nukkit
|
|
|
|
<details>
|
|
<summary><strong>Groovy</strong></summary>
|
|
|
|
```groovy
|
|
plugins {
|
|
id 'net.minecrell.plugin-yml.nukkit' version '0.4.0'
|
|
}
|
|
|
|
nukkit {
|
|
// Default values can be overridden if needed
|
|
// name = 'TestPlugin'
|
|
// version = '1.0'
|
|
// description = 'This is a test plugin'
|
|
// website = 'https://example.com'
|
|
// author = 'Notch'
|
|
|
|
// Plugin main class and api (required)
|
|
main = 'com.example.testplugin.TestPlugin'
|
|
api = ['1.0.0']
|
|
|
|
// Other possible properties from nukkit.yml (optional)
|
|
load = 'STARTUP' // or 'POSTWORLD'
|
|
authors = ['Notch', 'Notch2']
|
|
depend = ['PlotSquared']
|
|
softDepend = ['LuckPerms']
|
|
loadBefore = ['BrokenPlugin']
|
|
prefix = 'TEST'
|
|
|
|
commands {
|
|
test {
|
|
description = 'This is a test command!'
|
|
aliases = ['t']
|
|
permission = 'testplugin.test'
|
|
usage = 'Just run the command!'
|
|
}
|
|
// ...
|
|
}
|
|
|
|
permissions {
|
|
'testplugin.*' {
|
|
description = 'Allows you to run all testplugin commands'
|
|
children {
|
|
'testplugin.test' {
|
|
description = 'Allows you to run the test command'
|
|
setDefault('OP') // 'TRUE', 'FALSE', 'OP' or 'NOT_OP'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
</details>
|
|
|
|
<details>
|
|
<summary><strong>kotlin-dsl</strong></summary>
|
|
|
|
```kotlin
|
|
plugins {
|
|
id("net.minecrell.plugin-yml.nukkit") version "0.4.0"
|
|
}
|
|
|
|
nukkit {
|
|
// Default values can be overridden if needed
|
|
// name = "TestPlugin"
|
|
// version = "1.0"
|
|
// description = "This is a test plugin"
|
|
// website = "https://example.com"
|
|
// author = "Notch"
|
|
|
|
// Plugin main class and api (required)
|
|
main = "com.example.testplugin.TestPlugin"
|
|
api = listOf("1.0.0")
|
|
|
|
// Other possible properties from nukkit.yml (optional)
|
|
load = NukkitPluginDescription.PluginLoadOrder.STARTUP // or POSTWORLD
|
|
authors = listOf("Notch", "Notch2")
|
|
depend = listOf("PlotSquared")
|
|
softDepend = listOf("LuckPerms")
|
|
loadBefore = listOf("BrokenPlugin")
|
|
prefix = "TEST"
|
|
|
|
commands {
|
|
register("test") {
|
|
description = "This is a test command!"
|
|
aliases = listOf("t")
|
|
permission = "testplugin.test"
|
|
usage = "Just run the command!"
|
|
}
|
|
// ...
|
|
}
|
|
|
|
permissions {
|
|
register("testplugin.*") {
|
|
description = "Allows you to run all testplugin commands"
|
|
children {
|
|
register("testplugin.test") {
|
|
description = "Allows you to run the test command"
|
|
default = NukkitPluginDescription.Permission.Default.OP // TRUE, FALSE, OP or NOT_OP
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
</details>
|
|
|
|
[plugin-yml]: https://github.com/Minecrell/plugin-yml
|