From 4d7ea1a38850d525df1a36729db0d47a89f24da9 Mon Sep 17 00:00:00 2001 From: Matheus Date: Mon, 8 Apr 2024 09:46:28 -0400 Subject: [PATCH] too lazy to write this --- src/main/java/dev/lugami/otaku/Language.java | 18 ++++--- src/main/java/dev/lugami/otaku/Main.java | 1 + .../java/dev/lugami/otaku/board/Board.java | 50 ++++++++++++------- .../dev/lugami/otaku/commands/FFACommand.java | 16 ++++-- .../lugami/otaku/commands/FFAJoinCommand.java | 3 +- .../lugami/otaku/commands/ReKitCommand.java | 4 +- .../otaku/commands/kit/KitCreateCommand.java | 3 +- .../otaku/commands/kit/KitDeleteCommand.java | 3 +- .../commands/kit/KitGetLoadoutCommand.java | 3 +- .../otaku/commands/kit/KitSetIconCommand.java | 3 +- .../commands/kit/KitSetLoadoutCommand.java | 3 +- .../commands/kit/KitSetLocationCommand.java | 7 +-- .../lugami/otaku/essentials/Essentials.java | 7 +-- .../otaku/essentials/EssentialsListener.java | 12 +++-- .../lugami/otaku/events/FFADeathEvent.java | 22 ++++++++ .../java/dev/lugami/otaku/hotbar/Hotbar.java | 3 -- .../dev/lugami/otaku/hotbar/HotbarItem.java | 5 +- .../otaku/leaderboards/Leaderboards.java | 8 +-- .../leaderboards/menu/LeaderboardsMenu.java | 4 +- .../lugami/otaku/listener/FFAListener.java | 30 +++++------ .../otaku/listener/GeneralListeners.java | 5 +- .../dev/lugami/otaku/profile/Profile.java | 9 ++-- .../otaku/profile/data/ProfileKitData.java | 3 +- .../dev/lugami/otaku/utils/PlayerEvent.java | 6 +-- src/main/resources/lang.yml | 21 +++++++- src/main/resources/scoreboard.yml | 30 +++++++---- 26 files changed, 172 insertions(+), 107 deletions(-) create mode 100644 src/main/java/dev/lugami/otaku/events/FFADeathEvent.java diff --git a/src/main/java/dev/lugami/otaku/Language.java b/src/main/java/dev/lugami/otaku/Language.java index e403c15..2897cba 100644 --- a/src/main/java/dev/lugami/otaku/Language.java +++ b/src/main/java/dev/lugami/otaku/Language.java @@ -1,7 +1,7 @@ package dev.lugami.otaku; +import dev.lugami.otaku.utils.CC; import lombok.AllArgsConstructor; -import org.bukkit.ChatColor; import java.text.MessageFormat; import java.util.ArrayList; @@ -14,24 +14,28 @@ public enum Language { REKIT_COOLDOWN("COOLDOWN.REKIT"), COMBAT_COOLDOWN("COOLDOWN.COMBAT"), NO_PEARL_COOLDOWN("NO-COOLDOWN.PEARL"), - NO_COMBAT_COOLDOWN("NO-COOLDOWN.COMBAT"); + NO_COMBAT_COOLDOWN("NO-COOLDOWN.COMBAT"), + CANT_DROP_ITEM("ERROR.CANT-DROP-ITEM"), + KIT_DOESNT_EXIST("ERROR.KIT-DOESNT-EXIST"), + KIT_ALREADY_EXISTS("ERROR.KIT-ALREADY-EXISTS"), + KIT_SPAWN_UNSET("ERROR.KIT-SPAWN-NOT-SET"), + NOT_PLAYING("ERROR.NOT-PLAYING-FFA"), + ALREADY_PLAYING("ERROR.ALREADY-PLAYING-FFA"); private String path; public String format(Object... objects) { - return new MessageFormat(ChatColor.translateAlternateColorCodes('&', - Main.getInstance().getLangConfig().getString(path))).format(objects); + return new MessageFormat(CC.translate(Main.getInstance().getLangConfig().getString(path))).format(objects); } public List formatLines(Object... objects) { List lines = new ArrayList<>(); if (Main.getInstance().getLangConfig().get(path) instanceof String) { - lines.add(new MessageFormat(ChatColor.translateAlternateColorCodes('&', - Main.getInstance().getLangConfig().getString(path))).format(objects)); + lines.add(new MessageFormat(CC.translate(Main.getInstance().getLangConfig().getString(path))).format(objects)); } else { for (String string : Main.getInstance().getLangConfig().getStringList(path)) { - lines.add(new MessageFormat(ChatColor.translateAlternateColorCodes('&', string)) + lines.add(new MessageFormat(CC.translate(string)) .format(objects)); } } diff --git a/src/main/java/dev/lugami/otaku/Main.java b/src/main/java/dev/lugami/otaku/Main.java index ac65f61..a90ee97 100644 --- a/src/main/java/dev/lugami/otaku/Main.java +++ b/src/main/java/dev/lugami/otaku/Main.java @@ -76,6 +76,7 @@ public class Main extends JavaPlugin { @Override public void onDisable() { for (Player player : getServer().getOnlinePlayers()) { + Profile.getOrCreate(player).save(); player.kickPlayer("Server restarting"); } Kit.saveAll(); diff --git a/src/main/java/dev/lugami/otaku/board/Board.java b/src/main/java/dev/lugami/otaku/board/Board.java index 8be3e9b..289732f 100644 --- a/src/main/java/dev/lugami/otaku/board/Board.java +++ b/src/main/java/dev/lugami/otaku/board/Board.java @@ -20,10 +20,10 @@ public class Board implements AssembleAdapter { @Override public List getLines(Player player) { - List strings = Lists.newArrayList(); + List lines = Lists.newArrayList(); Profile profile = Profile.getOrCreate(player); if (profile == null) { - strings.addAll(CC.translate(Main.getInstance().getScoreboardConfig().getStringList("scoreboard.profile"))); + lines.addAll(CC.translate(Main.getInstance().getScoreboardConfig().getStringList("scoreboard.profile"))); } else { if (!profile.getSettings().scoreboard()) { return null; @@ -31,38 +31,50 @@ public class Board implements AssembleAdapter { switch (profile.getState()) { case LOBBY: for (String s : Main.getInstance().getScoreboardConfig().getStringList("scoreboard.lobby")) { - if (s.equals("") && !Main.getInstance().getCombatManager().isInCombat(player) - || s.equals("") && !Main.getInstance().getEnderpearlManager().isPearlCooldown(player)) continue; - strings.add(providePlaceholders(s, player)); + lines.add(providePlaceholders(s, player)); } break; case PLAYING: for (String s : Main.getInstance().getScoreboardConfig().getStringList("scoreboard.ffa")) { if (s.equals("") && !Main.getInstance().getCombatManager().isInCombat(player) - || s.equals("") && !Main.getInstance().getEnderpearlManager().isPearlCooldown(player)) continue; - strings.add(providePlaceholders(s, player)); + || s.equals("") && !Main.getInstance().getEnderpearlManager().isPearlCooldown(player)) + continue; + if (s.equals("") && Main.getInstance().getCombatManager().isInCombat(player)) { + lines.addAll(Main.getInstance().getScoreboardConfig().getStringList("scoreboard.combat-addition")); + continue; + } + if (s.equals("") && Main.getInstance().getEnderpearlManager().isPearlCooldown(player)) { + if (Main.getInstance().getCombatManager().isInCombat(player)) { + for (String z : Main.getInstance().getScoreboardConfig().getStringList("scoreboard.enderpearl-addition.combat")) { + if (z.contains("")) { + z = z.replace("", String.valueOf(Main.getInstance().getEnderpearlManager().getPearlCooldown(player))); + } + lines.add(z); + } + + } else { + for (String z : Main.getInstance().getScoreboardConfig().getStringList("scoreboard.enderpearl-addition.no-combat")) { + if (z.contains("")) { + z = z.replace("", String.valueOf(Main.getInstance().getEnderpearlManager().getPearlCooldown(player))); + } + lines.add(z); + } + } + continue; + } + lines.add(providePlaceholders(s, player)); } break; } } - return strings; + return lines; } private String providePlaceholders(String s, Player player) { - final String COMBAT_PLACEHOLDER = ""; - final String PEARL_PLACEHOLDER = ""; Profile profile = Profile.getOrCreate(player); if (profile == null) return null; - if (s.equals(COMBAT_PLACEHOLDER) && Main.getInstance().getCombatManager().isInCombat(player)) { - String combatAddition = Main.getInstance().getScoreboardConfig().getString("scoreboard.combat-addition"); - String seconds = String.valueOf(Main.getInstance().getCombatManager().getCombatTime(player)); - s = s.replace(COMBAT_PLACEHOLDER, combatAddition.replace("", seconds)); - } else if (s.equals(PEARL_PLACEHOLDER) && Main.getInstance().getEnderpearlManager().isPearlCooldown(player)) { - String pearlAddition = Main.getInstance().getScoreboardConfig().getString("scoreboard.enderpearl-addition"); - String seconds = String.valueOf(Main.getInstance().getEnderpearlManager().getPearlCooldown(player)); - s = s.replace(PEARL_PLACEHOLDER, pearlAddition.replace("", seconds)); - } else if (profile.getState() == ProfileState.PLAYING && profile.getFFA() != null) { + if (profile.getState() == ProfileState.PLAYING && profile.getFFA() != null) { s = s.replace("", String.valueOf(profile.getKitData().get(profile.getFFA()).kills())) .replace("", String.valueOf(profile.getKitData().get(profile.getFFA()).deaths())) .replace("", String.valueOf(profile.getKitData().get(profile.getFFA()).killstreak())); diff --git a/src/main/java/dev/lugami/otaku/commands/FFACommand.java b/src/main/java/dev/lugami/otaku/commands/FFACommand.java index 52669a2..1767785 100644 --- a/src/main/java/dev/lugami/otaku/commands/FFACommand.java +++ b/src/main/java/dev/lugami/otaku/commands/FFACommand.java @@ -1,6 +1,7 @@ package dev.lugami.otaku.commands; import com.qrakn.honcho.command.CommandMeta; +import dev.lugami.otaku.Main; import dev.lugami.otaku.utils.CC; import org.bukkit.entity.Player; @@ -8,11 +9,16 @@ import org.bukkit.entity.Player; public class FFACommand { public void execute(Player player) { - player.sendMessage(CC.CHAT_BAR); - player.sendMessage(CC.translate("&b/ffa join &7")); - player.sendMessage(CC.translate("&b/ffa leave")); - if (player.hasPermission("otaku.admin")) player.sendMessage(CC.translate("&b/ffa setspawn")); - player.sendMessage(CC.CHAT_BAR); + for (String s : Main.getInstance().getLangConfig().getStringList("COMMANDS.FFA.LINES")) { + if (s.contains("")) { + for (String z : Main.getInstance().getLangConfig().getStringList("COMMANDS.FFA.ADMIN-ADDITION")) { + player.sendMessage(CC.translate(z)); + } + continue; + } + player.sendMessage(CC.translate(s)); + } } + } diff --git a/src/main/java/dev/lugami/otaku/commands/FFAJoinCommand.java b/src/main/java/dev/lugami/otaku/commands/FFAJoinCommand.java index 1bc3166..656b8e9 100644 --- a/src/main/java/dev/lugami/otaku/commands/FFAJoinCommand.java +++ b/src/main/java/dev/lugami/otaku/commands/FFAJoinCommand.java @@ -2,6 +2,7 @@ package dev.lugami.otaku.commands; import com.qrakn.honcho.command.CPL; import com.qrakn.honcho.command.CommandMeta; +import dev.lugami.otaku.Language; import dev.lugami.otaku.events.FFAJoinEvent; import dev.lugami.otaku.kit.Kit; import dev.lugami.otaku.profile.Profile; @@ -21,7 +22,7 @@ public class FFAJoinCommand { FFAJoinEvent event = new FFAJoinEvent(player, Kit.getByName(kit)); event.call(); } else { - player.sendMessage(CC.RED + "You're already on the FFA."); + player.sendMessage(Language.ALREADY_PLAYING.format()); } } diff --git a/src/main/java/dev/lugami/otaku/commands/ReKitCommand.java b/src/main/java/dev/lugami/otaku/commands/ReKitCommand.java index 4dc9370..92c9133 100644 --- a/src/main/java/dev/lugami/otaku/commands/ReKitCommand.java +++ b/src/main/java/dev/lugami/otaku/commands/ReKitCommand.java @@ -1,10 +1,10 @@ package dev.lugami.otaku.commands; import com.qrakn.honcho.command.CommandMeta; +import dev.lugami.otaku.Language; import dev.lugami.otaku.events.FFAReKitEvent; import dev.lugami.otaku.profile.Profile; import dev.lugami.otaku.profile.data.ProfileState; -import dev.lugami.otaku.utils.CC; import org.bukkit.entity.Player; @CommandMeta(label = "rekit") @@ -13,7 +13,7 @@ public class ReKitCommand { public void execute(Player player) { Profile profile = Profile.getOrCreate(player); if (profile.getState() != ProfileState.PLAYING || profile.getFFA() == null) { - player.sendMessage(CC.RED + "You're not playing on the FFA"); + player.sendMessage(Language.NOT_PLAYING.format()); return; } (new FFAReKitEvent(player, profile.getFFA(), false)).call(); diff --git a/src/main/java/dev/lugami/otaku/commands/kit/KitCreateCommand.java b/src/main/java/dev/lugami/otaku/commands/kit/KitCreateCommand.java index 5b48d30..1afdc1e 100644 --- a/src/main/java/dev/lugami/otaku/commands/kit/KitCreateCommand.java +++ b/src/main/java/dev/lugami/otaku/commands/kit/KitCreateCommand.java @@ -2,6 +2,7 @@ package dev.lugami.otaku.commands.kit; import com.qrakn.honcho.command.CPL; import com.qrakn.honcho.command.CommandMeta; +import dev.lugami.otaku.Language; import dev.lugami.otaku.kit.Kit; import dev.lugami.otaku.utils.CC; import org.bukkit.entity.Player; @@ -11,7 +12,7 @@ public class KitCreateCommand { public void execute(Player player, @CPL("name") String kitName) { if (Kit.getByName(kitName) != null) { - player.sendMessage(CC.RED + "A kit with that name already exists."); + player.sendMessage(Language.KIT_ALREADY_EXISTS.format()); return; } diff --git a/src/main/java/dev/lugami/otaku/commands/kit/KitDeleteCommand.java b/src/main/java/dev/lugami/otaku/commands/kit/KitDeleteCommand.java index adefd61..78943f3 100644 --- a/src/main/java/dev/lugami/otaku/commands/kit/KitDeleteCommand.java +++ b/src/main/java/dev/lugami/otaku/commands/kit/KitDeleteCommand.java @@ -1,6 +1,7 @@ package dev.lugami.otaku.commands.kit; import com.qrakn.honcho.command.CommandMeta; +import dev.lugami.otaku.Language; import dev.lugami.otaku.kit.Kit; import dev.lugami.otaku.utils.CC; import org.bukkit.entity.Player; @@ -9,7 +10,7 @@ import org.bukkit.entity.Player; public class KitDeleteCommand { public void execute(Player player, Kit kit) { if (kit == null) { - player.sendMessage(CC.RED + "A kit with that name does not exist."); + player.sendMessage(Language.KIT_DOESNT_EXIST.format()); return; } diff --git a/src/main/java/dev/lugami/otaku/commands/kit/KitGetLoadoutCommand.java b/src/main/java/dev/lugami/otaku/commands/kit/KitGetLoadoutCommand.java index c13620e..9b72fd6 100644 --- a/src/main/java/dev/lugami/otaku/commands/kit/KitGetLoadoutCommand.java +++ b/src/main/java/dev/lugami/otaku/commands/kit/KitGetLoadoutCommand.java @@ -2,6 +2,7 @@ package dev.lugami.otaku.commands.kit; import com.qrakn.honcho.command.CPL; import com.qrakn.honcho.command.CommandMeta; +import dev.lugami.otaku.Language; import dev.lugami.otaku.kit.Kit; import dev.lugami.otaku.utils.CC; import org.bukkit.entity.Player; @@ -11,7 +12,7 @@ public class KitGetLoadoutCommand { public void execute(Player player, @CPL("kit") String kit) { if (Kit.getByName(kit) == null) { - player.sendMessage(CC.RED + "A kit with that name does not exist."); + player.sendMessage(Language.KIT_DOESNT_EXIST.format()); return; } diff --git a/src/main/java/dev/lugami/otaku/commands/kit/KitSetIconCommand.java b/src/main/java/dev/lugami/otaku/commands/kit/KitSetIconCommand.java index 98acfba..0bc3309 100644 --- a/src/main/java/dev/lugami/otaku/commands/kit/KitSetIconCommand.java +++ b/src/main/java/dev/lugami/otaku/commands/kit/KitSetIconCommand.java @@ -2,6 +2,7 @@ package dev.lugami.otaku.commands.kit; import com.qrakn.honcho.command.CPL; import com.qrakn.honcho.command.CommandMeta; +import dev.lugami.otaku.Language; import dev.lugami.otaku.kit.Kit; import dev.lugami.otaku.utils.CC; import org.bukkit.entity.Player; @@ -11,7 +12,7 @@ public class KitSetIconCommand { public void execute(Player player, @CPL("kit") String kit) { if (Kit.getByName(kit) == null) { - player.sendMessage(CC.RED + "A kit with that name does not exist."); + player.sendMessage(Language.KIT_DOESNT_EXIST.format()); return; } diff --git a/src/main/java/dev/lugami/otaku/commands/kit/KitSetLoadoutCommand.java b/src/main/java/dev/lugami/otaku/commands/kit/KitSetLoadoutCommand.java index 0771ee4..330155b 100644 --- a/src/main/java/dev/lugami/otaku/commands/kit/KitSetLoadoutCommand.java +++ b/src/main/java/dev/lugami/otaku/commands/kit/KitSetLoadoutCommand.java @@ -2,6 +2,7 @@ package dev.lugami.otaku.commands.kit; import com.qrakn.honcho.command.CPL; import com.qrakn.honcho.command.CommandMeta; +import dev.lugami.otaku.Language; import dev.lugami.otaku.kit.Kit; import dev.lugami.otaku.utils.CC; import org.bukkit.entity.Player; @@ -11,7 +12,7 @@ public class KitSetLoadoutCommand { public void execute(Player player, @CPL("kit") String kit) { if (Kit.getByName(kit) == null) { - player.sendMessage(CC.RED + "A kit with that name does not exist."); + player.sendMessage(Language.KIT_DOESNT_EXIST.format()); return; } diff --git a/src/main/java/dev/lugami/otaku/commands/kit/KitSetLocationCommand.java b/src/main/java/dev/lugami/otaku/commands/kit/KitSetLocationCommand.java index 4eda5bd..ffc9766 100644 --- a/src/main/java/dev/lugami/otaku/commands/kit/KitSetLocationCommand.java +++ b/src/main/java/dev/lugami/otaku/commands/kit/KitSetLocationCommand.java @@ -2,20 +2,17 @@ package dev.lugami.otaku.commands.kit; import com.qrakn.honcho.command.CPL; import com.qrakn.honcho.command.CommandMeta; +import dev.lugami.otaku.Language; import dev.lugami.otaku.kit.Kit; import dev.lugami.otaku.utils.CC; -import dev.lugami.otaku.utils.LocationUtil; import org.bukkit.entity.Player; -import java.util.Objects; - @CommandMeta(label = "kit setlocation", permission = "otaku.kit.setlocation") public class KitSetLocationCommand { public void execute(Player player, @CPL("kit") String kit) { if (Kit.getByName(kit) == null) { - player.sendMessage(CC.RED + "A kit with that name does not exist."); - return; + player.sendMessage(Language.KIT_DOESNT_EXIST.format()); } else { Kit.getByName(kit).setLocation(player.getLocation()); player.sendMessage(CC.GREEN + "The location for " + kit + " has been set!"); diff --git a/src/main/java/dev/lugami/otaku/essentials/Essentials.java b/src/main/java/dev/lugami/otaku/essentials/Essentials.java index aff4bb8..e26f43b 100644 --- a/src/main/java/dev/lugami/otaku/essentials/Essentials.java +++ b/src/main/java/dev/lugami/otaku/essentials/Essentials.java @@ -80,13 +80,8 @@ public class Essentials { if (entity.getType() == EntityType.PLAYER) { continue; } - if (entity instanceof Item) { - removed++; - entity.remove(); - continue; - } - removed++; + removed++; entity.remove(); } } diff --git a/src/main/java/dev/lugami/otaku/essentials/EssentialsListener.java b/src/main/java/dev/lugami/otaku/essentials/EssentialsListener.java index 67b3c87..6be5564 100644 --- a/src/main/java/dev/lugami/otaku/essentials/EssentialsListener.java +++ b/src/main/java/dev/lugami/otaku/essentials/EssentialsListener.java @@ -1,12 +1,14 @@ package dev.lugami.otaku.essentials; import dev.lugami.otaku.Main; +import dev.lugami.otaku.events.FFADeathEvent; import dev.lugami.otaku.hotbar.Hotbar; import dev.lugami.otaku.kit.Kit; import dev.lugami.otaku.profile.Profile; import dev.lugami.otaku.profile.data.ProfileState; import dev.lugami.otaku.utils.CC; import org.bukkit.GameMode; +import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -17,12 +19,13 @@ import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerItemDamageEvent; import org.bukkit.event.world.ChunkUnloadEvent; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class EssentialsListener implements Listener { - private static List BLOCKED_COMMANDS = Arrays.asList( + private static final List BLOCKED_COMMANDS = Arrays.asList( "//calc", "//eval", "//solve", @@ -45,14 +48,12 @@ public class EssentialsListener implements Listener { for (String blockedCommand : BLOCKED_COMMANDS) { for (String part : commandParts) { if (part.startsWith(blockedCommand)) { - // Check for exact matches only if (part.equalsIgnoreCase(blockedCommand)) { if (blockedCommand.equalsIgnoreCase("/version") || blockedCommand.equalsIgnoreCase("/ver")) { if (event.getPlayer().isOp()) { return; } } - player.sendMessage(CC.RED + "You cannot perform this command."); event.setCancelled(true); return; @@ -106,8 +107,9 @@ public class EssentialsListener implements Listener { Kit kit = profile.getFFA(); if (kit.getKitRules().isNoDamage()) { event.setDamage(0.0); - } else if (kit.getKitRules().isNoFall() && event.getCause() == EntityDamageEvent.DamageCause.VOID) { - event.setCancelled(true); + } else if (event.getCause() == EntityDamageEvent.DamageCause.VOID) { + CraftPlayer player = ((CraftPlayer) event.getEntity()); + new FFADeathEvent(player, new ArrayList<>()).call(); } } } diff --git a/src/main/java/dev/lugami/otaku/events/FFADeathEvent.java b/src/main/java/dev/lugami/otaku/events/FFADeathEvent.java new file mode 100644 index 0000000..af04253 --- /dev/null +++ b/src/main/java/dev/lugami/otaku/events/FFADeathEvent.java @@ -0,0 +1,22 @@ +package dev.lugami.otaku.events; + +import dev.lugami.otaku.utils.BaseEvent; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +import java.util.List; + +@EqualsAndHashCode(callSuper = true) +@Data +public class FFADeathEvent extends BaseEvent { + + private final Player player; + private final List drops; + + public FFADeathEvent(Player p, List d) { + player = p; + drops = d; + } +} diff --git a/src/main/java/dev/lugami/otaku/hotbar/Hotbar.java b/src/main/java/dev/lugami/otaku/hotbar/Hotbar.java index 5710d54..bb3b724 100644 --- a/src/main/java/dev/lugami/otaku/hotbar/Hotbar.java +++ b/src/main/java/dev/lugami/otaku/hotbar/Hotbar.java @@ -1,7 +1,6 @@ package dev.lugami.otaku.hotbar; import dev.lugami.otaku.Main; -import dev.lugami.otaku.profile.Profile; import dev.lugami.otaku.utils.ItemBuilder; import dev.lugami.otaku.utils.PlayerUtil; import lombok.Getter; @@ -39,8 +38,6 @@ public class Hotbar { } public static boolean setup(Player player) { - Profile profile = Profile.getOrCreate(player); - ItemStack[] itemStacks = new ItemStack[9]; Arrays.fill(itemStacks, null); try { diff --git a/src/main/java/dev/lugami/otaku/hotbar/HotbarItem.java b/src/main/java/dev/lugami/otaku/hotbar/HotbarItem.java index 9ea6659..1c022cc 100644 --- a/src/main/java/dev/lugami/otaku/hotbar/HotbarItem.java +++ b/src/main/java/dev/lugami/otaku/hotbar/HotbarItem.java @@ -5,11 +5,12 @@ import lombok.Setter; import java.util.regex.Pattern; +@Getter public enum HotbarItem { MAIN_MENU("menu"); - @Getter private String command; - @Getter @Setter private Pattern pattern; + private final String command; + @Setter private Pattern pattern; HotbarItem(String command) { this.command = command; diff --git a/src/main/java/dev/lugami/otaku/leaderboards/Leaderboards.java b/src/main/java/dev/lugami/otaku/leaderboards/Leaderboards.java index 72a1718..79a8589 100644 --- a/src/main/java/dev/lugami/otaku/leaderboards/Leaderboards.java +++ b/src/main/java/dev/lugami/otaku/leaderboards/Leaderboards.java @@ -50,7 +50,11 @@ public class Leaderboards { int kills = kitSection.getInt("kills"); int killstreak = kitSection.getInt("killstreak"); int deaths = kitSection.getInt("deaths"); - ProfileKitData data = new ProfileKitData(kills, killstreak, deaths); + ProfileKitData data = new ProfileKitData(); + data.kills(kills); + data.killstreak(killstreak); + data.deaths(deaths); + //data.KDR((float) kills / deaths); map.put(name, data); } } @@ -81,8 +85,6 @@ public class Leaderboards { Integer kills = (kitDocument != null) ? kitDocument.getInteger("kills") : null; Integer killstreak = (kitDocument != null) ? kitDocument.getInteger("killstreak") : null; Integer deaths = (kitDocument != null) ? kitDocument.getInteger("deaths") : null; - - // Use a default value if elo is null kills = (kills != null) ? kills : 0; deaths = (deaths != null) ? deaths : 0; killstreak = (killstreak != null) ? killstreak : 0; diff --git a/src/main/java/dev/lugami/otaku/leaderboards/menu/LeaderboardsMenu.java b/src/main/java/dev/lugami/otaku/leaderboards/menu/LeaderboardsMenu.java index 4ef2bbd..f79d86a 100644 --- a/src/main/java/dev/lugami/otaku/leaderboards/menu/LeaderboardsMenu.java +++ b/src/main/java/dev/lugami/otaku/leaderboards/menu/LeaderboardsMenu.java @@ -53,7 +53,7 @@ public class LeaderboardsMenu extends Menu { } @AllArgsConstructor - private class KitStatsButton extends Button { + private static class KitStatsButton extends Button { private final Kit kit; @@ -63,7 +63,7 @@ public class LeaderboardsMenu extends Menu { lore.add(CC.MENU_BAR); int pos = 1; for (LeaderboardsEntry entry : Leaderboards.getLeaderboards().get(kit)) { - lore.add("&b" +pos + ". " + entry.name() + "&7 - " + entry.kills() + "/" + entry.killstreak() + "/" + entry.deaths()); + lore.add("&b" + pos + ". " + entry.name() + "&7 - " + entry.kills() + "/" + entry.killstreak() + "/" + entry.deaths()); pos++; } lore.add(CC.MENU_BAR); diff --git a/src/main/java/dev/lugami/otaku/listener/FFAListener.java b/src/main/java/dev/lugami/otaku/listener/FFAListener.java index 4251013..6c0b6d8 100644 --- a/src/main/java/dev/lugami/otaku/listener/FFAListener.java +++ b/src/main/java/dev/lugami/otaku/listener/FFAListener.java @@ -2,6 +2,7 @@ package dev.lugami.otaku.listener; import dev.lugami.otaku.Language; import dev.lugami.otaku.Main; +import dev.lugami.otaku.events.FFADeathEvent; import dev.lugami.otaku.events.FFAJoinEvent; import dev.lugami.otaku.events.FFAQuitEvent; import dev.lugami.otaku.events.FFAReKitEvent; @@ -21,7 +22,6 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; -import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.player.PlayerInteractEvent; @@ -38,7 +38,7 @@ public class FFAListener implements Listener { setupFFA(player, event.getKit()); Profile.getOrCreate(player).setState(ProfileState.PLAYING); } else { - player.sendMessage(CC.RED + "The spawn location for this kit is not set!"); + player.sendMessage(Language.KIT_SPAWN_UNSET.format()); } } @@ -117,16 +117,19 @@ public class FFAListener implements Listener { @EventHandler public void death(PlayerDeathEvent event) { event.setDeathMessage(null); - Player player = event.getEntity(); + new FFADeathEvent(event.getEntity(), event.getDrops()).call(); + } + + @EventHandler + public void handleDeath(FFADeathEvent event) { + Player player = event.getPlayer(); player.spigot().respawn(); Profile profile = Profile.getOrCreate(player); Player killer = PlayerUtil.getLastAttacker(player); - ItemStack[] contents = event.getDrops().toArray(new ItemStack[0]); - ItemStack[] killerContents = killer != null ? killer.getInventory().getContents() : null; - if (profile.getState() == ProfileState.PLAYING && event.getEntity() != null) { + if (profile.getState() == ProfileState.PLAYING && event.getPlayer() != null) { for (Player player1 : FFACache.getFFAList().get(profile.getFFA())) { LightningUtil.spawnLightning(player1, player.getLocation()); - player1.sendMessage(CC.translate("&a" + player.getName() + " [" + PlayerUtil.getRemainingPotions(contents) + "] &7died" + (killer != null ? " to &c" + killer.getName() + " [" + PlayerUtil.getRemainingPotions(killerContents) + "]&7." : "&7."))); + player1.sendMessage(CC.translate("&a" + player.getName() + " &7died" + (killer != null ? " to &c" + killer.getName() + "&7." : "&7."))); } PlayerUtil.reset(player); if (player.isDead()) { @@ -154,6 +157,7 @@ public class FFAListener implements Listener { @Override public void run() { if (setupFFA(player, profile.getFFA())) { + // Ignored. I don't even know why this is an boolean but okay :skull: } else this.run(); if (killer != null && Profile.getOrCreate(killer).getSettings().autoRekit()) { (new FFAReKitEvent(killer, profile.getFFA(), true)).call(); @@ -202,18 +206,14 @@ public class FFAListener implements Listener { @EventHandler public void onDamage(EntityDamageEvent event) { if (event.getEntity() instanceof Player) { + if (Profile.getOrCreate((Player) event.getEntity()).getFFA().getKitRules().isNoDamage()) { + event.setDamage(0.0); + return; + } if (event.getCause() == EntityDamageEvent.DamageCause.FALL) { if (Profile.getOrCreate((Player) event.getEntity()).getState() == ProfileState.PLAYING) event.setCancelled(Profile.getOrCreate((Player) event.getEntity()).getFFA().getKitRules().isNoFall()); } } } - @EventHandler - public void onDamage2(EntityDamageByEntityEvent event) { - if (event.getEntity() instanceof Player) { - if (Profile.getOrCreate((Player) event.getEntity()).getFFA().getKitRules().isNoDamage()) event.setDamage(0.0); - } - } - - } diff --git a/src/main/java/dev/lugami/otaku/listener/GeneralListeners.java b/src/main/java/dev/lugami/otaku/listener/GeneralListeners.java index e38121b..68cd3a1 100644 --- a/src/main/java/dev/lugami/otaku/listener/GeneralListeners.java +++ b/src/main/java/dev/lugami/otaku/listener/GeneralListeners.java @@ -1,5 +1,6 @@ package dev.lugami.otaku.listener; +import dev.lugami.otaku.Language; import dev.lugami.otaku.Main; import dev.lugami.otaku.hotbar.Hotbar; import dev.lugami.otaku.profile.Profile; @@ -31,7 +32,7 @@ public class GeneralListeners implements Listener { if (isSword(droppedItem.getType()) && profile.getSettings().dropProtect()) { event.setCancelled(true); - event.getPlayer().sendMessage(CC.RED + "You cannot drop this item."); + event.getPlayer().sendMessage(CC.translate(Language.CANT_DROP_ITEM.format())); } } @@ -123,7 +124,7 @@ public class GeneralListeners implements Listener { if (attacker != null) { PlayerUtil.setLastAttacker(victim, attacker); - if (attacker instanceof Player && attacker != victim) { + if (attacker != victim) { Main.getInstance().getCombatManager().setCombatTime(victim, 15); Main.getInstance().getCombatManager().setCombatTime(attacker, 15); Main.getInstance().getCombatManager().setInCombat(victim, true); diff --git a/src/main/java/dev/lugami/otaku/profile/Profile.java b/src/main/java/dev/lugami/otaku/profile/Profile.java index 23403fe..0a2db3d 100644 --- a/src/main/java/dev/lugami/otaku/profile/Profile.java +++ b/src/main/java/dev/lugami/otaku/profile/Profile.java @@ -12,6 +12,7 @@ import dev.lugami.otaku.utils.CC; import dev.lugami.otaku.utils.Cooldown; import dev.lugami.otaku.utils.FFACache; import dev.lugami.otaku.utils.SaveMethodType; +import dev.lugami.otaku.utils.config.ConfigUtil; import lombok.Data; import lombok.Getter; import org.bson.Document; @@ -20,7 +21,6 @@ import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; -import java.io.IOException; import java.util.*; @Data @@ -136,6 +136,7 @@ public class Profile { profileKitData.kills(kitDocument.getInteger("kills")); profileKitData.deaths(kitDocument.getInteger("deaths")); profileKitData.killstreak(kitDocument.getInteger("killstreak")); + //profileKitData.KDR((float) profileKitData.kills() / profileKitData.deaths()); kitData.put(kit, profileKitData); } @@ -193,11 +194,7 @@ public class Profile { Main.getInstance().getProfileConfig().getConfiguration().set("settings." + getPlayer().getName() + ".scoreboard", settings.scoreboard()); Main.getInstance().getProfileConfig().getConfiguration().set("settings." + getPlayer().getName() + ".autoRekit", settings.autoRekit()); Main.getInstance().getProfileConfig().getConfiguration().set("settings." + getPlayer().getName() + ".dropProtect", settings.dropProtect()); - try { - Main.getInstance().getProfileConfig().getConfiguration().save(Main.getInstance().getProfileConfig().getFile()); - } catch (IOException e) { - e.printStackTrace(); - } + ConfigUtil.save(Main.getInstance().getProfileConfig()); if (Main.getInstance().getSaveMethodType() == SaveMethodType.MONGO && collection == null) Bukkit.getLogger().warning("Profile#getCollection was null, so " + player.getName() + "'s profile was saved using the fallback flatfile method."); } } diff --git a/src/main/java/dev/lugami/otaku/profile/data/ProfileKitData.java b/src/main/java/dev/lugami/otaku/profile/data/ProfileKitData.java index da26bff..828d48a 100644 --- a/src/main/java/dev/lugami/otaku/profile/data/ProfileKitData.java +++ b/src/main/java/dev/lugami/otaku/profile/data/ProfileKitData.java @@ -1,12 +1,11 @@ package dev.lugami.otaku.profile.data; -import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; @Data @Accessors(fluent = true) -@AllArgsConstructor @NoArgsConstructor +@NoArgsConstructor public class ProfileKitData { private int kills; diff --git a/src/main/java/dev/lugami/otaku/utils/PlayerEvent.java b/src/main/java/dev/lugami/otaku/utils/PlayerEvent.java index 5565b0d..5bc5d21 100644 --- a/src/main/java/dev/lugami/otaku/utils/PlayerEvent.java +++ b/src/main/java/dev/lugami/otaku/utils/PlayerEvent.java @@ -7,7 +7,7 @@ import java.util.UUID; @Getter public class PlayerEvent extends BaseEvent { - private Player player; + private final Player player; public PlayerEvent(Player player) { this(player, false); @@ -17,10 +17,6 @@ public class PlayerEvent extends BaseEvent { this.player = player; } - public Player getPlayer() { - return player; - } - public UUID getUniqueId() { return player.getUniqueId(); } diff --git a/src/main/resources/lang.yml b/src/main/resources/lang.yml index a7986fe..857cf91 100644 --- a/src/main/resources/lang.yml +++ b/src/main/resources/lang.yml @@ -5,4 +5,23 @@ COOLDOWN: NO-COOLDOWN: PEARL: "&aYour pearl cooldown expired!" - COMBAT: "&aYou're no longer in combat!" \ No newline at end of file + COMBAT: "&aYou're no longer in combat!" + +ERROR: + CANT-DROP-ITEM: "&cYou cannot drop this item." + KIT-DOESNT-EXIST: "&cA kit with that name does not exist." + KIT-ALREADY-EXISTS: "&cA kit with that name already exists." + KIT-SPAWN-NOT-SET: "&cThe spawn location for this kit is not set!" + NOT-PLAYING-FFA: "&cYou're not playing on FFA." + ALREADY-PLAYING-FFA: "&cYou're already on the FFA." + +COMMANDS: + FFA: + LINES: + - "&7&m------------------------------------------------" + - "&b/ffa join &7" + - "&b/ffa leave" + - "" + - "&7&m------------------------------------------------" + ADMIN-ADDITION: + - "&b/ffa setspawn" \ No newline at end of file diff --git a/src/main/resources/scoreboard.yml b/src/main/resources/scoreboard.yml index 24fad0f..f2ef2d1 100644 --- a/src/main/resources/scoreboard.yml +++ b/src/main/resources/scoreboard.yml @@ -1,29 +1,37 @@ scoreboard: global: - title: "&b&lFFA" + title: "&b&lAngolanos" lobby: - "&7&m---------------------" - - "&bOnline: &f" - - "&bPlaying: &f" + - "&fOnline: &b" + - "&fPlaying: &b" - "" - - "&7&oilovefemboys.xyz" + - "&7&oangolanos.fun" - "&7&m---------------------" ffa: - "&7&m---------------------" - - "&bKills: &f" - - "&bDeaths: &f" - - "&bKillstreak: &f" + - "&fKills: &b" + - "&fDeaths: &b" + - "&fKillstreak: &b" - "" - "" - "" - - "&7&oilovefemboys.xyz" + - "&7&oangolanos.fun" - "&7&m---------------------" profile: - "&7&m---------------------" - "&cYour profile was not loaded." - "&cTry rejoining." - "" - - "&7&oilovefemboys.xyz" + - "&7&oangolanos.fun" - "&7&m---------------------" - combat-addition: "&c&lCombat Tag: s" - enderpearl-addition: "&c&lEnderpearl: s" \ No newline at end of file + combat-addition: + - "" + - "&fCombat: &7()" + enderpearl-addition: + # considering combat will be the priority + no-combat: + - "" + - "&fEnderpearl: &7()" + combat: + - "&fEnderpearl: &7()" \ No newline at end of file