Compare commits
	
		
			3 commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| a89930a73a | |||
| 8c105bba58 | |||
| 017a02a0c0 | 
					 17 changed files with 209 additions and 122 deletions
				
			
		
							
								
								
									
										6
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							|  | @ -114,3 +114,9 @@ buildNumber.properties | ||||||
| 
 | 
 | ||||||
| # Common working directory | # Common working directory | ||||||
| run/ | run/ | ||||||
|  | 
 | ||||||
|  | # eclipse | ||||||
|  | /.classpath | ||||||
|  | /.project | ||||||
|  | /.settings | ||||||
|  | /target | ||||||
|  | @ -4,6 +4,7 @@ | ||||||
|     <facet type="minecraft" name="Minecraft"> |     <facet type="minecraft" name="Minecraft"> | ||||||
|       <configuration> |       <configuration> | ||||||
|         <autoDetectTypes> |         <autoDetectTypes> | ||||||
|  |           <platformType>PAPER</platformType> | ||||||
|           <platformType>ADVENTURE</platformType> |           <platformType>ADVENTURE</platformType> | ||||||
|         </autoDetectTypes> |         </autoDetectTypes> | ||||||
|         <projectReimportVersion>1</projectReimportVersion> |         <projectReimportVersion>1</projectReimportVersion> | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								pom.xml
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								pom.xml
									
										
									
									
									
								
							|  | @ -86,7 +86,7 @@ | ||||||
|         <dependency> |         <dependency> | ||||||
|             <groupId>io.papermc.paper</groupId> |             <groupId>io.papermc.paper</groupId> | ||||||
|             <artifactId>paper-api</artifactId> |             <artifactId>paper-api</artifactId> | ||||||
|             <version>1.20.6-R0.1-SNAPSHOT</version> |             <version>1.21.3-R0.1-SNAPSHOT</version> | ||||||
|             <scope>provided</scope> |             <scope>provided</scope> | ||||||
|         </dependency> |         </dependency> | ||||||
|         <dependency> |         <dependency> | ||||||
|  |  | ||||||
|  | @ -8,6 +8,7 @@ import java.util.HashMap; | ||||||
| import java.util.Iterator; | import java.util.Iterator; | ||||||
| import java.util.UUID; | import java.util.UUID; | ||||||
| import java.util.logging.Level; | import java.util.logging.Level; | ||||||
|  | import de.lunarakai.minecleaner.utils.MinecleanerUtils; | ||||||
| import org.bukkit.Bukkit; | import org.bukkit.Bukkit; | ||||||
| import org.bukkit.Location; | import org.bukkit.Location; | ||||||
| import org.bukkit.block.Block; | import org.bukkit.block.Block; | ||||||
|  | @ -100,6 +101,13 @@ public class ArenaList { | ||||||
|         save(); |         save(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     /** | ||||||
|  |      * checks for any other arena that might be at the same location as the new MinecleanerArena | ||||||
|  |      * | ||||||
|  |      * @param newArena  the new Arena that is set to be created | ||||||
|  |      * @return          true if another MinecleanerArena (or at least one Block of another arena) is at the same location as newArena otherwise false | ||||||
|  |      * @see             MinecleanerArena | ||||||
|  |      */ | ||||||
|     public boolean collidesWithArena(MinecleanerArena newArena) { |     public boolean collidesWithArena(MinecleanerArena newArena) { | ||||||
|         for(Location location : newArena.getBlocks()) { |         for(Location location : newArena.getBlocks()) { | ||||||
|             if(arenaBlocks.get(location) != null) { |             if(arenaBlocks.get(location) != null) { | ||||||
|  | @ -125,7 +133,7 @@ public class ArenaList { | ||||||
|         if(playersInArena.get(player.getUniqueId()) == null) { |         if(playersInArena.get(player.getUniqueId()) == null) { | ||||||
|             return null; |             return null; | ||||||
|         } |         } | ||||||
|         int arraySize = plugin.getGroupManager().getGroup(player) != null ? plugin.getGroupManager().getGroup(player).getPlayers().size() : 1; |         int arraySize = MinecleanerUtils.isPlayerInGroup(plugin, player) ? plugin.getGroupManager().getGroupSize(player) : 1; | ||||||
|         Player[] players = new Player[arraySize]; |         Player[] players = new Player[arraySize]; | ||||||
| 
 | 
 | ||||||
|         if(plugin.getGroupManager().getGroup(player) != null) { |         if(plugin.getGroupManager().getGroup(player) != null) { | ||||||
|  | @ -191,18 +199,27 @@ public class ArenaList { | ||||||
|         if(arena.hasPlayers()) { |         if(arena.hasPlayers()) { | ||||||
|             plugin.getManager().leaveArena(arena.getCurrentPlayers(), true, true); |             plugin.getManager().leaveArena(arena.getCurrentPlayers(), true, true); | ||||||
|         } |         } | ||||||
|          | 
 | ||||||
|         for(UUID id : arena.getBlockDisplays()) { |         removeArenaBlockDisplayIDs(arena); | ||||||
|             if(id != null) { |         removeArenaBlocks(arena); | ||||||
|                 arenaBlockDisplays.remove(id); | 
 | ||||||
|             } |  | ||||||
|         } |  | ||||||
|         for(Location block : arena.getBlocks()) {  |  | ||||||
|             arenaBlocks.remove(block); |  | ||||||
|         } |  | ||||||
|         arena.removeBlockDisplays(); |         arena.removeBlockDisplays(); | ||||||
| 
 | 
 | ||||||
|         arenas.remove(arena.getName()); |         arenas.remove(arena.getName()); | ||||||
|         save(); |         save(); | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     private void removeArenaBlocks(MinecleanerArena arena) { | ||||||
|  |         for(Location block : arena.getBlocks()) { | ||||||
|  |             arenaBlocks.remove(block); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void removeArenaBlockDisplayIDs(MinecleanerArena arena) { | ||||||
|  |         for(UUID id : arena.getBlockDisplays()) { | ||||||
|  |             if(id != null) { | ||||||
|  |                 arenaBlockDisplays.remove(id); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
| }  | }  | ||||||
|  |  | ||||||
|  | @ -1,8 +1,35 @@ | ||||||
| package de.lunarakai.minecleaner; | package de.lunarakai.minecleaner; | ||||||
| 
 | 
 | ||||||
|  | /** | ||||||
|  |  *  Possible Status of a MinecleanerArena | ||||||
|  |  *  <li>{@link #INACTIVE}</li> | ||||||
|  |  *  <li>{@link #CONFIRM_PLAYING}</li> | ||||||
|  |  *  <li>{@link #PLAYING}</li> | ||||||
|  |  *  <li>{@link #COMPLETED}</li> | ||||||
|  |  * | ||||||
|  |  * @see MinecleanerArena | ||||||
|  |  * | ||||||
|  |  */ | ||||||
| public enum ArenaStatus { | public enum ArenaStatus { | ||||||
|  |     /** | ||||||
|  |      * default state | ||||||
|  |      */ | ||||||
|     INACTIVE, |     INACTIVE, | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * Active when the player (or group leader) has interacted with an {@link #INACTIVE} arena and | ||||||
|  |      * sees the confirmPlayingInventory to decide if they start a Game or not | ||||||
|  |      * @see MinecleanerManager#getConfirmPlayingInventory() | ||||||
|  |      */ | ||||||
|     CONFIRM_PLAYING, |     CONFIRM_PLAYING, | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * Active when a Player (or Group) has confirmed to start a Minecleaner Game (and while playing) | ||||||
|  |      */ | ||||||
|     PLAYING, |     PLAYING, | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * Active when a Player (or Group) has either won or lost a Mineclenaer Game and the Arena the scheduled for a reset -> {@link #INACTIVE} | ||||||
|  |      */ | ||||||
|     COMPLETED |     COMPLETED | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -55,13 +55,13 @@ public class MinecleanerGroupManager { | ||||||
|                         continue; |                         continue; | ||||||
|                     } |                     } | ||||||
|                     Player iteratorPlayer = Bukkit.getPlayer(iterator.next()); |                     Player iteratorPlayer = Bukkit.getPlayer(iterator.next()); | ||||||
|                     ChatUtils.sendSimpleInfoMessage(iteratorPlayer, "Die Gruppe wurde aufgelöst, da die Person, welche die Gruppe erstellt hat, aus der Gruppe entfernt wurde."); |                     ChatUtils.sendSimpleInfoMessage(iteratorPlayer, "group.creator.removed"); | ||||||
|                 } |                 } | ||||||
|                 deleteGroup(getGroup(Bukkit.getPlayer(owner))); |                 deleteGroup(getGroup(Bukkit.getPlayer(owner))); | ||||||
|             } |             } | ||||||
|             players.remove(playerUUID); |             players.remove(playerUUID); | ||||||
|             if(players.size() < 2) { |             if(players.size() < 2) { | ||||||
|                 ChatUtils.sendSimpleInfoMessage(Bukkit.getPlayer(owner), "Die Gruppe wurde aufgelöst, da du nur noch alleine in der Gruppe bist"); |                 ChatUtils.sendSimpleInfoMessage(Bukkit.getPlayer(owner), "group.dismantled.alone"); | ||||||
|                 deleteGroup(getGroup(Bukkit.getPlayer(owner))); |                 deleteGroup(getGroup(Bukkit.getPlayer(owner))); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  | @ -116,6 +116,12 @@ public class MinecleanerGroupManager { | ||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     /** | ||||||
|  |      *  loops through all MinecleanerGroups to check if the player is invited to any group | ||||||
|  |      * | ||||||
|  |      * @param player    Minecraft Player | ||||||
|  |      * @return          the MinecleanerGroup the Player is invited to or null | ||||||
|  |      */ | ||||||
|     public MinecleanerGroup getInvitedGroup(Player player){ |     public MinecleanerGroup getInvitedGroup(Player player){ | ||||||
|         UUID playerUUID = player.getUniqueId(); |         UUID playerUUID = player.getUniqueId(); | ||||||
|         for (MinecleanerGroup group : groups) { |         for (MinecleanerGroup group : groups) { | ||||||
|  | @ -130,7 +136,20 @@ public class MinecleanerGroupManager { | ||||||
|         groups.remove(minecleanerGroup); |         groups.remove(minecleanerGroup); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     /** | ||||||
|  |      * removes all MinecleanerGroups | ||||||
|  |      */ | ||||||
|     public void deleteAllGroups() { |     public void deleteAllGroups() { | ||||||
|         groups.clear(); |         groups.clear(); | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * Returns the size of the MinecleanerGroup the player is in | ||||||
|  |      * | ||||||
|  |      * @param player    the Minecraft Player | ||||||
|  |      * @return          the size of the group the player is in | ||||||
|  |      */ | ||||||
|  |     public int getGroupSize(Player player) { | ||||||
|  |         return getGroup(player).getPlayers().size(); | ||||||
|  |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -152,7 +152,7 @@ public class MinecleanerListener implements Listener { | ||||||
|                         if(hasConfirmed) { |                         if(hasConfirmed) { | ||||||
|                             Player[] players; |                             Player[] players; | ||||||
|                             if(plugin.getGroupManager().getGroup(player) != null) { |                             if(plugin.getGroupManager().getGroup(player) != null) { | ||||||
|                                 players = new Player[plugin.getGroupManager().getGroup(player).getPlayers().size()]; |                                 players = new Player[plugin.getGroupManager().getGroupSize(player)]; | ||||||
|                                 players[0] = player; |                                 players[0] = player; | ||||||
|                             } else { |                             } else { | ||||||
|                                 players = new Player[1]; |                                 players = new Player[1]; | ||||||
|  | @ -175,7 +175,7 @@ public class MinecleanerListener implements Listener { | ||||||
|             MinecleanerArena arena = plugin.getArenaList().getPlayerArena(player); |             MinecleanerArena arena = plugin.getArenaList().getPlayerArena(player); | ||||||
|             if(arena != null) { |             if(arena != null) { | ||||||
|                 if(arena.getArenaStatus() == ArenaStatus.CONFIRM_PLAYING && e.getInventory().equals(plugin.getManager().getConfirmPlayingInventory())) { |                 if(arena.getArenaStatus() == ArenaStatus.CONFIRM_PLAYING && e.getInventory().equals(plugin.getManager().getConfirmPlayingInventory())) { | ||||||
|                     int arraySize = plugin.getGroupManager().getGroup(player) != null ? plugin.getGroupManager().getGroup(player).getPlayers().size() : 1; |                     int arraySize = plugin.getGroupManager().getGroup(player) != null ? plugin.getGroupManager().getGroupSize(player) : 1; | ||||||
|                     Player[] players = new Player[arraySize]; |                     Player[] players = new Player[arraySize]; | ||||||
| 
 | 
 | ||||||
|                     if(plugin.getGroupManager().getGroup(player) != null) { |                     if(plugin.getGroupManager().getGroup(player) != null) { | ||||||
|  | @ -199,7 +199,7 @@ public class MinecleanerListener implements Listener { | ||||||
|         if(arena != null) { |         if(arena != null) { | ||||||
|             if(plugin.getGroupManager().getGroup(player) == null) { |             if(plugin.getGroupManager().getGroup(player) == null) { | ||||||
|                 if((arena.isTooFarAway(player))) { |                 if((arena.isTooFarAway(player))) { | ||||||
|                     ChatUtils.sendSimpleInfoMessage(player, "Du hast dich zu weit von der Arena entfernt. Das Spiel wurde abgebrochen."); |                     ChatUtils.sendSimpleInfoMessage(player, "arena.common.toofaraway"); | ||||||
|                     Player[] players = new Player[] { |                     Player[] players = new Player[] { | ||||||
|                             player |                             player | ||||||
|                     }; |                     }; | ||||||
|  | @ -213,11 +213,11 @@ public class MinecleanerListener implements Listener { | ||||||
|                         for(Iterator<UUID> iterator = plugin.getGroupManager().getGroup(player).getPlayers().iterator(); iterator.hasNext();) { |                         for(Iterator<UUID> iterator = plugin.getGroupManager().getGroup(player).getPlayers().iterator(); iterator.hasNext();) { | ||||||
|                             Player iteratorPlayer = Bukkit.getPlayer(iterator.next()); |                             Player iteratorPlayer = Bukkit.getPlayer(iterator.next()); | ||||||
|                             if(iteratorPlayer == ownerPlayer) { |                             if(iteratorPlayer == ownerPlayer) { | ||||||
|                                 ChatUtils.sendSimpleInfoMessage(iteratorPlayer, "Du hast dich zu weit von der Arena entfernt. Das Spiel wurde abgebrochen."); |                                 ChatUtils.sendSimpleInfoMessage(iteratorPlayer, "arena.common.toofaraway"); | ||||||
|                                 continue; |                                 continue; | ||||||
|                             } |                             } | ||||||
|                             assert iteratorPlayer != null; |                             assert iteratorPlayer != null; | ||||||
|                             ChatUtils.sendSimpleInfoMessage(iteratorPlayer, "Der Ersteller der Gruppe hat sich zu weit von der Arena entfernt. Das Spiel wurde abgebrochen."); |                             ChatUtils.sendSimpleInfoMessage(iteratorPlayer, "arena.common.groupleadertoofaraway"); | ||||||
|                         } |                         } | ||||||
|                         Player[] players = new Player[] { |                         Player[] players = new Player[] { | ||||||
|                                 ownerPlayer |                                 ownerPlayer | ||||||
|  |  | ||||||
|  | @ -36,8 +36,8 @@ import de.iani.cubesideutils.bukkit.items.ItemStacks; | ||||||
| import de.iani.playerUUIDCache.CachedPlayer; | import de.iani.playerUUIDCache.CachedPlayer; | ||||||
| import de.lunarakai.minecleaner.game.BoardSize; | import de.lunarakai.minecleaner.game.BoardSize; | ||||||
| import de.lunarakai.minecleaner.utils.MinecleanerStringUtil; | import de.lunarakai.minecleaner.utils.MinecleanerStringUtil; | ||||||
| import net.md_5.bungee.api.ChatColor; |  | ||||||
| 
 | 
 | ||||||
|  | // Todo: translatable components verwenden | ||||||
| public class MinecleanerManager { | public class MinecleanerManager { | ||||||
|     private final MinecleanerPlugin plugin; |     private final MinecleanerPlugin plugin; | ||||||
|     private final Inventory confirmPlayingInventory; |     private final Inventory confirmPlayingInventory; | ||||||
|  | @ -158,18 +158,11 @@ public class MinecleanerManager { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public void leaveArena(Player[] players, boolean message, boolean reset) { |     public void leaveArena(Player[] players, boolean message, boolean reset) { | ||||||
|         MinecleanerGroupManager.MinecleanerGroup group = null; |         getGroupLeaderOrPlayer player = getGetGroupLeaderOrPlayer(players); | ||||||
|         MinecleanerArena arena; |         Player[] players1 = player.group() != null ? new Player[player.group().getPlayers().size()] : new Player[1]; | ||||||
|         if(plugin.getGroupManager().getGroup(players[0]) != null) { |  | ||||||
|             group = plugin.getGroupManager().getGroup(players[0]); |  | ||||||
|             arena = plugin.getArenaList().getPlayerArena(Objects.requireNonNull(Bukkit.getPlayer(group.getOwner()))); |  | ||||||
|         } else { |  | ||||||
|             arena = plugin.getArenaList().getPlayerArena(players); |  | ||||||
|         } |  | ||||||
|         Player[] players1 = group != null ? new Player[group.getPlayers().size()] : new Player[1]; |  | ||||||
|         if(plugin.getGroupManager().getGroup(players[0]) != null) { |         if(plugin.getGroupManager().getGroup(players[0]) != null) { | ||||||
|             int i = 0; |             int i = 0; | ||||||
|             for(Iterator<UUID> iterator = group.getPlayers().iterator(); iterator.hasNext();) { |             for(Iterator<UUID> iterator = player.group().getPlayers().iterator(); iterator.hasNext();) { | ||||||
|                 Player iteratorPlayer = Bukkit.getPlayer(iterator.next()); |                 Player iteratorPlayer = Bukkit.getPlayer(iterator.next()); | ||||||
|                 players1[i] = iteratorPlayer; |                 players1[i] = iteratorPlayer; | ||||||
|                 i++; |                 i++; | ||||||
|  | @ -178,17 +171,17 @@ public class MinecleanerManager { | ||||||
|             players1 = players; |             players1 = players; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         Preconditions.checkArgument(arena != null, "player is in no arena"); |         Preconditions.checkArgument(player.arena() != null, "player is in no arena"); | ||||||
| 
 | 
 | ||||||
|         if(reset) { |         if(reset) { | ||||||
|             arena.setArenaStaus(ArenaStatus.INACTIVE); |             player.arena().setArenaStaus(ArenaStatus.INACTIVE); | ||||||
|             for(int i = 0; i < players1.length; i++) { |             for(int i = 0; i < players1.length; i++) { | ||||||
|                 players1[i].closeInventory(); |                 players1[i].closeInventory(); | ||||||
|             } |             } | ||||||
|             arena.removePlayers(); |             player.arena().removePlayers(); | ||||||
|             if(message) { |             if(message) { | ||||||
|                 for(int i = 0; i < players.length; i++) { |                 for(int i = 0; i < players.length; i++) { | ||||||
|                     players1[i].sendMessage(ChatColor.YELLOW + "Das " + plugin.getDisplayedPluginName() + "spiel wurde abgebrochen."); |                     players1[i].sendMessage(NamedTextColor.YELLOW + "Das " + plugin.getDisplayedPluginName() + "spiel wurde abgebrochen."); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  | @ -196,6 +189,21 @@ public class MinecleanerManager { | ||||||
|         plugin.getArenaList().setArenaForPlayers(players1, null); |         plugin.getArenaList().setArenaForPlayers(players1, null); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     private @NotNull getGroupLeaderOrPlayer getGetGroupLeaderOrPlayer(Player[] players) { | ||||||
|  |         MinecleanerGroupManager.MinecleanerGroup group = null; | ||||||
|  |         MinecleanerArena arena; | ||||||
|  |         if(plugin.getGroupManager().getGroup(players[0]) != null) { | ||||||
|  |             group = plugin.getGroupManager().getGroup(players[0]); | ||||||
|  |             arena = plugin.getArenaList().getPlayerArena(Objects.requireNonNull(Bukkit.getPlayer(group.getOwner()))); | ||||||
|  |         } else { | ||||||
|  |             arena = plugin.getArenaList().getPlayerArena(players); | ||||||
|  |         } | ||||||
|  |         return new getGroupLeaderOrPlayer(group, arena); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private record getGroupLeaderOrPlayer(MinecleanerGroupManager.MinecleanerGroup group, MinecleanerArena arena) { | ||||||
|  |     } | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
|     public void startGame(Player[] players) { |     public void startGame(Player[] players) { | ||||||
|         MinecleanerArena arena = plugin.getArenaList().getPlayerArena(players); |         MinecleanerArena arena = plugin.getArenaList().getPlayerArena(players); | ||||||
|  | @ -308,9 +316,9 @@ public class MinecleanerManager { | ||||||
|             if(sg != null) { |             if(sg != null) { | ||||||
|                 ps.minScore(sg, millis, isUpdated -> { |                 ps.minScore(sg, millis, isUpdated -> { | ||||||
|                     if(isUpdated != null && isUpdated) { |                     if(isUpdated != null && isUpdated) { | ||||||
|                         player[0].sendMessage(ChatColor.GOLD + "Herzlichen Glückwunsch! Du hast eine neue Bestzeit erreicht! " + ChatColor.RED + MinecleanerStringUtil.timeToString(millis, false) ); |                         player[0].sendMessage(NamedTextColor.GOLD + "Herzlichen Glückwunsch! Du hast eine neue Bestzeit erreicht! " + NamedTextColor.RED + MinecleanerStringUtil.timeToString(millis, false) ); | ||||||
|                     } else { |                     } else { | ||||||
|                         player[0].sendMessage(ChatColor.YELLOW + "Glückwunsch, du konntest das " + plugin.getDisplayedPluginName() + "-Feld in " + ChatColor.RED + MinecleanerStringUtil.timeToString(millis, false) + ChatColor.YELLOW + " erfolgreich lösen!"); |                         player[0].sendMessage(NamedTextColor.YELLOW + "Glückwunsch, du konntest das " + plugin.getDisplayedPluginName() + "-Feld in " + NamedTextColor.RED + MinecleanerStringUtil.timeToString(millis, false) + NamedTextColor.YELLOW + " erfolgreich lösen!"); | ||||||
|                     } |                     } | ||||||
|                 }); |                 }); | ||||||
|             } |             } | ||||||
|  | @ -318,7 +326,7 @@ public class MinecleanerManager { | ||||||
|             int wIndex = arena.getWidthIndex(); |             int wIndex = arena.getWidthIndex(); | ||||||
|             increaseScore(wIndex, ps, 1); |             increaseScore(wIndex, ps, 1); | ||||||
|         } else { |         } else { | ||||||
|             player[0].sendMessage(ChatColor.YELLOW + "Glückwunsch, du konntest das " + plugin.getDisplayedPluginName() + "-Feld in " + ChatColor.RED + MinecleanerStringUtil.timeToString(millis, false) + ChatColor.YELLOW + " erfolgreich lösen!"); |             player[0].sendMessage(NamedTextColor.YELLOW + "Glückwunsch, du konntest das " + plugin.getDisplayedPluginName() + "-Feld in " + NamedTextColor.RED + MinecleanerStringUtil.timeToString(millis, false) + NamedTextColor.YELLOW + " erfolgreich lösen!"); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         scheduleArenaReset(player[0], arena); |         scheduleArenaReset(player[0], arena); | ||||||
|  | @ -359,7 +367,7 @@ public class MinecleanerManager { | ||||||
|                 if (arena.getCurrentPlayers() == null) { |                 if (arena.getCurrentPlayers() == null) { | ||||||
|                     arena.removePlayers(); |                     arena.removePlayers(); | ||||||
|                 } else { |                 } else { | ||||||
|                     int arraySize = plugin.getGroupManager().getGroup(player) != null ? plugin.getGroupManager().getGroup(player).getPlayers().size() : 1; |                     int arraySize = plugin.getGroupManager().getGroup(player) != null ? plugin.getGroupManager().getGroupSize(player) : 1; | ||||||
|                     Player[] players = new Player[arraySize]; |                     Player[] players = new Player[arraySize]; | ||||||
|                     int i = 0; |                     int i = 0; | ||||||
|                     if(plugin.getGroupManager().getGroup(player) != null) { |                     if(plugin.getGroupManager().getGroup(player) != null) { | ||||||
|  |  | ||||||
|  | @ -56,17 +56,9 @@ public final class MinecleanerPlugin extends JavaPlugin { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public void onLateEnable() { |     public void onLateEnable() { | ||||||
|         if(getServer().getPluginManager().getPlugin("PlayerUUIDCache") != null) { |         checkForPlayerUUIDChache(); | ||||||
|             playerUUIDCache = (PlayerUUIDCache) getServer().getPluginManager().getPlugin("PlayerUUIDCache"); |  | ||||||
|         } else { |  | ||||||
|             this.getLogger().log(Level.WARNING, "PlayerUUIDCache not found."); |  | ||||||
|         } |  | ||||||
| 
 | 
 | ||||||
|         if(getServer().getPluginManager().getPlugin("CubesideStatistics") != null) { |         checkForCubesideStatistics(); | ||||||
|             cubesideStatistics = getServer().getServicesManager().load(CubesideStatisticsAPI.class); |  | ||||||
|         } else { |  | ||||||
|             this.getLogger().log(Level.WARNING, "Cubeside Statistics not found. No Statistics will be available"); |  | ||||||
|         } |  | ||||||
| 
 | 
 | ||||||
|         arenaList = new ArenaList(this); |         arenaList = new ArenaList(this); | ||||||
|         arenaList.load(); |         arenaList.load(); | ||||||
|  | @ -90,6 +82,10 @@ public final class MinecleanerPlugin extends JavaPlugin { | ||||||
|         minecleanerCommand.addCommandMapping(new DismantleGroupCommand(this), "dismantlegroup"); |         minecleanerCommand.addCommandMapping(new DismantleGroupCommand(this), "dismantlegroup"); | ||||||
|         minecleanerCommand.addCommandMapping(new ListGroupMembersCommand(this), "groupmembers"); |         minecleanerCommand.addCommandMapping(new ListGroupMembersCommand(this), "groupmembers"); | ||||||
| 
 | 
 | ||||||
|  |         enableCubesideStatisticsCommands(minecleanerCommand); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void enableCubesideStatisticsCommands(CommandRouter minecleanerCommand) { | ||||||
|         if(isStatisticsEnabled()) { |         if(isStatisticsEnabled()) { | ||||||
|             minecleanerCommand.addCommandMapping(new SettingsCommand(this), "settings"); |             minecleanerCommand.addCommandMapping(new SettingsCommand(this), "settings"); | ||||||
|             minecleanerCommand.addCommandMapping(new StatsCommand(this), "stats"); |             minecleanerCommand.addCommandMapping(new StatsCommand(this), "stats"); | ||||||
|  | @ -97,6 +93,22 @@ public final class MinecleanerPlugin extends JavaPlugin { | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     private void checkForCubesideStatistics() { | ||||||
|  |         if(getServer().getPluginManager().getPlugin("CubesideStatistics") != null) { | ||||||
|  |             cubesideStatistics = getServer().getServicesManager().load(CubesideStatisticsAPI.class); | ||||||
|  |         } else { | ||||||
|  |             this.getLogger().log(Level.WARNING, "Cubeside Statistics not found. No Statistics will be available"); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void checkForPlayerUUIDChache() { | ||||||
|  |         if(getServer().getPluginManager().getPlugin("PlayerUUIDCache") != null) { | ||||||
|  |             playerUUIDCache = (PlayerUUIDCache) getServer().getPluginManager().getPlugin("PlayerUUIDCache"); | ||||||
|  |         } else { | ||||||
|  |             this.getLogger().log(Level.WARNING, "PlayerUUIDCache not found."); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     @Override |     @Override | ||||||
|     public void onDisable() { |     public void onDisable() { | ||||||
|         if(minecleanerManager != null) { |         if(minecleanerManager != null) { | ||||||
|  |  | ||||||
|  | @ -2,7 +2,8 @@ package de.lunarakai.minecleaner; | ||||||
| 
 | 
 | ||||||
| import de.iani.cubesideutils.bukkit.inventory.AbstractWindow; | import de.iani.cubesideutils.bukkit.inventory.AbstractWindow; | ||||||
| import de.lunarakai.minecleaner.utils.ItemUtil; | import de.lunarakai.minecleaner.utils.ItemUtil; | ||||||
| import net.md_5.bungee.api.ChatColor; | import net.kyori.adventure.text.Component; | ||||||
|  | import net.kyori.adventure.text.format.NamedTextColor; | ||||||
| import org.bukkit.Bukkit; | import org.bukkit.Bukkit; | ||||||
| import org.bukkit.Material; | import org.bukkit.Material; | ||||||
| import org.bukkit.entity.Player; | import org.bukkit.entity.Player; | ||||||
|  | @ -35,28 +36,28 @@ public class MinecleanerSettingsInventory extends AbstractWindow { | ||||||
|             switch (i) { |             switch (i) { | ||||||
|                 case SETTINGS_ALLOW_MANUEL_RESET -> { |                 case SETTINGS_ALLOW_MANUEL_RESET -> { | ||||||
|                     if (plugin.getManager().getSettingsValue("allowmanualreset", player) == 0) { |                     if (plugin.getManager().getSettingsValue("allowmanualreset", player) == 0) { | ||||||
|                         item = ItemUtil.createGuiItem(Material.SHEARS, ChatColor.RED + "Manuelles Resetten deaktiviert"); |                         item = ItemUtil.createGuiItem(Material.SHEARS, Component.translatable("settings.manualreset.deny", NamedTextColor.RED)); | ||||||
|                     } else { |                     } else { | ||||||
|                         item = ItemUtil.createGuiItem(Material.SHEARS, ChatColor.GREEN + "Manuelles Resetten aktiviert"); |                         item = ItemUtil.createGuiItem(Material.SHEARS, Component.translatable("settings.manualreset.allow", NamedTextColor.GREEN)); | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|                 case SETTINGS_ADDITIONAL_DISPLAY -> { |                 case SETTINGS_ADDITIONAL_DISPLAY -> { | ||||||
|                     if (plugin.getManager().getSettingsValue("additionaldisplay", player) == 0) { |                     if (plugin.getManager().getSettingsValue("additionaldisplay", player) == 0) { | ||||||
|                         item = ItemUtil.createGuiItem(Material.NAME_TAG, ChatColor.RED + "Zusätzliche Anzeige in der Action Bar deaktiviert\""); |                         item = ItemUtil.createGuiItem(Material.NAME_TAG, Component.translatable("settings.additionaltimer.deny", NamedTextColor.RED)); | ||||||
|                     } else { |                     } else { | ||||||
|                         item = ItemUtil.createGuiItem(Material.NAME_TAG, ChatColor.GREEN + "Zusätzliche Anzeige in der Action Bar aktiviert\""); |                         item = ItemUtil.createGuiItem(Material.NAME_TAG, Component.translatable("settings.additionaltimer.allow", NamedTextColor.GREEN)); | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|                 case SETTINGS_TIMER -> { |                 case SETTINGS_TIMER -> { | ||||||
|                     if (plugin.getManager().getSettingsValue("timer", player) == 0) { |                     if (plugin.getManager().getSettingsValue("timer", player) == 0) { | ||||||
|                         item = ItemUtil.createGuiItem(Material.CLOCK, ChatColor.RED + "Timer wird nicht angezeigt"); |                         item = ItemUtil.createGuiItem(Material.CLOCK, Component.translatable("settings.timer.deny", NamedTextColor.RED)); | ||||||
|                     } else { |                     } else { | ||||||
|                         item = ItemUtil.createGuiItem(Material.CLOCK, ChatColor.GREEN + "Timer wird angezeigt"); |                         item = ItemUtil.createGuiItem(Material.CLOCK, Component.translatable("settings.timer.allow", NamedTextColor.GREEN)); | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|                 case SETTINGS_RESETTIME -> { |                 case SETTINGS_RESETTIME -> { | ||||||
|                     int current = plugin.getManager().getSettingsValue("resettime", player); |                     int current = plugin.getManager().getSettingsValue("resettime", player); | ||||||
|                     item = ItemUtil.createGuiItem(Material.CANDLE, ChatColor.GOLD + "Resetzeit: " + ChatColor.RED + current + "s"); |                     item = ItemUtil.createGuiItem(Material.CANDLE, Component.translatable("settings.resettime.text", NamedTextColor.GOLD).append(Component.text(": ")).append(Component.text(current, NamedTextColor.RED)).append(Component.text(" s", NamedTextColor.RED))); | ||||||
|                 } |                 } | ||||||
|                 default -> item = ItemUtil.EMPTY_ICON; |                 default -> item = ItemUtil.EMPTY_ICON; | ||||||
|             } |             } | ||||||
|  |  | ||||||
|  | @ -19,6 +19,12 @@ import org.bukkit.command.CommandSender; | ||||||
| import org.bukkit.entity.Player; | import org.bukkit.entity.Player; | ||||||
| 
 | 
 | ||||||
| public class InviteCommand extends SubCommand { | public class InviteCommand extends SubCommand { | ||||||
|  |     /* | ||||||
|  |         TODO: | ||||||
|  |             - Invite other Players to play in Duo Mode | ||||||
|  |             - Add Functionality to support multiple Players in the same game | ||||||
|  |             - use settings of player that invited the other player | ||||||
|  |      */ | ||||||
| 
 | 
 | ||||||
|     private final MinecleanerPlugin plugin; |     private final MinecleanerPlugin plugin; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,53 +0,0 @@ | ||||||
| package de.lunarakai.minecleaner.commands.groups; |  | ||||||
| 
 |  | ||||||
| import de.iani.cubesideutils.bukkit.commands.SubCommand; |  | ||||||
| import de.iani.cubesideutils.bukkit.commands.exceptions.DisallowsCommandBlockException; |  | ||||||
| import de.iani.cubesideutils.bukkit.commands.exceptions.IllegalSyntaxException; |  | ||||||
| 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.MinecleanerPlugin; |  | ||||||
| import de.lunarakai.minecleaner.utils.ChatUtils; |  | ||||||
| import org.bukkit.Bukkit; |  | ||||||
| import org.bukkit.command.Command; |  | ||||||
| import org.bukkit.command.CommandSender; |  | ||||||
| import org.bukkit.entity.Player; |  | ||||||
| 
 |  | ||||||
| public class LeaveGroupCommand extends SubCommand { |  | ||||||
|     private final MinecleanerPlugin plugin; |  | ||||||
| 
 |  | ||||||
|     public LeaveGroupCommand(MinecleanerPlugin plugin) { |  | ||||||
|         this.plugin = plugin; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     @Override |  | ||||||
|     public String getUsage() { |  | ||||||
|         return ""; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     @Override |  | ||||||
|     public boolean requiresPlayer() { |  | ||||||
|         return true; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     @Override |  | ||||||
|     public boolean onCommand(CommandSender sender, Command command, String s, String commandString, ArgsParser args) throws DisallowsCommandBlockException, RequiresPlayerException, NoPermissionException, IllegalSyntaxException, InternalCommandException { |  | ||||||
|         Player player = (Player) sender; |  | ||||||
|         if(plugin.getGroupManager().getGroup(player) == null) { |  | ||||||
|             ChatUtils.sendSimpleWarningMessage(player, "group.common.notingroup"); |  | ||||||
|             return true; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         Player groupOwnerPlayer = Bukkit.getPlayer(plugin.getGroupManager().getGroup(player).getOwner()); |  | ||||||
| 
 |  | ||||||
|         if(player == groupOwnerPlayer) { |  | ||||||
|             ChatUtils.sendSimpleWarningMessage(player, "group.leave.usedismantle"); |  | ||||||
|             return true; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         plugin.getGroupManager().getGroup(player).removePlayerFromGroup(player); |  | ||||||
|         return true; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
| } |  | ||||||
|  | @ -1,6 +1,7 @@ | ||||||
| package de.lunarakai.minecleaner.utils; | package de.lunarakai.minecleaner.utils; | ||||||
| 
 | 
 | ||||||
| import de.iani.cubesideutils.bukkit.items.ItemBuilder; | import de.iani.cubesideutils.bukkit.items.ItemBuilder; | ||||||
|  | import net.kyori.adventure.text.Component; | ||||||
| import org.bukkit.Material; | import org.bukkit.Material; | ||||||
| import org.bukkit.enchantments.Enchantment; | import org.bukkit.enchantments.Enchantment; | ||||||
| import org.bukkit.inventory.ItemFlag; | import org.bukkit.inventory.ItemFlag; | ||||||
|  | @ -8,13 +9,13 @@ import org.bukkit.inventory.ItemStack; | ||||||
| 
 | 
 | ||||||
| public class ItemUtil { | public class ItemUtil { | ||||||
| 
 | 
 | ||||||
|     public static final ItemStack EMPTY_ICON = createGuiItem(Material.GRAY_STAINED_GLASS_PANE, " ", true, true); |     public static final ItemStack EMPTY_ICON = createGuiItem(Material.GRAY_STAINED_GLASS_PANE, Component.text(" "), true, true); | ||||||
| 
 | 
 | ||||||
|     public static ItemStack createGuiItem(Material material, String name, String... lore) { |     public static ItemStack createGuiItem(Material material, Component name, String... lore) { | ||||||
|         return createGuiItem(material, name, false, lore); |         return createGuiItem(material, name, false, lore); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public static ItemStack createGuiItem(Material material, String name, boolean glowing, boolean showTooltip, String... lore) { |     public static ItemStack createGuiItem(Material material, Component name, boolean glowing, boolean showTooltip, String... lore) { | ||||||
|         ItemBuilder builder = ItemBuilder.fromMaterial(material).displayName(name).lore(lore); |         ItemBuilder builder = ItemBuilder.fromMaterial(material).displayName(name).lore(lore); | ||||||
|         if (glowing) { |         if (glowing) { | ||||||
|             builder.enchantment(Enchantment.UNBREAKING, 1, true).flag(ItemFlag.HIDE_ENCHANTS); |             builder.enchantment(Enchantment.UNBREAKING, 1, true).flag(ItemFlag.HIDE_ENCHANTS); | ||||||
|  | @ -26,7 +27,7 @@ public class ItemUtil { | ||||||
| 
 | 
 | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public static ItemStack createGuiItem(Material material, String name, boolean glowing, String... lore) { |     public static ItemStack createGuiItem(Material material, Component name, boolean glowing, String... lore) { | ||||||
|         return createGuiItem(material, name, glowing, true, lore); |         return createGuiItem(material, name, glowing, true, lore); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,6 +1,7 @@ | ||||||
| package de.lunarakai.minecleaner.utils; | package de.lunarakai.minecleaner.utils; | ||||||
| 
 | 
 | ||||||
| import java.net.URL; | import java.net.URL; | ||||||
|  | import net.kyori.adventure.text.Component; | ||||||
| 
 | 
 | ||||||
| public class MinecleanerStringUtil { | public class MinecleanerStringUtil { | ||||||
|     private MinecleanerStringUtil() { |     private MinecleanerStringUtil() { | ||||||
|  | @ -14,7 +15,7 @@ public class MinecleanerStringUtil { | ||||||
|         min = min % 60; |         min = min % 60; | ||||||
|         StringBuilder timeString = new StringBuilder(); |         StringBuilder timeString = new StringBuilder(); | ||||||
|         if (hours > 0) { |         if (hours > 0) { | ||||||
|             String hoursString = " Stunden"; |             String hoursString = " " + Component.translatable("minecleaner.common.hours"); | ||||||
|             if(shorten) { |             if(shorten) { | ||||||
|                 hoursString = " h"; |                 hoursString = " h"; | ||||||
|             } |             } | ||||||
|  | @ -24,7 +25,7 @@ public class MinecleanerStringUtil { | ||||||
|             if (!timeString.isEmpty()) { |             if (!timeString.isEmpty()) { | ||||||
|                 timeString.append(", "); |                 timeString.append(", "); | ||||||
|             } |             } | ||||||
|             String minString = " Minuten"; |             String minString = " " + Component.translatable("minecleaner.common.minutes"); | ||||||
|             if(shorten) { |             if(shorten) { | ||||||
|                 minString = " min"; |                 minString = " min"; | ||||||
|             } |             } | ||||||
|  | @ -32,9 +33,9 @@ public class MinecleanerStringUtil { | ||||||
|         } |         } | ||||||
|         if (sec > 0 || !timeString.isEmpty()) { |         if (sec > 0 || !timeString.isEmpty()) { | ||||||
|             if (!timeString.isEmpty()) { |             if (!timeString.isEmpty()) { | ||||||
|                 timeString.append(" und "); |                 timeString.append(Component.text(" ")).append(Component.translatable("minecleaner.common.and").append(Component.text(" "))); | ||||||
|             } |             } | ||||||
|             String secondsString = " Sekunden"; |             String secondsString = " " + Component.translatable("minecleaner.common.seconds"); | ||||||
|             if(shorten) { |             if(shorten) { | ||||||
|                 secondsString = " s"; |                 secondsString = " s"; | ||||||
|             } |             } | ||||||
|  |  | ||||||
|  | @ -0,0 +1,11 @@ | ||||||
|  | package de.lunarakai.minecleaner.utils; | ||||||
|  | 
 | ||||||
|  | import de.lunarakai.minecleaner.MinecleanerPlugin; | ||||||
|  | import org.bukkit.entity.Player; | ||||||
|  | 
 | ||||||
|  | public class MinecleanerUtils { | ||||||
|  | 
 | ||||||
|  |     public static boolean isPlayerInGroup(MinecleanerPlugin plugin, Player player) { | ||||||
|  |         return plugin.getGroupManager().getGroup(player) != null; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -3,6 +3,20 @@ minecleaner.info.developer=Entwickelt von | ||||||
| minecleaner.info.website=Website | minecleaner.info.website=Website | ||||||
| minecleaner.info.license=Lizenz | minecleaner.info.license=Lizenz | ||||||
| 
 | 
 | ||||||
|  | minecleaner.common.hours=Stunden | ||||||
|  | minecleaner.common.minutes=Minuten | ||||||
|  | minecleaner.common.seconds=Sekunden | ||||||
|  | minecleaner.common.and=und | ||||||
|  | 
 | ||||||
|  | settings.manualreset.allow=Manuelles Resetten aktiviert | ||||||
|  | settings.manualreset.deny=Manuelles Resetten deaktiviert | ||||||
|  | settings.additionaltimer.allow=Zusätzliche Anzeige in der Action Bar aktiviert | ||||||
|  | settings.additionaltimer.deny=Zusätzliche Anzeige in der Action Bar deaktiviert | ||||||
|  | settings.timer.allow=Timer wird angezeigt | ||||||
|  | settings.timer.deny=Timer wird nicht angezeigt | ||||||
|  | settings.resettime.text=Resetzeit | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| arena.name.invalid=Ungültiger 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.name.exists=Eine Arena mit diesem Namen existiert bereits | ||||||
| arena.width.klein=Klein | arena.width.klein=Klein | ||||||
|  | @ -20,6 +34,8 @@ arena.delete.success=Die {0}-Arena {1} wurde gelöscht. | ||||||
| arena.delete.noarena=Hier befindet sich keine {0}-Arena. | arena.delete.noarena=Hier befindet sich keine {0}-Arena. | ||||||
| 
 | 
 | ||||||
| arena.common.noarena=Hier befindet sich keine Arena. | arena.common.noarena=Hier befindet sich keine Arena. | ||||||
|  | arena.common.toofaraway=Du hast dich zu weit von der Arena entfernt. Das Spiel wurde abgebrochen. | ||||||
|  | arena.common.groupleadertoofaraway=Der Ersteller der Gruppe hat sich zu weit von der Arena entfernt. Das Spiel wurde abgebrochen. | ||||||
| 
 | 
 | ||||||
| arena.list.created=Angelegte {0}-Arenen | arena.list.created=Angelegte {0}-Arenen | ||||||
| arena.list.none=(keine) | arena.list.none=(keine) | ||||||
|  | @ -53,9 +69,9 @@ group.invite.nopermission=Nur als Ersteller der Gruppe bist du berechtigt Leute | ||||||
| group.invite.accept=Annehmen | group.invite.accept=Annehmen | ||||||
| group.invite.deny=Ablehnen | group.invite.deny=Ablehnen | ||||||
| 
 | 
 | ||||||
| group.leave.usedismantle=Als Ersteller der Gruppe nutze /... dismantlegroup um die Gruppe aufzulösen. |  | ||||||
| 
 |  | ||||||
| group.dismantle.nopermission=Du bist nicht berechtigt deine Gruppe aufzulösen. | group.dismantle.nopermission=Du bist nicht berechtigt deine Gruppe aufzulösen. | ||||||
| group.dismantle.yourgroup=Die Gruppe in der du dich befindest wurde aufgelöst. | group.dismantle.yourgroup=Die Gruppe in der du dich befindest wurde aufgelöst. | ||||||
| 
 | 
 | ||||||
| group.game.nopermission=Nur der Ersteller der Gruppe kann eine neue Runde starten! | group.game.nopermission=Nur der Ersteller der Gruppe kann eine neue Runde starten! | ||||||
|  | group.creator.removed=Die Gruppe wurde aufgelöst, da die Person, welche die Gruppe erstellt hat, aus der Gruppe entfernt wurde. | ||||||
|  | group.dismantled.alone=Die Gruppe wurde aufgelöst, da du nur noch alleine in der Gruppe bist. | ||||||
|  | @ -3,6 +3,19 @@ minecleaner.info.developer=Developed by | ||||||
| minecleaner.info.website=Website | minecleaner.info.website=Website | ||||||
| minecleaner.info.license=License | minecleaner.info.license=License | ||||||
| 
 | 
 | ||||||
|  | minecleaner.common.hours=hours | ||||||
|  | minecleaner.common.minutes=minutes | ||||||
|  | minecleaner.common.seconds=seconds | ||||||
|  | minecleaner.common.and=and | ||||||
|  | 
 | ||||||
|  | settings.manualreset.allow=Manual reset activated | ||||||
|  | settings.manualreset.deny=Manual reset deactivated | ||||||
|  | settings.additionaltimer.allow=Additional display activated in the action bar | ||||||
|  | settings.additionaltimer.deny=Additional display deactivated in the action bar | ||||||
|  | settings.timer.allow=Timer is displayed | ||||||
|  | settings.timer.deny=Timer is not displayed | ||||||
|  | settings.resettime.text=reset time | ||||||
|  | 
 | ||||||
| arena.name.invalid=Invalid arena name. Allowed are letters, numbers and the underscore | arena.name.invalid=Invalid arena name. Allowed are letters, numbers and the underscore | ||||||
| arena.name.exists=An arena with this name already exists | arena.name.exists=An arena with this name already exists | ||||||
| arena.width.klein=Small | arena.width.klein=Small | ||||||
|  | @ -20,7 +33,8 @@ arena.delete.success=The {0}-arena {1} has been deleted. | ||||||
| arena.delete.noarena=There is no {0}-arena here. | arena.delete.noarena=There is no {0}-arena here. | ||||||
| 
 | 
 | ||||||
| arena.common.noarena=There is no arena here. | arena.common.noarena=There is no arena here. | ||||||
| 
 | arena.common.toofaraway=You have moved too far away from the arena. The match has been abandoned. | ||||||
|  | arena.common.groupleadertoofaraway=The creator of the group has moved too far away from the arena. The match has been abandoned. | ||||||
| 
 | 
 | ||||||
| arena.list.created=Created {0} arenas | arena.list.created=Created {0} arenas | ||||||
| arena.list.none=(none) | arena.list.none=(none) | ||||||
|  | @ -54,9 +68,9 @@ group.invite.nopermission=Only as the creator of the group are you authorized to | ||||||
| group.invite.accept=Accept | group.invite.accept=Accept | ||||||
| group.invite.deny=Deny | group.invite.deny=Deny | ||||||
| 
 | 
 | ||||||
| group.leave.usedismantle=As the creator of the group use /... dismantlegroup tO dissolve the group. |  | ||||||
| 
 |  | ||||||
| group.dismantle.nopermission=You are not authorized to dissolve your group. | group.dismantle.nopermission=You are not authorized to dissolve your group. | ||||||
| group.dismantle.yourgroup=The group you are in has been disbanded. | group.dismantle.yourgroup=The group you are in has been disbanded. | ||||||
| 
 | 
 | ||||||
| group.game.nopermission=Only the creator of the group can start a new round! | group.game.nopermission=Only the creator of the group can start a new round! | ||||||
|  | group.creator.removed=The group has been dissolved because the person who created the group has been removed from the group. | ||||||
|  | group.dismantled.alone=The group has been dissolved as you are now only alone in the group. | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue