Skip to content

Commit 5dbe76f

Browse files
committed
Make Kotlin examples compile
1 parent e9dfa20 commit 5dbe76f

File tree

36 files changed

+411
-256
lines changed

36 files changed

+411
-256
lines changed

reference-code/buildSrc/src/main/kotlin/common.gradle.kts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ java.sourceCompatibility = JavaVersion.VERSION_21
1010
java.targetCompatibility = JavaVersion.VERSION_21
1111

1212
val commandApiVersion: String by project
13-
val paperVersion: String by project
14-
val velocityVersion: String by project
1513
val brigadierVersion: String by project
1614
val authlibVersion: String by project
1715
val nbtApiVersion: String by project
@@ -43,9 +41,9 @@ repositories {
4341
}
4442

4543
dependencies {
46-
api("dev.jorel:commandapi-annotations:$commandApiVersion")
47-
api("de.tr7zw:item-nbt-api:$nbtApiVersion")
48-
api("org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion")
44+
compileOnly("dev.jorel:commandapi-annotations:$commandApiVersion")
45+
compileOnly("de.tr7zw:item-nbt-api:$nbtApiVersion")
46+
compileOnly("org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion")
4947
testImplementation("org.junit.jupiter:junit-jupiter:$junitVersion")
5048
testImplementation("com.github.seeseemelk:MockBukkit-v1.21:$mockBukkitVersion")
5149
compileOnly("com.mojang:brigadier:$brigadierVersion")

reference-code/bukkit/src/main/java/createcommands/CommandTrees.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
import dev.jorel.commandapi.CommandAPI;
44
import dev.jorel.commandapi.CommandTree;
55
import dev.jorel.commandapi.arguments.DoubleArgument;
6+
import dev.jorel.commandapi.arguments.EntitySelectorArgument;
67
import dev.jorel.commandapi.arguments.GreedyStringArgument;
78
import dev.jorel.commandapi.arguments.IntegerArgument;
89
import dev.jorel.commandapi.arguments.LiteralArgument;
9-
import dev.jorel.commandapi.arguments.PlayerArgument;
1010
import dev.jorel.commandapi.arguments.StringArgument;
1111
import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException;
1212
import org.bukkit.block.Block;
@@ -23,7 +23,7 @@ class CommandTrees {
2323
.executes((sender, args) -> {
2424
sender.sendMessage("Hi!");
2525
})
26-
.then(new PlayerArgument("target")
26+
.then(new EntitySelectorArgument.OnePlayer("target")
2727
.executes((sender, args) -> {
2828
Player target = (Player) args.get("target");
2929
target.sendMessage("Hi");

reference-code/bukkit/src/main/java/createcommands/Permissions.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
import dev.jorel.commandapi.CommandAPICommand;
44
import dev.jorel.commandapi.CommandPermission;
55
import dev.jorel.commandapi.arguments.DoubleArgument;
6+
import dev.jorel.commandapi.arguments.EntitySelectorArgument;
67
import dev.jorel.commandapi.arguments.LiteralArgument;
7-
import dev.jorel.commandapi.arguments.PlayerArgument;
88
import org.bukkit.entity.Player;
99

1010
class Permissions {
@@ -43,7 +43,7 @@ class Permissions {
4343
// #region argumentPermissionExampleStep2
4444
// Adds the OP permission to the "target" argument. The sender requires OP to execute /kill <target>
4545
new CommandAPICommand("kill")
46-
.withArguments(new PlayerArgument("target").withPermission(CommandPermission.OP))
46+
.withArguments(new EntitySelectorArgument.OnePlayer("target").withPermission(CommandPermission.OP))
4747
.executesPlayer((player, args) -> {
4848
((Player) args.get("target")).setHealth(0);
4949
})
@@ -62,7 +62,7 @@ class Permissions {
6262
// /economy <target> - requires the permission "economy.other" to execute
6363
new CommandAPICommand("economy")
6464
.withPermission("economy.other") // The important part of this example
65-
.withArguments(new PlayerArgument("target"))
65+
.withArguments(new EntitySelectorArgument.OnePlayer("target"))
6666
.executesPlayer((player, args) -> {
6767
Player target = (Player) args.get("target");
6868

@@ -75,7 +75,7 @@ class Permissions {
7575
new CommandAPICommand("economy")
7676
.withPermission("economy.admin.give") // The important part of this example
7777
.withArguments(new LiteralArgument("give"))
78-
.withArguments(new PlayerArgument("target"))
78+
.withArguments(new EntitySelectorArgument.OnePlayer("target"))
7979
.withArguments(new DoubleArgument("amount"))
8080
.executesPlayer((player, args) -> {
8181
Player target = (Player) args.get("target");
@@ -90,7 +90,7 @@ class Permissions {
9090
new CommandAPICommand("economy")
9191
.withPermission("economy.admin.reset") // The important part of this example
9292
.withArguments(new LiteralArgument("reset"))
93-
.withArguments(new PlayerArgument("target"))
93+
.withArguments(new EntitySelectorArgument.OnePlayer("target"))
9494
.executesPlayer((player, args) -> {
9595
Player target = (Player) args.get("target");
9696

reference-code/bukkit/src/main/java/createcommands/Requirements.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
import dev.jorel.commandapi.CommandAPI;
44
import dev.jorel.commandapi.CommandAPICommand;
55
import dev.jorel.commandapi.arguments.Argument;
6+
import dev.jorel.commandapi.arguments.ArgumentSuggestions;
7+
import dev.jorel.commandapi.arguments.EntitySelectorArgument;
68
import dev.jorel.commandapi.arguments.LiteralArgument;
7-
import dev.jorel.commandapi.arguments.PlayerArgument;
8-
import dev.jorel.commandapi.arguments.SafeSuggestions;
99
import dev.jorel.commandapi.arguments.StringArgument;
1010
import org.bukkit.Bukkit;
1111
import org.bukkit.Material;
@@ -76,11 +76,11 @@ class Requirements {
7676
.withRequirement(sender -> partyMembers.containsKey(((Player) sender).getUniqueId()))
7777
);
7878

79-
arguments.add(new PlayerArgument("player")
80-
.replaceSafeSuggestions(SafeSuggestions.suggest(info -> {
79+
arguments.add(new EntitySelectorArgument.OnePlayer("player")
80+
.replaceSuggestions(ArgumentSuggestions.strings(info -> {
8181

8282
// Store the list of party members to teleport to
83-
List<Player> playersToTeleportTo = new ArrayList<>();
83+
List<String> playersToTeleportTo = new ArrayList<>();
8484

8585
String partyName = partyMembers.get(((Player) info.sender()).getUniqueId());
8686
// Find the party members
@@ -95,13 +95,13 @@ class Requirements {
9595
Player target = Bukkit.getPlayer(entry.getKey());
9696
if (target.isOnline()) {
9797
// Add them if they are online
98-
playersToTeleportTo.add(target);
98+
playersToTeleportTo.add(target.getName());
9999
}
100100
}
101101
}
102102
}
103103

104-
return playersToTeleportTo.toArray(new Player[0]);
104+
return playersToTeleportTo.toArray(new String[0]);
105105
})));
106106
// #endregion partySystemExampleStep4
107107

reference-code/bukkit/src/main/kotlin/createcommands/CommandTrees.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ fun commandTrees() {
1818
sender.sendMessage("Hi!")
1919
})
2020
.then(
21-
PlayerArgument("target")
21+
EntitySelectorArgument.OnePlayer("target")
2222
.executes(CommandExecutor { _, args ->
2323
val target = args["target"] as Player
2424
target.sendMessage("Hi")

reference-code/bukkit/src/main/kotlin/createcommands/Permissions.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import createcommands.Permissions.Economy
44
import dev.jorel.commandapi.CommandAPICommand
55
import dev.jorel.commandapi.CommandPermission
66
import dev.jorel.commandapi.arguments.DoubleArgument
7-
import dev.jorel.commandapi.arguments.LiteralArgument;
8-
import dev.jorel.commandapi.arguments.PlayerArgument
7+
import dev.jorel.commandapi.arguments.EntitySelectorArgument
8+
import dev.jorel.commandapi.arguments.LiteralArgument
99
import dev.jorel.commandapi.executors.PlayerCommandExecutor
1010
import org.bukkit.entity.Player
1111

@@ -44,7 +44,7 @@ fun permissions() {
4444
// #region argumentPermissionExampleStep2
4545
// Adds the OP permission to the "target" argument. The sender requires OP to execute /kill <target>
4646
CommandAPICommand("kill")
47-
.withArguments(PlayerArgument("target").withPermission(CommandPermission.OP))
47+
.withArguments(EntitySelectorArgument.OnePlayer("target").withPermission(CommandPermission.OP))
4848
.executesPlayer(PlayerCommandExecutor { _, args ->
4949
(args["target"] as Player).health = 0.0
5050
})
@@ -63,7 +63,7 @@ fun permissions() {
6363
// /economy <target> - requires the permission "economy.other" to execute
6464
CommandAPICommand("economy")
6565
.withPermission("economy.other") // The important part of this example
66-
.withArguments(PlayerArgument("target"))
66+
.withArguments(EntitySelectorArgument.OnePlayer("target"))
6767
.executesPlayer(PlayerCommandExecutor { player, args ->
6868
val target = args["target"] as Player
6969

@@ -76,7 +76,7 @@ fun permissions() {
7676
CommandAPICommand("economy")
7777
.withPermission("economy.admin.give") // The important part of this example
7878
.withArguments(LiteralArgument("give"))
79-
.withArguments(PlayerArgument("target"))
79+
.withArguments(EntitySelectorArgument.OnePlayer("target"))
8080
.withArguments(DoubleArgument("amount"))
8181
.executesPlayer(PlayerCommandExecutor { player, args ->
8282
val target = args["target"] as Player
@@ -91,7 +91,7 @@ fun permissions() {
9191
CommandAPICommand("economy")
9292
.withPermission("economy.admin.reset") // The important part of this example
9393
.withArguments(LiteralArgument("reset"))
94-
.withArguments(PlayerArgument("target"))
94+
.withArguments(EntitySelectorArgument.OnePlayer("target"))
9595
.executesPlayer(PlayerCommandExecutor { player, args ->
9696
val target = args["target"] as Player
9797

reference-code/bukkit/src/main/kotlin/createcommands/Requirements.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,11 @@ fun requirements() {
6363
arguments.add(LiteralArgument("tp")
6464
.withRequirement { partyMembers.containsKey((it as Player).uniqueId) })
6565

66-
arguments.add(PlayerArgument("player")
67-
.replaceSafeSuggestions(SafeSuggestions.suggest { info ->
66+
arguments.add(EntitySelectorArgument.OnePlayer("player")
67+
.replaceSuggestions(ArgumentSuggestions.strings { info ->
6868

6969
// Store the list of party members to teleport to
70-
val playersToTeleportTo = mutableListOf<Player>()
70+
val playersToTeleportTo = mutableListOf<String>()
7171

7272
val partyName = partyMembers[(info.sender() as Player).uniqueId]
7373

@@ -83,7 +83,7 @@ fun requirements() {
8383
val target = Bukkit.getPlayer(uuid)!!
8484
if (target.isOnline) {
8585
// Add them if they are online
86-
playersToTeleportTo.add(target)
86+
playersToTeleportTo.add(target.name)
8787
}
8888
}
8989
}

reference-code/bukkit/src/main/kotlin/createcommands/arguments/CommandArguments.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ fun commandArguments() {
1010
CommandAPICommand("mycommand")
1111
.withArguments(StringArgument("name"))
1212
.withArguments(IntegerArgument("amount"))
13-
.withOptionalArguments(PlayerArgument("player"))
14-
.withOptionalArguments(PlayerArgument("target"))
13+
.withOptionalArguments(EntitySelectorArgument.OnePlayer("player"))
14+
.withOptionalArguments(EntitySelectorArgument.OnePlayer("target"))
1515
.withOptionalArguments(GreedyStringArgument("message"))
1616
.executesPlayer(PlayerCommandExecutor { player, args ->
1717
val name = args[0] as String // Access arguments by index
@@ -36,7 +36,7 @@ fun commandArguments() {
3636

3737
// #region getUncheckedExample
3838
CommandAPICommand("mycommand")
39-
.withArguments(PlayerArgument("player"))
39+
.withArguments(EntitySelectorArgument.OnePlayer("player"))
4040
.executesPlayer(PlayerCommandExecutor { player, args ->
4141
val p: Player = args.getUnchecked("player")!!
4242
// Do whatever with the player
@@ -47,8 +47,8 @@ fun commandArguments() {
4747
// #region getByArgumentExample
4848
val nameArgument = StringArgument("name")
4949
val amountArgument = IntegerArgument("amount")
50-
val playerArgument = PlayerArgument("player")
51-
val targetArgument = PlayerArgument("target")
50+
val playerArgument = EntitySelectorArgument.OnePlayer("player")
51+
val targetArgument = EntitySelectorArgument.OnePlayer("target")
5252
val messageArgument = GreedyStringArgument("message")
5353

5454
CommandAPICommand("mycommand")

reference-code/bukkit/src/main/kotlin/createcommands/arguments/ListedArguments.kt

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,17 @@
11
package createcommands.arguments
22

33
import dev.jorel.commandapi.CommandAPICommand
4+
import dev.jorel.commandapi.arguments.EntitySelectorArgument
45
import dev.jorel.commandapi.arguments.GreedyStringArgument
56
import dev.jorel.commandapi.arguments.IntegerArgument
6-
import dev.jorel.commandapi.arguments.PlayerArgument
77
import dev.jorel.commandapi.executors.CommandExecutor
8-
import dev.jorel.commandapi.kotlindsl.anyExecutor
9-
import dev.jorel.commandapi.kotlindsl.commandAPICommand
10-
import dev.jorel.commandapi.kotlindsl.greedyStringArgument
11-
import dev.jorel.commandapi.kotlindsl.integerArgument
12-
import dev.jorel.commandapi.kotlindsl.playerArgument
8+
import dev.jorel.commandapi.kotlindsl.*
139
import org.bukkit.entity.Player
1410

1511
fun listedArguments() {
1612
// #region listedArgumentsExample
1713
CommandAPICommand("mycommand")
18-
.withArguments(PlayerArgument("player"))
14+
.withArguments(EntitySelectorArgument.OnePlayer("player"))
1915
.withArguments(IntegerArgument("value").setListed(false))
2016
.withArguments(GreedyStringArgument("message"))
2117
.executes(CommandExecutor { _, args ->
@@ -31,7 +27,7 @@ fun listedArguments() {
3127
fun listedArgumentsDSL() {
3228
// #region listedArgumentsExampleDSL
3329
commandAPICommand("mycommand") {
34-
playerArgument("player")
30+
entitySelectorArgumentOnePlayer("player")
3531
integerArgument("value") { isListed = false }
3632
greedyStringArgument("message")
3733
anyExecutor { _, args ->

reference-code/bukkit/src/main/kotlin/createcommands/arguments/OptionalArguments.kt

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,19 @@
11
package createcommands.arguments
22

33
import dev.jorel.commandapi.CommandAPICommand
4+
import dev.jorel.commandapi.arguments.EntitySelectorArgument
45
import dev.jorel.commandapi.arguments.IntegerArgument
5-
import dev.jorel.commandapi.arguments.PlayerArgument
66
import dev.jorel.commandapi.arguments.StringArgument
77
import dev.jorel.commandapi.executors.CommandExecutor
88
import dev.jorel.commandapi.executors.PlayerCommandExecutor
9-
import dev.jorel.commandapi.kotlindsl.anyExecutor
10-
import dev.jorel.commandapi.kotlindsl.argument
11-
import dev.jorel.commandapi.kotlindsl.commandAPICommand
12-
import dev.jorel.commandapi.kotlindsl.playerArgument
13-
import dev.jorel.commandapi.kotlindsl.playerExecutor
9+
import dev.jorel.commandapi.kotlindsl.*
1410
import org.bukkit.command.CommandSender
1511
import org.bukkit.entity.Player
1612

1713
fun optionalArguments() {
1814
// #region simpleOptionalArgumentsExample
1915
CommandAPICommand("sayhi")
20-
.withOptionalArguments(PlayerArgument("target"))
16+
.withOptionalArguments(EntitySelectorArgument.OnePlayer("target"))
2117
.executesPlayer(PlayerCommandExecutor { player, args ->
2218
val target: Player? = args["target"] as Player?
2319
if (target != null) {
@@ -31,7 +27,7 @@ fun optionalArguments() {
3127

3228
// #region getOptionalExample
3329
CommandAPICommand("sayhi")
34-
.withOptionalArguments(PlayerArgument("target"))
30+
.withOptionalArguments(EntitySelectorArgument.OnePlayer("target"))
3531
.executesPlayer(PlayerCommandExecutor { player, args ->
3632
val target: Player = args.getOptional("target").orElse(player) as Player
3733
target.sendMessage("Hi!")
@@ -42,7 +38,7 @@ fun optionalArguments() {
4238
// #region argumentsAfterOptionalArgumentsExample
4339
CommandAPICommand("rate")
4440
.withOptionalArguments(StringArgument("topic").combineWith(IntegerArgument("rating", 0, 10)))
45-
.withOptionalArguments(PlayerArgument("target"))
41+
.withOptionalArguments(EntitySelectorArgument.OnePlayer("target"))
4642
.executes(CommandExecutor { sender, args ->
4743
val topic: String? = args["topic"] as String?
4844
if (topic == null) {
@@ -69,7 +65,7 @@ fun optionalArguments() {
6965
fun optionalArgumentsDSL() {
7066
// #region simpleOptionalArgumentsExampleDSL
7167
commandAPICommand("sayhi") {
72-
playerArgument("target", optional = true)
68+
entitySelectorArgumentOnePlayer("target", optional = true)
7369
playerExecutor { player, args ->
7470
val target: Player? = args["target"] as Player?
7571
if (target != null) {
@@ -83,7 +79,7 @@ fun optionalArgumentsDSL() {
8379

8480
// #region getOptionalExampleDSL
8581
commandAPICommand("sayhi") {
86-
playerArgument("target", optional = true)
82+
entitySelectorArgumentOnePlayer("target", optional = true)
8783
playerExecutor { player, args ->
8884
val target: Player = args.getOptional("target").orElse(player) as Player
8985
target.sendMessage("Hi!")
@@ -94,7 +90,7 @@ fun optionalArgumentsDSL() {
9490
// #region argumentsAfterOptionalArgumentsExampleDSL
9591
commandAPICommand("rate") {
9692
argument(StringArgument("topic").setOptional(true).combineWith(IntegerArgument("rating", 0, 10)))
97-
playerArgument("target", optional = true)
93+
entitySelectorArgumentOnePlayer("target", optional = true)
9894
anyExecutor { sender, args ->
9995
val topic: String? = args["topic"] as String?
10096
if (topic == null) {

0 commit comments

Comments
 (0)