feat: add money rewards when killing a player

This commit is contained in:
HerozDotExe 2026-02-09 18:34:17 +01:00
parent 30700e9609
commit 7d98ca067b
3 changed files with 16 additions and 9 deletions

View file

@ -47,13 +47,11 @@ public class DeathListener implements Listener {
int killedRanking = states.rankings.getPlayerRanking(killed);
int killerRanking = states.rankings.getPlayerRanking(killer);
int newKilledRanking = states.rankings.getPlayerRanking(killed);
int newKillerRanking = states.rankings.getPlayerRanking(killer);
int[] results = ELO.EloRating(newKilledRanking, newKillerRanking, 200, 0);
int[] newRankings = ELO.EloRating(killedRanking, killerRanking, 200, 0);
states.rankings.setPlayerRanking(killed, results[0]);
states.rankings.setPlayerRanking(killer, results[1]);
states.rankings.setPlayerRanking(killed, newRankings[0]);
states.rankings.setPlayerRanking(killer, newRankings[1]);
MiniMessage mm = MiniMessage.miniMessage();
@ -61,10 +59,10 @@ public class DeathListener implements Listener {
<yellow><white>[</white><dark_red>ELO</dark_red><white>]</white> <u>Updated rankings:</u>
%s's ranking increased by %s (%s->%s)
%s's ranking decreased by %s (%s->%s)</yellow>""",
killer.getName(), results[1] - killerRanking, killerRanking, results[1], killed.getName(), killedRanking - results[0], killedRanking, results[0]));
killer.getName(), newRankings[1] - killerRanking, killerRanking, newRankings[1], killed.getName(), killedRanking - newRankings[0], killedRanking, newRankings[0]));
Utilities.setScore(killed, results[0]);
Utilities.setScore(killer, results[1]);
Utilities.setScore(killed, newRankings[0]);
Utilities.setScore(killer, newRankings[1]);
Utilities.announce(msg);
@ -78,11 +76,18 @@ public class DeathListener implements Listener {
this.pointsAPI = PlayerPoints.getInstance().getAPI();
if (this.pointsAPI != null) {
// Take money
double money = pointsAPI.look(killed.getUniqueId());
money = money * ((double) (100 - config.getInt("percentOfMoneyToTakeOnKills")) / 100);
pointsAPI.set(killed.getUniqueId(), (int) money);
// Give money
int eloGain = newRankings[1] - killerRanking;
int multiplier = config.getInt("moneyMultiplier");
pointsAPI.give(killer.getUniqueId(), eloGain*multiplier);
}
}
}
}
}

View file

@ -7,6 +7,8 @@ killCommands:
# Percent of killed's money to take
percentOfMoneyToTakeOnKills: 25
# Constant used to multiply eloGain with, the result being the amount of money given to the killer
moneyMultiplier: 20
# List of commands to run every eggOwnerCommandInterval s
# <owner> will be replaced by the current egg owner's name

View file

@ -20,7 +20,7 @@ permissions:
children:
smp4.setranking: true
smp4.rankings: true
default: false
default: true
smp4.setranking:
default: false