Skip to content

Commit 02162c8

Browse files
committed
feat: add Adventure and Player API integration
1 parent 0c7080a commit 02162c8

File tree

22 files changed

+1857
-35
lines changed

22 files changed

+1857
-35
lines changed

api/build.gradle.kts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,17 @@ java {
1616
dependencies {
1717
implementation(rootProject.libs.jnats)
1818
implementation(rootProject.libs.controller.proto)
19+
implementation(rootProject.libs.player.proto)
20+
implementation(rootProject.libs.adventure.proto)
1921
implementation(rootProject.libs.okhttp)
2022
implementation(rootProject.libs.okhttp.logging)
2123
implementation(rootProject.libs.gson)
2224
implementation(rootProject.libs.gson.fire)
2325
implementation(rootProject.libs.jakarta.annotation)
2426
implementation(rootProject.libs.javax.annotation)
27+
28+
implementation(rootProject.libs.adventure.api)
29+
implementation(rootProject.libs.adventure.gson)
2530
}
2631

2732
tasks.named<ShadowJar>("shadowJar") {
@@ -47,8 +52,8 @@ tasks.named<ShadowJar>("shadowJar") {
4752
archiveClassifier.set("")
4853
}
4954

50-
tasks.named("jar") {
51-
enabled = false
55+
tasks.named<Jar>("jar") {
56+
archiveClassifier.set("thin")
5257
}
5358

5459
sourceSets {

api/src/main/java/app/simplecloud/api/CloudApi.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import app.simplecloud.api.event.EventApi;
44
import app.simplecloud.api.group.GroupApi;
55
import app.simplecloud.api.internal.CloudApiImpl;
6+
import app.simplecloud.api.player.PlayerApi;
67
import app.simplecloud.api.server.ServerApi;
78

89
/**
@@ -91,5 +92,22 @@ static CloudApi create(CloudApiOptions options) {
9192
*/
9293
EventApi event();
9394

95+
/**
96+
* Returns the player management API.
97+
*
98+
* <p>Use this to query online players, send messages, kick, connect, etc.
99+
* Players implement Adventure's Audience interface for sending content.
100+
*
101+
* @return the player API
102+
*/
103+
PlayerApi player();
104+
105+
/**
106+
* Returns the network ID this API is connected to.
107+
*
108+
* @return the network ID
109+
*/
110+
String getNetworkId();
111+
94112
}
95113

api/src/main/java/app/simplecloud/api/internal/CloudApiImpl.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import app.simplecloud.api.internal.event.EventApiImpl;
88
import app.simplecloud.api.internal.group.GroupApiImpl;
99
import app.simplecloud.api.internal.server.ServerApiImpl;
10+
import app.simplecloud.api.internal.player.PlayerApiImpl;
11+
import app.simplecloud.api.player.PlayerApi;
1012
import app.simplecloud.api.server.ServerApi;
1113
import io.nats.client.Connection;
1214
import io.nats.client.Nats;
@@ -22,6 +24,7 @@ public class CloudApiImpl implements CloudApi {
2224
private final ServerApi serverApi;
2325
private final GroupApi groupApi;
2426
private final EventApi eventApi;
27+
private final PlayerApi playerApi;
2528

2629
public CloudApiImpl(CloudApiOptions options) {
2730
this.options = options;
@@ -40,6 +43,7 @@ public CloudApiImpl(CloudApiOptions options) {
4043
this.serverApi = new ServerApiImpl(options);
4144
this.groupApi = new GroupApiImpl(options);
4245
this.eventApi = new EventApiImpl(natsClient, options.getNetworkId());
46+
this.playerApi = new PlayerApiImpl(options, natsClient);
4347
}
4448

4549
@Override
@@ -57,5 +61,25 @@ public EventApi event() {
5761
return eventApi;
5862
}
5963

64+
@Override
65+
public PlayerApi player() {
66+
return playerApi;
67+
}
68+
69+
/**
70+
* Returns the underlying NATS connection.
71+
* This is for internal use by integration modules.
72+
*
73+
* @return the NATS connection
74+
*/
75+
public Connection getNatsConnection() {
76+
return natsClient;
77+
}
78+
79+
@Override
80+
public String getNetworkId() {
81+
return options.getNetworkId();
82+
}
83+
6084
}
6185

0 commit comments

Comments
 (0)