Skip to content

Commit 9f95639

Browse files
committed
Add Server#getSocketAddress
1 parent f357b03 commit 9f95639

File tree

5 files changed

+29
-13
lines changed

5 files changed

+29
-13
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
# 2.2.0
2+
3+
## Added
4+
- `Server#getSocketAddress()` which returns an `InetSocketAddress` of the server's IP and port if the server is online
5+
16
# 2.1.0
27

38
## Added

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ If you're creating a plugin/mod that runs on an exaroton server, you can get the
1313
Gradle:
1414
```gradle
1515
dependencies {
16-
implementation 'com.exaroton:api:2.1.0'
16+
implementation 'com.exaroton:api:2.2.0'
1717
}
1818
```
1919

@@ -22,7 +22,7 @@ Maven:
2222
<dependency>
2323
<groupId>com.exaroton</groupId>
2424
<artifactId>api</artifactId>
25-
<version>2.1.0</version>
25+
<version>2.2.0</version>
2626
</dependency>
2727
```
2828

src/main/java/com/exaroton/api/server/Server.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import org.jetbrains.annotations.Nullable;
1313

1414
import java.io.IOException;
15+
import java.net.InetSocketAddress;
1516
import java.util.List;
1617
import java.util.Objects;
1718
import java.util.Optional;
@@ -243,6 +244,19 @@ public Optional<Integer> getPort() {
243244
return Optional.ofNullable(port);
244245
}
245246

247+
/**
248+
* Returns an InetSocketAddress with the host and port of the server or an empty optional if the server is offline.
249+
*
250+
* @return InetSocketAddress with the host and port of the server
251+
*/
252+
public Optional<InetSocketAddress> getSocketAddress() {
253+
if (host == null || port == null) {
254+
return Optional.empty();
255+
}
256+
257+
return Optional.of(new InetSocketAddress(host, port));
258+
}
259+
246260
/**
247261
* Get the server software
248262
*

src/test/java/ServerTest.java

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,9 @@
11
import com.exaroton.api.server.*;
2-
import com.exaroton.api.ws.data.HeapUsage;
3-
import com.exaroton.api.ws.data.StatsData;
4-
import com.exaroton.api.ws.data.TickData;
5-
import com.exaroton.api.ws.subscriber.*;
6-
import org.junit.jupiter.api.AssertionFailureBuilder;
72
import org.junit.jupiter.api.Test;
83

94
import java.io.IOException;
10-
import java.util.Arrays;
115
import java.util.List;
12-
import java.util.Random;
136
import java.util.concurrent.*;
14-
import java.util.concurrent.atomic.AtomicBoolean;
15-
import java.util.concurrent.atomic.AtomicLong;
16-
import java.util.function.Function;
17-
import java.util.stream.Collectors;
187

198
import static org.junit.jupiter.api.Assertions.*;
209

@@ -55,6 +44,7 @@ private void checkTestServer() {
5544

5645
assertTrue(server.getHost().isEmpty());
5746
assertEquals(52892, server.getPort().orElse(null));
47+
assertTrue(server.getSocketAddress().isEmpty());
5848

5949
var software = server.getSoftware();
6050
assertNotNull(software);

src/test/java/WebSocketTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,13 @@ void testStartServer() throws IOException, ExecutionException, InterruptedExcept
4040
server.fetch().join();
4141

4242
startServer();
43+
44+
assertTrue(server.getPort().isPresent());
45+
assertTrue(server.getHost().isPresent());
46+
assertTrue(server.getSocketAddress().isPresent());
47+
assertEquals(server.getPort().get(), server.getSocketAddress().get().getPort());
48+
assertEquals(server.getHost().get(), server.getSocketAddress().get().getHostString());
49+
4350
testHeapSubscriber();
4451
testStatsSubscriber();
4552
testTickSubscriber();

0 commit comments

Comments
 (0)