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) {