public void addChunkLoader(ChunkLoader chunkLoader) { Block block = getServer() .getWorld(chunkLoader.getWorld()) .getBlockAt(chunkLoader.getX(), chunkLoader.getY(), chunkLoader.getZ()); ChunkLoader existing = chunkLoaders.stream().filter(c -> c.getBlock().equals(block)).findFirst().orElse(null); if (existing != null) existing.delete(); chunkLoader.setBlock(block); block.setType(getChunkLoaderMaterial(chunkLoader.getChunkType())); getChunkLoaders().add(chunkLoader); chunkLoader.load(); data.saveChunkLoader(chunkLoader); Player player = getServer().getPlayer(chunkLoader.getOwner()); if (player != null && player.isOnline()) player.sendMessage( String.format( "%sSuccessfully placed %s chunk loader with and ID of %s and %s chunks", ChatColor.GOLD, chunkLoader.getChunkType(), chunkLoader.getId(), chunkLoader.getSize())); }
public void updateChunkLoader(ChunkLoader chunkLoader) { data.saveChunkLoader(chunkLoader); Player player = getServer().getPlayer(chunkLoader.getOwner()); if (player != null && player.isOnline()) player.sendMessage( String.format( "%sSuccessfully updated your chunk loader. Chunks loaded are now %s", ChatColor.GOLD, chunkLoader.getSize())); }
public void loadWorldChunks() { List<ChunkLoader> chunks = data.getWorldChunks(); int chunkCount = 0; for (ChunkLoader cl : chunks) { if (!cl.load()) continue; chunkCount += cl.getSize(); chunkLoaders.add(cl); } getLogger() .info( String.format( "Loaded %s world chunk loaders, totalling %s chunks", chunks.size(), chunkCount)); }
public void loadPersonalChunks(UUID uuid) { List<ChunkLoader> chunks = data.getPersonalChunks(uuid); int chunkCount = 0; for (ChunkLoader cl : chunks) { if (!cl.load()) continue; chunkCount += cl.getSize(); getChunkLoaders().add(cl); } getLogger() .info( String.format( "Loaded %s personal chunk loaders, totalling %s chunks", chunks.size(), chunkCount)); }
public void unloadPersonalChunks(UUID uuid) { List<ChunkLoader> chunks = chunkLoaders .stream() .filter( c -> c.getOwner().equals(uuid) && c.getChunkType() == ChunkLoader.ChunkType.PERSONAL) .collect(Collectors.toList()); int chunkCount = 0; for (ChunkLoader c : chunks) { chunkCount += c.getSize(); c.unload(); } getChunkLoaders().removeAll(chunks); getLogger() .info( String.format( "Unloaded %s personal chunk loaders, totalling %s chunks", chunks.size(), chunkCount)); }