duo mode works but spaghetti (+ 2 small known bugs)
This commit is contained in:
		
					parent
					
						
							
								45ad276699
							
						
					
				
			
			
				commit
				
					
						70605461ef
					
				
			
		
					 14 changed files with 413 additions and 61 deletions
				
			
		|  | @ -2,9 +2,12 @@ package de.lunarakai.minecleaner; | ||||||
| 
 | 
 | ||||||
| import java.io.File; | import java.io.File; | ||||||
| import java.io.IOException; | import java.io.IOException; | ||||||
| import java.util.*; | import java.util.Arrays; | ||||||
|  | import java.util.Collection; | ||||||
|  | import java.util.HashMap; | ||||||
|  | import java.util.Iterator; | ||||||
|  | import java.util.UUID; | ||||||
| import java.util.logging.Level; | import java.util.logging.Level; | ||||||
| 
 |  | ||||||
| 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; | ||||||
|  | @ -119,13 +122,18 @@ public class ArenaList { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public MinecleanerArena getPlayerArena(Player player) { |     public MinecleanerArena getPlayerArena(Player player) { | ||||||
|  |         if(playersInArena.get(player.getUniqueId()) == null) { | ||||||
|  |             return null; | ||||||
|  |         } | ||||||
|         int arraySize = plugin.getGroupManager().getGroup(player) != null ? plugin.getGroupManager().getGroup(player).getPlayers().size() : 1; |         int arraySize = plugin.getGroupManager().getGroup(player) != null ? plugin.getGroupManager().getGroup(player).getPlayers().size() : 1; | ||||||
|         Player[] players = new Player[arraySize]; |         Player[] players = new Player[arraySize]; | ||||||
| 
 | 
 | ||||||
|         if(plugin.getGroupManager().getGroup(player) != null) { |         if(plugin.getGroupManager().getGroup(player) != null) { | ||||||
|  |             int i = 0; | ||||||
|             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()); | ||||||
|                 Arrays.fill(players, iteratorPlayer); |                 players[i] = iteratorPlayer; | ||||||
|  |                 i++; | ||||||
|             } |             } | ||||||
|         } else { |         } else { | ||||||
|             Arrays.fill(players, player); |             Arrays.fill(players, player); | ||||||
|  | @ -134,21 +142,41 @@ public class ArenaList { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public MinecleanerArena getPlayerArena(Player[] players) { |     public MinecleanerArena getPlayerArena(Player[] players) { | ||||||
|         if(plugin.getGroupManager().getGroup(players[0]) != null) { |  | ||||||
|             MinecleanerArena[] arenas = new MinecleanerArena[players.length]; |  | ||||||
|             for(int i = 0; i < players.length; i++) { |  | ||||||
|                 arenas[i] = playersInArena.get(players[i].getUniqueId()); |  | ||||||
|             } |  | ||||||
|             boolean match = Arrays.stream(arenas).allMatch(s -> s.equals(arenas[0])); |  | ||||||
|             if(match) { |  | ||||||
|                 return arenas[0]; |  | ||||||
|             } else { |  | ||||||
|                 return null; |  | ||||||
|             } |  | ||||||
|         } else { |  | ||||||
|         return playersInArena.get(players[0].getUniqueId()); |         return playersInArena.get(players[0].getUniqueId()); | ||||||
|         } | //        if(plugin.getGroupManager().getGroup(players[0]) != null) { | ||||||
| 
 | //            if(players.length == 1) { | ||||||
|  | //                return null; | ||||||
|  | //            } | ||||||
|  | //            MinecleanerArena[] arenas = new MinecleanerArena[players.length]; | ||||||
|  | //            for(int i = 0; i < players.length; i++) { | ||||||
|  | //                if(playersInArena.get(players[i].getUniqueId()) != null) { | ||||||
|  | //                    if(playersInArena.get(Bukkit.getPlayer(plugin.getGroupManager().getGroup(players[0]).getOwner()).getUniqueId()) != null)  { | ||||||
|  | //                        arenas[i] = playersInArena.get(players[i].getUniqueId()); | ||||||
|  | //                        continue; | ||||||
|  | //                    } | ||||||
|  | //                    arenas[i] = null; | ||||||
|  | //                } else { | ||||||
|  | //                    arenas = null; | ||||||
|  | //                } | ||||||
|  | //            } | ||||||
|  | //            if(playersInArena.get(players[0].getUniqueId()) == null)  { | ||||||
|  | //                return null; | ||||||
|  | //            } | ||||||
|  | // | ||||||
|  | //            if(arenas != null && arenas[0] != null) { | ||||||
|  | //                MinecleanerArena[] finalArenas = arenas; | ||||||
|  | //                boolean match = Arrays.stream(arenas).allMatch(s -> s.equals(finalArenas[0])); | ||||||
|  | //                if(match) { | ||||||
|  | //                    return arenas[0]; | ||||||
|  | //                } else { | ||||||
|  | //                    return null; | ||||||
|  | //                } | ||||||
|  | //            } | ||||||
|  | //            return null; | ||||||
|  | // | ||||||
|  | //        } else { | ||||||
|  | //            return playersInArena.get(players[0].getUniqueId()); | ||||||
|  | //        } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public MinecleanerArena getArenaAtBlock(Block block) { |     public MinecleanerArena getArenaAtBlock(Block block) { | ||||||
|  |  | ||||||
|  | @ -1,12 +1,14 @@ | ||||||
| package de.lunarakai.minecleaner; | package de.lunarakai.minecleaner; | ||||||
| 
 | 
 | ||||||
|  | import java.util.HashSet; | ||||||
|  | import java.util.Iterator; | ||||||
|  | import java.util.Set; | ||||||
|  | import java.util.UUID; | ||||||
| import net.kyori.adventure.text.Component; | import net.kyori.adventure.text.Component; | ||||||
| import net.kyori.adventure.text.format.NamedTextColor; | import net.kyori.adventure.text.format.NamedTextColor; | ||||||
| import org.bukkit.Bukkit; | import org.bukkit.Bukkit; | ||||||
| import org.bukkit.entity.Player; | import org.bukkit.entity.Player; | ||||||
| 
 | 
 | ||||||
| import java.util.*; |  | ||||||
| 
 |  | ||||||
| public class MinecleanerGroupManager { | public class MinecleanerGroupManager { | ||||||
| 
 | 
 | ||||||
|     public class MinecleanerGroup { |     public class MinecleanerGroup { | ||||||
|  | @ -19,6 +21,8 @@ public class MinecleanerGroupManager { | ||||||
|             this.owner = owner; |             this.owner = owner; | ||||||
|             this.players = new HashSet<>(); |             this.players = new HashSet<>(); | ||||||
|             this.invitedPlayers = new HashSet<>(); |             this.invitedPlayers = new HashSet<>(); | ||||||
|  | 
 | ||||||
|  |             players.add(owner); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         public UUID getOwner() { |         public UUID getOwner() { | ||||||
|  | @ -90,7 +94,7 @@ public class MinecleanerGroupManager { | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     private final UUID groupCreator; |     private UUID groupCreator; | ||||||
|     private final Set<MinecleanerGroup> groups; |     private final Set<MinecleanerGroup> groups; | ||||||
| 
 | 
 | ||||||
|     public MinecleanerGroupManager() { |     public MinecleanerGroupManager() { | ||||||
|  | @ -103,7 +107,6 @@ public class MinecleanerGroupManager { | ||||||
|         if (getGroup(player) != null) { |         if (getGroup(player) != null) { | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
| 
 |  | ||||||
|         groups.add(new MinecleanerGroup(player.getUniqueId())); |         groups.add(new MinecleanerGroup(player.getUniqueId())); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -127,7 +130,7 @@ public class MinecleanerGroupManager { | ||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     private void deleteGroup(MinecleanerGroup minecleanerGroup) { |     public void deleteGroup(MinecleanerGroup minecleanerGroup) { | ||||||
|         groups.remove(minecleanerGroup); |         groups.remove(minecleanerGroup); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,10 +1,11 @@ | ||||||
| package de.lunarakai.minecleaner; | package de.lunarakai.minecleaner; | ||||||
| 
 | 
 | ||||||
| import java.sql.Array; |  | ||||||
| import java.util.Arrays; | import java.util.Arrays; | ||||||
| import java.util.Iterator; | import java.util.Iterator; | ||||||
| import java.util.UUID; | import java.util.UUID; | ||||||
| 
 | import java.util.logging.Level; | ||||||
|  | import net.kyori.adventure.text.Component; | ||||||
|  | import net.kyori.adventure.text.format.NamedTextColor; | ||||||
| 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; | ||||||
|  | @ -101,13 +102,18 @@ public class MinecleanerListener implements Listener { | ||||||
|                     e.setCancelled(true); |                     e.setCancelled(true); | ||||||
|                     if(e.getHand() == EquipmentSlot.HAND) { |                     if(e.getHand() == EquipmentSlot.HAND) { | ||||||
|                         if(arena.getArenaStatus() == ArenaStatus.INACTIVE) { |                         if(arena.getArenaStatus() == ArenaStatus.INACTIVE) { | ||||||
|                             int arraySize = plugin.getGroupManager().getGroup(e.getPlayer()) != null ? plugin.getGroupManager().getGroup(e.getPlayer()).getPlayers().size() : 1; |                             int arraySize = 1; | ||||||
|  |                             if(plugin.getGroupManager().getGroup(e.getPlayer()) != null) { | ||||||
|  |                                 arraySize = plugin.getGroupManager().getGroup(e.getPlayer()).getPlayers().size(); | ||||||
|  |                             } | ||||||
|                             Player[] players = new Player[arraySize]; |                             Player[] players = new Player[arraySize]; | ||||||
| 
 | 
 | ||||||
|                             if(plugin.getGroupManager().getGroup(e.getPlayer()) != null) { |                             if(plugin.getGroupManager().getGroup(e.getPlayer()) != null) { | ||||||
|  |                                 int i = 0; | ||||||
|                                 for(Iterator<UUID> iterator = plugin.getGroupManager().getGroup(e.getPlayer()).getPlayers().iterator(); iterator.hasNext();) { |                                 for(Iterator<UUID> iterator = plugin.getGroupManager().getGroup(e.getPlayer()).getPlayers().iterator(); iterator.hasNext();) { | ||||||
|                                     Player iteratorPlayer = Bukkit.getPlayer(iterator.next()); |                                     Player iteratorPlayer = Bukkit.getPlayer(iterator.next()); | ||||||
|                                     Arrays.fill(players, iteratorPlayer); |                                     players[i] = iteratorPlayer; | ||||||
|  |                                     i++; | ||||||
|                                 } |                                 } | ||||||
|                             } else { |                             } else { | ||||||
|                                 Arrays.fill(players, e.getPlayer()); |                                 Arrays.fill(players, e.getPlayer()); | ||||||
|  | @ -187,7 +193,8 @@ public class MinecleanerListener implements Listener { | ||||||
|         final Player player = e.getPlayer(); |         final Player player = e.getPlayer(); | ||||||
|         MinecleanerArena arena = plugin.getArenaList().getPlayerArena(player); |         MinecleanerArena arena = plugin.getArenaList().getPlayerArena(player); | ||||||
|         if(arena != null) { |         if(arena != null) { | ||||||
|             if(arena.isTooFarAway(player) && plugin.getGroupManager().getGroup(player) == null) { |             if(plugin.getGroupManager().getGroup(player) == null) { | ||||||
|  |                 if((arena.isTooFarAway(player))) { | ||||||
|                     player.sendMessage(ChatColor.YELLOW + "Du hast dich zu weit von der Arena entfernt. Das Spiel wurde abgebrochen."); |                     player.sendMessage(ChatColor.YELLOW + "Du hast dich zu weit von der Arena entfernt. Das Spiel wurde abgebrochen."); | ||||||
|                     Player[] players = new Player[] { |                     Player[] players = new Player[] { | ||||||
|                             player |                             player | ||||||
|  | @ -196,6 +203,7 @@ public class MinecleanerListener implements Listener { | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
|     @EventHandler |     @EventHandler | ||||||
|     public void onPlayerQuit(PlayerQuitEvent e) { |     public void onPlayerQuit(PlayerQuitEvent e) { | ||||||
|  | @ -222,6 +230,35 @@ public class MinecleanerListener implements Listener { | ||||||
|                 }; |                 }; | ||||||
|                 plugin.getManager().leaveArena(players, false, true); |                 plugin.getManager().leaveArena(players, false, true); | ||||||
|             } |             } | ||||||
|  |         } else { | ||||||
|  |             if(plugin.getGroupManager().getGroup(e.getPlayer()) != null) { | ||||||
|  |                 if(plugin.getGroupManager().getGroup(e.getPlayer()).getOwner().equals(e.getPlayer())) { | ||||||
|  |                     int i = 0; | ||||||
|  |                     Player[] players = new Player[plugin.getGroupManager().getGroup(e.getPlayer()).getPlayers().size()]; | ||||||
|  |                     for(Iterator<UUID> iterator = plugin.getGroupManager().getGroup(e.getPlayer()).getPlayers().iterator(); iterator.hasNext();) { | ||||||
|  |                         Player iteratorPlayer = Bukkit.getPlayer(iterator.next()); | ||||||
|  |                         if(iteratorPlayer == e.getPlayer()) { | ||||||
|  |                             i++; | ||||||
|  |                             continue; | ||||||
|  |                         } | ||||||
|  |                         players[i] = iteratorPlayer; | ||||||
|  |                         players[i].sendMessage(Component.text("Die " + plugin.getDisplayedPluginName() + "gruppe in der du dich befindest wurde aufgelöst. Die Person, welche die Gruppe erstellt hat, hat den Server verlassen", NamedTextColor.YELLOW)); | ||||||
|  |                         i++; | ||||||
|  |                     } | ||||||
|  |                     if(plugin.getArenaList().getPlayerArena(e.getPlayer()) != null) { | ||||||
|  |                         plugin.getManager().leaveArena(players, false, true); | ||||||
|  |                     } | ||||||
|  |                     return; | ||||||
|  |                 } | ||||||
|  |                 Player[] players = new Player[] { | ||||||
|  |                         e.getPlayer() | ||||||
|  |                 }; | ||||||
|  |                 plugin.getGroupManager().getGroup(e.getPlayer()).removePlayerFromGroup(e.getPlayer()); | ||||||
|  |                 if(plugin.getArenaList().getPlayerArena(e.getPlayer()) != null) { | ||||||
|  |                     plugin.getManager().leaveArena(players, false, false); | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,10 +1,17 @@ | ||||||
| package de.lunarakai.minecleaner; | package de.lunarakai.minecleaner; | ||||||
| 
 | 
 | ||||||
| import de.iani.cubesidestats.api.SettingKey; | import de.iani.cubesidestats.api.SettingKey; | ||||||
| 
 | import java.util.ArrayList; | ||||||
| import java.util.*; | import java.util.Arrays; | ||||||
|  | import java.util.HashMap; | ||||||
|  | import java.util.Iterator; | ||||||
|  | import java.util.List; | ||||||
| import java.util.Map.Entry; | import java.util.Map.Entry; | ||||||
|  | import java.util.Objects; | ||||||
|  | import java.util.UUID; | ||||||
| import java.util.function.Consumer; | import java.util.function.Consumer; | ||||||
|  | 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.OfflinePlayer; | import org.bukkit.OfflinePlayer; | ||||||
|  | @ -130,11 +137,13 @@ public class MinecleanerManager { | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     public void joinArena(Player[] players, MinecleanerArena arena) { |     public void joinArena(Player[] players, MinecleanerArena arena) { | ||||||
|         if (!players[0].hasPermission(MinecleanerPlugin.PERMISSION_PLAY)) { |         if ((plugin.getGroupManager().getGroup(players[0]) == null && !players[0].hasPermission(MinecleanerPlugin.PERMISSION_PLAY)) || (plugin.getGroupManager().getGroup(players[0]) != null && !Bukkit.getPlayer(plugin.getGroupManager().getGroup(players[0]).getOwner()).hasPermission(MinecleanerPlugin.PERMISSION_PLAY))) { | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|  | 
 | ||||||
|         Preconditions.checkArgument(plugin.getArenaList().getPlayerArena(players) == null, "player is in an arena"); |         Preconditions.checkArgument(plugin.getArenaList().getPlayerArena(players) == null, "player is in an arena"); | ||||||
|         Preconditions.checkArgument(arena.getArenaStatus() == ArenaStatus.INACTIVE, "arena is in use"); |         Preconditions.checkArgument(arena.getArenaStatus() == ArenaStatus.INACTIVE, "arena is in use"); | ||||||
|  | 
 | ||||||
|         arena.addJoiningPlayers(players); |         arena.addJoiningPlayers(players); | ||||||
|         plugin.getArenaList().setArenaForPlayers(players, arena); |         plugin.getArenaList().setArenaForPlayers(players, arena); | ||||||
|         for(int i = 0; i < players.length; i++) { |         for(int i = 0; i < players.length; i++) { | ||||||
|  | @ -157,23 +166,34 @@ public class MinecleanerManager { | ||||||
|         } else { |         } else { | ||||||
|             arena = plugin.getArenaList().getPlayerArena(players); |             arena = plugin.getArenaList().getPlayerArena(players); | ||||||
|         } |         } | ||||||
|  |         Player[] players1 = group != null ? new Player[group.getPlayers().size()] : new Player[1]; | ||||||
|  |         if(plugin.getGroupManager().getGroup(players[0]) != null) { | ||||||
|  |             int i = 0; | ||||||
|  |             for(Iterator<UUID> iterator = group.getPlayers().iterator(); iterator.hasNext();) { | ||||||
|  |                 Player iteratorPlayer = Bukkit.getPlayer(iterator.next()); | ||||||
|  |                 players1[i] = iteratorPlayer; | ||||||
|  |                 i++; | ||||||
|  |             } | ||||||
|  |         } else { | ||||||
|  |             players1 = players; | ||||||
|  |         } | ||||||
| 
 | 
 | ||||||
|         Preconditions.checkArgument(arena != null, "player is in no arena"); |         Preconditions.checkArgument(arena != null, "player is in no arena"); | ||||||
| 
 | 
 | ||||||
|         if(reset) { |         if(reset) { | ||||||
|             arena.setArenaStaus(ArenaStatus.INACTIVE); |             arena.setArenaStaus(ArenaStatus.INACTIVE); | ||||||
|             for(int i = 0; i < players.length; i++) { |             for(int i = 0; i < players1.length; i++) { | ||||||
|                 players[i].closeInventory(); |                 players1[i].closeInventory(); | ||||||
|             } |             } | ||||||
|             arena.removePlayers(); |             arena.removePlayers(); | ||||||
|             if(message) { |             if(message) { | ||||||
|                 for(int i = 0; i < players.length; i++) { |                 for(int i = 0; i < players.length; i++) { | ||||||
|                     players[i].sendMessage(ChatColor.YELLOW + "Das " + plugin.getDisplayedPluginName() + "spiel wurde abgebrochen."); |                     players1[i].sendMessage(ChatColor.YELLOW + "Das " + plugin.getDisplayedPluginName() + "spiel wurde abgebrochen."); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         plugin.getArenaList().setArenaForPlayers(players, null); |         plugin.getArenaList().setArenaForPlayers(players1, null); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -182,16 +202,53 @@ public class MinecleanerManager { | ||||||
|         Preconditions.checkArgument(arena != null, "player is in no arena"); |         Preconditions.checkArgument(arena != null, "player is in no arena"); | ||||||
|         Preconditions.checkState(arena.getArenaStatus() == ArenaStatus.CONFIRM_PLAYING, "not confirming playing status"); |         Preconditions.checkState(arena.getArenaStatus() == ArenaStatus.CONFIRM_PLAYING, "not confirming playing status"); | ||||||
|         arena.startNewGame(); |         arena.startNewGame(); | ||||||
|         for(int i = 0; i < players.length; i++) { |  | ||||||
|             players[i].sendMessage(ChatColor.YELLOW + "Du hast eine neue Runde " + plugin.getDisplayedPluginName() + " gestartet."); |  | ||||||
|         } |  | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  |         if(plugin.getGroupManager().getGroup(players[0]) != null) { | ||||||
|  |             for(Iterator<UUID> iterator = plugin.getGroupManager().getGroup(players[0]).getPlayers().iterator(); iterator.hasNext();) { | ||||||
|  |                 Player iteratorPlayer = Bukkit.getPlayer(iterator.next()); | ||||||
|  |                 assert iteratorPlayer != null; | ||||||
|  |                 iteratorPlayer.sendMessage(Component.text("Du hast eine neue Runde " + plugin.getDisplayedPluginName() + " gestartet.", NamedTextColor.YELLOW)); | ||||||
|  |             } | ||||||
|  |         } else { | ||||||
|  |             players[0].sendMessage(Component.text("Du hast eine neue Runde " + plugin.getDisplayedPluginName() + " gestartet.", NamedTextColor.YELLOW)); | ||||||
|  |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public void handleGameover(Player[] player, MinecleanerArena arena, boolean isSuccessfullyCleared) { |     public void handleGameover(Player[] player, MinecleanerArena arena, boolean isSuccessfullyCleared) { | ||||||
|         if(plugin.getGroupManager().getGroup(player[0]) != null) { |         if(plugin.getGroupManager().getGroup(player[0]) != null) { | ||||||
|             // Todo |             World world = player[0].getWorld(); | ||||||
|             //  eigene Extra Punkte |             if(!isSuccessfullyCleared) { | ||||||
|  |                 world.playSound(player[0].getLocation(), Sound.ENTITY_GENERIC_EXPLODE, 0.5f, 0.5f); | ||||||
|  | 
 | ||||||
|  |                 int arraySize = plugin.getGroupManager().getGroup(player[0]) != null ? plugin.getGroupManager().getGroup(player[0]).getPlayers().size() : 1; | ||||||
|  |                 Player[] players = new Player[arraySize]; | ||||||
|  | 
 | ||||||
|  |                 for(Iterator<UUID> iterator = plugin.getGroupManager().getGroup(player[0]).getPlayers().iterator(); iterator.hasNext();) { | ||||||
|  |                         Player iteratorPlayer = Bukkit.getPlayer(iterator.next()); | ||||||
|  |                     assert iteratorPlayer != null; | ||||||
|  |                     iteratorPlayer.sendMessage(Component.text("Game Over! Ihr konntest das " + plugin.getDisplayedPluginName() + "-Feld nicht erfolgreich lösen!", NamedTextColor.YELLOW)); | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 arena.showMines(); | ||||||
|  |                 scheduleArenaReset(player[0], arena); | ||||||
|  |                 return; | ||||||
|  |             } | ||||||
|  |             // Todo: Punkte durch Anzahl der Leute in der Gruppe teilen => bei floats abrunden (heißt für Kleine (1 Punkt normal) => 0 Punkte in der Gruppe) | ||||||
|  |             int millis = (int) (System.currentTimeMillis() - arena.getCurrentGameStartTime()); | ||||||
|  |             world.playSound(player[0].getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 0.5f, 0.5f); | ||||||
|  |             int arraySize = plugin.getGroupManager().getGroup(player[0]) != null ? plugin.getGroupManager().getGroup(player[0]).getPlayers().size() : 1; | ||||||
|  |             Player[] players = new Player[arraySize]; | ||||||
|  | 
 | ||||||
|  |             for(Iterator<UUID> iterator = plugin.getGroupManager().getGroup(player[0]).getPlayers().iterator(); iterator.hasNext();) { | ||||||
|  |                 Player iteratorPlayer = Bukkit.getPlayer(iterator.next()); | ||||||
|  |                 assert iteratorPlayer != null; | ||||||
|  |                 iteratorPlayer.sendMessage(Component.text( | ||||||
|  |                         "Glückwunsch, ihr konntest das " + plugin.getDisplayedPluginName() + "-Feld in ", NamedTextColor.YELLOW) | ||||||
|  |                         .append(Component.text(MinecleanerStringUtil.timeToString(millis, false), NamedTextColor.RED)) | ||||||
|  |                         .append(Component.text(" erfolgreich lösen!", NamedTextColor.YELLOW))); | ||||||
|  |             } | ||||||
|  |             scheduleArenaReset(player[0], arena); | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|         World world = player[0].getWorld(); |         World world = player[0].getWorld(); | ||||||
|  | @ -277,10 +334,12 @@ public class MinecleanerManager { | ||||||
|                 } 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().getGroup(player).getPlayers().size() : 1; | ||||||
|                     Player[] players = new Player[arraySize]; |                     Player[] players = new Player[arraySize]; | ||||||
|  |                     int i = 0; | ||||||
|                     if(plugin.getGroupManager().getGroup(player) != null) { |                     if(plugin.getGroupManager().getGroup(player) != null) { | ||||||
|                         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()); | ||||||
|                             Arrays.fill(players, iteratorPlayer); |                             players[i] = iteratorPlayer; | ||||||
|  |                             i++; | ||||||
|                         } |                         } | ||||||
|                     } else { |                     } else { | ||||||
|                         Arrays.fill(players, player); |                         Arrays.fill(players, player); | ||||||
|  |  | ||||||
|  | @ -1,6 +1,19 @@ | ||||||
| package de.lunarakai.minecleaner; | package de.lunarakai.minecleaner; | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  | import de.lunarakai.minecleaner.commands.CreateCommand; | ||||||
|  | import de.lunarakai.minecleaner.commands.DeleteCommand; | ||||||
|  | import de.lunarakai.minecleaner.commands.DeletePlayerScoreCommand; | ||||||
|  | import de.lunarakai.minecleaner.commands.InfoCommand; | ||||||
|  | import de.lunarakai.minecleaner.commands.ListCommand; | ||||||
|  | import de.lunarakai.minecleaner.commands.ListPlayersInArenaCommand; | ||||||
| import de.lunarakai.minecleaner.commands.SettingsCommand; | import de.lunarakai.minecleaner.commands.SettingsCommand; | ||||||
|  | import de.lunarakai.minecleaner.commands.StatsCommand; | ||||||
|  | import de.lunarakai.minecleaner.commands.groups.AcceptCommand; | ||||||
|  | import de.lunarakai.minecleaner.commands.groups.DenyCommand; | ||||||
|  | import de.lunarakai.minecleaner.commands.groups.DismantleGroupCommand; | ||||||
|  | import de.lunarakai.minecleaner.commands.groups.InviteCommand; | ||||||
|  | import de.lunarakai.minecleaner.commands.groups.ListGroupMembersCommand; | ||||||
| import net.kyori.adventure.key.Key; | import net.kyori.adventure.key.Key; | ||||||
| import net.kyori.adventure.translation.GlobalTranslator; | import net.kyori.adventure.translation.GlobalTranslator; | ||||||
| import net.kyori.adventure.translation.TranslationRegistry; | import net.kyori.adventure.translation.TranslationRegistry; | ||||||
|  | @ -9,12 +22,6 @@ import org.bukkit.plugin.java.JavaPlugin; | ||||||
| import de.iani.cubesidestats.api.CubesideStatisticsAPI; | import de.iani.cubesidestats.api.CubesideStatisticsAPI; | ||||||
| import de.iani.cubesideutils.bukkit.commands.CommandRouter; | import de.iani.cubesideutils.bukkit.commands.CommandRouter; | ||||||
| import de.iani.playerUUIDCache.PlayerUUIDCache; | import de.iani.playerUUIDCache.PlayerUUIDCache; | ||||||
| import de.lunarakai.minecleaner.commands.CreateCommand; |  | ||||||
| import de.lunarakai.minecleaner.commands.DeleteCommand; |  | ||||||
| import de.lunarakai.minecleaner.commands.DeletePlayerScoreCommand; |  | ||||||
| import de.lunarakai.minecleaner.commands.InfoCommand; |  | ||||||
| import de.lunarakai.minecleaner.commands.ListCommand; |  | ||||||
| import de.lunarakai.minecleaner.commands.StatsCommand; |  | ||||||
| 
 | 
 | ||||||
| import java.util.Locale; | import java.util.Locale; | ||||||
| import java.util.ResourceBundle; | import java.util.ResourceBundle; | ||||||
|  | @ -73,6 +80,14 @@ public final class MinecleanerPlugin extends JavaPlugin { | ||||||
|         minecleanerCommand.addCommandMapping(new DeleteCommand(this), "delete"); |         minecleanerCommand.addCommandMapping(new DeleteCommand(this), "delete"); | ||||||
|         minecleanerCommand.addCommandMapping(new ListCommand(this), "list"); |         minecleanerCommand.addCommandMapping(new ListCommand(this), "list"); | ||||||
|         minecleanerCommand.addCommandMapping(new InfoCommand(this), "info"); |         minecleanerCommand.addCommandMapping(new InfoCommand(this), "info"); | ||||||
|  |         minecleanerCommand.addCommandMapping(new ListPlayersInArenaCommand(this), "currentplayers"); | ||||||
|  | 
 | ||||||
|  |         // Groups | ||||||
|  |         minecleanerCommand.addCommandMapping(new InviteCommand(this), "invite"); | ||||||
|  |         minecleanerCommand.addCommandMapping(new AcceptCommand(this), "accept"); | ||||||
|  |         minecleanerCommand.addCommandMapping(new DenyCommand(this), "deny"); | ||||||
|  |         minecleanerCommand.addCommandMapping(new DismantleGroupCommand(this), "dismantlegroup"); | ||||||
|  |         minecleanerCommand.addCommandMapping(new ListGroupMembersCommand(this), "groupmembers"); | ||||||
| 
 | 
 | ||||||
|         if(isStatisticsEnabled()) { |         if(isStatisticsEnabled()) { | ||||||
|             minecleanerCommand.addCommandMapping(new SettingsCommand(this), "settings"); |             minecleanerCommand.addCommandMapping(new SettingsCommand(this), "settings"); | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ package de.lunarakai.minecleaner.commands; | ||||||
| 
 | 
 | ||||||
| import java.util.Collection; | import java.util.Collection; | ||||||
| import java.util.List; | import java.util.List; | ||||||
| 
 |  | ||||||
| import net.kyori.adventure.text.format.NamedTextColor; | import net.kyori.adventure.text.format.NamedTextColor; | ||||||
| import org.bukkit.block.Block; | import org.bukkit.block.Block; | ||||||
| import org.bukkit.block.BlockFace; | import org.bukkit.block.BlockFace; | ||||||
|  | @ -18,7 +17,6 @@ import de.iani.cubesideutils.bukkit.commands.exceptions.RequiresPlayerException; | ||||||
| import de.iani.cubesideutils.commands.ArgsParser; | import de.iani.cubesideutils.commands.ArgsParser; | ||||||
| import de.lunarakai.minecleaner.MinecleanerArena; | import de.lunarakai.minecleaner.MinecleanerArena; | ||||||
| import de.lunarakai.minecleaner.MinecleanerPlugin; | import de.lunarakai.minecleaner.MinecleanerPlugin; | ||||||
| import net.md_5.bungee.api.ChatColor; |  | ||||||
| 
 | 
 | ||||||
| import static de.lunarakai.minecleaner.utils.MinecleanerComponentUtils.createLangComponent; | import static de.lunarakai.minecleaner.utils.MinecleanerComponentUtils.createLangComponent; | ||||||
| 
 | 
 | ||||||
|  | @ -67,5 +65,4 @@ public class DeleteCommand extends SubCommand { | ||||||
|     public Collection<String> onTabComplete(CommandSender sender, Command command, String alias, ArgsParser args) { |     public Collection<String> onTabComplete(CommandSender sender, Command command, String alias, ArgsParser args) { | ||||||
|         return List.of(); |         return List.of(); | ||||||
|     } |     } | ||||||
|      |  | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ package de.lunarakai.minecleaner.commands; | ||||||
| 
 | 
 | ||||||
| import java.util.Collection; | import java.util.Collection; | ||||||
| import java.util.List; | import java.util.List; | ||||||
| 
 |  | ||||||
| import net.kyori.adventure.text.format.NamedTextColor; | import net.kyori.adventure.text.format.NamedTextColor; | ||||||
| import org.bukkit.Location; | import org.bukkit.Location; | ||||||
| import org.bukkit.command.Command; | import org.bukkit.command.Command; | ||||||
|  |  | ||||||
|  | @ -0,0 +1,63 @@ | ||||||
|  | package de.lunarakai.minecleaner.commands; | ||||||
|  | 
 | ||||||
|  | import de.iani.cubesideutils.bukkit.commands.SubCommand; | ||||||
|  | import de.iani.cubesideutils.bukkit.commands.exceptions.*; | ||||||
|  | import de.iani.cubesideutils.commands.ArgsParser; | ||||||
|  | import de.lunarakai.minecleaner.MinecleanerArena; | ||||||
|  | import de.lunarakai.minecleaner.MinecleanerPlugin; | ||||||
|  | import net.kyori.adventure.text.Component; | ||||||
|  | import net.kyori.adventure.text.format.NamedTextColor; | ||||||
|  | import org.bukkit.block.Block; | ||||||
|  | import org.bukkit.block.BlockFace; | ||||||
|  | import org.bukkit.command.Command; | ||||||
|  | import org.bukkit.command.CommandSender; | ||||||
|  | import org.bukkit.entity.Player; | ||||||
|  | import java.util.Arrays; | ||||||
|  | import java.util.Collection; | ||||||
|  | import java.util.List; | ||||||
|  | 
 | ||||||
|  | public class ListPlayersInArenaCommand extends SubCommand { | ||||||
|  |     private final MinecleanerPlugin plugin; | ||||||
|  | 
 | ||||||
|  |     public ListPlayersInArenaCommand(MinecleanerPlugin plugin) { | ||||||
|  |         this.plugin = plugin; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public String getUsage() { | ||||||
|  |         return "<name>"; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public boolean requiresPlayer() { | ||||||
|  |         return true; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public String getRequiredPermission() { | ||||||
|  |         return MinecleanerPlugin.PERMISSION_ADMIN; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public boolean onCommand(CommandSender sender, Command command, String s, String s1, ArgsParser argsParser) throws DisallowsCommandBlockException, RequiresPlayerException, NoPermissionException, IllegalSyntaxException, InternalCommandException { | ||||||
|  |         Player player = (Player) sender; | ||||||
|  |         MinecleanerArena arena = plugin.getArenaList().getArenaAtBlock(player.getLocation().getBlock().getRelative(BlockFace.DOWN)); | ||||||
|  |         if(arena == null) { | ||||||
|  |             Block target = player.getTargetBlockExact(6); | ||||||
|  |             if(target != null) { | ||||||
|  |                 arena = plugin.getArenaList().getArenaAtBlock(target); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         if(arena != null) { | ||||||
|  |            player.sendMessage(Component.text("Players in Arena: " + Arrays.toString(arena.getCurrentPlayers()), NamedTextColor.GRAY)); | ||||||
|  |         } else { | ||||||
|  |             player.sendMessage(Component.text("Hier befindet sich keine Arena.", NamedTextColor.GRAY)); | ||||||
|  |         } | ||||||
|  |         return true; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public Collection<String> onTabComplete(CommandSender sender, Command command, String alias, ArgsParser args) { | ||||||
|  |         return List.of(); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -2,7 +2,6 @@ package de.lunarakai.minecleaner.commands; | ||||||
| 
 | 
 | ||||||
| import java.util.Map.Entry; | import java.util.Map.Entry; | ||||||
| import java.util.function.Consumer; | import java.util.function.Consumer; | ||||||
| 
 |  | ||||||
| import net.kyori.adventure.text.Component; | import net.kyori.adventure.text.Component; | ||||||
| import net.kyori.adventure.text.format.NamedTextColor; | import net.kyori.adventure.text.format.NamedTextColor; | ||||||
| import org.bukkit.command.Command; | import org.bukkit.command.Command; | ||||||
|  |  | ||||||
|  | @ -1,7 +1,11 @@ | ||||||
| package de.lunarakai.minecleaner.commands.groups; | package de.lunarakai.minecleaner.commands.groups; | ||||||
| 
 | 
 | ||||||
| import de.iani.cubesideutils.bukkit.commands.SubCommand; | import de.iani.cubesideutils.bukkit.commands.SubCommand; | ||||||
| import de.iani.cubesideutils.bukkit.commands.exceptions.*; | 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.iani.cubesideutils.commands.ArgsParser; | ||||||
| import de.lunarakai.minecleaner.MinecleanerPlugin; | import de.lunarakai.minecleaner.MinecleanerPlugin; | ||||||
| import net.kyori.adventure.text.Component; | import net.kyori.adventure.text.Component; | ||||||
|  |  | ||||||
|  | @ -1,8 +1,13 @@ | ||||||
| package de.lunarakai.minecleaner.commands.groups; | package de.lunarakai.minecleaner.commands.groups; | ||||||
| 
 | 
 | ||||||
|  | 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.bukkit.commands.SubCommand; | import de.iani.cubesideutils.bukkit.commands.SubCommand; | ||||||
| import de.iani.cubesideutils.bukkit.commands.exceptions.*; |  | ||||||
| import de.iani.cubesideutils.commands.ArgsParser; | import de.iani.cubesideutils.commands.ArgsParser; | ||||||
|  | import de.lunarakai.minecleaner.MinecleanerGroupManager; | ||||||
| import de.lunarakai.minecleaner.MinecleanerPlugin; | import de.lunarakai.minecleaner.MinecleanerPlugin; | ||||||
| import net.kyori.adventure.text.Component; | import net.kyori.adventure.text.Component; | ||||||
| import net.kyori.adventure.text.format.NamedTextColor; | import net.kyori.adventure.text.format.NamedTextColor; | ||||||
|  | @ -41,7 +46,11 @@ public class DenyCommand extends SubCommand { | ||||||
| 
 | 
 | ||||||
|         if(plugin.getGroupManager().getInvitedGroup(player) != null && plugin.getGroupManager().getGroup(player) == null) { |         if(plugin.getGroupManager().getInvitedGroup(player) != null && plugin.getGroupManager().getGroup(player) == null) { | ||||||
|             Player groupOwner = Bukkit.getPlayer(plugin.getGroupManager().getInvitedGroup(player).getOwner()); |             Player groupOwner = Bukkit.getPlayer(plugin.getGroupManager().getInvitedGroup(player).getOwner()); | ||||||
|             plugin.getGroupManager().getInvitedGroup(player).removePlayerFromInvitedList(player); |             MinecleanerGroupManager.MinecleanerGroup invitedGroup = plugin.getGroupManager().getInvitedGroup(player); | ||||||
|  |             invitedGroup.removePlayerFromInvitedList(player); | ||||||
|  |             if(plugin.getGroupManager().getGroup(Bukkit.getPlayer(invitedGroup.getOwner())).invitedPlayers.isEmpty()) { | ||||||
|  |                 plugin.getGroupManager().deleteGroup(invitedGroup); | ||||||
|  |             } | ||||||
| 
 | 
 | ||||||
|             assert groupOwner != null; |             assert groupOwner != null; | ||||||
|             groupOwner.sendMessage(Component.text(player.getName() + " hat deine Einladung abgelehnt.", NamedTextColor.RED)); |             groupOwner.sendMessage(Component.text(player.getName() + " hat deine Einladung abgelehnt.", NamedTextColor.RED)); | ||||||
|  |  | ||||||
|  | @ -0,0 +1,66 @@ | ||||||
|  | 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 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; | ||||||
|  | import org.bukkit.entity.Player; | ||||||
|  | 
 | ||||||
|  | public class DismantleGroupCommand extends SubCommand { | ||||||
|  |     private final MinecleanerPlugin plugin; | ||||||
|  | 
 | ||||||
|  |     public DismantleGroupCommand(MinecleanerPlugin plugin) { | ||||||
|  |         this.plugin = plugin; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public String getUsage() { | ||||||
|  |         return ""; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public boolean requiresPlayer() { | ||||||
|  |         return true; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public String getRequiredPermission() { | ||||||
|  |         return MinecleanerPlugin.PERMISSION_PLAY; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     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)); | ||||||
|  |             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)); | ||||||
|  |             return true; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |         for(Iterator<UUID> 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)); | ||||||
|  |         } | ||||||
|  |         plugin.getGroupManager().deleteGroup(plugin.getGroupManager().getGroup(player)); | ||||||
|  | 
 | ||||||
|  |         return true; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -1,7 +1,11 @@ | ||||||
| package de.lunarakai.minecleaner.commands.groups; | package de.lunarakai.minecleaner.commands.groups; | ||||||
| 
 | 
 | ||||||
| import de.iani.cubesideutils.bukkit.commands.SubCommand; | import de.iani.cubesideutils.bukkit.commands.SubCommand; | ||||||
| import de.iani.cubesideutils.bukkit.commands.exceptions.*; | 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.iani.cubesideutils.commands.ArgsParser; | ||||||
| import de.lunarakai.minecleaner.MinecleanerGroupManager; | import de.lunarakai.minecleaner.MinecleanerGroupManager; | ||||||
| import de.lunarakai.minecleaner.MinecleanerPlugin; | import de.lunarakai.minecleaner.MinecleanerPlugin; | ||||||
|  | @ -51,6 +55,11 @@ public class InviteCommand extends SubCommand { | ||||||
|         String playerName = args.getNext().trim(); |         String playerName = args.getNext().trim(); | ||||||
|         Player invitedPlayer = plugin.getServer().getPlayer(playerName); |         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)); | ||||||
|  |             return true; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         MinecleanerGroupManager groupManager = plugin.getGroupManager(); |         MinecleanerGroupManager groupManager = plugin.getGroupManager(); | ||||||
|         if(groupManager.getInvitedGroup(player) != null) { |         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)); |             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)); | ||||||
|  | @ -67,6 +76,8 @@ public class InviteCommand extends SubCommand { | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         assert invitedPlayer != null; |         assert invitedPlayer != null; | ||||||
|  |         player.sendMessage(Component.text("Du hast " + invitedPlayer.getName() + " in eine " + plugin.getDisplayedPluginName() + "-Gruppe eingeladen", NamedTextColor.GREEN)); | ||||||
|  |         invitedPlayer.sendMessage(Component.text("Du wurdest von " + player.getName() + " in eine " + plugin.getDisplayedPluginName() + "-Gruppe eingeladen.", NamedTextColor.GREEN)); | ||||||
|         groupManager.getGroup(player).invitePlayerToGroup(invitedPlayer); |         groupManager.getGroup(player).invitePlayerToGroup(invitedPlayer); | ||||||
| 
 | 
 | ||||||
|         return true; |         return true; | ||||||
|  |  | ||||||
|  | @ -0,0 +1,62 @@ | ||||||
|  | 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 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; | ||||||
|  | import org.bukkit.entity.Player; | ||||||
|  | 
 | ||||||
|  | public class ListGroupMembersCommand extends SubCommand { | ||||||
|  |     private final MinecleanerPlugin plugin; | ||||||
|  | 
 | ||||||
|  |     public ListGroupMembersCommand(MinecleanerPlugin plugin) { | ||||||
|  |         this.plugin = plugin; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public String getUsage() { | ||||||
|  |         return ""; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public boolean requiresPlayer() { | ||||||
|  |         return true; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public String getRequiredPermission() { | ||||||
|  |         return MinecleanerPlugin.PERMISSION_PLAY; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     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.", NamedTextColor.YELLOW)); | ||||||
|  |             return true; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         player.sendMessage(Component.text("-- Mitglieder deiner " + plugin.getDisplayedPluginName() + "gruppe --", NamedTextColor.AQUA)); | ||||||
|  |         for(Iterator<UUID> iterator = plugin.getGroupManager().getGroup(player).getPlayers().iterator(); iterator.hasNext();) { | ||||||
|  |             Player iteratorPlayer = Bukkit.getPlayer(iterator.next()); | ||||||
|  |             String ownerString = ""; | ||||||
|  |             if(iteratorPlayer == Bukkit.getPlayer(plugin.getGroupManager().getGroup(player).getOwner())) { | ||||||
|  |                 ownerString = " (Ersteller der Gruppe)"; | ||||||
|  |             } | ||||||
|  |             player.sendMessage(Component.text("  - " + iteratorPlayer.getName(), NamedTextColor.GREEN).append(Component.text(ownerString, NamedTextColor.RED))); | ||||||
|  |         } | ||||||
|  |         return true; | ||||||
|  |     } | ||||||
|  | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue