Skip to content

Commit ef26f13

Browse files
authored
Merge pull request #1 from JavaJava19/develop
Develop
2 parents 1bd1f3d + 9d786e8 commit ef26f13

File tree

7 files changed

+35
-13
lines changed

7 files changed

+35
-13
lines changed

src/main/java/com/github/elic0de/thejpspit/TheJpsPit.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public void onEnable() {
5353
"Please check the supplied database credentials in the config file");
5454
}
5555

56-
ratingHelper = new KillRatingHelper(0.5);
56+
ratingHelper = new KillRatingHelper(0);
5757
queueManager = new QueueManager();
5858

5959
//queueTask = new QueueTask();

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/java/com/github/elic0de/thejpspit/util/KillRatingHelper.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,24 @@
66

77
public class KillRatingHelper {
88

9-
private static final double roundingFactor = 10000;
9+
// 少数第二で四捨五入
10+
private static final double roundingFactor = 10;
1011
private final double defaultRating;
1112

1213
public KillRatingHelper(double defaultRating) {
1314
this.defaultRating = defaultRating;
1415
}
1516

1617
public void initRating(PitPlayer player) {
17-
player.setRating(calculateWinningRatio(player));
18+
player.setRating(calculateKillingRatio(player));
1819
}
1920

20-
private double calculateWinningRatio(PitPlayer player) {
21+
private double calculateKillingRatio(PitPlayer player) {
2122
long deaths = player.getDeaths();
2223
long kills = player.getKills();
2324
long total = deaths + kills;
2425
if (deaths >= 0 && kills >= 0 && total > 0) {
25-
return round((double) kills / total * roundingFactor) / roundingFactor;
26+
return round((double) kills / deaths * roundingFactor) / roundingFactor;
2627
} else {
2728
return defaultRating;
2829
}

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)