Skip to content

Commit d8586cf

Browse files
authored
Merge branch 'main' into nation-members
2 parents dfc1535 + 7fa9514 commit d8586cf

File tree

5 files changed

+26
-9
lines changed

5 files changed

+26
-9
lines changed

pom.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<plugin>
2222
<groupId>org.apache.maven.plugins</groupId>
2323
<artifactId>maven-compiler-plugin</artifactId>
24-
<version>3.13.0</version>
24+
<version>3.14.0</version>
2525
<configuration>
2626
<source>17</source>
2727
<target>17</target>
@@ -30,7 +30,7 @@
3030
<plugin>
3131
<groupId>org.apache.maven.plugins</groupId>
3232
<artifactId>maven-shade-plugin</artifactId>
33-
<version>3.5.3</version>
33+
<version>3.6.0</version>
3434
<executions>
3535
<execution>
3636
<phase>package</phase>
@@ -73,12 +73,12 @@
7373
<dependency>
7474
<groupId>com.zaxxer</groupId>
7575
<artifactId>HikariCP</artifactId>
76-
<version>5.1.0</version>
76+
<version>6.3.1</version>
7777
</dependency>
7878
<dependency>
7979
<groupId>io.javalin</groupId>
8080
<artifactId>javalin</artifactId>
81-
<version>6.1.4</version>
81+
<version>6.7.0</version>
8282
</dependency>
8383
</dependencies>
8484
</project>

src/main/java/pro/cloudnode/smp/smpcore/Nation.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,11 @@ public final class Nation {
5858
*/
5959
public final @NotNull Date founded;
6060

61+
/**
62+
* In-game absolute ticks when this nation was founded (based on {@link org.bukkit.World#getFullTime()})
63+
*/
64+
public final long foundedTicks;
65+
6166
/**
6267
* National bank account of the nation
6368
*/
@@ -71,16 +76,18 @@ public final class Nation {
7176
* @param leaderUUID See {@link #leaderUUID}
7277
* @param viceLeaderUUID See {@link #viceLeaderUUID}
7378
* @param founded See {@link #founded}
79+
* @param foundedTicks See {@link #foundedTicks}
7480
* @param bank See {@link #bank}
7581
*/
76-
public Nation(final @NotNull String id, final @NotNull String name, final @NotNull String shortName, final @NotNull String colour, final @NotNull UUID leaderUUID, final @NotNull UUID viceLeaderUUID, final @NotNull Date founded, final @NotNull String bank) {
82+
public Nation(final @NotNull String id, final @NotNull String name, final @NotNull String shortName, final @NotNull String colour, final @NotNull UUID leaderUUID, final @NotNull UUID viceLeaderUUID, final @NotNull Date founded, final long foundedTicks, final @NotNull String bank) {
7783
this.id = id;
7884
this.name = name;
7985
this.shortName = shortName;
8086
this.color = colour;
8187
this.leaderUUID = leaderUUID;
8288
this.viceLeaderUUID = viceLeaderUUID;
8389
this.founded = founded;
90+
this.foundedTicks = foundedTicks;
8491
this.bank = bank;
8592
}
8693

@@ -132,14 +139,15 @@ public Nation(final @NotNull ResultSet rs) throws @NotNull SQLException {
132139
UUID.fromString(rs.getString("leader")),
133140
UUID.fromString(rs.getString("vice")),
134141
rs.getTimestamp("founded"),
142+
rs.getLong("founded_ticks"),
135143
rs.getString("bank")
136144
);
137145
}
138146

139147
public void save() {
140148
try (
141149
final @NotNull Connection conn = SMPCore.getInstance().db()
142-
.getConnection(); final @NotNull PreparedStatement stmt = conn.prepareStatement("INSERT OR REPLACE INTO `nations` (`id`, `name`, `short_name`, `color`, `leader`, `vice`, `founded`, `bank`) VALUES (?, ?, ?, ?, ?, ?, ?, ?)")
150+
.getConnection(); final @NotNull PreparedStatement stmt = conn.prepareStatement("INSERT OR REPLACE INTO `nations` (`id`, `name`, `short_name`, `color`, `leader`, `vice`, `founded`, `founded_ticks`, `bank`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)")
143151
) {
144152
stmt.setString(1, id);
145153
stmt.setString(2, name);
@@ -148,7 +156,8 @@ public void save() {
148156
stmt.setString(5, leaderUUID.toString());
149157
stmt.setString(6, viceLeaderUUID.toString());
150158
stmt.setTimestamp(7, new java.sql.Timestamp(founded.getTime()));
151-
stmt.setString(8, bank);
159+
stmt.setLong(8, foundedTicks);
160+
stmt.setString(9, bank);
152161
stmt.executeUpdate();
153162
}
154163
catch (final @NotNull SQLException e) {

src/main/java/pro/cloudnode/smp/smpcore/Rest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ private void e404 (final @NotNull io.javalin.http.Context ctx) {
5555
obj.addProperty("viceLeader", nation.viceLeaderUUID.toString());
5656
obj.addProperty("members", nation.members().size());
5757
obj.addProperty("founded", nation.founded.getTime());
58+
obj.addProperty("foundedGameTicks", nation.foundedTicks);
59+
obj.addProperty("foundedGameDate", SMPCore.gameTime(nation.foundedTicks).getTime());
5860
obj.addProperty("bank", nation.bank);
5961
return obj;
6062
}
@@ -71,6 +73,7 @@ public Rest(final int port) {
7173

7274
javalin.get("/", ctx -> {
7375
final @NotNull JsonObject obj = new JsonObject();
76+
obj.addProperty("version", SMPCore.getInstance().getPluginMeta().getVersion());
7477
obj.addProperty("time", SMPCore.gameTime().getTime());
7578
ctx.json(obj);
7679
});

src/main/java/pro/cloudnode/smp/smpcore/SMPCore.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,10 @@ public static boolean ifDisallowedCharacters(final @NotNull String source, final
206206
}
207207

208208
public static @NotNull Date gameTime() {
209-
return new Date(overworld().getFullTime() * 3600 + 21600000);
209+
return gameTime(overworld().getFullTime());
210+
}
211+
212+
public static @NotNull Date gameTime(final long ticks) {
213+
return new Date(ticks * 3600 + 21600000);
210214
}
211215
}

src/main/resources/init.sql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ CREATE TABLE IF NOT EXISTS `nations` (
2020
`color` CHAR(6) NOT NULL COLLATE NOCASE,
2121
`leader` CHAR(36) NOT NULL COLLATE NOCASE,
2222
`vice` CHAR(36) NOT NULL COLLATE NOCASE,
23-
`founded` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
23+
`founded` DATETIME NOT NULL,
24+
`founded_ticks` INTEGER NOT NULL,
2425
`bank` CHAR(16) NOT NULL COLLATE BINARY
2526
);

0 commit comments

Comments
 (0)