Skip to content

Commit

Permalink
Fix PlaceholderAPI
Browse files Browse the repository at this point in the history
  • Loading branch information
heychazza committed Jul 10, 2023
1 parent a962609 commit 401f8f4
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 11 deletions.
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ plugins {
defaultTasks("clean", "shadowJar")

group = "net.analyse"
version = "2.0.7"
version = "2.0.8"

subprojects {
plugins.apply("java")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ public boolean isBedrock(Player player) {
if(! Bukkit.getPluginManager().isPluginEnabled("floodgate")) return false;
return FloodgateApi.getInstance().isFloodgatePlayer(player.getUniqueId());
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -38,30 +38,45 @@ public PlaceholderAPIExpansionHook(AnalysePlugin plugin) {

@Override
public String onPlaceholderRequest(Player player, @NotNull String params) {
String[] parts = params.split("_");
int lastUnderscoreIndex = params.lastIndexOf("_");

if (parts.length != 3) {
if (lastUnderscoreIndex == -1) {
return null;
}

String leaderboardId = parts[0];
String leaderboardId = params.substring(0, lastUnderscoreIndex);
String field = params.substring(lastUnderscoreIndex + 1);
int position;
String field;

int secondLastUnderscoreIndex = leaderboardId.lastIndexOf("_");
if (secondLastUnderscoreIndex == -1) {
return null;
}

String positionString = leaderboardId.substring(secondLastUnderscoreIndex + 1);
leaderboardId = leaderboardId.substring(0, secondLastUnderscoreIndex);

try {
position = Integer.parseInt(parts[1]) - 1;
field = parts[2];
position = Integer.parseInt(positionString) - 1;
} catch (NumberFormatException e) {
return null;
return "Invalid position";
}

if (position < 0) {
return null;
return "Invalid position";
}

AnalyseLeaderboard leaderboard = getLeaderboard(leaderboardId);

if (leaderboard == null || leaderboard.getData().size() <= position) {
return null;
switch (field.toLowerCase()) {
case "username":
return "?";
case "value":
return Integer.toString(0);
default:
return null;
}
}

AnalyseLeaderboard.Player lbPlayer = leaderboard.getData().get(position);
Expand Down

0 comments on commit 401f8f4

Please sign in to comment.