private static @Nullable Color getColor(List<? extends UExpression> args) {
    try {
      ColorConstructors type = args.isEmpty() ? null : getConstructorType(args.size(), args.get(0).getExpressionType());
      if (type != null) {
        return switch (type) {
          case INT -> new Color(getInt(args.get(0)));
          case INT_BOOL -> new Color(getInt(args.get(0)), getBoolean(args.get(1)));
          case INT_x3 -> new Color(getInt(args.get(0)), getInt(args.get(1)), getInt(args.get(2)));
          case INT_x4 -> new Color(getInt(args.get(0)), getInt(args.get(1)), getInt(args.get(2)), getInt(args.get(3)));
          case FLOAT_x3 -> new Color(getFloat(args.get(0)), getFloat(args.get(1)), getFloat(args.get(2)));
          case FLOAT_x4 -> new Color(getFloat(args.get(0)), getFloat(args.get(1)), getFloat(args.get(2)), getFloat(args.get(3)));
        };
      }
    }
    catch (Exception ignore) {
    }
    return null;
  }
private static @Nullable Color getColor(List<? extends UExpression> args)