From 43dd143d96032e9000c14b0d355eed847611a96e Mon Sep 17 00:00:00 2001 From: Piecuuu <56731916+Piecuuu@users.noreply.github.com> Date: Sun, 22 Feb 2026 22:13:27 +0100 Subject: [PATCH] invis killstreak --- .../piecuu/killstreak/KillstreakExpansion.java | 7 +++++++ .../pl/piecuu/killstreak/KillstreakManager.java | 16 +++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/main/java/pl/piecuu/killstreak/KillstreakExpansion.java b/src/main/java/pl/piecuu/killstreak/KillstreakExpansion.java index 9cb54a7..ded1c50 100644 --- a/src/main/java/pl/piecuu/killstreak/KillstreakExpansion.java +++ b/src/main/java/pl/piecuu/killstreak/KillstreakExpansion.java @@ -36,6 +36,13 @@ public class KillstreakExpansion extends PlaceholderExpansion { final long killstreak = km.getKillstreak(p); if(killstreak == 0) return ""; + final Component output = km.getKillstreakComponent(killstreak); + return MiniMessage.miniMessage().serialize(output); + } else if(identifier.equalsIgnoreCase("killstreak_invis")) { + KillstreakManager km = KillstreakManager.getInstance(); + final long killstreak = km.getInvisKillstreak(p); + if(killstreak == 0) return ""; + final Component output = km.getKillstreakComponent(killstreak); return MiniMessage.miniMessage().serialize(output); } diff --git a/src/main/java/pl/piecuu/killstreak/KillstreakManager.java b/src/main/java/pl/piecuu/killstreak/KillstreakManager.java index 2e1d39f..56a4093 100644 --- a/src/main/java/pl/piecuu/killstreak/KillstreakManager.java +++ b/src/main/java/pl/piecuu/killstreak/KillstreakManager.java @@ -17,18 +17,32 @@ public class KillstreakManager { return instance; } public NamespacedKey playerKillstreakKey; + public NamespacedKey playerInvisKSKey; private Killstreak plugin; public KillstreakManager(Killstreak plugin) { this.plugin = plugin; instance = this; this.playerKillstreakKey = new NamespacedKey(plugin, "playerKillstreakKey"); + this.playerInvisKSKey = new NamespacedKey(plugin, "playerInvisKSKey"); } - public void setKillstreak(Player player, long streak) { if(streak < 0) return; player.getPersistentDataContainer().set(playerKillstreakKey, PersistentDataType.LONG, streak); + if(Killstreak.getInvisNinja() == null || !InvisNinja.isPlayerInvisible(player)) { + setInvisKillstreak(player, streak); + } + } + + public void setInvisKillstreak(Player player, long streak) { + if(streak < 0) return; + player.getPersistentDataContainer().set(playerInvisKSKey, PersistentDataType.LONG, streak); + } + + public long getInvisKillstreak(Player player) { + if(Killstreak.getInvisNinja() == null || !InvisNinja.isPlayerInvisible(player)) return getKillstreak(player); + return player.getPersistentDataContainer().getOrDefault(playerInvisKSKey, PersistentDataType.LONG, 0L); } public long getKillstreak(OfflinePlayer player) {