@Override public Optional<ScreamingData> build(DataView container) throws InvalidDataException { if (container.contains(Keys.IS_SCREAMING.getQuery())) { Optional<Boolean> isScreaming = container.getBoolean(Keys.IS_SCREAMING.getQuery()); if (isScreaming.isPresent()) { return Optional.of(new SpongeScreamingData(isScreaming.get())); } } return Optional.empty(); }
@SuppressWarnings("unchecked") private static void translateMapOrList(ConfigurationNode node, DataView container) { Object value = node.getValue(); if (value instanceof Map) { for (Map.Entry<Object, Object> entry : ((Map<Object, Object>) value).entrySet()) { container.set(of('.', entry.getKey().toString()), entry.getValue()); } } else if (value != null) { container.set(of(node.getKey().toString()), value); } }
@Override protected Optional<FireworkEffect> buildContent(DataView container) throws InvalidDataException { if (container.contains( DataQueries.FIREWORK_SHAPE, DataQueries.FIREWORK_COLORS, DataQueries.FIREWORK_FADE_COLORS, DataQueries.FIREWORK_FLICKERS, DataQueries.FIREWORK_TRAILS)) { final String fireworkShapeId = DataUtil.getData(container, DataQueries.FIREWORK_SHAPE, String.class); final Optional<FireworkShape> shapeOptional = Sponge.getRegistry().getType(FireworkShape.class, fireworkShapeId); if (!shapeOptional.isPresent()) { throw new InvalidDataException( "Could not find the FireworkShape for the provided id: " + fireworkShapeId); } final FireworkShape shape = shapeOptional.get(); final boolean trails = DataUtil.getData(container, DataQueries.FIREWORK_TRAILS, Boolean.class); final boolean flickers = DataUtil.getData(container, DataQueries.FIREWORK_FLICKERS, Boolean.class); final List<Color> colors = container.getSerializableList(DataQueries.FIREWORK_COLORS, Color.class).get(); final List<Color> fadeColors = container.getSerializableList(DataQueries.FIREWORK_FADE_COLORS, Color.class).get(); return Optional.of( FireworkEffect.builder() .colors(colors) .flicker(flickers) .fades(fadeColors) .trail(trails) .shape(shape) .build()); } return Optional.empty(); }
private static void populateNode(ConfigurationNode node, DataView container) { checkNotNull(node, "node"); checkNotNull(container, "container"); node.setValue(container.getMap(of()).get()); }