public SummonCommand(
     Asset entity,
     Location location,
     DataTag dataTag = null)
 {
     Entity = entity;
     Location = location;
     DataTag = dataTag;
 }
        public GiveCommand(IFormattable player, Asset item, int? amount = null, int? data = null, DataTag dataTag = null)
        {
            if (player == null) throw new ArgumentNullException("player");
            if (!(player is PlayerSelector || player is Player)) throw new ArgumentException("player must be a PlayerSelector or Player.", "player");
            if (item == null) throw new ArgumentNullException("item");
            if (item.Type == AssetType.Entity) throw new ArgumentException("item must have a type of Item or Block.", "item");
            if (amount < 1 || amount > 64) throw new ArgumentException("amount must be between 1 and 64, inclusive.", "amount");

            Player = player;
            Item = item;
            Amount = amount;
            Data = data;
            DataTag = dataTag;
        }
 public FillCommand(
     Location location1,
     Location location2,
     Asset block,
     int? dataValue = null,
     FillCommandOldBlockHandling? oldBlockHandling = null,
     DataTag dataTag = null)
 {
     Location1 = location1;
     Location2 = location2;
     Block = block;
     DataValue = dataValue;
     OldBlockHandling = oldBlockHandling;
     DataTag = dataTag;
 }
 internal static bool IsSimple(DataTag dataTag)
 {
     return dataTag.Attributes.Count == 0
            || (dataTag.Attributes.Count == 1 && IsSimple((dynamic)dataTag.Attributes.First().Value));
 }