progress?
This commit is contained in:
		
					parent
					
						
							
								63354c563f
							
						
					
				
			
			
				commit
				
					
						ce060a26bf
					
				
			
		
					 13 changed files with 758 additions and 57 deletions
				
			
		|  | @ -2,6 +2,7 @@ package de.lunarakai.minecleaner; | |||
| 
 | ||||
| import java.io.File; | ||||
| import java.io.IOException; | ||||
| import java.util.Collection; | ||||
| import java.util.HashMap; | ||||
| import java.util.UUID; | ||||
| import java.util.logging.Level; | ||||
|  | @ -17,15 +18,18 @@ public class ArenaList { | |||
|     private final MinecleanerPlugin plugin; | ||||
|     private File arenaFile; | ||||
|     private final HashMap<String, MinecleanerArena> arenas; | ||||
| 
 | ||||
|     private final HashMap<UUID, MinecleanerArena> playersInArena; | ||||
|     private final HashMap<Location, MinecleanerArena> arenaBlocks; | ||||
|     private final HashMap<UUID, MinecleanerArena> arenaBlockDisplays; | ||||
| 
 | ||||
|     public ArenaList(MinecleanerPlugin plugin) { | ||||
|         this.plugin = plugin; | ||||
|         this.arenas = new HashMap<>(); | ||||
|         this.arenaFile = new File(plugin.getDataFolder(), ARENAS_FILENAME); | ||||
|         this.arenaBlocks = new HashMap<>(); | ||||
|         this.playersInArena = new HashMap<>(); | ||||
|         this.arenaBlockDisplays = new HashMap<>(); | ||||
|         this.arenaFile = new File(plugin.getDataFolder(), ARENAS_FILENAME); | ||||
|     } | ||||
| 
 | ||||
|     public void load() { | ||||
|  | @ -47,7 +51,7 @@ public class ArenaList { | |||
|                 if(arenaSection != null) { | ||||
|                     MinecleanerArena arena = new MinecleanerArena(plugin, arenaSection); | ||||
|                     this.arenas.put(arena.getName(), arena); | ||||
|                      | ||||
|                     setArenaBlocks(arena); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | @ -68,11 +72,39 @@ public class ArenaList { | |||
|         } | ||||
|     } | ||||
| 
 | ||||
|     /*private void setArenaBlocks(MinecleanerArena arena) { | ||||
|         for(Location location : arena.getBlocks()) { | ||||
|             arenaBlocks | ||||
|     private void setArenaBlocks(MinecleanerArena arena) { | ||||
|         for(Location loc : arena.getBlocks()) { | ||||
|             arenaBlocks.put(loc.clone(), arena); | ||||
|         } | ||||
|     }*/ | ||||
|         for(UUID id : arena.getBlockDisplays()) { | ||||
|             if(id != null) { | ||||
|                 arenaBlockDisplays.put(id, arena); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public MinecleanerArena getArena(String name) { | ||||
|         return arenas.get(name); | ||||
|     } | ||||
| 
 | ||||
|     public Collection<MinecleanerArena> getArenas() { | ||||
|         return arenas.values(); | ||||
|     } | ||||
| 
 | ||||
|     public void addArena(MinecleanerArena arena) { | ||||
|         this.arenas.put(arena.getName(), arena); | ||||
|         setArenaBlocks(arena); | ||||
|         save(); | ||||
|     } | ||||
| 
 | ||||
|     public boolean collidesWithArena(MinecleanerArena newArena) { | ||||
|         for(Location location : newArena.getBlocks()) { | ||||
|             if(arenaBlocks.get(location) != null) { | ||||
|                 return true; | ||||
|             } | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
| 
 | ||||
|     public void setArenaForPlayer(Player player, MinecleanerArena arena) { | ||||
|         if(arena != null) { | ||||
|  | @ -89,6 +121,23 @@ public class ArenaList { | |||
|     public MinecleanerArena getArenaAtBlock(Block block) { | ||||
|         return arenaBlocks.get(block.getLocation()); | ||||
|     } | ||||
|      | ||||
|     public void removeArena(MinecleanerArena arena) { | ||||
|         if(arena.hasPlayer()) { | ||||
|             plugin.getManager().leaveArena(arena.getCurrentPlayer(), true); | ||||
|         } | ||||
|          | ||||
|         for(UUID id : arena.getBlockDisplays()) { // TODO | ||||
|             if(id != null) { | ||||
|                 arenaBlockDisplays.remove(id); | ||||
|             } | ||||
|         } | ||||
|         for(Location block : arena.getBlocks()) { // TODO | ||||
|             arenaBlocks.remove(block); | ||||
|         } | ||||
|         arena.removeBlockDisplays(); // TODO | ||||
| 
 | ||||
| 
 | ||||
|         arenas.remove(arena.getName()); | ||||
|         save(); | ||||
|     } | ||||
| }  | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue