@Override public DataView remove(DataQuery path) { checkNotNull(path, "path"); List<String> parts = path.getParts(); if (parts.size() > 1) { String subKey = parts.get(0); DataQuery subQuery = of(subKey); Optional<DataView> subViewOptional = this.getUnsafeView(subQuery); if (!subViewOptional.isPresent()) { return this; } DataView subView = subViewOptional.get(); subView.remove(path.popFirst()); } else { this.map.remove(parts.get(0)); } return this; }
/** * Removes unnecessary/duplicate data from a BlockSnapshot's DataContainer. * * @param blockSnapshot Block Snapshot. * @return DataContainer Formatted Data Container. */ private DataContainer formatBlockDataContainer(BlockSnapshot blockSnapshot) { DataContainer block = blockSnapshot.toContainer(); block.remove(DataQueries.WorldUuid); block.remove(DataQueries.Position); Optional<Object> optionalUnsafeData = block.get(DataQueries.UnsafeData); if (optionalUnsafeData.isPresent()) { DataView unsafeData = (DataView) optionalUnsafeData.get(); unsafeData.remove(DataQueries.X); unsafeData.remove(DataQueries.Y); unsafeData.remove(DataQueries.Z); block.set(DataQueries.UnsafeData, unsafeData); } return block; } }
@Override public DataView remove(DataQuery path) { checkNotNull(path, "path"); List<String> parts = path.getParts(); if (parts.size() > 1) { String subKey = parts.get(0); DataQuery subQuery = of(subKey); Optional<DataView> subViewOptional = this.getUnsafeView(subQuery); if (!subViewOptional.isPresent()) { return this; } DataView subView = subViewOptional.get(); subView.remove(path.popFirst()); } else { this.map.remove(parts.get(0)); } return this; }
/** * Helper method for formatting entity container data. * @param entity */ private void writeEntity(Entity entity) { checkNotNull(entity); DataContainer entityData = entity.toContainer(); Optional<DataView> position = entityData.getView(DataQueries.Position); if (position.isPresent()) { position.get().set(DataQueries.WorldUuid, entityData.get(DataQueries.WorldUuid).get()); data.set(DataQueries.Location, position.get()); entityData.remove(DataQueries.Position); entityData.remove(DataQueries.WorldUuid); } Optional<DataView> optionalUnsafeData = entityData.getView(DataQueries.UnsafeData); if (optionalUnsafeData.isPresent()) { DataView unsafeData = optionalUnsafeData.get(); unsafeData.remove(DataQueries.Rotation); unsafeData.remove(DataQueries.Pos); entityData.set(DataQueries.UnsafeData, unsafeData); } data.set(DataQueries.Target, entity.getType().getId().replace("_", " ")); data.set(DataQueries.Entity, entityData); }
location.remove(DataQueries.WorldUuid); entity.set(DataQueries.Position, location);