From 6ee276ca826c3c798dfef09b5a64b7028c8ab687 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Thu, 7 Oct 2021 09:54:53 +0200 Subject: [PATCH] WIP multiling part 2 Signed-off-by: Lixfel --- .../fightsystem/utils/BountifulWrapper8.java | 20 ++------ .../fightsystem/utils/BountifulWrapper9.java | 12 ----- .../fightsystem/FightSystem.properties | 50 +++++++++++++++++++ .../steamwar/fightsystem/fight/FightTeam.java | 44 +++++++--------- .../de/steamwar/fightsystem/fight/Kit.java | 14 +++--- .../fightsystem/listener/ArenaBorder.java | 5 +- .../fightsystem/listener/BasicListener.java | 6 --- .../steamwar/fightsystem/listener/Chat.java | 10 ++-- .../steamwar/fightsystem/listener/Check.java | 5 +- .../listener/DenyWorldInteraction.java | 9 ++-- .../fightsystem/listener/EventJoin.java | 4 +- .../fightsystem/listener/HotbarGUI.java | 38 +++++--------- .../fightsystem/listener/InFightDamage.java | 5 +- .../listener/InFightInventory.java | 5 +- .../fightsystem/listener/Permanent.java | 6 +-- .../listener/PersonalKitCreator.java | 4 +- .../fightsystem/listener/ResourcePack.java | 3 +- .../fightsystem/listener/TeamArea.java | 13 ++--- .../fightsystem/listener/TestJoin.java | 2 +- .../fightsystem/record/PacketProcessor.java | 17 +------ .../states/StateDependentCommand.java | 3 +- .../fightsystem/utils/BountifulWrapper.java | 4 -- .../steamwar/fightsystem/utils/FightUI.java | 8 +-- 23 files changed, 134 insertions(+), 153 deletions(-) diff --git a/FightSystem_8/src/de/steamwar/fightsystem/utils/BountifulWrapper8.java b/FightSystem_8/src/de/steamwar/fightsystem/utils/BountifulWrapper8.java index 93d59fb..cd7a5ef 100644 --- a/FightSystem_8/src/de/steamwar/fightsystem/utils/BountifulWrapper8.java +++ b/FightSystem_8/src/de/steamwar/fightsystem/utils/BountifulWrapper8.java @@ -24,11 +24,11 @@ import de.steamwar.fightsystem.Config; import de.steamwar.fightsystem.listener.Recording; import de.steamwar.fightsystem.record.GlobalRecorder; import de.steamwar.fightsystem.record.REntity; -import net.md_5.bungee.api.chat.BaseComponent; -import net.minecraft.server.v1_8_R3.*; +import net.minecraft.server.v1_8_R3.DataWatcher; +import net.minecraft.server.v1_8_R3.EntityEnderDragon; +import net.minecraft.server.v1_8_R3.PacketPlayOutEntityMetadata; +import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntityLiving; import net.royawesome.jlibnoise.MathHelper; -import org.bukkit.Material; -import org.bukkit.World; import org.bukkit.*; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer; import org.bukkit.entity.Player; @@ -56,18 +56,6 @@ public class BountifulWrapper8 implements BountifulWrapper.IBountifulWrapper { return p.getInventory().getItemInHand().getType() == Material.BOW; } - @Override - public void toActionbar(Player player, BaseComponent... components) { - PacketPlayOutChat packet = new PacketPlayOutChat(new ChatComponentText(BaseComponent.toLegacyText(components)), (byte)2); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); - } - - @Override - public void toChat(Player player, BaseComponent... components) { - PacketPlayOutChat packet = new PacketPlayOutChat(new ChatComponentText(BaseComponent.toLegacyText(components)), (byte)0); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); - } - @Override public void setAttackSpeed(Player player) { // nothing to do diff --git a/FightSystem_9/src/de/steamwar/fightsystem/utils/BountifulWrapper9.java b/FightSystem_9/src/de/steamwar/fightsystem/utils/BountifulWrapper9.java index cfeac37..0a57621 100644 --- a/FightSystem_9/src/de/steamwar/fightsystem/utils/BountifulWrapper9.java +++ b/FightSystem_9/src/de/steamwar/fightsystem/utils/BountifulWrapper9.java @@ -25,8 +25,6 @@ import de.steamwar.fightsystem.fight.FightTeam; import de.steamwar.fightsystem.listener.Recording; import de.steamwar.fightsystem.record.GlobalRecorder; import de.steamwar.fightsystem.record.REntity; -import net.md_5.bungee.api.ChatMessageType; -import net.md_5.bungee.api.chat.BaseComponent; import org.bukkit.*; import org.bukkit.attribute.Attribute; import org.bukkit.attribute.AttributeInstance; @@ -69,16 +67,6 @@ public class BountifulWrapper9 implements BountifulWrapper.IBountifulWrapper { return (mainHand ? p.getInventory().getItemInMainHand() : p.getInventory().getItemInOffHand()).getType() == Material.BOW; } - @Override - public void toActionbar(Player player, BaseComponent... components) { - player.spigot().sendMessage(ChatMessageType.ACTION_BAR, components); - } - - @Override - public void toChat(Player player, BaseComponent... components) { - player.spigot().sendMessage(ChatMessageType.CHAT, components); - } - @Override public void setAttackSpeed(Player player) { AttributeInstance attribute = player.getAttribute(Attribute.GENERIC_ATTACK_SPEED); diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/FightSystem.properties b/FightSystem_Core/src/de/steamwar/fightsystem/FightSystem.properties index 7fb8cef..f646e38 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/FightSystem.properties +++ b/FightSystem_Core/src/de/steamwar/fightsystem/FightSystem.properties @@ -113,6 +113,56 @@ SPECTATE_COUNTDOWN=bis die Arena zur # Fight SCHEMATIC_UNLOADABLE=§cSchematic konnte nicht geladen werden +SCHEMATIC_CHOSEN=§7{0} §e{1} §7gewählt +TEAM_READY=§aTeam bereit +TEAM_NOT_READY=§c§mTeam bereit +SKIP_READY=§aBeschleunigung zum nächsten Event +SKIP_NOT_READY=§c§mBeschleunigung zum nächsten Event +TEAM_CHAT={0}{1}§8» {0}{2} +CHOOSE_KIT=§eKit wählen +RESPAWN=§eRespawn +INVITE_PLAYERS=§eSpieler einladen +REMOVE_PLAYERS=§cSpieler rauswerfen +CHOOSE_SCHEMATIC=§e{0} wählen +SCHEMATIC_REQUIRED=§cZuerst muss eine Schematic gewählt sein + +KIT_PREVIEW_EDIT=§7Kit bearbeiten +KIT_PREVIEW_CHOOSE=§aKit wählen +KIT_PREVIEW_BACK=§cZurück +KIT_PREVIEW_DELETE=§cKit löschen +KIT_DELETION_CONFIRMATION=Kit wirklich löschen? +KIT_DELETION_ABORT=§cAbbrechen +KIT_DELETION_DELETE=§aLöschen + + +# Listener +NO_ARENA_LEAVING=§cDu darfst die Arena nicht verlassen +CHECK_JOIN_DENIED=§cAuf diesem Server wird momentan eine Schematic geprüft! +CHECK_COMMAND_LOCKED=§cDieser Befehl ist beim Prüfen gesperrt! Admin wird benachrichtigt. +NO_BLOCK_BREAK=§cDu darfst derzeit keine Blöcke abbauen +NO_BLOCK_PLACE=§cDu darfst derzeit keine Blöcke setzen +NO_BOW_USAGE=§cDu darfst den Bogen erst nach Kampfbeginn nutzen +NO_PARTICIPANT=§cDu bist kein Kampfteilnehmer +NO_FRIENDLY_FIRE=§cDu darfst deinen Teamkollegen keinen Schaden zufügen +NO_TNT_PLACE=§cDu darfst kein TNT setzen +NO_TELEPORT=§cDu darfst diese Teleportfunktion nicht benutzen +OPEN_INVENTORY_TO_CUSTOMIZE=§eInventar zum Anpassen des Kits öffnen +RESOURCEPACK_REQUIRED=§cAuf Eventserver kann nur mit dem SteamWar-Resourcepack beigetreten werden\n§cDa du abgelehnt hast, musst du nun in der Serverliste erst einmal wieder Ressourcenpakete von SteamWar aktivieren +NO_ENTERN=§cDu darfst nicht entern +NO_TEAMAREA=§cDu darfst nicht zu den Teams +TEST_BECOME_LEADER=§7Werde zum Teamleader mit §8/§eleader + + +# Replay +REPLAY_ENDS=§cReplay beendet + + +# States +COMMAND_CURRENTLY_UNAVAILABLE=§cDieser Befehl ist zu diesem Kampfzeitpunkt nicht verfügbar + + +# Utils +TPS_WARNING=§c{0} §7TPS # Winconditions diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/fight/FightTeam.java b/FightSystem_Core/src/de/steamwar/fightsystem/fight/FightTeam.java index c9c56d9..16d4579 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/fight/FightTeam.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/fight/FightTeam.java @@ -35,8 +35,6 @@ import de.steamwar.inventory.SWItem; import de.steamwar.sql.Schematic; import de.steamwar.sql.SteamwarUser; import net.md_5.bungee.api.ChatMessageType; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.api.chat.TextComponent; import org.bukkit.*; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Player; @@ -45,7 +43,6 @@ import org.bukkit.scoreboard.NameTagVisibility; import org.bukkit.scoreboard.Team; import java.util.*; -import java.util.logging.Level; public class FightTeam { @@ -195,10 +192,8 @@ public class FightTeam { players.forEach((player, fp) -> FightSystem.getMessage().send(message, player, params)); } - public void broadcastChat(String message) { - FightSystem.getPlugin().getLogger().log(Level.INFO, message); - BaseComponent[] msg = TextComponent.fromLegacyText(message); - players.forEach((player, fp) -> BountifulWrapper.impl.toChat(player, msg)); + public void broadcastChat(Player sender, String message) { + players.forEach((player, fp) -> FightSystem.getMessage().sendPrefixless("TEAM_CHAT", player, ChatMessageType.CHAT, prefix, sender.getName(), message)); } public void addMember(Player player) { @@ -215,8 +210,8 @@ public class FightTeam { BountifulWrapper.impl.setAttackSpeed(player); player.teleport(spawn); if(Kit.getAvailableKits(false).size() > 1 || Config.PersonalKits) - player.getInventory().setItem(1, new ItemBuilder(Material.LEATHER_CHESTPLATE).removeAllAttributs().addEnchantment(Enchantment.DURABILITY, 1).setDisplayName("§eKit wählen").build()); - player.getInventory().setItem(7, new ItemBuilder(Material.BEACON).removeAllAttributs().setDisplayName("§eRespawn").build()); + player.getInventory().setItem(1, new ItemBuilder(Material.LEATHER_CHESTPLATE).removeAllAttributs().addEnchantment(Enchantment.DURABILITY, 1).setDisplayName(FightSystem.getMessage().parse("CHOOSE_KIT", player)).build()); + player.getInventory().setItem(7, new ItemBuilder(Material.BEACON).removeAllAttributs().setDisplayName(FightSystem.getMessage().parse("RESPAWN", player)).build()); if(ArenaMode.NotOnBau.contains(Config.mode)) Bukkit.getScheduler().runTaskLater(FightSystem.getPlugin(), () -> new TablistNamePacket(SteamwarUser.get(player.getUniqueId()).getId(), prefix + player.getName()).send(player), 5); GlobalRecorder.getInstance().playerJoins(player); @@ -293,23 +288,22 @@ public class FightTeam { if(!Config.PersonalKits) leader.setKit(Kit.getKitByName(Config.LeaderDefault)); + Player player = leader.getPlayer(); Inventory inventory = leader.getPlayer().getInventory(); - if (Kit.getAvailableKits(true).size() > 1) - inventory.setItem(1, new ItemBuilder(Material.LEATHER_CHESTPLATE).removeAllAttributs().addEnchantment(Enchantment.DURABILITY, 1).setDisplayName("§eKit wählen").build()); - else if(Config.PersonalKits) - inventory.setItem(1, new ItemBuilder(Material.LEATHER_CHESTPLATE).removeAllAttributs().addEnchantment(Enchantment.DURABILITY, 1).setDisplayName("§eKit bearbeiten").build()); + if (Kit.getAvailableKits(true).size() > 1 || Config.PersonalKits) + inventory.setItem(1, new ItemBuilder(Material.LEATHER_CHESTPLATE).removeAllAttributs().addEnchantment(Enchantment.DURABILITY, 1).setDisplayName(FightSystem.getMessage().parse("CHOOSE_KIT", player)).build()); else inventory.setItem(1, new ItemBuilder(Material.AIR).build()); if(!ArenaMode.RankedEvent.contains(Config.mode)){ - inventory.setItem(2, new ItemBuilder(Material.PAPER).removeAllAttributs().setDisplayName("§eSpieler einladen").build()); - inventory.setItem(3, new ItemBuilder(SWItem.getMaterial("FIREWORK_CHARGE")).removeAllAttributs().setDisplayName("§cSpieler rauswerfen").build()); + inventory.setItem(2, new ItemBuilder(Material.PAPER).removeAllAttributs().setDisplayName(FightSystem.getMessage().parse("INVITE_PLAYERS", player)).build()); + inventory.setItem(3, new ItemBuilder(SWItem.getMaterial("FIREWORK_CHARGE")).removeAllAttributs().setDisplayName(FightSystem.getMessage().parse("REMOVE_PLAYERS", player)).build()); } - inventory.setItem(4, new ItemBuilder(SWItem.getDye(10), (short) 10).removeAllAttributs().addEnchantment(Enchantment.DURABILITY, 1).setDisplayName("§cNicht bereit").build()); + inventory.setItem(4, new ItemBuilder(SWItem.getDye(10), (short) 10).removeAllAttributs().addEnchantment(Enchantment.DURABILITY, 1).setDisplayName(FightSystem.getMessage().parse("TEAM_NOT_READY", player)).build()); if(Config.test() || FightState.getFightState() != FightState.POST_SCHEM_SETUP) - inventory.setItem(0, new ItemBuilder(SWItem.getMaterial("CAULDRON_ITEM")).removeAllAttributs().addEnchantment(Enchantment.DURABILITY, 1).setDisplayName("§e" + Config.GameName + " wählen").build()); + inventory.setItem(0, new ItemBuilder(SWItem.getMaterial("CAULDRON_ITEM")).removeAllAttributs().addEnchantment(Enchantment.DURABILITY, 1).setDisplayName(FightSystem.getMessage().parse("CHOOSE_SCHEMATIC", player, Config.GameName)).build()); if(FightState.getFightState() == FightState.PRE_LEADER_SETUP && !Fight.getOpposite(this).isLeaderless()){ FightSystem.setPreSchemState(); @@ -348,40 +342,40 @@ public class FightTeam { public void setSchem(Schematic schematic){ this.schematic.setSchematic(schematic); - broadcast("§e" + Config.GameName + " " + schematic.getSchemName() + " §7gewählt"); + broadcast("SCHEMATIC_CHOSEN", Config.GameName, schematic.getSchemName()); } public void setReady(boolean ready) { Player l = leader.getPlayer(); if(!schematic.hasSchematic()){ - BountifulWrapper.impl.toActionbar(l, TextComponent.fromLegacyText("§cZuerst muss eine Schematic gewählt sein!")); + FightSystem.getMessage().sendPrefixless("SCHEMATIC_REQUIRED", l, ChatMessageType.ACTION_BAR); return; } this.ready = ready; if(ready) { - l.getInventory().setItem(4, new ItemBuilder(SWItem.getDye(8), (short) 8).removeAllAttributs().addEnchantment(Enchantment.DURABILITY,1 ).setDisplayName("§aBereit").build()); - broadcast("§aTeam bereit"); + l.getInventory().setItem(4, new ItemBuilder(SWItem.getDye(8), (short) 8).removeAllAttributs().addEnchantment(Enchantment.DURABILITY,1 ).setDisplayName(FightSystem.getMessage().parse("TEAM_READY", l)).build()); + broadcast("TEAM_READY"); if(Fight.getOpposite(this).isReady() || ArenaMode.SoloLeader.contains(Config.mode)) FightSystem.setPreRunningState(); } else { - l.getInventory().setItem(4, new ItemBuilder(SWItem.getDye(10), (short) 10).removeAllAttributs().addEnchantment(Enchantment.DURABILITY, 1).setDisplayName("§cNicht bereit").build()); - broadcast("§c§mTeam bereit"); + l.getInventory().setItem(4, new ItemBuilder(SWItem.getDye(10), (short) 10).removeAllAttributs().addEnchantment(Enchantment.DURABILITY, 1).setDisplayName(FightSystem.getMessage().parse("TEAM_NOT_READY", l)).build()); + broadcast("TEAM_NOT_READY"); } } public void skip(){ this.skip = !skip; if(skip){ - broadcast("§aBeschleunigung zum nächsten Event"); + broadcast("SKIP_READY"); if(Fight.getOpposite(this).skip || Config.test()){ skip = false; Fight.getOpposite(this).skip = false; Countdown.skip(); } }else{ - broadcast("§c§mBeschleunigung zum nächsten Event"); + broadcast("SKIP_NOT_READY"); } } diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/fight/Kit.java b/FightSystem_Core/src/de/steamwar/fightsystem/fight/Kit.java index 84df9b5..798b6c8 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/fight/Kit.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/fight/Kit.java @@ -287,12 +287,12 @@ public class Kit { inv.setCallback(-999, click -> player.closeInventory()); if(Config.PersonalKits){ - inv.setItem(49, SWItem.getMaterial("WOOD_AXE"), "§7Kit bearbeiten", clickType -> PersonalKitCreator.openKitCreator(player, PersonalKit.get(SteamwarUser.get(player.getUniqueId()).getId(), Config.SchematicType.toDB(), name))); - inv.setItem(53, Material.BARRIER, "§cKit löschen", clickType -> { + inv.setItem(49, SWItem.getMaterial("WOOD_AXE"), FightSystem.getMessage().parse("KIT_PREVIEW_EDIT", player), clickType -> PersonalKitCreator.openKitCreator(player, PersonalKit.get(SteamwarUser.get(player.getUniqueId()).getId(), Config.SchematicType.toDB(), name))); + inv.setItem(53, Material.BARRIER, FightSystem.getMessage().parse("KIT_PREVIEW_DELETE", player), clickType -> { player.closeInventory(); - SWInventory conf = new SWInventory(player, 9, "Kit wirklich löchen?"); - conf.setItem(8, SWItem.getDye(1), "§cAbbrechen", click -> player.closeInventory()); - conf.setItem(0, SWItem.getDye(10), "§aLöschen", click -> { + SWInventory conf = new SWInventory(player, 9, FightSystem.getMessage().parse("KIT_DELETION_CONFIRMATION", player)); + conf.setItem(8, SWItem.getDye(1), FightSystem.getMessage().parse("KIT_DELETION_ABORT", player), click -> player.closeInventory()); + conf.setItem(0, SWItem.getDye(10), FightSystem.getMessage().parse("KIT_DELETION_DELETE", player), click -> { player.closeInventory(); SteamwarUser user = SteamwarUser.get(player.getUniqueId()); PersonalKit kit = PersonalKit.get(user.getId(), Config.SchematicType.toDB(), name); @@ -311,11 +311,11 @@ public class Kit { conf.open(); }); } - inv.setItem(45, SWItem.getDye(10), (byte)10, "§aKit wählen", click -> { + inv.setItem(45, SWItem.getDye(10), (byte)10, FightSystem.getMessage().parse("KIT_PREVIEW_CHOOSE", player), click -> { Commands.kit(player, name); player.closeInventory(); }); - inv.setItem(53, SWItem.getDye(1), (byte)1, "§cZurĂĽck", click -> GUI.kitSelection(player, "")); + inv.setItem(53, SWItem.getDye(1), (byte)1, FightSystem.getMessage().parse("KIT_PREVIEW_BACK", player), click -> GUI.kitSelection(player, "")); inv.open(); } diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/listener/ArenaBorder.java b/FightSystem_Core/src/de/steamwar/fightsystem/listener/ArenaBorder.java index 5c39bd4..c51fb06 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/listener/ArenaBorder.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/listener/ArenaBorder.java @@ -21,11 +21,12 @@ package de.steamwar.fightsystem.listener; import de.steamwar.fightsystem.ArenaMode; import de.steamwar.fightsystem.Config; +import de.steamwar.fightsystem.FightSystem; import de.steamwar.fightsystem.fight.Fight; import de.steamwar.fightsystem.fight.FightTeam; import de.steamwar.fightsystem.states.FightState; import de.steamwar.fightsystem.states.StateDependentListener; -import net.md_5.bungee.api.chat.TextComponent; +import net.md_5.bungee.api.ChatMessageType; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.entity.Player; @@ -70,6 +71,6 @@ public class ArenaBorder implements Listener { private void reset(PlayerMoveEvent event){ Player player = event.getPlayer(); player.teleport(event.getFrom()); - BasicListener.toActionbar(player, TextComponent.fromLegacyText("§cDu darfst die Arena nicht verlassen")); + FightSystem.getMessage().sendPrefixless("NO_ARENA_LEAVING", player, ChatMessageType.ACTION_BAR); } } diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/listener/BasicListener.java b/FightSystem_Core/src/de/steamwar/fightsystem/listener/BasicListener.java index f63dc1c..0a32205 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/listener/BasicListener.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/listener/BasicListener.java @@ -20,8 +20,6 @@ package de.steamwar.fightsystem.listener; import de.steamwar.fightsystem.fight.Fight; -import de.steamwar.fightsystem.utils.BountifulWrapper; -import net.md_5.bungee.api.chat.BaseComponent; import org.bukkit.entity.Player; public class BasicListener { @@ -30,8 +28,4 @@ public class BasicListener { public static boolean notFighting(Player p){ return Fight.getFightPlayer(p) == null; } - - public static void toActionbar(Player player, BaseComponent... components){ - BountifulWrapper.impl.toActionbar(player, components); - } } diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/listener/Chat.java b/FightSystem_Core/src/de/steamwar/fightsystem/listener/Chat.java index ec5ee6b..fa5ab7f 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/listener/Chat.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/listener/Chat.java @@ -19,6 +19,7 @@ package de.steamwar.fightsystem.listener; +import de.steamwar.core.BountifulWrapper; import de.steamwar.fightsystem.ArenaMode; import de.steamwar.fightsystem.Config; import de.steamwar.fightsystem.FightSystem; @@ -27,7 +28,7 @@ import de.steamwar.fightsystem.fight.FightTeam; import de.steamwar.fightsystem.record.GlobalRecorder; import de.steamwar.fightsystem.states.FightState; import de.steamwar.fightsystem.states.StateDependentListener; -import de.steamwar.fightsystem.utils.BountifulWrapper; +import net.md_5.bungee.api.ChatMessageType; import net.md_5.bungee.api.chat.BaseComponent; import net.md_5.bungee.api.chat.TextComponent; import org.bukkit.Bukkit; @@ -49,11 +50,12 @@ public class Chat implements Listener { Player player = event.getPlayer(); String message = event.getMessage(); + FightSystem.getPlugin().getLogger().log(Level.INFO, player.getName() + "» " + message); FightTeam fightTeam = Fight.getPlayerTeam(player); if(fightTeam != null) { String teamName = fightTeam.getColoredName(); if(message.startsWith(Config.TeamChatDetection)) { - fightTeam.broadcastChat(teamName + " " + player.getName() + "» " + message.substring(1)); + fightTeam.broadcastChat(player, message.substring(1)); } else { broadcastChat(teamName + " " + player.getName() + "§8» §7" + message); } @@ -68,9 +70,7 @@ public class Chat implements Listener { private void broadcastChat(String message) { GlobalRecorder.getInstance().chat(message); - FightSystem.getPlugin().getLogger().log(Level.INFO, message); BaseComponent[] msg = TextComponent.fromLegacyText(message); - for(Player p : Bukkit.getOnlinePlayers()) - BountifulWrapper.impl.toChat(p, msg); + Bukkit.getOnlinePlayers().forEach(p -> BountifulWrapper.impl.sendMessage(p, ChatMessageType.CHAT, msg)); } } diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/listener/Check.java b/FightSystem_Core/src/de/steamwar/fightsystem/listener/Check.java index 0681294..a12b187 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/listener/Check.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/listener/Check.java @@ -21,6 +21,7 @@ package de.steamwar.fightsystem.listener; import de.steamwar.fightsystem.ArenaMode; import de.steamwar.fightsystem.Config; +import de.steamwar.fightsystem.FightSystem; import de.steamwar.fightsystem.states.FightState; import de.steamwar.fightsystem.states.StateDependentListener; import de.steamwar.sql.Schematic; @@ -53,7 +54,7 @@ public class Check implements Listener { if(user.getId() == schem.getSchemOwner()) return; - player.sendMessage("§cAuf diesem Server wird momentan eine Schematic geprĂĽft!"); + FightSystem.getMessage().send("CHECK_JOIN_DENIED", player); player.kickPlayer(""); } @@ -64,7 +65,7 @@ public class Check implements Listener { return; event.setCancelled(true); - player.sendMessage("§cDieser Befehl ist beim PrĂĽfen gesperrt! Admin wird benachrichtigt."); + FightSystem.getMessage().send("CHECK_COMMAND_LOCKED", player); Bukkit.getLogger().log(Level.SEVERE, player.getName() + " tried to use a copy command!"); } diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/listener/DenyWorldInteraction.java b/FightSystem_Core/src/de/steamwar/fightsystem/listener/DenyWorldInteraction.java index 579d303..f706462 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/listener/DenyWorldInteraction.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/listener/DenyWorldInteraction.java @@ -20,10 +20,11 @@ package de.steamwar.fightsystem.listener; import de.steamwar.fightsystem.ArenaMode; +import de.steamwar.fightsystem.FightSystem; import de.steamwar.fightsystem.states.FightState; import de.steamwar.fightsystem.states.StateDependentListener; import de.steamwar.fightsystem.utils.BountifulWrapper; -import net.md_5.bungee.api.chat.TextComponent; +import net.md_5.bungee.api.ChatMessageType; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -50,14 +51,14 @@ public class DenyWorldInteraction implements Listener { public void handleBlockBreak(BlockBreakEvent event) { Player player = event.getPlayer(); event.setCancelled(true); - BasicListener.toActionbar(player, TextComponent.fromLegacyText("§cDu darfst derzeit keine Blöcke abbauen!")); + FightSystem.getMessage().sendPrefixless("NO_BLOCK_BREAK", player, ChatMessageType.ACTION_BAR); } @EventHandler public void handleBlockPlace(BlockPlaceEvent event) { Player player = event.getPlayer(); event.setCancelled(true); - BasicListener.toActionbar(player, TextComponent.fromLegacyText("§cDu darfst derzeit keine Blöcke setzen!")); + FightSystem.getMessage().sendPrefixless("NO_BLOCK_PLACE", player, ChatMessageType.ACTION_BAR); } @EventHandler @@ -88,7 +89,7 @@ public class DenyWorldInteraction implements Listener { event.setCancelled(true); if(event.getEntity().getShooter() instanceof Player){ Player player = (Player) event.getEntity().getShooter(); - BasicListener.toActionbar(player, TextComponent.fromLegacyText("§cDu darfst den Bogen erst nach Kampfbeginn nutzen!")); + FightSystem.getMessage().sendPrefixless("NO_BOW_USAGE", player, ChatMessageType.ACTION_BAR); } } } diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/listener/EventJoin.java b/FightSystem_Core/src/de/steamwar/fightsystem/listener/EventJoin.java index dc3cca0..9642c6d 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/listener/EventJoin.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/listener/EventJoin.java @@ -52,7 +52,7 @@ public class EventJoin implements Listener { user.getId() == FightSystem.getEventFight().getKampfleiter()) return; - event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "§cDu bist kein Kampfteilnehmer"); + event.disallow(PlayerLoginEvent.Result.KICK_OTHER, FightSystem.getMessage().parse("NO_PARTICIPANT", player)); } @EventHandler @@ -90,7 +90,7 @@ public class EventJoin implements Listener { return; } if(Config.LiveReplay) - player.kickPlayer("§cDu bist kein Kampfteilnehmer"); + player.kickPlayer(FightSystem.getMessage().parse("NO_PARTICIPANT", player)); } @EventHandler diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/listener/HotbarGUI.java b/FightSystem_Core/src/de/steamwar/fightsystem/listener/HotbarGUI.java index 8b3b07f..2906a33 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/listener/HotbarGUI.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/listener/HotbarGUI.java @@ -21,6 +21,7 @@ package de.steamwar.fightsystem.listener; import de.steamwar.fightsystem.ArenaMode; import de.steamwar.fightsystem.Config; +import de.steamwar.fightsystem.FightSystem; import de.steamwar.fightsystem.commands.GUI; import de.steamwar.fightsystem.fight.Fight; import de.steamwar.fightsystem.fight.FightTeam; @@ -59,32 +60,17 @@ public class HotbarGUI implements Listener { if(displayName == null) return; - if(displayName.equals("§e" + Config.GameName + " wählen")){ - GUI.preSchemDialog(player); - return; - } + onMatch(player, displayName, "CHOOSE_SCHEMATIC", () -> GUI.preSchemDialog(player), Config.GameName); + onMatch(player, displayName, "INVITE_PLAYERS", () -> GUI.chooseInvitation(player)); + onMatch(player, displayName, "REMOVE_PLAYERS", () -> GUI.chooseRemove(player)); + onMatch(player, displayName, "TEAM_NOT_READY", () -> fightTeam.setReady(true)); + onMatch(player, displayName, "TEAM_READY", () -> fightTeam.setReady(false)); + onMatch(player, displayName, "CHOOSE_KIT", () -> GUI.kitSelection(player, "")); + onMatch(player, displayName, "RESPAWN", () -> player.teleport(fightTeam.getSpawn())); + } - switch (displayName) { - case "§cSpieler rauswerfen": - GUI.chooseRemove(player); - break; - case "§eSpieler einladen": - GUI.chooseInvitation(player); - break; - case "§cNicht bereit": - fightTeam.setReady(true); - break; - case "§aBereit": - fightTeam.setReady(false); - break; - case "§eKit bearbeiten": - case "§eKit wählen": - GUI.kitSelection(player, ""); - break; - case "§eRespawn": - player.teleport(fightTeam.getSpawn()); - break; - - } + private void onMatch(Player player, String displayName, String message, Runnable run, Object... params) { + if(displayName.equals(FightSystem.getMessage().parse(message, player, params))) + run.run(); } } diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/listener/InFightDamage.java b/FightSystem_Core/src/de/steamwar/fightsystem/listener/InFightDamage.java index f83f39a..921a2a8 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/listener/InFightDamage.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/listener/InFightDamage.java @@ -20,10 +20,11 @@ package de.steamwar.fightsystem.listener; import de.steamwar.fightsystem.ArenaMode; +import de.steamwar.fightsystem.FightSystem; import de.steamwar.fightsystem.fight.Fight; import de.steamwar.fightsystem.states.FightState; import de.steamwar.fightsystem.states.StateDependentListener; -import net.md_5.bungee.api.chat.TextComponent; +import net.md_5.bungee.api.ChatMessageType; import org.bukkit.entity.Arrow; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -83,7 +84,7 @@ public class InFightDamage implements Listener { event.getDamager().setFireTicks(0); player.setFireTicks(0); } - BasicListener.toActionbar(damager, TextComponent.fromLegacyText("§cDu darfst deinen Teamkollegen keinen Schaden zufĂĽgen!")); + FightSystem.getMessage().sendPrefixless("NO_FRIENDLY_FIRE", damager, ChatMessageType.ACTION_BAR); } if(player.getHealth() - event.getFinalDamage() <= 0){ diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/listener/InFightInventory.java b/FightSystem_Core/src/de/steamwar/fightsystem/listener/InFightInventory.java index 70ae2ba..72d2857 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/listener/InFightInventory.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/listener/InFightInventory.java @@ -20,12 +20,13 @@ package de.steamwar.fightsystem.listener; import de.steamwar.fightsystem.ArenaMode; +import de.steamwar.fightsystem.FightSystem; import de.steamwar.fightsystem.fight.Fight; import de.steamwar.fightsystem.fight.FightPlayer; import de.steamwar.fightsystem.states.FightState; import de.steamwar.fightsystem.states.StateDependentListener; import de.steamwar.fightsystem.utils.FlatteningWrapper; -import net.md_5.bungee.api.chat.TextComponent; +import net.md_5.bungee.api.ChatMessageType; import org.bukkit.Material; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -111,7 +112,7 @@ public class InFightInventory implements Listener { public void onBlockPlace(BlockPlaceEvent e) { FightPlayer fp = Fight.getFightPlayer(e.getPlayer()); if(fp != null && !fp.getKit().isTnt() && e.getBlockPlaced().getType() == Material.TNT){ - BasicListener.toActionbar(e.getPlayer(), TextComponent.fromLegacyText("§cDu darfst kein TNT setzen!")); + FightSystem.getMessage().sendPrefixless("NO_TNT_PLACE", e.getPlayer(), ChatMessageType.ACTION_BAR); e.setCancelled(true); } } diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/listener/Permanent.java b/FightSystem_Core/src/de/steamwar/fightsystem/listener/Permanent.java index 4463317..f3de423 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/listener/Permanent.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/listener/Permanent.java @@ -29,7 +29,7 @@ import de.steamwar.fightsystem.record.REntity; import de.steamwar.fightsystem.states.FightState; import de.steamwar.fightsystem.states.StateDependentListener; import de.steamwar.sql.SteamwarUser; -import net.md_5.bungee.api.chat.TextComponent; +import net.md_5.bungee.api.ChatMessageType; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.entity.Player; @@ -64,8 +64,8 @@ public class Permanent implements Listener { public void onTpGM3(PlayerTeleportEvent e) { if (e.getCause() == PlayerTeleportEvent.TeleportCause.SPECTATE) { e.setCancelled(true); - BasicListener.toActionbar(e.getPlayer(), TextComponent.fromLegacyText("§cDu darfst diese Teleportfunktion nicht benutzen!")); - e.getPlayer().kickPlayer("§cDu darfst diese Teleportfunktion nicht benutzen!"); + FightSystem.getMessage().sendPrefixless("NO_TELEPORT", e.getPlayer(), ChatMessageType.ACTION_BAR); + e.getPlayer().kickPlayer(null); } } diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/listener/PersonalKitCreator.java b/FightSystem_Core/src/de/steamwar/fightsystem/listener/PersonalKitCreator.java index 297834f..ef57d60 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/listener/PersonalKitCreator.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/listener/PersonalKitCreator.java @@ -27,7 +27,7 @@ import de.steamwar.fightsystem.fight.Kit; import de.steamwar.fightsystem.states.FightState; import de.steamwar.fightsystem.states.StateDependentListener; import de.steamwar.sql.PersonalKit; -import net.md_5.bungee.api.chat.TextComponent; +import net.md_5.bungee.api.ChatMessageType; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.entity.HumanEntity; @@ -58,7 +58,7 @@ public class PersonalKitCreator implements Listener { new InventoryBackup(player, kit); new Kit(kit).loadToPlayer(player); player.setGameMode(GameMode.CREATIVE); - BasicListener.toActionbar(player, TextComponent.fromLegacyText("§eInventar zum Anpassen des Kits öffnen§8!")); + FightSystem.getMessage().sendPrefixless("OPEN_INVENTORY_TO_CUSTOMIZE", player, ChatMessageType.ACTION_BAR); } public static boolean inKitCreator(HumanEntity player){ diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/listener/ResourcePack.java b/FightSystem_Core/src/de/steamwar/fightsystem/listener/ResourcePack.java index dfe27c8..80bb614 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/listener/ResourcePack.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/listener/ResourcePack.java @@ -29,8 +29,7 @@ public class ResourcePack implements Listener { return; Player player = e.getPlayer(); - player.sendMessage(FightSystem.PREFIX + "§cAuf Eventserver kann nur mit dem SteamWar-Resourcepack beigetreten werden"); - player.sendMessage(FightSystem.PREFIX + "§cDa du abgelehnt hast, musst du nun in der Serverliste erst einmal wieder Ressourcenpakete von SteamWar aktivieren."); + FightSystem.getMessage().sendPrefixless("RESOURCEPACK_REQUIRED", player); player.kickPlayer(null); } } diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/listener/TeamArea.java b/FightSystem_Core/src/de/steamwar/fightsystem/listener/TeamArea.java index 6a06a8e..b21bafe 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/listener/TeamArea.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/listener/TeamArea.java @@ -27,7 +27,7 @@ import de.steamwar.fightsystem.fight.FightTeam; import de.steamwar.fightsystem.states.FightState; import de.steamwar.fightsystem.states.StateDependentListener; import de.steamwar.fightsystem.utils.Region; -import net.md_5.bungee.api.chat.TextComponent; +import net.md_5.bungee.api.ChatMessageType; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.entity.Player; @@ -42,9 +42,6 @@ import java.util.logging.Level; public class TeamArea implements Listener { - private static final String DENY_TEAM = "§cDu darfst nicht zu den Teams"; - private static final String DENY_ENTERN = "§cDu darfst nicht entern"; - private static final Set realSpectator = new HashSet<>(); public TeamArea() { @@ -78,16 +75,16 @@ public class TeamArea implements Listener { if(spectator) { realSpectator(inRegion, player); } else if (!playerTeam.canPlayerEntern(player) && !inRegion) { - reset(event, DENY_ENTERN); // Leaving prior to entern + reset(event, "NO_ENTERN"); // Leaving prior to entern } return; // Always allowed in own region } if(inRegion) { - reset(event, DENY_TEAM); // Not allowed in region + reset(event, "NO_TEAMAREA"); // Not allowed in region if(team.getSchemRegion().playerInRegion(event.getTo()) && Config.PreperationArea >= 5){ // Preventing false positives due to small extension player.kickPlayer(null); - Bukkit.getLogger().log(Level.INFO, player.getName() + " ist in einen Teambereich eingedrungen."); + Bukkit.getLogger().log(Level.INFO, player.getName() + " has entered a team area"); } } } @@ -105,6 +102,6 @@ public class TeamArea implements Listener { private void reset(PlayerMoveEvent event, String message){ Player player = event.getPlayer(); player.teleport(event.getFrom()); - BasicListener.toActionbar(player, TextComponent.fromLegacyText(message)); + FightSystem.getMessage().sendPrefixless(message, player, ChatMessageType.ACTION_BAR); } } diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/listener/TestJoin.java b/FightSystem_Core/src/de/steamwar/fightsystem/listener/TestJoin.java index a8fd0eb..8099c24 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/listener/TestJoin.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/listener/TestJoin.java @@ -42,7 +42,7 @@ public class TestJoin implements Listener { FightTeam fightTeam = Fight.getPlayerTeam(player); if (fightTeam == null && (Fight.getRedTeam().isLeaderless() || Fight.getBlueTeam().isLeaderless())) { - player.sendMessage(FightSystem.PREFIX + "§7Werde zum Teamleader mit §8/§eleader"); + FightSystem.getMessage().send("TEST_BECOME_LEADER", player); } player.setOp(true); diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/record/PacketProcessor.java b/FightSystem_Core/src/de/steamwar/fightsystem/record/PacketProcessor.java index 656af58..5fbddf3 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/record/PacketProcessor.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/record/PacketProcessor.java @@ -29,7 +29,6 @@ import de.steamwar.fightsystem.countdown.EventSpectateCountdown; import de.steamwar.fightsystem.fight.Fight; import de.steamwar.fightsystem.fight.FightTeam; import de.steamwar.fightsystem.fight.FreezeWorld; -import de.steamwar.fightsystem.listener.BasicListener; import de.steamwar.fightsystem.listener.FightScoreboard; import de.steamwar.fightsystem.utils.*; import de.steamwar.sql.Schematic; @@ -235,19 +234,7 @@ public class PacketProcessor { String message = source.readUTF(); BaseComponent[] text = TextComponent.fromLegacyText(message); - Bukkit.getOnlinePlayers().forEach(p -> { - switch(type){ - case CHAT: - BountifulWrapper.impl.toChat(p, text); - break; - case SYSTEM: - p.spigot().sendMessage(text); - break; - case ACTION_BAR: - BasicListener.toActionbar(p, text); - break; - } - }); + Bukkit.getOnlinePlayers().forEach(p -> de.steamwar.core.BountifulWrapper.impl.sendMessage(p, type, text)); } private void countdown() throws IOException { @@ -411,7 +398,7 @@ public class PacketProcessor { if(Config.replayserver() || ArenaMode.AntiReplay.contains(Config.mode)) { FightSystem.setSpectateState(null, "Replay ends", null); }else{ - Bukkit.broadcastMessage(FightSystem.PREFIX + "§cReplay beendet"); + FightSystem.getMessage().broadcast("REPLAY_ENDS"); new EventSpectateCountdown().enable(); } replaying = false; diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/states/StateDependentCommand.java b/FightSystem_Core/src/de/steamwar/fightsystem/states/StateDependentCommand.java index b2e63fb..2d25b68 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/states/StateDependentCommand.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/states/StateDependentCommand.java @@ -21,6 +21,7 @@ package de.steamwar.fightsystem.states; import de.steamwar.fightsystem.ArenaMode; import de.steamwar.fightsystem.FightSystem; +import net.md_5.bungee.api.ChatMessageType; import org.bukkit.command.CommandExecutor; import org.bukkit.command.PluginCommand; @@ -29,7 +30,7 @@ import java.util.Set; public class StateDependentCommand extends StateDependent { private static final CommandExecutor unavailable = (sender, cmd, s, strings) -> { - sender.sendMessage(FightSystem.PREFIX + "§cDieser Befehl ist zu diesem Kampfzeitpunkt nicht verfĂĽgbar."); + FightSystem.getMessage().sendPrefixless("COMMAND_CURRENTLY_UNAVAILABLE", sender, ChatMessageType.ACTION_BAR); return false; }; diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/utils/BountifulWrapper.java b/FightSystem_Core/src/de/steamwar/fightsystem/utils/BountifulWrapper.java index 06b9c89..023d4fe 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/utils/BountifulWrapper.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/utils/BountifulWrapper.java @@ -20,7 +20,6 @@ package de.steamwar.fightsystem.utils; import de.steamwar.fightsystem.VersionDependent; -import net.md_5.bungee.api.chat.BaseComponent; import org.bukkit.World; import org.bukkit.entity.Player; import org.bukkit.event.Listener; @@ -37,9 +36,6 @@ public class BountifulWrapper { boolean mainHand(Object packet); boolean bowInHand(boolean mainHand, Player p); - void toActionbar(Player player, BaseComponent... components); - void toChat(Player player, BaseComponent... components); - void setAttackSpeed(Player player); void setNametagVisibility(Team team); diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/utils/FightUI.java b/FightSystem_Core/src/de/steamwar/fightsystem/utils/FightUI.java index 79e68d1..719f406 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/utils/FightUI.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/utils/FightUI.java @@ -30,8 +30,6 @@ import de.steamwar.fightsystem.states.FightState; import de.steamwar.fightsystem.states.StateDependentCountdown; import de.steamwar.fightsystem.states.StateDependentTask; import de.steamwar.fightsystem.winconditions.Wincondition; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.api.chat.TextComponent; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -138,10 +136,8 @@ public class FightUI { private void tpsWatcher() { double tps = TPSWatcher.getTPS(); - if(tps < 15.0) { - BaseComponent[] message = TextComponent.fromLegacyText("§c" + tps + " §7TPS"); - Bukkit.getOnlinePlayers().forEach(player -> BountifulWrapper.impl.toActionbar(player, message)); - } + if(tps < 15.0) + FightSystem.getMessage().broadcastActionbar("TPS_WARNING", tps); } public enum BossBarType {