diff --git a/src/main/java/de/lunarakai/minecleaner/commands/ListCommand.java b/src/main/java/de/lunarakai/minecleaner/commands/ListCommand.java index 8766cc2..dccfea9 100644 --- a/src/main/java/de/lunarakai/minecleaner/commands/ListCommand.java +++ b/src/main/java/de/lunarakai/minecleaner/commands/ListCommand.java @@ -44,7 +44,7 @@ public class ListCommand extends SubCommand{ @Override public boolean onCommand(CommandSender sender, Command arg1, String arg2, String commandString, ArgsParser args) throws DisallowsCommandBlockException, RequiresPlayerException, NoPermissionException, IllegalSyntaxException, InternalCommandException { - sender.sendMessage(createLangComponent("arena.list", plugin.getDisplayedPluginName(), NamedTextColor.YELLOW)); + sender.sendMessage(createLangComponent("arena.list.created", plugin.getDisplayedPluginName(), NamedTextColor.YELLOW)); boolean any = false; for(MinecleanerArena arena : plugin.getArenaList().getArenas()) { Location location = arena.getLocation(); diff --git a/src/main/java/de/lunarakai/minecleaner/commands/groups/AcceptCommand.java b/src/main/java/de/lunarakai/minecleaner/commands/groups/AcceptCommand.java index b2e861c..861f23f 100644 --- a/src/main/java/de/lunarakai/minecleaner/commands/groups/AcceptCommand.java +++ b/src/main/java/de/lunarakai/minecleaner/commands/groups/AcceptCommand.java @@ -8,8 +8,7 @@ import de.iani.cubesideutils.bukkit.commands.exceptions.NoPermissionException; import de.iani.cubesideutils.bukkit.commands.exceptions.RequiresPlayerException; import de.iani.cubesideutils.commands.ArgsParser; import de.lunarakai.minecleaner.MinecleanerPlugin; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.format.NamedTextColor; +import de.lunarakai.minecleaner.utils.ChatUtils; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; @@ -44,18 +43,17 @@ public class AcceptCommand extends SubCommand { if(plugin.getGroupManager().getInvitedGroup(player) != null && plugin.getGroupManager().getGroup(player) == null) { Player groupOwner = Bukkit.getPlayer(plugin.getGroupManager().getInvitedGroup(player).getOwner()); if(plugin.getArenaList().getPlayerArena(groupOwner) != null) { - player.sendMessage(Component.text("Du kannst keine Einladung annehmen währen die Person, die dich eingeladen hat, in einer Runde ist.", NamedTextColor.DARK_RED)); + ChatUtils.sendSingleLineWarningMessage(player, "Du kannst keine Einladung annehmen während die Person, die dich eingeladen hat, in einer Runde ist."); return true; } plugin.getGroupManager().getInvitedGroup(player).addPlayerToGroup(player); assert groupOwner != null; - groupOwner.sendMessage(Component.text(player.getName() + " hat deine Einladung angenommen.", NamedTextColor.GREEN)); - player.sendMessage(Component.text("Du hast die Einladung angenommen", NamedTextColor.GREEN)); - + ChatUtils.sendSingleLineSuccessMessage(groupOwner, player.getName() + " hat deine Einladung angenommen."); + ChatUtils.sendSingleLineSuccessMessage(player, "Du hast die Einladung angenommen"); return true; } else { - player.sendMessage(Component.text("Du wurdest in keine Gruppe eingeladen.", NamedTextColor.YELLOW)); + ChatUtils.sendSingleLineWarningMessage(player, "Du wurdest in keine Gruppe eingeladen."); } return true; } diff --git a/src/main/java/de/lunarakai/minecleaner/commands/groups/DenyCommand.java b/src/main/java/de/lunarakai/minecleaner/commands/groups/DenyCommand.java index 2ebcc7c..910d11a 100644 --- a/src/main/java/de/lunarakai/minecleaner/commands/groups/DenyCommand.java +++ b/src/main/java/de/lunarakai/minecleaner/commands/groups/DenyCommand.java @@ -9,8 +9,7 @@ import de.iani.cubesideutils.bukkit.commands.SubCommand; import de.iani.cubesideutils.commands.ArgsParser; import de.lunarakai.minecleaner.MinecleanerGroupManager; import de.lunarakai.minecleaner.MinecleanerPlugin; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.format.NamedTextColor; +import de.lunarakai.minecleaner.utils.ChatUtils; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; @@ -53,12 +52,11 @@ public class DenyCommand extends SubCommand { } assert groupOwner != null; - groupOwner.sendMessage(Component.text(player.getName() + " hat deine Einladung abgelehnt.", NamedTextColor.RED)); - player.sendMessage(Component.text("Du hast die Einladung abgelehnt", NamedTextColor.YELLOW)); - + ChatUtils.sendSingleLineWarningMessage(groupOwner, player.getName() + " hat deine Einladung abgelehnt."); + ChatUtils.sendSingleLineInfoMessage(player, "Du hast die Einladung abgelehnt"); return true; } else { - player.sendMessage(Component.text("Du wurdest in keine Gruppe eingeladen.", NamedTextColor.YELLOW)); + ChatUtils.sendSingleLineWarningMessage(player, "Du wurdest in keine Gruppe eingeladen."); } return true; } diff --git a/src/main/java/de/lunarakai/minecleaner/commands/groups/DismantleGroupCommand.java b/src/main/java/de/lunarakai/minecleaner/commands/groups/DismantleGroupCommand.java index f8ee5d3..9e3e838 100644 --- a/src/main/java/de/lunarakai/minecleaner/commands/groups/DismantleGroupCommand.java +++ b/src/main/java/de/lunarakai/minecleaner/commands/groups/DismantleGroupCommand.java @@ -8,10 +8,9 @@ import de.iani.cubesideutils.bukkit.commands.exceptions.NoPermissionException; import de.iani.cubesideutils.bukkit.commands.exceptions.RequiresPlayerException; import de.iani.cubesideutils.commands.ArgsParser; import de.lunarakai.minecleaner.MinecleanerPlugin; +import de.lunarakai.minecleaner.utils.ChatUtils; import java.util.Iterator; import java.util.UUID; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; @@ -44,20 +43,19 @@ public class DismantleGroupCommand extends SubCommand { public boolean onCommand(CommandSender commandSender, Command command, String s, String s1, ArgsParser argsParser) throws DisallowsCommandBlockException, RequiresPlayerException, NoPermissionException, IllegalSyntaxException, InternalCommandException { Player player = (Player) commandSender; if(plugin.getGroupManager().getGroup(player) == null) { - player.sendMessage(Component.text("Du bist in keiner Gruppe die du auflösen könntest.", NamedTextColor.YELLOW)); + ChatUtils.sendSingleLineWarningMessage(player, "Du bist in keiner Gruppe die du auflösen könntest."); return true; } Player groupOwnerPlayer = Bukkit.getPlayer(plugin.getGroupManager().getGroup(player).getOwner()); if(player != groupOwnerPlayer) { - player.sendMessage(Component.text("Du bist nicht berechtigt deine Gruppe aufzulösen.", NamedTextColor.YELLOW)); + ChatUtils.sendSingleLineWarningMessage(player, "Du bist nicht berechtigt deine Gruppe aufzulösen."); return true; } - for(Iterator iterator = plugin.getGroupManager().getGroup(player).getPlayers().iterator(); iterator.hasNext();) { Player iteratorPlayer = Bukkit.getPlayer(iterator.next()); - iteratorPlayer.sendMessage(Component.text("Die Gruppe in der du dich befindest wurde aufgelöst.", NamedTextColor.YELLOW)); + ChatUtils.sendSingleLineWarningMessage(iteratorPlayer, "Die Gruppe in der du dich befindest wurde aufgelöst."); } plugin.getGroupManager().deleteGroup(plugin.getGroupManager().getGroup(player)); diff --git a/src/main/java/de/lunarakai/minecleaner/commands/groups/InviteCommand.java b/src/main/java/de/lunarakai/minecleaner/commands/groups/InviteCommand.java index e5e53d4..ecd35b2 100644 --- a/src/main/java/de/lunarakai/minecleaner/commands/groups/InviteCommand.java +++ b/src/main/java/de/lunarakai/minecleaner/commands/groups/InviteCommand.java @@ -7,9 +7,9 @@ import de.iani.cubesideutils.bukkit.commands.exceptions.InternalCommandException import de.iani.cubesideutils.bukkit.commands.exceptions.NoPermissionException; import de.iani.cubesideutils.bukkit.commands.exceptions.RequiresPlayerException; import de.iani.cubesideutils.commands.ArgsParser; -import de.lunarakai.minecleaner.MinecleanerArena; import de.lunarakai.minecleaner.MinecleanerGroupManager; import de.lunarakai.minecleaner.MinecleanerPlugin; +import de.lunarakai.minecleaner.utils.ChatUtils; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; @@ -51,30 +51,35 @@ public class InviteCommand extends SubCommand { Player player = (Player) sender; if(plugin.getArenaList().getPlayerArena(player) != null) { - player.sendMessage(Component.text("Du kannst keine Einladung verschicken während du in einer Runde bist.", NamedTextColor.DARK_RED)); + ChatUtils.sendSingleLineWarningMessage(player, "Du kannst keine Einladung verschicken während du in einer Runde bist."); return true; } if(args.remaining() < 1 || args.remaining() >= 2) { - sender.sendMessage(Component.text(commandString + getUsage(), NamedTextColor.DARK_RED)); + ChatUtils.sendSingleLineWarningMessage(player, commandString + getUsage()); return true; } String playerName = args.getNext().trim(); Player invitedPlayer = plugin.getServer().getPlayer(playerName); if(invitedPlayer == player) { - player.sendMessage(Component.text("Du kannst dich nicht selber in eine Gruppe einladen.", NamedTextColor.DARK_RED)); + ChatUtils.sendSingleLineWarningMessage(player, "Du kannst dich nicht selber in eine Gruppe einladen."); + return true; + } + + if(plugin.getArenaList().getPlayerArena(invitedPlayer) != null) { + ChatUtils.sendSingleLineWarningMessage(player, "Du kannst Spieler nicht einladen, die bereits in einer Runde sind."); return true; } MinecleanerGroupManager groupManager = plugin.getGroupManager(); if(groupManager.getInvitedGroup(player) != null) { - player.sendMessage(Component.text("Du wurdest bereits in eine Gruppe eingeladen. Bitte kümmere dich zuerst um die Einladung bevor du eine eigene Gruppe erstellst.", NamedTextColor.YELLOW)); + ChatUtils.sendSingleLineInfoMessage(player, "Du wurdest bereits in eine Gruppe eingeladen. Bitte kümmere dich zuerst um die Einladung bevor du eine eigene Gruppe erstellst."); return true; } if(groupManager.getGroup(player) != null && !Bukkit.getPlayer(groupManager.getGroup(player).getOwner()).equals(player)) { - player.sendMessage(Component.text("Nur als Ersteller der Gruppe bist du berechtigt Leute einzuladen.", NamedTextColor.YELLOW)); + ChatUtils.sendSingleLineInfoMessage(player, "Nur als Ersteller der Gruppe bist du berechtigt Leute einzuladen."); return true; } diff --git a/src/main/java/de/lunarakai/minecleaner/commands/groups/ListGroupMembersCommand.java b/src/main/java/de/lunarakai/minecleaner/commands/groups/ListGroupMembersCommand.java index 4f3e405..58952e2 100644 --- a/src/main/java/de/lunarakai/minecleaner/commands/groups/ListGroupMembersCommand.java +++ b/src/main/java/de/lunarakai/minecleaner/commands/groups/ListGroupMembersCommand.java @@ -8,6 +8,7 @@ import de.iani.cubesideutils.bukkit.commands.exceptions.NoPermissionException; import de.iani.cubesideutils.bukkit.commands.exceptions.RequiresPlayerException; import de.iani.cubesideutils.commands.ArgsParser; import de.lunarakai.minecleaner.MinecleanerPlugin; +import de.lunarakai.minecleaner.utils.ChatUtils; import java.util.Iterator; import java.util.UUID; import net.kyori.adventure.text.Component; @@ -44,11 +45,11 @@ public class ListGroupMembersCommand extends SubCommand { Player player = (Player) commandSender; if(plugin.getGroupManager().getGroup(player) == null) { - player.sendMessage(Component.text("Du bist in keiner Gruppe.", NamedTextColor.YELLOW)); + ChatUtils.sendSingleLineWarningMessage(player, "Du bist in keiner Gruppe."); return true; } - player.sendMessage(Component.text("-- Mitglieder deiner " + plugin.getDisplayedPluginName() + "gruppe --", NamedTextColor.AQUA)); + ChatUtils.sendSingleLineSpecialMessage(player, "-- Mitglieder deiner " + plugin.getDisplayedPluginName() + "gruppe --", NamedTextColor.AQUA); for(Iterator iterator = plugin.getGroupManager().getGroup(player).getPlayers().iterator(); iterator.hasNext();) { Player iteratorPlayer = Bukkit.getPlayer(iterator.next()); String ownerString = ""; diff --git a/src/main/java/de/lunarakai/minecleaner/game/Game.java b/src/main/java/de/lunarakai/minecleaner/game/Game.java index f79faa3..4b0b967 100644 --- a/src/main/java/de/lunarakai/minecleaner/game/Game.java +++ b/src/main/java/de/lunarakai/minecleaner/game/Game.java @@ -185,6 +185,7 @@ public class Game { switch (cell.getType()) { case Mine: { + resetFloodedFlaggedCellCounter(); explode(cell); break; } diff --git a/src/main/java/de/lunarakai/minecleaner/utils/ChatUtils.java b/src/main/java/de/lunarakai/minecleaner/utils/ChatUtils.java new file mode 100644 index 0000000..a2f0b30 --- /dev/null +++ b/src/main/java/de/lunarakai/minecleaner/utils/ChatUtils.java @@ -0,0 +1,42 @@ +package de.lunarakai.minecleaner.utils; + +import java.util.regex.Pattern; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; +import org.bukkit.entity.Player; + +public class ChatUtils { + static Pattern langKeyPattern = Pattern.compile("^\\w+\\.\\w+\\.\\w+$"); + + public static void sendSingleLineSuccessMessage(Player player, String message) { + if(message.matches(langKeyPattern.pattern())) { + player.sendMessage(Component.translatable(message, NamedTextColor.GREEN)); + } else { + player.sendMessage(Component.text(message, NamedTextColor.GREEN)); + } + } + + public static void sendSingleLineInfoMessage(Player player, String message) { + if(message.matches(langKeyPattern.pattern())) { + player.sendMessage(Component.translatable(message, NamedTextColor.GOLD)); + } else { + player.sendMessage(Component.text(message, NamedTextColor.GOLD)); + } + } + + public static void sendSingleLineWarningMessage(Player player, String message) { + if(message.matches(langKeyPattern.pattern())) { + player.sendMessage(Component.translatable(message, NamedTextColor.DARK_RED)); + } else { + player.sendMessage(Component.text(message, NamedTextColor.DARK_RED)); + } + } + + public static void sendSingleLineSpecialMessage(Player player, String message, NamedTextColor color) { + if(message.matches(langKeyPattern.pattern())) { + player.sendMessage(Component.translatable(message, color)); + } else { + player.sendMessage(Component.text(message, color)); + } + } +} diff --git a/src/main/resources/lang/de_DE.properties b/src/main/resources/lang/de_DE.properties index 1619c35..31be8cb 100644 --- a/src/main/resources/lang/de_DE.properties +++ b/src/main/resources/lang/de_DE.properties @@ -3,7 +3,7 @@ minecleaner.info.developer=Entwickelt von minecleaner.info.website=Website minecleaner.info.license=Lizenz -arena.name.invalid=Ungueltiger Arenaname. Erlaubt sind Buchstaben, Zahlen und der Unterstrich +arena.name.invalid=Ungültiger Arenaname. Erlaubt sind Buchstaben, Zahlen und der Unterstrich arena.name.exists=Eine Arena mit diesem Namen existiert bereits arena.width.klein=Klein arena.width.mittel=Mittel @@ -11,27 +11,27 @@ arena.width.gross=Gross arena.width.experte=Experte arena.widthindex.invalid=Kein Valider Arena WidthIndex! arena.widthindex.validOptions=0 (oder weglassen) = 9*9, 1 = 12*12, 2 = 12*18, 3 = 12*33 -arena.widthindex.toolarge=Arena WidthIndex darf nicht groesser als 3 sein +arena.widthindex.toolarge=Arena WidthIndex darf nicht grösser als 3 sein arena.create.lookAtCenter=Bitte gucke den Block an, der im Zentrum des {0}-Spielfelds sein soll. arena.create.lookAtSide=Bitte gucke die Seite des Blockes an, wo das {0}-Spielfeld erstellt werden soll. arena.create.otherArena=An dieser Stelle befindet sich bereits eine Arena. arena.create.success=Die Arena wurde erfolgreich angelegt. -arena.delete.success=Die {0}-Arena {1} wurde geloescht. +arena.delete.success=Die {0}-Arena {1} wurde gelöscht. arena.delete.noarena=Hier befindet sich keine {0}-Arena. -arena.list=Angelegte {0}-Arenen +arena.list.created=Angelegte {0}-Arenen arena.list.none=(keine) -data.player.noData=Fuer Spieler "{0}" existieren keine Daten. +data.player.noData=Für Spieler "{0}" existieren keine Daten. data.player.self=Deine {0} Statistik data.player.other={0}-Statistik von {1} data.player.roundswon=Runden gewonnen data.player.pointsscored=Punkte erspielt -data.player.from=von +data.player.outof=von data.player.besttime=Bestzeit data.player.thismonth=Dieser Monat data.delete.playerNotFound=Ein Spieler mit dem Namen "{0}" konnte nicht gefunden werden. -data.delete.deleted=Alle {0}-Statistiken von Spieler "{1}" wurden geloescht. +data.delete.deleted=Alle {0}-Statistiken von Spieler "{1}" wurden gelöscht. -data.console.nodata=Fuer die Konsole existieren keine Daten. \ No newline at end of file +data.console.nodata=Für die Konsole existieren keine Daten. \ No newline at end of file diff --git a/src/main/resources/lang/en_US.properties b/src/main/resources/lang/en_US.properties index 82a13cf..6aff9f5 100644 --- a/src/main/resources/lang/en_US.properties +++ b/src/main/resources/lang/en_US.properties @@ -19,7 +19,7 @@ arena.create.success=The arena has been created successfully. arena.delete.success=The {0}-arena {1} has been deleted. arena.delete.noarena=There is no {0}-arena here. -arena.list=Created {0} arenas +arena.list.created=Created {0} arenas arena.list.none=(none) data.player.noData=No data exists for player "{0}".