Skip to content

Commit 9d786e8

Browse files
committed
キルストリークを実装
1 parent d0e76b1 commit 9d786e8

File tree

5 files changed

+29
-8
lines changed

5 files changed

+29
-8
lines changed

src/main/java/com/github/elic0de/thejpspit/database/SqLiteDatabase.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ public CompletableFuture<Optional<PitPlayer>> getPitPlayer(Player player) {
182182
try {
183183
try (PreparedStatement statement = getConnection().prepareStatement(
184184
formatStatementTables("""
185-
SELECT `kills`, `deaths`, `rating`, `xp`
185+
SELECT `kills`, `streaks`, `deaths`, `rating`, `xp`
186186
FROM `%players_table%`
187187
WHERE `uuid`=?"""))) {
188188

@@ -192,6 +192,7 @@ public CompletableFuture<Optional<PitPlayer>> getPitPlayer(Player player) {
192192
if (resultSet.next()) {
193193
return Optional.of(new PitPlayer(player,
194194
resultSet.getLong("kills"),
195+
resultSet.getLong("streaks"),
195196
resultSet.getLong("deaths"),
196197
resultSet.getDouble("rating"),
197198
resultSet.getDouble("xp")
@@ -240,14 +241,15 @@ public CompletableFuture<Void> updateUserData(PitPlayer player) {
240241
try (PreparedStatement statement = getConnection().prepareStatement(
241242
formatStatementTables("""
242243
UPDATE `%players_table%`
243-
SET `kills`=?, `deaths`=?, `rating`=?, `xp`=?
244+
SET `kills`=?, `streaks`=?, `deaths`=?, `rating`=?, `xp`=?
244245
WHERE `uuid`=?"""))) {
245246

246247
statement.setLong(1, player.getKills());
247-
statement.setLong(2, player.getDeaths());
248-
statement.setDouble(3, player.getRating());
249-
statement.setDouble(4, player.getXp());
250-
statement.setString(5, player.getUniqueId().toString());
248+
statement.setLong(2, player.getStreaks());
249+
statement.setLong(3, player.getDeaths());
250+
statement.setDouble(4, player.getRating());
251+
statement.setDouble(5, player.getXp());
252+
statement.setString(6, player.getUniqueId().toString());
251253
statement.executeUpdate();
252254
}
253255
} catch (SQLException e) {

src/main/java/com/github/elic0de/thejpspit/game/Game.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,10 @@ public void death(PitPlayer player) {
3838
}
3939

4040
player.increaseDeaths();
41+
player.resetStreaks();
4142
killer.increaseKills();
4243
killer.increaseXP();
44+
killer.increaseStreaks();
4345
killer.addReward();
4446

4547
pit.getRatingHelper().initRating(player);

src/main/java/com/github/elic0de/thejpspit/player/PitPlayer.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ public class PitPlayer {
3030
new ItemStack(Material.IRON_CHESTPLATE)
3131
};
3232
private long kills;
33+
34+
private long streaks;
3335
private long deaths;
3436
private double rating;
3537
private double xp;
@@ -38,16 +40,18 @@ public class PitPlayer {
3840
public PitPlayer(Player player) {
3941
this.player = player;
4042
this.kills = 0;
43+
this.streaks= 0;
4144
this.deaths = 0;
4245
this.rating = 0;
4346
this.xp = 0;
4447
this.board = new FastBoard(player);
4548
this.board.updateTitle(ChatColor.translateAlternateColorCodes('&', "&eTHE JPS PIT"));
4649
}
4750

48-
public PitPlayer(Player player, long kills, long deaths, double rating, double xp) {
51+
public PitPlayer(Player player, long kills, long streaks, long deaths, double rating, double xp) {
4952
this.player = player;
5053
this.kills = kills;
54+
this.streaks = streaks;
5155
this.deaths = deaths;
5256
this.rating = rating;
5357
this.xp = xp;
@@ -141,6 +145,10 @@ public long getKills() {
141145
return kills;
142146
}
143147

148+
public long getStreaks() {
149+
return streaks;
150+
}
151+
144152
public long getDeaths() {
145153
return deaths;
146154
}
@@ -165,6 +173,9 @@ public void increaseKills() {
165173
this.kills++;
166174
}
167175

176+
public void increaseStreaks() {
177+
this.streaks ++;
178+
}
168179
public void increaseDeaths() {
169180
this.deaths++;
170181
}
@@ -178,4 +189,8 @@ public void increaseHealth() {
178189
player.setHealth(Math.min(player.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue(),
179190
player.getHealth() + 1));
180191
}
192+
193+
public void resetStreaks() {
194+
streaks = 0;
195+
}
181196
}

src/main/java/com/github/elic0de/thejpspit/scoreboard/GameScoreboard.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,14 @@ public List<String> boardLines(PitPlayer player) {
2929
"K/Dレート: &c%rating%",
3030
"次のレベルまで:&a%neededXp%",
3131
"",
32-
"連続キル数:",
32+
"連続キル数: &a%streaks%",
3333
"",
3434
"&ejapanpvpserver.net"
3535
).map(s ->
3636
s.replaceAll("%level%", Levels.getPlayerLevel(player) + "")
3737
.replaceAll("%neededXp%", Levels.getPlayerNeededXP(player) + "")
3838
.replaceAll("%rating%", player.getRating() + "%")
39+
.replaceAll("%streaks%", player.getStreaks() + "")
3940
).collect(Collectors.toList());
4041
}
4142

src/main/resources/database/sqlite_schema.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ CREATE TABLE IF NOT EXISTS `%players_table%`
33
`uuid` char(36) NOT NULL UNIQUE,
44
`username` varchar(16) NOT NULL,
55
`kills` integer NOT NULL DEFAULT 0,
6+
`streaks` integer NOT NULL DEFAULT 0,
67
`deaths` integer NOT NULL DEFAULT 0,
78
`rating` integer NOT NULL DEFAULT 0,
89
`xp` integer NOT NULL DEFAULT 0,

0 commit comments

Comments
 (0)