Search in sources :

Example 6 with MapNode

use of org.cubeengine.converter.node.MapNode in project modules-extra by CubeEngine.

the class ItemStackConverter method fromNode.

@Override
public ItemStack fromNode(Node node) throws ConversionException {
    if (node instanceof MapNode) {
        Node count = ((MapNode) node).get("Count");
        Node damage = ((MapNode) node).get("Damage");
        Node item = ((MapNode) node).get("Item");
        Node tag = ((MapNode) node).get("tag");
        if (count instanceof IntNode && damage instanceof IntNode && item instanceof StringNode && (tag instanceof MapNode)) {
            try {
                ItemStack itemStack = new ItemStack(Material.valueOf(item.asText()));
                itemStack.setDurability(((IntNode) damage).getValue().shortValue());
                itemStack.setAmount(((IntNode) count).getValue());
                net.minecraft.server.v1_8_R2.ItemStack nms = CraftItemStack.asNMSCopy(itemStack);
                nms.setTag(((MapNode) tag).isEmpty() ? null : (NBTTagCompound) NBTUtils.convertNodeToNBT(tag));
                return CraftItemStack.asBukkitCopy(nms);
            } catch (IllegalArgumentException e) {
                throw ConversionException.of(this, item, "Unknown Material!");
            }
        } else {
            throw ConversionException.of(this, node, "Invalid SubNodes!");
        }
    } else if (node instanceof NullNode) {
        return null;
    } else {
        throw ConversionException.of(this, node, "Node is not a MapNode!");
    }
}
Also used : IntNode(org.cubeengine.converter.node.IntNode) MapNode(org.cubeengine.converter.node.MapNode) NullNode(org.cubeengine.converter.node.NullNode) StringNode(org.cubeengine.converter.node.StringNode) IntNode(org.cubeengine.converter.node.IntNode) Node(org.cubeengine.converter.node.Node) StringNode(org.cubeengine.converter.node.StringNode) MapNode(org.cubeengine.converter.node.MapNode) ItemStack(org.spongepowered.api.item.inventory.ItemStack) NullNode(org.cubeengine.converter.node.NullNode)

Example 7 with MapNode

use of org.cubeengine.converter.node.MapNode in project core by CubeEngine.

the class LocationConverter method fromNode.

@Override
@SuppressWarnings("unchecked")
public Location<World> fromNode(Node node, ConverterManager manager) throws ConversionException {
    if (node instanceof MapNode) {
        Map<String, Node> input = ((MapNode) node).getValue();
        World world = Sponge.getServer().getWorld(((StringNode) input.get("world")).getValue()).get();
        double x = manager.convertFromNode(input.get("x"), double.class);
        double y = manager.convertFromNode(input.get("y"), double.class);
        double z = manager.convertFromNode(input.get("z"), double.class);
        // TODO Location + Direction
        return new Location(world, x, y, z);
    }
    throw ConversionException.of(this, node, "Node is not a MapNode!");
}
Also used : MapNode(org.cubeengine.converter.node.MapNode) StringNode(org.cubeengine.converter.node.StringNode) Node(org.cubeengine.converter.node.Node) StringNode(org.cubeengine.converter.node.StringNode) MapNode(org.cubeengine.converter.node.MapNode) World(org.spongepowered.api.world.World) Location(org.spongepowered.api.world.Location)

Example 8 with MapNode

use of org.cubeengine.converter.node.MapNode in project core by CubeEngine.

the class DataContainerConverter method fromNode.

@Override
public DataContainer fromNode(Node node, Class<? extends DataContainer> type, ConverterManager manager) throws ConversionException {
    DataContainer data = DataContainer.createNew();
    for (Entry<String, Node> entry : ((MapNode) node).getValue().entrySet()) {
        DataQuery key = DataQuery.of('_', ((MapNode) node).getOriginalKey(entry.getKey()));
        data.set(key, toObject(entry.getValue(), manager));
    }
    return data;
}
Also used : DataContainer(org.spongepowered.api.data.DataContainer) MapNode(org.cubeengine.converter.node.MapNode) ListNode(org.cubeengine.converter.node.ListNode) Node(org.cubeengine.converter.node.Node) DataQuery(org.spongepowered.api.data.DataQuery)

Aggregations

MapNode (org.cubeengine.converter.node.MapNode)8 Node (org.cubeengine.converter.node.Node)5 IntNode (org.cubeengine.converter.node.IntNode)4 StringNode (org.cubeengine.converter.node.StringNode)3 ListNode (org.cubeengine.converter.node.ListNode)2 DataQuery (org.spongepowered.api.data.DataQuery)2 Vector3i (com.flowpowered.math.vector.Vector3i)1 HashMap (java.util.HashMap)1 NullNode (org.cubeengine.converter.node.NullNode)1 DataContainer (org.spongepowered.api.data.DataContainer)1 ItemStack (org.spongepowered.api.item.inventory.ItemStack)1 Location (org.spongepowered.api.world.Location)1 World (org.spongepowered.api.world.World)1