Skip to content

Commit d886379

Browse files
committed
feat(ServerConfiguration): Change args type from String to List
1 parent d222ad8 commit d886379

File tree

6 files changed

+40
-28
lines changed

6 files changed

+40
-28
lines changed

CHANGELOG.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,16 @@ The plugin has been converted to Kotlin to make support easier.
4242
The plugin still can be configured with Groovy DSL but
4343
now it is friendly to Kotlin DSL.
4444

45-
### Added
46-
- Configuration avoidance and build cache for task `generateMetaData`
47-
- Add `nogui` argument by default to `bukkitArgs`
48-
4945
### Removed
5046
- Task `:rebuildServerCore`, use `:buildServerCore --rerun-tasks` instead
5147
- Extension `DependencyHandler.craftbukkit()`, use `DependencyHandler.spigot()` instead
5248
- Automatic `mavenLocal()` apply, you should apply it manually if you need it
5349

50+
### Changed
51+
- Add `nogui` argument by default to `bukkitArgs`
52+
- Type of properties `server.jvmArgs` and `server.bukkitArgs` changed from `String` to `List<String>`.
53+
It makes it easier to add arguments without overriding defaults
54+
5455
### Housekeeping
5556
- Default bukkit version now is 1.16.4
5657
- Update Gradle to 6.7.1

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,9 +227,9 @@ bukkit {
227227
// Set server encoding (flag -Dfile.encoding)
228228
encoding = "UTF-8"
229229
// JVM arguments
230-
javaArgs = "-Xmx1G"
230+
javaArgs("-Xmx1G")
231231
// Bukkit arguments
232-
bukkitArgs = "nogui"
232+
bukkitArgs("nogui")
233233
}
234234
}
235235
```

src/main/kotlin/server/DevServerPlugin.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,8 @@ public class DevServerPlugin : Plugin<Project> {
147147
) {
148148
tasks.register<RunServer>("runServer") {
149149
workingDir(serverDir)
150-
jvmArgs = serverConfiguration.buildJvmArgs().split(" ")
151-
bukkitArgs = serverConfiguration.bukkitArgs.split(" ")
150+
jvmArgs = serverConfiguration.buildJvmArgs()
151+
bukkitArgs = serverConfiguration.bukkitArgs
152152
dependsOn(prepareServer)
153153
}
154154
}

src/main/kotlin/server/extension/ServerConfiguration.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ public interface ServerConfiguration {
77
public val onlineMode: Boolean
88
public val debug: Boolean
99
public val encoding: String
10-
public val javaArgs: String
11-
public val bukkitArgs: String
10+
public val javaArgs: List<String>
11+
public val bukkitArgs: List<String>
1212
public val coreType: CoreType
1313

1414
/** Returns arguments for JVM. */
15-
public fun buildJvmArgs(): String
15+
public fun buildJvmArgs(): List<String>
1616
}

src/main/kotlin/server/extension/ServerConfigurationImpl.kt

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@ public class ServerConfigurationImpl : ServerConfiguration {
1313
override var onlineMode: Boolean = false
1414
override var debug: Boolean = true
1515
override var encoding: String = "UTF-8"
16-
override var javaArgs: String = "-Xmx1G"
17-
override var bukkitArgs: String = "nogui"
16+
17+
override var javaArgs: List<String> = listOf("-Xmx1G")
18+
override var bukkitArgs: List<String> = listOf("nogui")
1819

1920
override var coreType: CoreType = CoreType.SPIGOT
2021

@@ -37,8 +38,18 @@ public class ServerConfigurationImpl : ServerConfiguration {
3738
}
3839
}
3940

40-
override fun buildJvmArgs(): String {
41-
return "${if (debug) "$DEBUG_ARGS " else ""}-Dfile.encoding=$encoding $javaArgs"
41+
/** Append the given [args] to `javaArgs`. */
42+
public fun javaArgs(vararg args: String) {
43+
javaArgs = javaArgs + args.toList()
44+
}
45+
46+
/** Append the given [args] to `bukkitArgs`. */
47+
public fun bukkitArgs(vararg args: String) {
48+
bukkitArgs = bukkitArgs + args.toList()
49+
}
50+
51+
override fun buildJvmArgs(): List<String> {
52+
return listOfNotNull(DEBUG_ARGS.takeIf { debug }, "-Dfile.encoding=$encoding") + javaArgs
4253
}
4354

4455
override fun toString(): String {

src/test/groovy/ru/endlesscode/bukkitgradle/server/extension/ServerConfigurationSpec.groovy

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,52 +5,52 @@ import spock.lang.Specification
55
class ServerConfigurationSpec extends Specification {
66

77
// SUT
8-
ServerConfigurationImpl runConfiguration
8+
ServerConfigurationImpl serverConfiguration
99

1010
void setup() {
11-
runConfiguration = new ServerConfigurationImpl()
11+
serverConfiguration = new ServerConfigurationImpl()
1212
}
1313

1414
void 'when build args - should return args with debug flags'() {
1515
when:
16-
def args = runConfiguration.buildJvmArgs()
16+
def args = serverConfiguration.buildJvmArgs()
1717

1818
then:
19-
"-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -Dfile.encoding=UTF-8 -Xmx1G" == args
19+
["-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005", "-Dfile.encoding=UTF-8", "-Xmx1G"] == args
2020
}
2121

2222
void 'when build args - and debug disabled - should return args without debug flags'() {
2323
given:
24-
runConfiguration.debug = false
24+
serverConfiguration.debug = false
2525

2626
when:
27-
def args = runConfiguration.buildJvmArgs()
27+
def args = serverConfiguration.buildJvmArgs()
2828

2929
then:
30-
"-Dfile.encoding=UTF-8 -Xmx1G" == args
30+
["-Dfile.encoding=UTF-8", "-Xmx1G"] == args
3131
}
3232

3333
void 'when set existing core - should set core successfully'() {
3434
when:
35-
runConfiguration.core = "paper"
35+
serverConfiguration.core = "paper"
3636

3737
then:
38-
CoreType.PAPER == runConfiguration.coreType
38+
CoreType.PAPER == serverConfiguration.coreType
3939
}
4040

4141
void 'when set existing core in mixed case - should set core successfully'() {
4242
when:
43-
runConfiguration.core = "Paper"
43+
serverConfiguration.core = "Paper"
4444

4545
then:
46-
CoreType.PAPER == runConfiguration.coreType
46+
CoreType.PAPER == serverConfiguration.coreType
4747
}
4848

4949
void 'when set not existing core - should fallback to spigot core'() {
5050
when:
51-
runConfiguration.core = "uber-bukkit"
51+
serverConfiguration.core = "uber-bukkit"
5252

5353
then:
54-
CoreType.SPIGOT == runConfiguration.coreType
54+
CoreType.SPIGOT == serverConfiguration.coreType
5555
}
5656
}

0 commit comments

Comments
 (0)