-
Notifications
You must be signed in to change notification settings - Fork 93
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Small rank system rework * Remove blank line * Add space * Stop using abstract Rank class * Remove comments * Change guardians of good values * Change getPoints to getPointsAverage in placeholders * Make code more functional * Fix * Remove comparable from abstract Rank * Fix nasty bug * Cleanup * More cleanup
- Loading branch information
Showing
17 changed files
with
351 additions
and
289 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
115 changes: 115 additions & 0 deletions
115
plugin/src/main/java/net/dzikoysk/funnyguilds/guild/GuildRank.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,115 @@ | ||
package net.dzikoysk.funnyguilds.guild; | ||
|
||
import net.dzikoysk.funnyguilds.rank.Rank; | ||
|
||
public class GuildRank extends Rank implements Comparable<GuildRank> { | ||
|
||
private final Guild guild; | ||
|
||
public GuildRank(Guild guild) { | ||
super(guild); | ||
|
||
this.guild = guild; | ||
} | ||
|
||
public Guild getGuild() { | ||
return guild; | ||
} | ||
|
||
@Override | ||
public int getPoints() { | ||
return guild.getMembers().stream() | ||
.mapToInt(user -> user.getRank().getPoints()) | ||
.sum(); | ||
} | ||
|
||
public int getAveragePoints() { | ||
return calculateAverage(this.getPoints()); | ||
} | ||
|
||
@Override | ||
public int getKills() { | ||
return guild.getMembers().stream() | ||
.mapToInt(user -> user.getRank().getKills()) | ||
.sum(); | ||
} | ||
|
||
public int getAverageKills() { | ||
return calculateAverage(this.getKills()); | ||
} | ||
|
||
@Override | ||
public int getDeaths() { | ||
return guild.getMembers().stream() | ||
.mapToInt(user -> user.getRank().getDeaths()) | ||
.sum(); | ||
} | ||
|
||
public int getAverageDeaths() { | ||
return calculateAverage(this.getDeaths()); | ||
} | ||
|
||
@Override | ||
public int getAssists() { | ||
return guild.getMembers().stream() | ||
.mapToInt(user -> user.getRank().getAssists()) | ||
.sum(); | ||
} | ||
|
||
public int getAverageAssists() { | ||
return calculateAverage(this.getAssists()); | ||
} | ||
|
||
@Override | ||
public int getLogouts() { | ||
return guild.getMembers().stream() | ||
.mapToInt(user -> user.getRank().getLogouts()) | ||
.sum(); | ||
} | ||
|
||
public int getAverageLogouts() { | ||
return calculateAverage(this.getLogouts()); | ||
} | ||
|
||
@Override | ||
public float getKDR() { | ||
return getDeaths() == 0 | ||
? getKills() | ||
: 1.0F * getKills() / getDeaths(); | ||
} | ||
|
||
public float getAverageKDR() { | ||
return (float) guild.getMembers().stream() | ||
.mapToDouble(user -> user.getRank().getKDR()) | ||
.average() | ||
.orElse(0.0D); | ||
} | ||
|
||
@Override | ||
public int compareTo(GuildRank rank) { | ||
int result = Integer.compare(this.getAveragePoints(), rank.getAveragePoints()); | ||
|
||
if (result == 0) { | ||
if (getIdentityName() == null) { | ||
return -1; | ||
} | ||
|
||
if (rank.getIdentityName() == null) { | ||
return 1; | ||
} | ||
|
||
result = getIdentityName().compareTo(rank.getIdentityName()); | ||
} | ||
|
||
return result; | ||
} | ||
|
||
private int calculateAverage(int value) { | ||
return value / guild.getMembers().size(); | ||
} | ||
|
||
private float calculateAverage(float value) { | ||
return value / guild.getMembers().size(); | ||
} | ||
|
||
} |
Oops, something went wrong.