From 30700e9609dee01b1ccf8add18d605f758cf1fe7 Mon Sep 17 00:00:00 2001 From: HerozDotExe Date: Mon, 9 Feb 2026 18:15:13 +0100 Subject: [PATCH] feat: take a configurable percent of money from killed players --- build.gradle | 4 ++++ .../java/dev/hrz0/smp4/Listeners/DeathListener.java | 13 +++++++++++++ src/main/java/dev/hrz0/smp4/Smp4.java | 2 +- src/main/resources/config.yml | 3 +++ 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 4434e6c..d2407e3 100644 --- a/build.gradle +++ b/build.gradle @@ -12,6 +12,9 @@ repositories { name = "papermc-repo" url = "https://repo.papermc.io/repository/maven-public/" } + maven { + url = 'https://repo.rosewooddev.io/repository/public/' + } } dependencies { @@ -19,6 +22,7 @@ dependencies { implementation("com.google.code.gson:gson:2.13.2") implementation("net.kyori:adventure-api:4.26.1") implementation("net.kyori:adventure-text-minimessage:4.26.1") + compileOnly("org.black_ixx:playerpoints:3.3.3") } tasks { diff --git a/src/main/java/dev/hrz0/smp4/Listeners/DeathListener.java b/src/main/java/dev/hrz0/smp4/Listeners/DeathListener.java index bd5f779..b094950 100644 --- a/src/main/java/dev/hrz0/smp4/Listeners/DeathListener.java +++ b/src/main/java/dev/hrz0/smp4/Listeners/DeathListener.java @@ -5,6 +5,8 @@ import dev.hrz0.smp4.States.States; import dev.hrz0.smp4.Utilities; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.MiniMessage; +import org.black_ixx.playerpoints.PlayerPoints; +import org.black_ixx.playerpoints.PlayerPointsAPI; import org.bukkit.Bukkit; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.EntityType; @@ -24,6 +26,7 @@ public class DeathListener implements Listener { private final States states; private final Logger logger; private final FileConfiguration config; + private PlayerPointsAPI pointsAPI; public DeathListener(States states, Logger logger, FileConfiguration config) { this.states = states; @@ -70,6 +73,16 @@ public class DeathListener implements Listener { toFill.put("", killer.getName()); toFill.put("", killed.getName()); Utilities.runCommands(commands, toFill); + + if (Bukkit.getPluginManager().isPluginEnabled("PlayerPoints")) { + this.pointsAPI = PlayerPoints.getInstance().getAPI(); + + if (this.pointsAPI != null) { + double money = pointsAPI.look(killed.getUniqueId()); + money = money * ((double) (100 - config.getInt("percentOfMoneyToTakeOnKills")) / 100); + pointsAPI.set(killed.getUniqueId(), (int) money); + } + } } } } diff --git a/src/main/java/dev/hrz0/smp4/Smp4.java b/src/main/java/dev/hrz0/smp4/Smp4.java index 612529a..5612d63 100644 --- a/src/main/java/dev/hrz0/smp4/Smp4.java +++ b/src/main/java/dev/hrz0/smp4/Smp4.java @@ -82,7 +82,7 @@ public final class Smp4 extends JavaPlugin { Map toFill = new HashMap(); toFill.put("", eggOwner.getName()); - Utilities.runCommands(commands, toFill); + //Utilities.runCommands(commands, toFill); } } }.runTaskTimer(this, 0L, config.getInt("eggOwnerCommandInterval") * 20L); diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 30e3e0c..76e635c 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -5,6 +5,9 @@ killCommands: - msg You killed ! - msg You got killed by +# Percent of killed's money to take +percentOfMoneyToTakeOnKills: 25 + # List of commands to run every eggOwnerCommandInterval s # will be replaced by the current egg owner's name eggOwnerCommandInterval: 5