package com.massivecraft.factions.util; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.entity.Player; import java.util.*; public class VisualizeUtil { protected static Map> playerLocations = new HashMap<>(); public static Set getPlayerLocations(Player player) { return getPlayerLocations(player.getUniqueId()); } public static Set getPlayerLocations(UUID uuid) { Set ret = playerLocations.get(uuid); if (ret == null) { ret = new HashSet<>(); playerLocations.put(uuid, ret); } return ret; } @SuppressWarnings("deprecation") public static void addLocation(Player player, Location location, Material type, byte data) { getPlayerLocations(player).add(location); player.sendBlockChange(location, type, data); } @SuppressWarnings("deprecation") public static void addLocation(Player player, Location location, Material material) { getPlayerLocations(player).add(location); player.sendBlockChange(location, material, (byte) 0); } @SuppressWarnings("deprecation") public static void addLocations(Player player, Collection locations, Material material) { Set ploc = getPlayerLocations(player); for (Location location : locations) { ploc.add(location); player.sendBlockChange(location, material, (byte) 0); } } @SuppressWarnings("deprecation") public static void addBlocks(Player player, Collection blocks, Material material) { Set ploc = getPlayerLocations(player); for (Block block : blocks) { Location location = block.getLocation(); ploc.add(location); player.sendBlockChange(location, material, (byte) 0); } } @SuppressWarnings("deprecation") public static void clear(Player player) { Set locations = getPlayerLocations(player); if (locations == null) { return; } for (Location location : locations) { Block block = location.getWorld().getBlockAt(location); player.sendBlockChange(location, block.getType(), block.getData()); } locations.clear(); } }