// reverts a visualization by sending another block change list, this time with the real world // block values public static void Revert(Player player) { PlayerData playerData = GriefPrevention.instance.dataStore.getPlayerData(player.getName()); // Visualization visualization = playerData.currentVisualization; if (playerData.ActiveVisualizations.size() > 0) { if (player.isOnline()) { for (Visualization visualization : playerData.ActiveVisualizations) { for (int i = 0; i < visualization.elements.size(); i++) { VisualizationElement element = visualization.elements.get(i); Block block = element.location.getBlock(); player.sendBlockChange(element.location, block.getType(), block.getData()); } } } playerData.ActiveVisualizations.clear(); } }
public static void Apply(Player player, Visualization visualization, boolean CancelCurrent) { PlayerData playerData = GriefPrevention.instance.dataStore.getPlayerData(player.getName()); // if he has any current visualization, clear it first if (playerData.ActiveVisualizations.size() > 0 && CancelCurrent) { Visualization.Revert(player); } // if he's online, create a task to send him the visualization in about half a second if (player.isOnline()) { GriefPrevention.instance .getServer() .getScheduler() .scheduleSyncDelayedTask( GriefPrevention.instance, new VisualizationApplicationTask(player, playerData, visualization), 10L); } }