diff --git a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/AdminCommandManager.java b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/AdminCommandManager.java index 870cd01..aa587ff 100644 --- a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/AdminCommandManager.java +++ b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/AdminCommandManager.java @@ -41,7 +41,6 @@ public class AdminCommandManager implements TabExecutor { public AdminCommandManager(Plugin plugin) { subcommands.add(new KitSupercommand((PureKitPvP) plugin)); subcommands.add(new ResetKit()); - subcommands.add(new SetKillItem(plugin)); subcommands.add(new GetKitStats(plugin)); this.globalEventManager = new GlobalEventManager(plugin); subcommands.add(new EventCommand(plugin, this.globalEventManager)); @@ -155,7 +154,6 @@ public class AdminCommandManager implements TabExecutor { arguments.add("edit"); return arguments; } - if (args[1].equalsIgnoreCase("setkillitem")) { if (args.length == 3) { diff --git a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/AdminHelpCommand.java b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/AdminHelpCommand.java index 6ceeb42..330bfd8 100644 --- a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/AdminHelpCommand.java +++ b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/AdminHelpCommand.java @@ -2,7 +2,10 @@ package me.lifelessnerd.purekitpvp; import me.lifelessnerd.purekitpvp.files.lang.LanguageConfig; import me.lifelessnerd.purekitpvp.utils.ComponentUtils; +import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextReplacementConfig; +import net.kyori.adventure.text.format.NamedTextColor; +import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.plugin.Plugin; @@ -44,7 +47,7 @@ public class AdminHelpCommand extends Subcommand { @Override public boolean perform(CommandSender sender, String[] args) { - + LegacyComponentSerializer serializer = LegacyComponentSerializer.legacyAmpersand(); if (args.length == 1){ String message = """ &bPureKitPvP - Help Menu @@ -56,7 +59,8 @@ public class AdminHelpCommand extends Subcommand { &a/purekitpvphelp &r- &eShow this menu for non-admins &bFor admin commands, see &a/pkpvp help 2&b! """; - sender.sendMessage(ChatColor.translateAlternateColorCodes('&', message)); + + sender.sendMessage(serializer.deserialize(message)); } @@ -64,11 +68,10 @@ public class AdminHelpCommand extends Subcommand { if (args[1].equalsIgnoreCase("2")){ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&bPureKitPvP - Admin Commands")); + sender.sendMessage(Component.text("PureKitPvP - Admin Commands").color(NamedTextColor.BLUE)); for (Subcommand subcommand : subcommands){ - String message = - "&a" + subcommand.getSyntax() + " &r- &e" + subcommand.getDescription(); - sender.sendMessage(ChatColor.translateAlternateColorCodes('&', message)); + String message = "&a" + subcommand.getSyntax() + " &r- &e" + subcommand.getDescription(); + sender.sendMessage(serializer.deserialize(message)); } } else { diff --git a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/InfoCommand.java b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/InfoCommand.java index 06412b6..0950791 100644 --- a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/InfoCommand.java +++ b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/InfoCommand.java @@ -1,5 +1,6 @@ package me.lifelessnerd.purekitpvp; +import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -43,7 +44,8 @@ public class InfoCommand extends Subcommand{ &6Developer: &ohttps://twitter.com/LukaDeVrij &rIf you have any problems, bugs or glitches, please do reach out to me via any of the links above. """; - sender.sendMessage(ChatColor.translateAlternateColorCodes('&', message)); + LegacyComponentSerializer serializer = LegacyComponentSerializer.legacyAmpersand(); + sender.sendMessage(serializer.deserialize(message)); return true; } diff --git a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/combathandlers/VoidKiller.java b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/combathandlers/VoidKiller.java index 0e2815d..ee63296 100644 --- a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/combathandlers/VoidKiller.java +++ b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/combathandlers/VoidKiller.java @@ -34,9 +34,7 @@ public class VoidKiller implements Listener { for (PotionEffect effect : p.getActivePotionEffects()) { p.removePotionEffect(effect.getType()); } - p.setHealth(1); - Location tpLoc = new Location(loc.getWorld(), loc.getX(), loc.getY() - 150, loc.getZ()); - p.teleport(tpLoc); + p.chat("/suicide"); } } catch (Exception ex) { plugin.getLogger().log(Level.SEVERE, "Please set voidY in the config!"); diff --git a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/combathandlers/killhandler/DeathHandler.java b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/combathandlers/killhandler/DeathHandler.java index ead278f..bec86ef 100644 --- a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/combathandlers/killhandler/DeathHandler.java +++ b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/combathandlers/killhandler/DeathHandler.java @@ -6,17 +6,20 @@ import me.lifelessnerd.purekitpvp.combathandlers.libs.DamageCauseLib; import me.lifelessnerd.purekitpvp.combathandlers.mobhandler.MobRemover; import me.lifelessnerd.purekitpvp.cosmetics.cosmeticsListeners.KillEffect; import me.lifelessnerd.purekitpvp.cosmetics.cosmeticsListeners.KillMessage; +import me.lifelessnerd.purekitpvp.files.lang.LanguageConfig; +import me.lifelessnerd.purekitpvp.files.lang.LanguageKey; import me.lifelessnerd.purekitpvp.globalevents.EventDataClass; import me.lifelessnerd.purekitpvp.globalevents.events.JuggernautListeners; import me.lifelessnerd.purekitpvp.perks.perkfirehandler.PerkFireHandler; import me.lifelessnerd.purekitpvp.files.KitConfig; import me.lifelessnerd.purekitpvp.files.PlayerStatsConfig; +import me.lifelessnerd.purekitpvp.utils.ComponentUtils; import me.lifelessnerd.purekitpvp.utils.DoubleUtils; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.TextColor; -import net.kyori.adventure.text.format.TextDecoration; +import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; import net.kyori.adventure.title.Title; import org.bukkit.*; import org.bukkit.configuration.file.FileConfiguration; @@ -129,8 +132,9 @@ public class DeathHandler implements Listener { // Get all damage info and print to killed player NamespacedKey key = new NamespacedKey(plugin, "damageDistributionInfo"); PlayerDamageDistribution damageData = player.getPersistentDataContainer().get(key, new PlayerDamageDistributionDataType()); - player.sendMessage(Component.text("You died!").color(NamedTextColor.RED).decoration(TextDecoration.BOLD, true)); - player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7Death Recap:")); + player.sendMessage(LanguageConfig.lang.get(LanguageKey.COMBAT_YOU_DIED.toString())); + player.sendMessage(LanguageConfig.lang.get(LanguageKey.COMBAT_DEATH_RECAP.toString())); + // Printing process and formatting int totalDamageDone = 0; for (String hashmapKey : damageData.damageDistributionMap.keySet()){ @@ -139,19 +143,11 @@ public class DeathHandler implements Listener { for (String hashmapKey : damageData.damageDistributionMap.keySet()){ int damageValue = damageData.damageDistributionMap.get(hashmapKey); double damagePercentage = (double) damageValue / (double) totalDamageDone * 100.0; - - if (damageCauseLib.damageCauseTranslations.containsKey(hashmapKey)){ - // hashMapKey is a damageCause object - String damageCauseTranslation = damageCauseLib.damageCauseTranslations.get(hashmapKey); - String format = "&7-&e" + damageCauseTranslation + "&7 did &a" + (int) damagePercentage + "%"; - player.sendMessage(ChatColor.translateAlternateColorCodes('&', format)); - - } - else { - String format = "&7- &a" + hashmapKey + "&7 did &a" + (int) damagePercentage + "%"; - player.sendMessage(ChatColor.translateAlternateColorCodes('&', format)); - - } + int damagePercentageInt = (int) damagePercentage; + String damageCause = damageCauseLib.damageCauseTranslations.getOrDefault(hashmapKey, hashmapKey); + player.sendMessage(LanguageConfig.lang.get(LanguageKey.COMBAT_DEATH_CAUSE.toString()). + replaceText(ComponentUtils.replaceConfig("%CAUSE%", damageCause)). + replaceText(ComponentUtils.replaceConfig("%VALUE%", String.valueOf(damagePercentageInt)))); } //Broadcasting and stuff @@ -206,8 +202,7 @@ public class DeathHandler implements Listener { } } - - Component mainTitle = Component.text("You died!").color(TextColor.color(230,60,60)); + Component mainTitle = LanguageConfig.lang.get(LanguageKey.COMBAT_YOU_DIED.toString()); Title title = Title.title(mainTitle, Component.text("")); player.showTitle(title); @@ -296,8 +291,6 @@ public class DeathHandler implements Listener { //update level PlayerLeveling.createLevelXPPath(player.getName()); -// PlayerLeveling.addExperience(player, 1, "Death"); // 1 for DEATH// Ah no: can be exploited -// PlayerLeveling.updateLevels(); //remove any mobs player spawned MobRemover.removeMobs(player); @@ -402,6 +395,7 @@ public class DeathHandler implements Listener { } + // If there is an assistor, we need to do some stuff for that player if (assistor != null){ FileConfiguration assistorStats = PlayerStatsConfig.get(); if (assistorStats.isSet(assistor.getName())){ @@ -517,10 +511,15 @@ public class DeathHandler implements Listener { return; // Prevents NPE's } else if (event.getDamager() instanceof Firework && event.getEntity() instanceof Player){ Firework fw = (Firework) event.getDamager(); + if (fw.hasMetadata("nodamage")) { + event.setCancelled(true); + return; + } if (fw.getShooter() instanceof Player){ player = (Player) event.getEntity(); damager = (Player) fw.getShooter(); } + } else { //If we end up here idk what happened but nothing relevant (probably a zombie hitting a pig or something) diff --git a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/combathandlers/killhandler/Suicide.java b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/combathandlers/killhandler/Suicide.java index 20793a3..1888e82 100644 --- a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/combathandlers/killhandler/Suicide.java +++ b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/combathandlers/killhandler/Suicide.java @@ -50,8 +50,7 @@ public class Suicide implements CommandExecutor { } PlayerDamageDistribution damageData = player.getPersistentDataContainer().get(key, new PlayerDamageDistributionDataType()); damageData.lastOtherDamager = "SUICIDE"; // NPE lies - damageData.lastPlayerDamager = null; - damageData.damageDistributionMap.put("SUICIDE", Integer.MAX_VALUE); + damageData.damageDistributionMap.put("SUICIDE", 100000); player.getPersistentDataContainer().set(key, new PlayerDamageDistributionDataType(), damageData); } catch (Exception e){ diff --git a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/combathandlers/leveling/PlayerLeveling.java b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/combathandlers/leveling/PlayerLeveling.java index af1a90b..70992b2 100644 --- a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/combathandlers/leveling/PlayerLeveling.java +++ b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/combathandlers/leveling/PlayerLeveling.java @@ -1,6 +1,9 @@ package me.lifelessnerd.purekitpvp.combathandlers.leveling; import me.lifelessnerd.purekitpvp.files.PlayerStatsConfig; +import me.lifelessnerd.purekitpvp.files.lang.LanguageConfig; +import me.lifelessnerd.purekitpvp.files.lang.LanguageKey; +import me.lifelessnerd.purekitpvp.utils.ComponentUtils; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.configuration.file.FileConfiguration; @@ -52,7 +55,8 @@ public class PlayerLeveling { int level = xpValue / 100; if (!(level == playerStats.getInt(key + ".level"))){ Player player = Bukkit.getPlayerExact(key); - player.sendMessage(ChatColor.GOLD + "You leveled up to LEVEL " + level); + player.sendMessage(LanguageConfig.lang.get(LanguageKey.STATS_LEVEL_UP.toString()). + replaceText(ComponentUtils.replaceConfig("%VALUE%", String.valueOf(level)))); } playerStats.set(key + ".level", level); diff --git a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/combathandlers/libs/DamageCauseLib.java b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/combathandlers/libs/DamageCauseLib.java index 83c4d29..3130ae4 100644 --- a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/combathandlers/libs/DamageCauseLib.java +++ b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/combathandlers/libs/DamageCauseLib.java @@ -38,34 +38,34 @@ public class DamageCauseLib { deathMessages.put("SONIC_BOOM"," got pummeled by a Warden"); deathMessages.put("MONSTER", " was killed by a mob, what a noob."); - damageCauseTranslations.put("CONTACT"," Cactus"); - damageCauseTranslations.put("SUFFOCATION"," Suffocation"); - damageCauseTranslations.put("FALL"," Fall Damage"); - damageCauseTranslations.put("FIRE"," Fire"); - damageCauseTranslations.put("FIRE_TICK"," Fire"); - damageCauseTranslations.put("MELTING"," Lava"); - damageCauseTranslations.put("LAVA"," Lava"); - damageCauseTranslations.put("DROWNING"," Drowning"); - damageCauseTranslations.put("BLOCK_EXPLOSION"," Explosion"); - damageCauseTranslations.put("ENTITY_EXPLOSION"," Explosion"); - damageCauseTranslations.put("VOID"," Void"); - damageCauseTranslations.put("LIGHTNING"," Lightning"); - damageCauseTranslations.put("SUICIDE"," You"); - damageCauseTranslations.put("STARVATION"," Hunger"); - damageCauseTranslations.put("POISON"," Poison"); - damageCauseTranslations.put("MAGIC"," Harming Effect"); - damageCauseTranslations.put("WITHER"," Wither Effect"); - damageCauseTranslations.put("FALLING_BLOCK"," Falling Blocks"); - damageCauseTranslations.put("THORNS"," Thorns"); - damageCauseTranslations.put("DRAGON_BREATH"," Dragon's Breath"); - damageCauseTranslations.put("CUSTOM"," ???"); - damageCauseTranslations.put("FLY_INTO_WALL"," Kinetic Energy"); - damageCauseTranslations.put("HOT_FLOOR"," Magma"); - damageCauseTranslations.put("CRAMMING"," Crowding"); - damageCauseTranslations.put("DRYOUT"," Dryout"); - damageCauseTranslations.put("FREEZE"," Freezing"); - damageCauseTranslations.put("SONIC_BOOM"," Warden"); - damageCauseTranslations.put("MONSTER"," Custom Mob"); + damageCauseTranslations.put("CONTACT","Cactus"); + damageCauseTranslations.put("SUFFOCATION","Suffocation"); + damageCauseTranslations.put("FALL","Fall Damage"); + damageCauseTranslations.put("FIRE","Fire"); + damageCauseTranslations.put("FIRE_TICK","Fire"); + damageCauseTranslations.put("MELTING","Lava"); + damageCauseTranslations.put("LAVA","Lava"); + damageCauseTranslations.put("DROWNING","Drowning"); + damageCauseTranslations.put("BLOCK_EXPLOSION","Explosion"); + damageCauseTranslations.put("ENTITY_EXPLOSION","Explosion"); + damageCauseTranslations.put("VOID","Void"); + damageCauseTranslations.put("LIGHTNING","Lightning"); + damageCauseTranslations.put("SUICIDE","You"); + damageCauseTranslations.put("STARVATION","Hunger"); + damageCauseTranslations.put("POISON","Poison"); + damageCauseTranslations.put("MAGIC","Harming Effect"); + damageCauseTranslations.put("WITHER","Wither Effect"); + damageCauseTranslations.put("FALLING_BLOCK","Falling Blocks"); + damageCauseTranslations.put("THORNS","Thorns"); + damageCauseTranslations.put("DRAGON_BREATH","Dragon's Breath"); + damageCauseTranslations.put("CUSTOM","???"); + damageCauseTranslations.put("FLY_INTO_WALL","Kinetic Energy"); + damageCauseTranslations.put("HOT_FLOOR","Magma"); + damageCauseTranslations.put("CRAMMING","Crowding"); + damageCauseTranslations.put("DRYOUT","Dryout"); + damageCauseTranslations.put("FREEZE","Freezing"); + damageCauseTranslations.put("SONIC_BOOM","Warden"); + damageCauseTranslations.put("MONSTER","Custom Mob"); } } diff --git a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/files/lang/LanguageConfig.java b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/files/lang/LanguageConfig.java index f2431db..a450559 100644 --- a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/files/lang/LanguageConfig.java +++ b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/files/lang/LanguageConfig.java @@ -184,6 +184,12 @@ public class LanguageConfig { defaults.put(LanguageKey.SCOREBOARD_GLOBAL_KILLS, " &dKills"); defaults.put(LanguageKey.SCOREBOARD_GLOBAL_KD, " &dK/D Ratio"); defaults.put(LanguageKey.SCOREBOARD_GLOBAL_LEVEL, "&dLevel"); + defaults.put(LanguageKey.STATS_NO_STATS, "That player has no stats attached to them!"); + defaults.put(LanguageKey.STATS_TITLE, "%PLAYER% &bStatistics"); + defaults.put(LanguageKey.STATS_LEVEL_UP, "&6You leveled up to LEVEL %VALUE%!"); + defaults.put(LanguageKey.COMBAT_YOU_DIED, "&c&lYou died!"); + defaults.put(LanguageKey.COMBAT_DEATH_RECAP, "&7Death Recap"); + defaults.put(LanguageKey.COMBAT_DEATH_CAUSE, "&7- &e%CAUSE% &7did &a%VALUE%%"); SortedMap defaultsString = new TreeMap<>(); for (LanguageKey key : defaults.keySet()){ diff --git a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/files/lang/LanguageKey.java b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/files/lang/LanguageKey.java index 048a56f..4d46ab6 100644 --- a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/files/lang/LanguageKey.java +++ b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/files/lang/LanguageKey.java @@ -90,6 +90,12 @@ public enum LanguageKey { SCOREBOARD_GLOBAL_KILLS, SCOREBOARD_GLOBAL_KD, SCOREBOARD_GLOBAL_LEVEL, + STATS_NO_STATS, + STATS_TITLE, + COMBAT_YOU_DIED, + COMBAT_DEATH_RECAP, + COMBAT_DEATH_CAUSE, + STATS_LEVEL_UP, ; diff --git a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/globalevents/GlobalEventManager.java b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/globalevents/GlobalEventManager.java index 2f342ad..e6b3e91 100644 --- a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/globalevents/GlobalEventManager.java +++ b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/globalevents/GlobalEventManager.java @@ -142,6 +142,10 @@ public class GlobalEventManager { } public Component pauseResumeTimer() { + if (currentEvent == null){ + return Component.text("There is no event running, you may not pause now!").color(NamedTextColor.RED); + // TODO temp fix; this should be possible but for some reason NPES everywhere if we dont do this also double events? + } if (paused) { currentEvent.pauseResumePasser(true); paused = false; @@ -163,7 +167,6 @@ public class GlobalEventManager { } }.runTaskTimer(plugin, 0, 20); - return Component.text("Global event loop resumed.").color(NamedTextColor.GREEN); } else { currentEvent.pauseResumePasser(false); diff --git a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/globalevents/events/DoubleHealthEvent.java b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/globalevents/events/DoubleHealthEvent.java index 39d4e6f..ae5e503 100644 --- a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/globalevents/events/DoubleHealthEvent.java +++ b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/globalevents/events/DoubleHealthEvent.java @@ -1,6 +1,7 @@ package me.lifelessnerd.purekitpvp.globalevents.events; import me.lifelessnerd.purekitpvp.files.lang.LanguageConfig; +import me.lifelessnerd.purekitpvp.files.lang.LanguageKey; import me.lifelessnerd.purekitpvp.globalevents.EventDataClass; import me.lifelessnerd.purekitpvp.utils.PlayerUtils; import net.kyori.adventure.text.Component; @@ -28,7 +29,7 @@ public class DoubleHealthEvent extends AbstractEvent{ @Override public Component getEventDescription() { - return LanguageConfig.lang.get("EVENTS_DOUBLE_DESC"); // TODO add lang defs + return LanguageConfig.lang.get(LanguageKey.EVENTS_DOUBLE_DESC.toString()); } @Override diff --git a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/kitadmin/SetKillItem.java b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/kitadmin/SetKillItem.java index 461193f..ef847ac 100644 --- a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/kitadmin/SetKillItem.java +++ b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/kitadmin/SetKillItem.java @@ -2,7 +2,10 @@ package me.lifelessnerd.purekitpvp.kitadmin; import me.lifelessnerd.purekitpvp.Subcommand; import me.lifelessnerd.purekitpvp.files.KitConfig; +import me.lifelessnerd.purekitpvp.files.lang.LanguageConfig; +import me.lifelessnerd.purekitpvp.files.lang.LanguageKey; import me.lifelessnerd.purekitpvp.utils.MyStringUtils; +import net.kyori.adventure.text.Component; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -46,25 +49,25 @@ public class SetKillItem extends Subcommand { Player player = (Player) sender; if (!player.hasPermission("purekitpvp.admin.createkit")){ - player.sendMessage(ChatColor.RED + "No permission!"); + player.sendMessage(LanguageConfig.lang.get(LanguageKey.GENERIC_NO_PERMISSION.toString())); return true; } if (!(args.length >= 2)){ - player.sendMessage(ChatColor.RED + "Please provide arguments!"); + player.sendMessage(LanguageConfig.lang.get(LanguageKey.GENERIC_LACK_OF_ARGS.toString())); return false; } String kitNameArg = MyStringUtils.camelCaseWord(args[1]); if (!(KitConfig.get().isSet("kits." + kitNameArg))){ - player.sendMessage(ChatColor.GRAY + "That kit does not exist."); + player.sendMessage(LanguageConfig.lang.get(LanguageKey.KITS_DOES_NOT_EXIST.toString())); return true; } ItemStack itemStack = player.getInventory().getItemInMainHand(); KitConfig.get().set("kits." + kitNameArg + ".killitem", itemStack); - player.sendMessage("Set the kill item of the kit " + kitNameArg + " to " + itemStack.getType()); + player.sendMessage(Component.text("Set the kill item of the kit " + kitNameArg + " to " + itemStack.getType())); KitConfig.save(); KitConfig.reload(); diff --git a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/noncombatstats/commands/GetKitStats.java b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/noncombatstats/commands/GetKitStats.java index 448c745..59da235 100644 --- a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/noncombatstats/commands/GetKitStats.java +++ b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/noncombatstats/commands/GetKitStats.java @@ -2,6 +2,7 @@ package me.lifelessnerd.purekitpvp.noncombatstats.commands; import me.lifelessnerd.purekitpvp.Subcommand; import me.lifelessnerd.purekitpvp.files.KitStatsConfig; +import net.kyori.adventure.text.Component; import org.bukkit.command.CommandSender; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.plugin.Plugin; @@ -70,7 +71,7 @@ public class GetKitStats extends Subcommand { for(String key : sortedMap.keySet()){ - sender.sendMessage(key + " - " + kitStats.getInt(key)); + sender.sendMessage(Component.text(key + " - " + kitStats.getInt(key))); } return true; diff --git a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/noncombatstats/commands/GetStats.java b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/noncombatstats/commands/GetStats.java index c3dd47d..6cbd4d5 100644 --- a/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/noncombatstats/commands/GetStats.java +++ b/PureKitsFork/src/main/java/me/lifelessnerd/purekitpvp/noncombatstats/commands/GetStats.java @@ -1,11 +1,17 @@ package me.lifelessnerd.purekitpvp.noncombatstats.commands; import me.lifelessnerd.purekitpvp.files.PlayerStatsConfig; +import me.lifelessnerd.purekitpvp.files.lang.LanguageConfig; +import me.lifelessnerd.purekitpvp.files.lang.LanguageKey; +import me.lifelessnerd.purekitpvp.utils.ComponentUtils; import me.lifelessnerd.purekitpvp.utils.MyStringUtils; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; +import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; @@ -37,34 +43,23 @@ public class GetStats implements TabExecutor { Set allKeys = playerStatsConfig.getKeys(true); if (!(allKeys.contains(argumentPlayer))){ - player.sendMessage("That player does not have any stats attached to them."); + player.sendMessage(LanguageConfig.lang.get(LanguageKey.STATS_NO_STATS.toString())); return true; } + player.sendMessage(LanguageConfig.lang.get(LanguageKey.STATS_TITLE.toString()). + replaceText(ComponentUtils.replaceConfig("%PLAYER%", argumentPlayer))); - player.sendMessage(argumentPlayer + "'s " + ChatColor.BLUE + "Statistics"); - for (String key : allKeys){ - if (key.split("\\.").length == 1){ - continue; - } - if (key.split("\\.")[0].equalsIgnoreCase(argumentPlayer)) { + ConfigurationSection playerStatsSection = PlayerStatsConfig.get().getConfigurationSection(argumentPlayer); - //Only children of player - if (key.split("\\.")[1].equalsIgnoreCase("kdratio")) { - player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a " + - MyStringUtils.itemCamelCase(key.split("\\.")[1]) + "&c- &r" + playerStatsConfig.getDouble(key))); - } else if (key.split("\\.")[1].equalsIgnoreCase("current_kit")){ - player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a " + - MyStringUtils.itemCamelCase(key.split("\\.")[1]) + "&c- &r" + playerStatsConfig.getString(key))); - } else { - player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a " + - MyStringUtils.itemCamelCase(key.split("\\.")[1]) + "&c- &r" + playerStatsConfig.getInt(key))); - } - } + for (String key : playerStatsSection.getKeys(false)){ + player.sendMessage( + Component.text(" " + MyStringUtils.itemCamelCase(key)).color(NamedTextColor.GREEN).append( + Component.text("- ").color(NamedTextColor.RED).append( + Component.text(playerStatsSection.get(key).toString()).color(NamedTextColor.WHITE) + ))); } - - return true; }